Procedure and Function


PROCEDURE DAN FUNCTION
Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian dari pekerjaan program utama.
�� PROCEDURE
Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya.
Prosedur banyak digunakan pada program yang terstruktur, karena :
1. Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.
2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block. Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :
PROCEDURE nama;
Atau
PROCEDURE nama (formal parameter : jenis);
Jika kita menggunakan procedure dalam suatu program, maka procedure tersebut harus dituliskan pada bagian deklarasi.
Contoh : Misal akan dibuat suatu procedure untuk menentukan bilangan bulat terbesar diantara tiga bilangan bulat, maka procedure tersebut adalah sebagai berikut :
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a > b THEN max := a ELSE max := b;
IF c > max THEN max := c;
WRITELN(max);
END.
Selanjutnya, di dalam suatu program, procedure ini dapat digunakan dengan bentuk penulisan sebagai berikut :
Halaman : 1
Pemrograman PASCAL : Procedure & Function
PROGRAM contoh_1; HEADER program utama
VAR a,b,c : integer;
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a>b THEN max := a ELSE max := b; deklarasi program
IF c>max THEN max := c; utama
WRITELN(max);
END;
BEGIN
READLN(a,b,c);
Maksimum statement program utama
END.
Contoh 2 :
PROGRAM CONTOH_2;
VAR p,l,t,vol,panj : real;
PROCEDURE kotak;
VAR v,pl : real;
BEGIN
v := p * l * t ;
pl := p + 2.0 * t;
writeln(v,pl);
END;
BEGIN
writeln(‘panjang’ : 10,’lebar’ : 10,’tinggi’ : 10);
readln(p,l,t);
kotak;
END.
JANGKAUAN IDENTIFIER
Identifier yang dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana identifier tersebut didefinisikan.
Halaman : 2
Pemrograman PASCAL : Procedure & Function
Contoh :
1. PROGRAM p;
VAR x : real;
PROCEDURE pl;
VAR y : integer;
begin
………………..; daerah berlakunya y daerah
………………..; berlakunya x
end;
begin
………………..;
………………..;
end.
y → variabel global
2. Program P ;
Var x,y : real; y (real) berlaku disemua blok …………… program P, kecuali di P1
…………… x (real) berlaku disemua
blok P, kecuali di P2
Procedure Pl ;
Var y : integer; hanya berlaku di P1 saja (lokal)
……………..
Begin
………
………
End;
Procedure P2;
Var x : char; hanya berlaku di P2 saja (lokal)
……………
Begin
………..
………..
End;
Begin
………….
x := ……. x dan y yang dimaksud adalah x dan y real
y := ……. (variabel global)
…………
End.
Halaman : 3
Pemrograman PASCAL : Procedure & Function
PROCEDURE DENGAN PARAMETER
Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya.
Contoh :
Prosedur Tanya_hitung;
Var X,Y :real;
Begin
Write (‘Nilai X ?’);
Readln(X);
Y:=X*X;
Writeln(‘Nilai Y = ‘,Y:6:2);
End;
Begin
Tanya_Hitung;
End.
Hasilnya :
Nilai X ? 5
Nilai Y = 25.00
Keterangan :
Variabel X dan Y sifatnya adalah lokal untuk prosedur Tanya_hitung, artinya hanya dapat digunakan pada modul itu saja, Pada modul yang lain tidak dapat digunakan, contoh :
Prosedur Tanya_hitung;
Var X,Y :real;
Begin
Write (‘Nilai X ?’);
Readln(X);
Y:=X*X;
End;
Begin
Tanya_Hitung;
Writeln(‘Nilai Y = ‘,Y:6:2);
End.
Hasilnya :
Error 31: Unknown identifier
Halaman : 4
Pemrograman PASCAL : Procedure & Function
Supaya nilai variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan cara :
1. Dibuat bersifat global
Harus dideklarasikan di atas modul yang menggunakannya.
Procedure kesatu;
Begin
…….
……..
End; (*akhir dari procedure kesatu……*)
Var
A,B : word;
Procedure kedua;
Begin
……..
……..
End; (*akhir dari procedure kedua*)
Procedure ketiga;
Begin
……..
……..
End; (*akhir dari procedure ketiga*)
Begin
……..
……..
End. (*akhir dari modul utama*)
Pada contoh diatas, variabel A dab B bersifat global untuk prosedur kedua, ketiga dan utama, tetapi tidak bersifat global untuk prosedur kesatu, sehingga prosedur kesatu tidak dapat menggunakan variabel-variabel tersebut.
Halaman : 5
Pemrograman PASCAL : Procedure & Function
Var
A,B : real;
Procedure kesatu;
Begin
…….
……..
End; (*akhir dari procedure kesatu……*)
Procedure kedua;
Begin
……..
……..
End; (*akhir dari procedure kedua*)
Procedure ketiga;
Begin
……..
……..
End; (*akhir dari procedure ketiga*)
Begin
……..
……..
End. (*akhir dari modul utama*)
Pada contoh ini, variabel A dan B bersifat global untuk semua modul.
2. Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Parameter yang dikirim dari modul utama ke modul prosedur disebut actual parameter, dan parameter yang ada dan dituliskan pada judul prosedur disebut formal parameter.
2.1 Pengiriman parameter secara nilai
Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur.
Perhatikan procedure berikut :
Procedure konversi;
begin
f := (5/9) * c + 32; f dan c variabel global, c sebagai input dan
Halaman : 6
Pemrograman PASCAL : Procedure & Function
writeln(c,f); f sebagai output.
end;
Procedure di atas dapat dipanggil dengan variabel yang berbeda, tetapi penulisannya harus diubah dengan menggunakan parameter sbb:
Procedure konversi (var f : real; c : real);
Begin
F := (5/9) * c + 32; disebut formal parameter
Writeln(c,f);
End;
Selanjutnya procedure di atas dapat dipanggil dengan parameter lain, misalnya :
konversi (x,y) ;
actual parameter
x dan y disebut sebagai actual parameter.
Pada eksekusinya x akan menggantikan c dan y akan menggantikan f.
x dan y ini dapat berupa :
- konstanta
- variabel
- procedure, atau
- fungsi
Contoh :
Procedure Hitung(A,B : integer);
Var C : integer;
Begin
C := A + B;
Writeln(‘Nilai C = ‘,C)
End;
Var X,Y : integer;
Begin
Write(‘Nilai X ? ‘);
Readln(X);
Write(‘Nilai Y ?’);
Readln(Y);
Hitung(X,Y);
End.
Hasilnya :
Nilai X ? 2
Nilai Y ? 3
Nilai C = 5
2.2 Pengiriman parameter secara acuan
Halaman : 7
Pemrograman PASCAL : Procedure & Function
Bila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter .
Procedure hitung(Var A,B,C : integer);
Menunjukkan pengiriman parameter secara acuan.
Contoh :
Procedure Hitung(Var A,B,C : integer);
Begin
C := A + B;
End;
Var X,Y,Z : integer;
Begin
X := 2; Y:= 3;
Hitung(X,Y,Z);
Writeln(‘X = ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);
End.
Hasilnya :
X = 2 Y = 3 Z = 5
Acuan Forward
Digunakan untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya.
Contoh :
Procedure pro1(var I : integer); Forward;
Procedure pro2(var I : integer);
Begin
Writeln(‘prosedur pro’, I);
End;
Procedure pro1;
Begin
Writeln(‘prosedur pro’,I);
End;
Var I : integer;
Begin
I := 1; pro1(I);
I := 2; pro2(I);
End.
Hasilnya :
Halaman : 8
Pemrograman PASCAL : Procedure & Function
prosedur pro1
prosedur pro2
Prosedur Standar
Prosedur yang disediakan oleh Turbo Pascal :
1. Prosedur standar EXIT
Digunakan untuk keluar dari suatu blok.
2. Prosedur standar HALT
Digunakan untuk menghentikan proses program baik di program bagian maupun di program utama.
3. Prosedur standar MOVE
Bentuk umum : MOVE (Var source,dest; count : word);
Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest.
4. Prosedur standar FILLCHAR
Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel, sebagai berikut
FillChar(x;count :word;ch);
X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal Ch sebanyak count byte.
�� FUNCTION
Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya.
Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan bicarakan disini adalah fungsi yang kita buat sendiri.
Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu kuantitas.
Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang dihasilkan.
Secara umum bentuk header suatu function adalah :
FUNCTION nama : jenis hasil;
Atau FUNCTION nama (formal parameter : jenis ) : jenis_hasil;
Contoh :
1. Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di antara dua integer.
Function MAX (x,y : integer) : integer;
Begin
If x < y then MAX := y ; Halaman : 9 Pemrograman PASCAL : Procedure & Function Else MAX := x; End; Selanjutnya kita dapat menggunakan fungsi di atas dalam suatu program, misalnya dengan menyatakan sebagai berikut : P := MAX(a,b); Z := MAX(a+b,a*b); Q := MAX(MAX(a,b),c); ………………………… dsb. 2. Function LOG (x : real) : real; Begin LOG := ln (x) / ln (10.0); End; 3. Function POWER (x,y : real) : real; Begin POWER := exp (y * ln (X)) End; ab = POWER (a,b) ba = POWER (b,a) (p + q)r/s = POWER (p + q, r/s) ……………………………….. dll Contoh : Function Hitung(Var A,B : integer): integer; Begin Hitung := A + B; End; Var X,Y : integer; Begin Write(‘Nilai X ? ‘); Readln(X); Write(‘Nilai Y ? ‘); Readln(Y); Writeln; Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,Y)); End. Hasilnya : Nilai X ? 2 Nilai Y ? 3 1 + 3 = 5 Halaman : 10 Pemrograman PASCAL : Procedure & Function Perbedaan fungsi dengan prosedur adalah : 1. Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya (kalau pada prosedur pada parameter yang dikirimkan secara acuan). Pada contoh, nama fungsi tersebut adalah Hitung dan nilai yang dikirim balik berada pada nama fungsi tersebut. Sehingga nama fungsi ini harus digunakan untuk menampung hasil yang akan dikirimkan dari fungsi, sebagai berikut : Hitung := A + B; Nama fungsi yang berisi nilai yang akan dikirimkan 2. Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya, sebagai berikut : Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,Y)); Nama fungsi yang langsung digunakan untuk ditampilkan hasilnya. Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variabel yang lainnya, sebagai berikut : Hasil := Hitung(X,Y); Writeln(X,’ + ‘,Y, ‘ + ‘,Hasil); Sedang pada prosedur, nama prosedur tersebut tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik. REKURSIF Suatu fungsi atau prosedur dalam bahasa Pascal dapat bersifat rekursif. Artinya, fungsi atau prosedur tersebut dapat memanggil dirinya sendiri. Berikut ini sebuah contoh fungsi dan prosedur yang rekursif. 1. function faktorial (nilai : integer) : integer; begin if nilai <= 0 then faktorial := 1; else faktorial := nilai * faktorial (nilai-1) end; Var N : integer; Begin Write(‘Berapa faktorial ? ‘); Readln(N); Writeln(N,’ faktorial = ‘,faktorial(N):9:0); End. faktorial (4) = 4 * faktorial (3) 3 * faktorial (2) 2 * faktorial (1) Halaman : 11 Pemrograman PASCAL : Procedure & Function 1 * faktorial (0) 1 = 4 * 3 * 2 * 1 * 1 = 24 2. Bilangan Fibonanci: F (0) = 0 F (1) = 1 F (n) = F ( n-1 ) + F (n-2); untuk n >1
Function fibonacci ( n : integer ) : integer;
Begin
If n = 0 then fibonacci := 0
Else
If n := 1 then fibonacci := 1
Else fibonacci := fibonacci (n-1) + fibonacci (n-2);
End;
3. Procedure reverse ( num : integer );
Begin
If num < 10 then write(num)
Else begin
Write(num mod 10);
Reverse(num div 10);
End;
End;
Fungsi Standar
1. Fungsi standar arutmatika
• Fungsi standar ABS
Bentuk umum : ABS(x);
Digunakan untuk memutlakkan suatu nilai yang ditunjukkan oleh argumen x.
Contoh :
Begin
X:=-2.3;
Write(‘Nilai X = ‘,X,’ Nilai mutlaknya = ‘,Abs(X):3:1);
End.
• Fungsi standar EXP
Bentuk Umum : EXP(x:):real;
Digunakan untuk menghitung nilai pangkat dari bilangan e yaitu sebesar ex. Hasilnya berupa nilai real.
Halaman : 12
Pemrograman PASCAL : Procedure & Function
• Fungsi standar LN
Bentuk umum : LN(x):real;
Digunakan untuk menghitung nilai logaritma alam (natural logarithm) dari nilai x. Hasilnya berupa nilai real.
• Fungsi standar INT
Bentuk umum : INT(x:real):real;
Digunakan untuk menghasilkan nilai integer dari x. hasil dari fungsi adalah tipe real dengan nilai yang berupa pembulatan ke bawah (nilai pecahan dibuang) dari nilai x.
Contoh :
Begin
X:=9.99;
Write(‘Nilai yang akan dibulatkan = ‘,X);
Writeln(‘Nilai pembulatannya = ‘,Int(X):3:2);
End.
Hasil :
Nilai yang akan dibulatkan = 9.99
Nilai pembulatannya = 9.00
• Fungsi standar FRAC
Bentuk umum : FRAC(x:):real;
Digunakan untuk mendapatkan nilai pecahan dari argumen x. Argumen x dapat bernilai real maupun integer dan hasil dari fungsi adalah real.
Contoh :
Begin
X:=9.99;
Write(‘Nilai X = ‘,X,’ Nilai pecahannya = ‘,Frac(X):4:3);
End.
Hasilnya : Nilai X = 9.99 Nilai pecahannya = 0.990
• Fungsi standar SQR
Bentuk umum : SQR(x);
Digunakan untuk menghitung nilai pangkat kuadrat dari argumen x.
Contoh :
Begin
X :=2;
Write(‘Nilai X = ‘,X,’ Nilai kuadratnya = ‘,sqr(x));
End.
Hasilnya : Nilai X = 2 Nilai kuadratnya = 4
• Fungsi standar SQRT
Bentuk umum : SQRT(x) : real;
Digunakan untuk menghitung nilai akar dari argumen x, hasilnya berupa real.
Halaman : 13
Pemrograman PASCAL : Procedure & Function
• Fungsi standar PI, SIN, COS, ARCTAN
1. Fungsi Standar Transfer
Digunakan untuk merubah suatu nilai ke bentuk nilai lain.
• Fungsi standar CHR
Bentuk umum : CHR(x:byte):char;
Digunakan untuk merubah nilai dari byte x ke bentuk karakter yang sesuai dengan kode ASCII.
Contoh :
X := 66;
Write(‘Nilai X = ‘,x,’ Nilai karakternya = ‘,CHR(X));
Hasilnya : Nilai X = 66 Nilai karakternya = B
• Fungsi standar ORD
Bentuk umum : ORD(x):longint;
Digunakan untuk merubah nilai x ke bentuk nilai longint yang sesuai dengan kode ASCII, merupakan kebalikan dari fungsi CHR.
• Fungsi standar ROUND
Bentuk umum : ROUND(x:real):longint;
Digunakan untuk membulatkan nilai dari real x ke nilai longint yang terdekat. Bila nilai pecahan sama dengan atau lebih besar dari 0.5 akan dibulatkan ke atas, sedang kalau lebih kecil dari 0.5 akan dibulatkan ke bawah.
Contoh :
Write(’10 dibagi 3 hasil pembulatan terdekat ‘,Round(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(20/3);
Hasilnya :
10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 7
• Fungsi standar TRUNC
Bentuk umum : TRUNC(x:real):longint;
Digunakan untuk membulatkan nilai dari real x ke nilai longint terkecil. Atau dengan kata lain membulatkan ke bawah.
Contoh :
Write(’10 dibagi 3 hasil pembulatan terdekat ‘,Trunc(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Trunc(20/3);
Hasilnya :
10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 6
Halaman : 14
Pemrograman PASCAL : Procedure & Function
1. Fungsi Standar Lainnya
Fungsi standar yang tidak termasuk dalam kelompok pembagian di atas :
• Fungsi standar Hi, Lo, Swap
• Fungsi standar Random
Bentuk umum : Random [(range :word)];
Digunakan untuk menghasilkan angka random berkisar dari nilai lebih besar atau sama dengan nol dan lebih kecil dari satu. Bila range tidak disebutkan, hasil dari fungsi ini adalah real, bila range disebutkan, hasilnya adalah word.
• Fungsi standar SizeOf
Bentuk umum : SizeOf(x):word;
Digunakan untuk menunjukkan besarnya byte yang digunakan oleh suatu variabel x, hasilnya berupa nilai word.
• Fungsi standar UPCASE
Bentuk umum : UpCase(Ch:char):char;
Digunakan untuk merubah argumen suatu karakter yang ditunjukkan oleh Ch menjadi bentuk karakter huruf besar (upper case).
Halaman : 15

Program Aritmatika


Dibawah ini adalah program Aritmatika (Sinus, Cosinus, Tangen) menggunakan bahasa pascal.

program aritmatik;
uses wincrt;
var
x:real;
begin
clrscr;
gotoxy (18,3); writeln ('PROGRAM MENGHITUNG SINUS, COSINUS DAN TANGEN');
gotoxy (18,4); writeln ('--------------------------------------------');
gotoxy (18,5); write('Masukkan nilai dari x= ');
readln(x);

if x <0 then x:=abs(x); gotoxy (18,6); writeln('nilai x=',x:5:2); gotoxy (18,7); write('nilai x jika dimasukkan dalam fungsi sin,cos,tangen'); writeln; gotoxy (18,8); writeln('-sinus = ',sin(x):9:3); gotoxy (18,9); writeln('-cosinus= ',cos(x):9:3); gotoxy (18,10); writeln('-tangen= ',arctan(x):9:3); end. Hasilnya :


Array


Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.
Contoh:
Var
Untai : array[1..50] of Integer;
Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer.
Contoh Program :
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.
Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini :
Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NPM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End;
{cetak varibel array}
Writeln('NPM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
End;
Readln;
End.
Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini :
Type
Angka = String[20];
Var
Nama : Array [1..50] of Angka;
Begin
End.
Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.
Contoh:
Var
Nilai : Array[1..10] of Integer;
pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini :
Type
Skala = 1..10;
Var
Nilai : Array [skala] of Integer;
atau :
Type
Skala = 1..10;
Y = Array[skala] of Integer;
Var
Nilai : Y;
atau :
Type
Y = Array[1..10] of Integer;
Var
Nilai : Y;
atau :
Const
Atas =1;
Bawah = 5;
type
Y = Array[Atas..Bawah] of Integer;
Var
Nilai : Y;
I. Deklarasi Type Indeks Skalar
Indeks dari larik dapat berupa tipe skalar.
Contoh. :
Program Deklarasi_Indeks_Array_Skalar;
Uses Crt;
Var
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Begin
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
Readln;
End.
dapat juga ditulis :
type
Bln = (jan,feb,mar,apr,mei);
Var
Jum : Array[bln] of Integer;
atau :
type
Bln =(jan,feb,mar,apr,mei);
Var
Jum : Array[jan..mei] of Integer;
II. Deklarasi Konstanta Array
Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const).
Contoh Program :
Program Contoh_Deklarasi_Array_Konstan;
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
End.
konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Contoh Program :
Program Contoh_Konstan_Array_Char_;
Uses Crt;
Const
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
Var
i : Integer;
Begin
For i:= 0 to 5 Do
Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]);
Readln;
End.
Konstanta array dapat juga berupa string seperti berikut ini.
Contoh Program :
Program Constanta_Array_String;
Uses Crt;
Type
A = Array [1..5] of String;
Const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
Var
i : Integer;
Begin
For i:= 1 to 5 Do
Writeln('Nilai Array ke-',i:2,'= ',Nama[i]);
readln;
end.
Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut :
Contoh Program :
Program String_Adalah_Array_Tipe_Char;
Uses Crt;
Var
Nama : string;
i : Integer;
Begin
Nama:='Turbo Pascal';
For i:= 1 to Length(nama) Do
Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]);
Readln;
End.
contoh program bilangan prima dengan menggunakan bantuan array.
Contoh program :
Program Mencari_Bilangan_Prima_Dengan_Array;
Uses Crt;
Var
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Begin
ClrScr;
For i := 2 to 100 Do
Begin
Prima[i]:=i;
For j:= 2 to i-1 Do
Begin
bil := (i mod j); {* i dibagi j dicek apakah 0*}
If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
End;
If Prima[i]<> 0 Then Write(Prima[i],' '); {*cetak array yg prima*}
End;
Readln;
End.
Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat dilihat pada contoh dibawah ini :
Contoh Program :
Program Penggunaan_Array_Untuk_Sortir_Buble_Sort;
Uses Crt;
Var
nil1 : Array[1..100] of Integer;
n,i,j,dum : Integer;
Begin
ClrScr;
Write('mau isi berapa data acak (integer) ='); readln(n);
For i := 1 to n Do
Begin
Write('Data Ke ',i,':');Readln(nil1[i]);
End;
{* penyapuan proses}
for i:= 1 to n-1 do
begin
for j:= i to n do
begin
if nil1[j]
begin
dum:=nil1[j];
nil1[j]:=nil1[i];
nil1[i]:=dum;
end;
end;
end;
writeln;
writeln('Hasil Sortir');
for i := 1 to n do
write(nil1[i]:3);
readln;
end.
III. Array Dua Dimensi
Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.
1 2
1 2 3
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini .
Contoh Program:
Program Deklarasi_Array_Dua_Dimensi;
Uses Crt;
Var Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
End;
End;
Readln;
End.
IV. Alternatif Deklarasi Array Dua Dimensi.
Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat dilihat dibawah ini :
Contoh :
Var
Tabel : Array[1..3] of Array[1..2] of Byte;
atau :
Type
Matrik = Array[1..3,1..2] of Byte;
Var
Tabel : Matrik;
atau :
Type
Baris = 1..3;
Kolom = 1..2;
Matrik = Array[Baris,Kolom] of Byte;
Var
Tabel : Matrik;
atau :
Type
Baris = 1..3;
Kolom=1..2;
Matrik= Array[Baris] of Array[Kolom] of Byte;
Var
Tabel : Matrik;
Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi penjumlahan matrik :
Contoh Prorgam:
Program Penjumlahan_Matrik;
Uses Crt;
Var
Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
{ input matrik ke satu }
Writeln(' Elemen matrik satu');
For i := 1 to 3 Do
Begin
For j := 1 to 2 Do
Begin
Write('Elemen baris -',i,' Kolom -',j,'= ');
Readln(matrik1[i,j]);
End;
End;
{input matrik ke dua}
Writeln('input elemen matrik dua');
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write('Elemen baris -',i,' kolom -',j,'= ');
Readln(matrik2[i,j]);
End;
End;
{proses penjumlahan tiap elemen}
For i := 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];
End;
End;
{proses cetak hasil}
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write(Hasil[i,j]:6);
End;
Writeln;
End;
Readln;
End.
V. Array Sebagai Parameter
Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau secara acuan (by reference) ke procedure atau ke function. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array.
Contoh Program :
Program Contoh_Pengiriman_Parameter_Array_Di_Procedure;
Uses Crt;
Const
Garis ='---------------------------------------------------';
Type
Untai = Array[1..10] of String[15];
Bulat = Array[1..10] of Integer;
Huruf = Array[1..10] of Char;
Var
i,Banyak : Integer;
Procedure Proses(Nama:Untai;Nilai:Bulat);
Var
Ket : String;
Abjad : Char;
Begin
Writeln(Garis);
Writeln('Nama Nilai Abjad Keterangan');
Writeln(Garis);
For i := 1 to Banyak Do
Begin
If Nilai[i] > 90 Then
Begin
Abjad:='A';
Ket :='Istimewa';
End;
If (Nilai[i]<90)>70) Then
Begin
Abjad:='B';
Ket :='Memuaskan';
End;
If (Nilai[i]<70)>60) Then
Begin
Abjad:='C';
Ket :='Cukup';
End;
If (Nilai[i]<60)>45) Then
Begin
Abjad:='D';
Ket :='Kurang';
End;
If Nilai[i]< 45 Then
Begin
Abjad:='E';
Ket :='Sangat kurang';
End;
Writeln(Nama[i]:15,' ',Nilai[i]:4,' ',Abjad,' ',Ket:15);
End;
Writeln(Garis);
End;
Procedure Masuk_Data;
Var
Nama : Untai;
Nilai : Bulat;
Begin
Write('Banyak data =');Readln(Banyak);
For i:= 1 to Banyak Do
Begin
ClrScr;
Writeln('Data ke - ',i);
Write('Nama =');readln(Nama[i]);
Write('Nilai =');readln(Nilai[i]);
End;
Proses(Nama,Nilai);
End;
{modul Utama}
Begin
Masuk_Data;
Readln;
End.

Case Of


Struktur Case – Of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector.
Statement yang mempunyai case label yang bernilai sama dengan case label yang bernilai sama dengan nilai selector akan diproses sedang statemen yang lainya tidak.
Bentuk struktur dari Case - Of:
Case Variabel Kondisi Of
Case – Label 1; Statement 1;
Case – Label 2; Statement 2;
Case – Label 3; Statement 3;
Case – Label 4; Statement 4;
........
........
Case – Label n ; Statement n ;
End ; { end dari case }
Daftar Case label dapat berupa konstanta, range dari konstanta yang bukan bertipe real.
Contoh program ;
Program nilai;
Var
nil : Char ;
Begin
Write ('Nilai Numerik yang didapat :');
Readln (nil);
Case nil Of
'A': Writeln ('Sangat Baik’);
'B': Writeln('Baik’);
'C': Writeln('Cukup');
'D': Writeln('Kurang');
'E': Writeln('Sangat Kurang');
End;
End.
hasil : Nilai Numerik yang didapat : B Input Baik
Contoh Listing Program untuk Dicoba
1. Program input data dengan array.
Program Pemakaian_Array_Untuk_10_data_dengan_menggunakan_For;
Uses Crt;
Const
garis='------------------------------------------------------';
Var
nil1,nil2 : Array [1..10] Of 0..100; {Array dgn Type subjangkauan}
npm : Array [1..10] Of String [8];
nama : Array [1..10] Of String [15];
n,i,bar : Integer;
jum : Real;
tl : Char;
Begin
ClrScr;
{ pemasukan data dalam array }
Write ('Mau Isi Berapa Data:');
Readln (n);
For i:= 1 To n Do
Begin
ClrScr;
GotoXY(30,4+1); Write('Data Ke-:',i:2);
GotoXY(10,5+i); Write('NPM :'); Readln (npm[i]);
GotoXY(10,6+i); Write('Nama :'); Readln (nama[i]);
GotoXY(10,7+i); Write('Nilai 1 :'); Realdn(nil 1[i]);
GotoXY(10,8+i); Write('Nilai 2 :'); Readln(nil 2[i]);
End;
{ proses data dalam array }
ClrScr;
GotoXY(5,4); Write(Garis);
GotoXY(5,5); Write ('No');
GotoXY(9,5); Write ('NPM');
GotoXY(18,5); Write ('Nama');
GotoXY(34,5); Write ('Nilai 1');
GotoXY(41,5); Write ('Nilai 2');
GotoXY(47,5); Write ('Rata');
GotoXY(54,5); Write ('Abjad’);
GotoXY(5,6); Write (Garis);
{ proses Cetak isi array dan seleksi kondisi }
bar := 7;
For i:= 1 To n Do
Begin
jum:=(nil1[i]+nil2[i])/2;
If jum>= 90 Then tl:='A'
Else
If jum>80 Then tl:='B'
Else
If jum>60 then tl:='C'
Else
If jum 50 Then tl:='D'
Else
tl:='E';
{ cetak hasil yang disimpan di array dan hasil }
{ penyeleksian kondisi }
GotoYX(5,bar); Writeln(i:2);
GotoYX(9,bar); Writeln (NPM[i]);
GotoYX(18,bar); Writeln (NAMA[i]);
GotoYX(34,bar); Writeln (NIL1[i]:4);
GotoYX(41,bar); Writeln (NIL2[i]:4);
GotoYX(47,bar); Writeln (jum:5:1);
GotoYX(54,bar); Writeln (tl);
bar:=bar+1;
End;
GotoXY(5,bar+1);Writeln(garis);
Readln;
End.
2. Program jendela bergerak.
Program Window_Bergerak_dgn_delay;
Uses Crt;
Var i : Integer;
Begin
For i:=1 To 15 Do
Begin
Sound (i*100);
Delay (100);
NoSound;
End;
TextBackGround(black);
ClrScr;
For i := 1 To 9 Do
Begin
TextBackGround(white);
Window (42-i*4,10-i,38+i*4,15+i);
ClrScr;
Delay(100);
End;
TextColor(15);
GotoXY(28,2);Writeln('c');
GotoXY (8,3); Writeln ('3');
GotoXY (28,4); Writeln ('A');
TextColor(black);
GotoXY (44,3); Writeln ('3');
GotoXY (44,2); Writeln ('&');
TextColor (29,4); Writeln ('U');
TextColor (red*25);
GotoXY (30,3); Writeln ('B E L A J A R');
TextColor (black);
GotoXY (5,5); Write('c');
For i := 6 To 64 Do
Begin
GotoXY (i,5); Writeln ('');
End;
For i := 6 To 20 Do
Begin
GotoXY(5,i); Writeln('3 ');
End;
GotoXY (5,21); Writeln (' ');
TextColor(white);
GotoXY(65,5); Write('U');
For i := 6 To 65 Do
Begin
GotoXY (i,21); Writeln(' `);
End;
For i := 6 To 20 Do
Begin
GotoXY(65,i); Writeln('3');
End;
GotoXY (65,21); Writeln ('c');
TextColor(yellow);
Readln;
End.

Pengantar Program Pascal




BAB I
PENGANTAR PASCAL
A. Program Turbo Pascal
Pascal adalah salah satu bahasa pemrograman tingkat tinggi (high level language). Nama
Pascal diambil dari nama seorang ahli matematika dan filosofi terkenal abad 17 dari
Perancis, yaitu Blaise Pascal. Bahasa ini dirancang oleh Prof. Niklaus Wirth dari Technical
University di Zurich, Switzerland. Turbo Pascal adalah salah satu versi Pascal yang paling
popular dan banyak digunakan saat ini. Bentuk tampilan awal Turbo Pascal adalah sebagai
berikut:
Menu Bar
Adalah fasilitas yang ada pada setiap aplikasi window. Ada delapan Menu Utama yang
dapat dipanggil dengan menggunakan tombol Alt+[Huruf pertama dari menu]. Misal
ingin memanggil menu File, tekan tombol Alt+F.
Toolbar
Adalah kumpulan tombol-tombol bergambar yang berfungsi untuk memberikan
perintah pada komputer
Editor
Berfungsi untuk menulis dan menyunting program.
Menu Bar
Editor
Toolbar
B. Struktur Bahasa Pascal
Program dalam bahasa pascal, ditulis dengan struktur sebagai berikut:
Program ()
_ Kepala Program
USES

LABEL

CONST

TYPE

VAR


_ Bagian Deklarasi
BEGIN

END.
_ Bagian Pernyataan
Kepala Program
Dalam Pascal, posisi kepala program adalah diawal program. Sintak dari kepala
program adalah:
Program ()
Penulisan Nama boleh sembarang, tapi harus dimulai dengan huruf dan bukan Reserve
Word (kata baku yang telah digunakan Pascal dan mempunyai definisi tertentu, misal
BEGIN, USES, dsb). Dapat terdiri dari kombinasi huruf, angka dan garis bawah.
Maksimal 127 karakter dan tidak ada perbedaan antara huruf besar dan huruf kecil.
Dalam memberikan Nama sebaiknya yang mempunyai arti sesuai dengan program
yang akan dibuat.
Contoh:
Program Hitung_Luas;
Program Soal_1;
Program Segitiga (Masuk, Keluar);
Bagian Deklarasi
Dalam Pascal, semua unit, label, konstanta, tipe, variabel, fungsi dan prosedur yang
akan digunakan harus dideklarasikan terlebih dahulu. Keenam deklrasi tersebut tidak
harus ada semua Sebuah program bisa saja hanya mengandung deklarasi variabel.
Berikut ini adalah bentuk masing-masing deklarasi.
No Jenis deklarasi Bentuk Deklarasi
1 Unit USES
, ,...,;
Contoh:
USES
Wincrt, unit1,unit2;
2 Label LABEL
, ,...,;
Contoh:
LABEL
50, Penutup, Selesai;
3 Konstanta CONST
= ;
.
.
.
= ;
Contoh:
CONST
MaksData=100;
Konversi=25;
4 Tipe TYPE
= ;
.
.
.
= ;
Contoh:
TYPE
Tanggal=1..31;
5 Variabel VAR
= ;
.
.
.
= ;
Contoh:
VAR
Nilai : Real;
Jumlah : Integer;
Tgl:Tanggal;
6 Fungsi dan Prosedur Function ():;
atau
Procedure ();
Contoh:
Function Pangkat(a,b:integer):integer;
Procedure Tukar (data1, data2:real);
Bagian Pernyataan
Bagian pernyataan diawal dengan kata BEGIN serta diakhiri dengan kata END dan
tanda titik. Setiap pernyataan diakhiri dengan tanda titik kona (;). Pernyataanpernyataan
yang disusun mengikuti algoritma tertentu diletakkan pada bagian ini.
Komputasi________________________________________________________________
D3 Statististika ITS____________________________________________________Hal 4
C. Tipe Data dalam Pascal
Ada beberapa macam tipe data dalam Pascal, diantaranya adalah :
1. Integer, adalah susunan angka yang tidak mengandung koma. Disebut juga
bilangan bulat. Nilainya terletak antara -32768 s/d 32767.
2. Byte, adalah merupakan bagian dari integer. Nilainya terletak antara 0 s/d 255.
3. Real, merupakan tipe bilangan yang mengandung pecahan. Nilainya terletak antara
1E-38 s/d 1E+38.
4. Boolean, berhubungan dengan dua keadaan logika. Dapat bernilai True atau False.
5. Char, merupakan tipe yang hanya terdiri dari sebuah simbol karakter ASCII
6. String, merupakan tipe yang terdiri dari sejumlah karakter.
D. Operator dan Operand
Berikut ini adalah operator yang ada dalam bahasa Pascal :
No Kategori Operator Operator Operasi Jenis Operand Hasil Contoh
1 Pengerjaan
(Assignment)
:= Memberi nilai Integer
Real
Integer
Real
A:=B
Biner (Binary) * Perkalian Real, Real
Integer, Integer
Real,Integer
Real
Integer
Real
A*B
/ Pembagian Real Real, Real
Integer, Integer
Real,Integer
Real
Real
Real
A/B
+ Pertambahan Real, Real
Integer, Integer
Real,Integer
Real
Integer
Real
A+B
- Pengurangan Real, Real
Integer, Integer
Real,Integer
Real
Integer
Real
A-B
DIV Pembagian bulat Integer, Integer
Integer A DIV B
MOD Sisa Pembagian Integer, Integer
Integer A MOD B
2 Unary + positif Integer
Real
Integer
Real
+A
- negatif Integer
Real
Integer
Real
-A
3 Logika (logical) NOT Boolean, Boolean Boolean NOT(A)
AND Boolean, Boolean Boolean A AND B
OR Boolean, Boolean Boolean A OR B
4 Hubungan
(Relational)
= Sama dengan Boolean, Boolean Boolean A = B
<> Tidak sama
dengan
Boolean, Boolean Boolean A <> B
> Lebih besar dari Boolean, Boolean Boolean A > B
< Kurang dari Boolean, Boolean Boolean A < B >= Lebih besar atau
sama dengan
Boolean, Boolean Boolean A >= B
<= Lebih kecil atau sama dengan Boolean, Boolean Boolean A <= B 5 String + Menggabung dua buah nilai string String,String Char,Char String String A+B Operator dalam Pascal mempunyai hirarki. Tabel berikut ini menunjukkan prioritas atau hirarki pengerjaan operator dalam Pascal. Kelompok Operator Prioritas NOT 1 * / DIV MOD AND 2 + - OR 3 = <> <= >= 4
Contoh :
Berikut ini adalah contoh program Pascal sederhana
Program tambah; Kepala Program
Uses wincrt;
Var Bagian Deklarasi
A,B,C:integer;
Begin
A:=70;
B:=100; Bagian Pernyataan
C:=A+B;
Writeln(C);
End.
SOAL
1. Sebutkan jenis konstanta berikut ini: (real, integer, char, boolean atau string)
a. 87.767
b. 100
c. ’0’
d. False
e. ’Test’
f. ’5.5’
g. ’True’
h. 1.5E+8
i. 0
2. Diberikan Cuplikan Program dibawah ini:
Angka1:=’4’;
Angka2:=’100’;
Hasil:=Angka2+Angka1;
Writeln(Hasil);
A. Lengkapilah program tersebut sehingga dapat dijalankan di Turbo Pascal.
B. Ada berapa variabel dalam program tersebut?
3. Tuliskan persamaan matematika berikut ini kedalam ekspresi bahasa pascal.
a.
D E
B C
A

+
=
c. F
D
B C
A
+
=
e.
E
B AC
D
2.
4. . 2 −
=
b. F
D E
B
A = −
.
d.
H I
F G
D E
B
A
+
+
= −
.
f. J
I
H
F G
D E
A B C − +
+

= ( + )
BAB II
PERNYATAAN INPUT dan OUTPUT
Dalam bahasa Pascal pernyataan input adalah pernyataan yang digunakan untuk
memasukkan data. Pernyataan input yang ada di Pascal adalah READ dan READLN.
Sedangkan pernyataan output adalah pernyataan yang digunakan untuk menampilkan hasil.
Ada dua pernyataan output yaitu WRITE dan WRITELN.
A. Pernyataan WRITE dan WRITELN
Bentuk pernyataan WRITE dan WRITELN:
WRITE ();
Atau
WRITELN ();
Jika pernyataan WRITELN yang digunakan, setelah menampilkan hasil maka kursor ganti
baris. Sedangkan jika pernyataan WRITE yang digunakan, setelah menampilkan hasil
maka kursor tidak ganti baris. Dalam format penulisan WRITE dan WRITELN jika yang
akan ditampilkan adalah suatu kata/kalimat yang tidak disinpan dalam suatu variabel, maka
kata/kalimat tersebut harus ditulis diantara tanda petik tunggal (’).
• WRITE atau WRITELN dapat menerima argumen berupa variabel
Bentuk Pernyataan : WRITE (); WRITELN ();
Contoh : WRITE (Kata);
WRITE (Umur);
WRITELN (Kata);
WRITELN (Umur);
• WRITE atau WRITELN dapat menerima argumen bertipe data dasar (seperti boolean,
real atau integer) bahkan char atau string.
Contoh : WRITE (TRUE);
WRITE (27.5);
WRITE (100);
WRITE (‘a’);
WRITE (‘Statistika’);
WRITELN (TRUE);
WRITELN (27.5);
WRITELN (100);
WRITELN (‘a’);
WRITELN (‘Statistika’);
• WRITE atau WRITELN dapat menerima argumen lebih dari satu. Jika argumen lebih
dari satu maka harus dipisahkan oleh tanda koma (,).
Contoh : WRITE (’Hasilnya adalah : ’, jawab);
WRITE LN (’Hasilnya adalah : ’, jawab);
• WRITE atau WRITELN dapat menerima argumen berupa ekspresi.
Contoh : WRITE (A+B-50);
WRITE (20*82/2);
WRITELN (A+B-50);
WRITELN (20*82/2);
• WRITELN bisa juga tanpa argumen. Biasanya digunakan untuk membuat baris
kosong;
Contoh : WRITELN;
Contoh :
Program untuk memberikan contoh perbedaan WRITE dan WRITELN.
Program Tulis;
Uses wincrt;
Begin
Write(’Satu’);
Write(’ ’);
Write(‘Dua’,’ ‘);
Writeln(‘Tiga’);
Writeln(‘Empat’);
End.
Hasilnya :
B. Memformat keluaran dari WRITE dan WRITELN
Untuk mengatur penampilan hasil pernyataan WRITE dan WRITELN dapat dilakukan
formating. Untuk memformat data dilakukan dengan menambah tanda titik dua (:) diikuti
dengan bilangan yang menyatakan lebar ruang untuk menampilkan data:
Data : n
Format ini menyebabkan data ditampilkan rata kanan pada ruang dengan ukuran sebesar n
karakter.
Contoh : WRITE (A:10);
WRITE (-45:10);
WRITELN (‘Data’:10);
WRITELN (12.42 : 10);
Untuk argumen data real, format dapat dilakukan sebagai berikut:
Data : n : p
Dimana: n adalah lebarnya ruang
p adalah banyaknya angka desimal
Contoh : WRITE (432.8984 : 10 : 2);
WRITE (-4598.908756 : 10 : 2);
WRITELN (Data : 10 : 2);
WRITELN (12.42 : 10 : 0);
Contoh :
Program untuk memberikan contoh pengaturan format tampilan.
Program bilangan;
Uses wincrt;
Begin
Write(‘Matematika’:10);
Writeln(80:7);
Write(‘Biologi’:10);
Writeln(100:7);
Write(‘Fisika’:10);
Writeln(50:7);
End.
Hasilnya :
C. Pernyataan READ dan READLN
Bentuk pernyataan READ READLN:
READ () ;
Atau
READLN () ;
Tiap-tiap data yang dimasukkan harus sesuai dengan tipe variabelnya. Setelah data
dimasukkan, tombol ENTER ditekan. Perbedaan antara READ dan READLN adalah pada
sifat menangani kelebihan data yang diinputkan
• READ : Jika ada kelebihan data, pernyataan ini tidak akan membuangnya. Kelebihan
data tersebut akan diberikan pada pernyataan READ atau READLN berikutnya.
• READLN : Jika ada kelebihan data, pernyataan ini akan membuangnya. Kelebihan data
tersebut tidak akan diberikan pada pernyataan READ atau READLN
berikutnya.
Contoh :
Program untuk menunjukkan perbedaan antara READ dan READLN
1. Program Satu;
Uses Wincrt;
Var
A, B, C, D:Integer;
Begin
Writeln(’Masukkan Data Tiga Buah, Pisahkan dengan Spasi !’);
Read(A, B);
Writeln (’A=’,A);
Writeln (’B=’,B);
Readln(C);
Writeln(‘C=’,C);
End.
Hasilnya :
2. Program Dua;
Uses Wincrt;
Var
A, B, C, D:Integer;
Begin
Writeln(’Masukkan Data Tiga Buah, Pisahkan dengan Spasi !’);
Readln(A, B);
Writeln (’A=’,A);
Writeln (’B=’,B);
Readln(C);
Writeln(‘C=’,C);
End.
Hasilnya :
Terlihat bahwa pada program Dua data untuk variabel ”C” harus dimasukkan ulang, hal itu
disebabkan penggunaan READLN.
SOAL
1. Apa hasil program berikut ini:
a. Program Satu;
Uses Wincrt;
Var Data1, Data2:Real;
Begin
Data1:=76.87392;
Data2:=987.543269;
Writeln('Hasil',Data1+Data2:10:2);
End.
b. Program Satu;
Uses Wincrt;
Begin
Write('ITS',' ');
Write('Statistika');
Writeln(' ');
Write('Surabaya');
End.
2. Buat Program untuk proses berikut ini:
a. Input: Nama dan Tahun Lahir
Proses : Menghitung Umur
Output: Nama dan Umur
b. Input: Panjang dan Lebar suatu
persegi panjang
Proses: Menghitung Luas Persegi
Panjang
Output: Luas Persegi Panjang
c Mencari nilai maksimum dari ketiga
buah data
Input : Tiga buah Data X1, X2 dan X3
Proses: mencari nilai maksimum
Output: nilai maksimum dari tiga buah
data tersebut.
BAB III
PERNYATAAN BERSYARAT
Pernyataan bersyarat adalah pernyataan yang akan menjalankan pernyataan yang
mengikutinya sesuai dengan syarat tertertentu. Ada 2 buah pernyataan bersyarat, yaitu IF
dan CASE.
A. Pernyataan IF
Bentuk pernyataan IF:
IF THEN ;
Syarat
Logika
Pernyataan
Benar
(True)
Salah
(False)
Gambar 1. Flowchart Statement IF THEN
IF THEN
ELSE ;
Syarat
Logika
Benar
(True)
Salah
(False)
Pernyataan-1
Pernyataan-2
Gambar 2. Flowchart Statement IF THEN ELSE
Jika syarat logika bernilai Benar maka yang akan dijalankan adalah pernyataan yang
mengikuti THEN, dan sebaliknya jika syarat logika bernilai Salah maka yang akan
dijalankan adalah pernyataan yang mengikuti ELSE. Jika pernyataan yang mengikuti
THEN atau ELSE lebih dari satu maka harus diawali oleh Begin dan diakhiri oleh End.
Statement End sebelum ELSE tidak boleh ada tanda titik koma (;).
IF THEN begin
;
;
.
.
;
end
ELSE begin
;
;
.
.
;
end;
Contoh :
Program untuk menentukan apakah suatu bilangan itu positif atau negatif.
Program bilangan;
Uses wincrt;
Var bil :integer;
Begin
Readln(bil);
If bil >= 0 Then writeln(’Positif’)
Else writeln (‘Negatif’)
End.
B. Pernyataan IF Bersarang (nested)
Jika ada dua pernyataan IF atau lebih, dimana pernyataan IF yang satu berada di dalam
pernyataan IF yang lain, maka pernyataan tersebut disebut Bersarang (nested).
Contoh bentuk pernyataan IF Bersarang:
IF THEN
ELSE IF THEN
ELSE IF THEN
ElSE ;
Syarat
Logika-1
Benar
(True)
Salah
(False)
Pernyataan-1
Syarat
Logika-2
Syarat
Logika-3
Pernyataan-2 Pernyataan-3 Pernyataan-4
Salah
(False)
Salah
(False)
Benar
(True)
Benar
(True)
Gambar 3. Flowchart Statement IF THEN Bersarang
Contoh :
Program untuk menentukan bonus pegawai berdasarkan total penjualan. Kriteria bonus
adalah sebagai berikut:
Total Penjualan (Rp) Bonus Yang Didapat (Rp)
Total _ 500.000 30.000
250.000_Total<500.000 20.000 50.000_Total<250.000 10.000 Total < 50.000 0 Program bonus; Uses wincrt; Var Total :real; Begin Readln(Total); If Total >= 500000 Then writeln(’Bonus = 30.000’)
Else If Total >= 250000 Then writeln(’Bonus = 20.000’)
Else If Total >= 50000 Then writeln(’Bonus = 10.000’)
Else writeln(’Tidak Ada Bonus’)
End.
C. Pernyataan CASE
Bentuk pernyataan CASE:
CASE OF
: ;
: ;
.
.
: ;
ELSE ;
END;
variabelpemilih=
daftarlabel-
1
Benar
(True)
Salah
(False)
Pernyataan-1
variabelpemilih=
daftarlabel-
2
variabelpemilih=
daftarlabel-
n
Pernyataan-n
Pernyataan
Lain
Pernyataan-2
Salah
(False)
Salah
(False)
Benar
(True)
Benar
(True)
.....
Gambar 4. Flowchart Statement CASE
Variabel pemilih tidak boleh bertipe real. Pernyataan yang akan dijalankan sesuai
dengan daftar-label yang memuat nilai variabel pemilih. Jika nilai dari variabel pemilih
tidak ada dalam semua daftar label, maka pernyataan yang akan dijalankan adalah
pernyataan yang mengikuti ELSE. ELSE dalam pernyataan CASE boleh tidak ada.
Sama halnya dengan pernyataan IF, Jika pernyataan yang mengikuti daftar-label lebih
dari satu maka harus diawali oleh Begin dan diakhiri oleh End.
Contoh :
1. Program untuk menentukan apakah suatu Character (huruf) yang kita masukkan
adalah huruf vokal atau bukan..
PROGRAM HURUF;
USES WINCRT;
VAR DATA:CHAR;
BEGIN
READLN(DATA);
CASE DATA OF
'A','I','U','E','O' :writeln('Huruf Besar Vokal');
'a','i','u','e','o' :writeln('Huruf Kecil Vokal');
ELSE writeln ('Bukan huruf Vokal');
END;
END.
2. Program untuk menentukan apakah suatu Character yang kita masukkan adalah
huruf atau angka..
PROGRAM HURUF;
USES WINCRT;
VAR DATA:CHAR;
BEGIN
READLN(DATA);
CASE DATA OF
'A'..'Z' :writeln('Huruf Besar');
'a'..'z' :writeln('Huruf Kecil');
'0'..'9' :writeln ('Angka');
END;
END.
SOAL :
1. Tuliskan statement Pascal untuk kasus berikut ini:
a. Jika mempunyai anak maka hitung: tunjangan anak = tunjangan*banyaknya anak
b. Tampilkan tulisan ’Genap’ atau ’Ganjil’ sesuai dengan data yang dimasukkan.
2. Buat program mencari penyelesaian akar dari persamaan kuadrat :
A X2 + B X + C = 0
Akar persamaan ini dapat memberikan tiga kemungkinan penyelesaian berdasarkan
nilai D = B2 – 4 A C:
a. D > 0 : Akar berlainan
b. D = 0 : Akar kembar
c. D < 0 : Akar bilangan kompleks Penyelesaian Akar : A B D X 2 12 − ± = (Gunakan Statement IF) 3. Buat Program untuk menentukan apakah seorang mahasiswa mendapat grade ’A’, ’B’, ’C’, ’D’ atau ’E’ berdasarkan nilai yang didapat. (Gunakan Statement IF). 4. Buat program untuk menampilkan proses berikut ini: Ditampilkan menu : 1. Soto Rp. 5000,- 2. Bakso Rp. 3000,- 3. Nasi Pecel Rp. 4000,- Selanjutnya ditanyakan mana yang akan dibeli dan jumlah porsinya. Setelah itu, hitung harga yang harus dibayar, dengan rumus: Harga yg hrs dibayar = harga menu yg dipilih * banyaknya porsi (Gunakan Statement IF). 5. Kerjakan kasus 2,3,4 dengan Statement CASE BAB IV PERNYATAAN PERULANGAN Pernyataan perulangan adalah pernyataan yang akan menjalankan pernyataan yang mengikutinya secara berulang sampai syarat tertertentu terpenuhi. Ada 3 buah pernyataan perulangan, yaitu FOR, WHILE dan REPEAT. A. Statement FOR Statement FOR adalah suatu perintah yang berfungsi untuk melakukan proses pengulangan, dimana jumlah pengulangannya sudah diketahui. Bentuk dari statement FOR adalah: FOR {Variabel} := {Nilai Awal} TO {Nilai Akhir} DO BEGIN {Statement 1} {Statement 2} .... {Statement n} END; Benar variabel = (True) nilai akhir Salah (False) variabel:=nilai awal Pernyataan variabel:=variabel+1 Gambar 5. Flowchart Statement FOR TO DO FOR {Variabel} := {Nilai Awal} DOWNTO {Nilai Akhir} DO BEGIN {Statement 1} {Statement 2} .... {Statement n} END; Benar variabel = (True) nilai akhir Salah (False) variabel:=nilai awal Pernyataan variabel:=variabel -1 Gambar 6. Flowchart Statement FOR DOWNTO DO Jika Nilai Awal < Nilai Akhir gunakan statement FOR TO DO. Sedangkan jika Nilai Awal > Nilai Akhir gunakan statement FOR DOWNTO DO.
Contoh :
Ingin dibuat program untuk menampilkan deret berikut:
1,3,5,7,.......suku ke-n
PROGRAM DERET;
USES WINCRT;
VAR I, N:INTEGER;
BEGIN
READLN(N);
FOR I:=1 TO N DO
WRITELN(2*I-1);
END.
Contoh :
Ingin dibuat program untuk menampilkan huruf ’M’ hingga ’A’:
PROGRAM HURUF;
USES WINCRT;
VAR I:CHAR;
BEGIN
FOR I:=’M’ DOWNTO ‘A’ DO
WRITELN(I);
END.
B. Statement FOR Bersarang
Untuk menangani masalah tertentu, ada kemungkinan statement FOR yang digunakan
lebih dari satu dan statement FOR yang satu dapat berada didalam statement FOR yang
lain. Bentuk yang seperti ini disebut FOR Bersarang (nested FOR)
Contoh :
Ingin dibuat program untuk menampilkan bentuk seperti berikut ini:
*
**
***
****
PROGRAM TAMPIL;
USES WINCRT;
VAR
I,J:INTEGER;
BEGIN
FOR I:=1 TO 4 DO
BEGIN
FOR J:=1 TO I DO
WRITE(‘*’);
WRITELN;
END;
END.
C. Penggunaan Statement FOR Dalam Persamaan yang Mengandung
Simbol _ atau _
Untuk menangani persamaan matematika/statistika yang mengandung simbol _ atau _,
perlu bantuan statement pengulangan. Diberikan bentuk persamaan sebagai berikut:
_
=
= +
n
i
i y data b
1
( )
Dari bentuk tersebut diatas, terlihat bahwa ada 3 komponen penting yaitu:
_ Hasil penjumlahan disimpan di variable Y
_ Yang masuk kedalam sigma adalah (DATAi+B)
_ Variabel penghitung (indeks) adalah I dan berjalan mulai 1 sampai dengan N
Bentuk pengulangan dengan menggunakan FOR, adalah:
READLN(N);
Y:=0;
FOR I:=1 TO N DO
BEGIN
READLN(DATA);
Y:=Y+(DATA+B)
END;
WRITELN(Y)
N diberi harga tertentu
Y diberi harga awal 0 karena bentuk Sigma
Variable penghitung I berjalan mulai 1 hingga N
Mulai pengulangan
Membaca Data
Ybaru= Ylama+{persamaan yang masuk dalanm sigma}
Akhir pengulangan
Cetak nilai Y
Untuk persamaan:
Õ
=
= +
n
i
i y data b
1
( )
Dari bentuk tersebut diatas, terlihat bahwa ada 3 komponen penting yaitu:
_ Hasil perkalian disimpan di variable Y
_ Yang masuk kedalam phi adalah (DATAi+B)
_ Variabel penghitung (indeks) adalah I dan berjalan mulai 1 sampai dengan N
Bentuk pengulangan dengan menggunakan FOR, adalah:
READLN(N);
Y:=1;
FOR I:=1 TO N DO
BEGIN
READLN(DATA);
Y:=Y*(DATA+B)
END;
WRITELN(Y)
N diberi harga tertentu
Y diberi harga awal 1 karena bentuk phi
Variable penghitung I berjalan mulai 1 hingga N
Mulai pengulangan
Membaca Data
Ybaru= Ylama*{persamaan yang masuk dalam sigma}
Akhir pengulangan
Cetak nilai Y
D. Statement WHILE
Statement WHILE adalah suatu perintah yang berfungsi untuk melakukan proses
pengulangan, dimana pengulangan akan terus dilakukan jika kondisi tertentu dipenuhi.
Jika banyaknya pengulangan diketahui tapi kenaikan atau penurunan pengulangan
tidak sebesar satu, statement IF tidak cocok untuk digunakan. Sebagai alternatif dapat
digunakan statement WHILE atau REPEAT. Sedangkan jika banyaknya pengulangan
tidak diketahui maka statement IF tidak dapat digunakan, sehingga harus digunakan
statement WHILE atau REPEAT. Bentuk dari statement WHILE adalah:
WHILE {Kondisi} DO
BEGIN
{Statement 1}
{Statement 2}
....
{Statement n}
END;
Benar
(True)
Kondisi
Salah
(False)
Pernyataan
Akhir
WHILE
Gambar 6. Flowchart Statement WHILE
Contoh :
Ingin dibuat program untuk menampilkan deret berikut:
1,3,5,7,.......suku ke-n
PROGRAM DERET;
USES WINCRT;
VAR
N,I : INTEGER;
BEGIN
READLN(N);
I:=1;
WHILE I <= N DO BEGIN WRITELN(2*I-1); I:=I+1; END; END. E. Statement WHILE untuk Jumlah Pengulangan Yang Diketahui Statement WHILE dapat digunakan untuk pengulangan dengan jumlah pengulangan yang diketahui. Selain untuk pengulangan dengan kenaikan dan penurunan sebesar 1, statement WHILE dapat digunakan juga pada pengulangan dengan kenaikan dan penurunan tidak sebesar 1. Contoh: Program untuk pengulangan dengan kenaikan sebesar 1 atau menggantikan perintah: For i:=1 to 20 do writeln(i) Program Ulang; Uses Wincrt; Var i:integer; Begin I:=1; {nilai awal} While i<= 20 do Begin Writeln(i); i:=i+1; {menaikkan nilai i} End; End. Yang Diingat ! • Ada nilai awal terhadap variabel penghitung, yaitu: i:=1 • Ada pertambahan nilai terhadap variabel penghitung, yaitu: i:=i+1 • Ada kondisi yang menyebabkan pengulangan berhenti, yaitu: While i<= 20 do Contoh: Program untuk pengulangan dengan penurunan sebesar 1 atau menggantikan perintah: For i:=20 downto 1 do writeln(i) Program Ulang; Uses Wincrt; Var i:integer; Begin I:=20; {nilai awal} While i>0 do
Begin
Writeln(i);
i:=i-1; {menurunkan nilai i}
End;
End.
Contoh:
Program untuk menampilkan bilangan real dari 1 sampai 10 dengan kenaikan sebesar 0.5.
Program Ulang;
Uses Wincrt;
Var
i:real;
Begin
I:=1; {nilai awal}
While i<= 10 do Begin Writeln(i:5:2); i:=i+0.5; {menaikkan nilai i} End; End. F. Statement WHILE untuk Jumlah Pengulangan Yang Tidak Diketahui Dalam proses pengulangan selalu ada kondisi yang mengkontrol pengulangan tersebut untuk berhenti. Kontrol pengulangan tidak selalu melibatkan variabel penghitung. Contoh: Program untuk menampilkan karakter yang dimasukkan lewat keyboard secara berulangulang hingga karakter ’*’ dimasukkan. Program Ulang; Uses Wincrt; Var x:char; Begin x:=’a’; While x <> ’*’ do
Begin
Writeln(’Masukkan bilangan: ’);
Readln (x);
End;
End.
G. Statement WHILE Bersarang (Nested WHILE)
Sama halnya dengan statement FOR, untuk menangani masalah tertentu, ada kemungkinan
statement WHILE yang digunakan lebih dari satu dan statement WHILE yang satu dapat
berada didalam statement WHILE yang lain.
Contoh :
Ingin dibuat program untuk menampilkan bentuk seperti berikut ini:
*
**
***
****
PROGRAM TAMPIL;
USES WINCRT;
VAR
I,J:INTEGER;
BEGIN
I:=1;
WHILE I <= 4 DO BEGIN J:=1; WHILE J <=I DO BEGIN WRITE(‘*’); J:=J+1; END; WRITELN; I:=I+1; END; END. H. Statement REPEAT Statement REPEAT adalah suatu perintah yang berfungsi untuk melakukan proses pengulangan, dimana pengulangan akan berhenti jika kondisi yang tertulis di akhir pengulangan dipenuhi. Sintak dari statement REPEAT adalah: REPEAT {Statement 1} {Statement 2} .... {Statement n} UNTIL {Kondisi}; Repeat Benar (True) Kondisi Salah (False) Pernyataan Akhir Repeat Gambar 6. Flowchart Statement REPEAT Contoh : Ingin dibuat program untuk menampilkan deret berikut: 1,3,5,7,.......suku ke-n PROGRAM DERET; USES WINCRT; VAR N,I:INTEGER; BEGIN READLN(N); I:=1; REPEAT WRITELN(2*I-1); I:=I+1; UNTIL I > N;
END.
I. Statement REPEAT untuk Jumlah Pengulangan Yang Diketahui
Statement REPEAT dapat digunakan untuk pengulangan dengan jumlah pengulangan yang
diketahui dan nilai kenaikan atau penurunan sebesar nilai tertentu (sebesar 1 atau tidak
sebesar 1).
Contoh:
Program untuk pengulangan dengan kenaikan sebesar 1 atau menggantikan
perintah:
For i:=1 to 20 do writeln(i)
Program Ulang;
Uses Wincrt;
Var
i:integer;
Begin
i:=1; {nilai awal}
Repeat
Writeln(i);
i:=i+1; {menaikkan nilai i}
Until i > 20;
End.
J. Statement REPEAT untuk Jumlah Pengulangan Yang Tidak
Diketahui
Jika dalam proses pengulangan tidak diketahui banyaknya pengulangan, maka dapat
digunakan statement WHILE atau REPEAT.
Contoh:
Program untuk menampilkan karakter yang dimasukkan lewat keyboard secara
berulang-ulang hingga karakter ’*’ dimasukkan.
Program Ulang;
Uses Wincrt;
Var
x:char;
Begin
Repeat
Writel(’Masukkan bilangan: ’);
Readln (x);
Until x = ’*’;
End.
K. Statement REPEAT Bersarang (Nested REPEAT)
Sama halnya dengan statement FOR dan WHILE, ada kemungkinan statement REPEAT
yang digunakan lebih dari satu dan statement REPEAT yang satu dapat berada didalam
statement REPEAT yang lain.
Komputasi________________________________________________________________
D3 Statististika ITS____________________________________________________Hal 27
Contoh :
Ingin dibuat program untuk menampilkan bentuk seperti berikut ini:
*
**
***
****
PROGRAM TAMPIL;
USES WINCRT;
VAR
I,J:INTEGER;
BEGIN
I:=1;
REPEAT
J:=1;
REPEAT
WRITE(‘*’);
J:=J+1;
UNTIL J > I ;
WRITELN;
I:=I+1;
UNTIL I > 4;
END.
SOAL
1. Apa hasil dari cuplikan program dibawah ini:
a. N:=10;
I:=1;
K:=0;
REPEAT
K:=K+I;
WRITELN(K);
I:=I+1;
UNTIL I > N;
b. FOR J:=1 TO 5
FOR K:=1 TO 5
WRITELN(J*2,’ ‘,K*3);
2. Buat program untuk menampilkan deret (sampai suku ke-n) : 1 3 9 27 ......
3. Buat program yang pada awalnya meminta data lebar dan tinggi, lalu buat
gambar persegipanjang berdasarkan data lebar dan tinggi. Misalkan lebar=10
dan tinggi=4, maka gambar yang dihasilkan adalah:
**********
**********
**********
**********
4. Buat tampilan berikut ini:
a. 111
222
333
444
b. 1
22
333
4444
c. 1
12
123
1234
d. 1
21
321
4321
5. Buat program untuk menghitung:
a. ab
b. n!
c. menghitung rata-rata
Catatan : Untuk soal no 2, 3, 4 dan 5 masing-masing dikerjakan dengan
menggunakan statement FOR, WHILE dan REPEAT.
BAGIAN V
ARRAY
A. Array
Array (larik) menyatakan tipe data terstruktur yang berupa kumpulan elemen-elemen
dengan tipe data yang sama. Tipe Array dapat ditulis sebagai berikut:
Array [Indeks_1,…,Indeks_n] of Tipe_Dasar
• Array Dimensi Satu
Array berdimensi satu merupakan array dengan ciri memiliki tipe indeks hanya satu buah.
Contoh deklarasi variabel dengan tipe array berdimensi satu:
VAR X : ARRAY[1..10] of Integer;
Untuk menyimpan suatu nilai kedalam lokasi array, dapat dilakukan dengan instruksi :
D[i]:=nilai;
atau dimana i adalah indeks array
READLN(D[i]);
Sedangkan untuk menampilkan nilai yang ada di salah satu elemen array dapat dengan
cara:
WRITELN(D[i]); dimana i adalah indeks elemen array
• Array Dimensi Dua
Array berdimensi dua merupakan array dengan ciri memiliki tipe indeks dua buah. Contoh
deklarasi variabel dengan tipe array berdimensi dua:
VAR Y : ARRAY[1..5,1..10] of Integer;
Untuk menyimpan suatu nilai kedalam lokasi array, dapat dilakukan dengan instruksi :
D[i,j]:=nilai;
atau dimana i,j adalah indeks array
READLN(D[i,j]);
Sedangkan untuk menampilkan nilai yang ada di salah satu elemen array dapat dengan
cara:
WRITELN(D[i,j]); dimana i,j adalah indeks elemen array
Contoh :
1. Menghitung rata-rata dari n buah data
PROGRAM RATA2;
USES WINCRT;
VAR
I,N :INTEGER;
RATA:REAL;
DATA:ARRAY [1..50] OF REAL;
BEGIN
READLN(N);
FOR I:=1 TO N DO
BEGIN
READLN(DATA[I]);
END;
RATA:=0;
FOR I:=1 TO N DO
BEGIN
RATA:=RATA+DATA[I];
END;
WRITELN(‘RATA=’,RATA/N);
END.
2. Menentukan matriks transpose.
PROGRAM KEBALIKAN;
USES WINCRT;
VAR
BARIS,KOLOM,I,J:INTEGER;
A,B:ARRAY [1..20,1..20] OF REAL;
BEGIN
READLN(BARIS);
READLN(KOLOM);
{baca data matriks A}
FOR I :=1 TO BARIS DO
BEGIN
FOR J:=1 TO KOLOM DO
BEGIN
READLN(A[I,J]);
END;
END;
{B=A’}
FOR I :=1 TO KOLOM DO
BEGIN
FOR J:=1 TO BARIS DO
BEGIN
B[I,J]:=A[J,I];
END;
END;
{mencetak Matriks B}
FOR I :=1 TO KOLOM DO
BEGIN
FOR J:=1 TO BARIS DO
BEGIN
WRITE(B[I,J]:0:2, ‘ ‘);
END;
WRITELN;
END;
END.
SOAL:
1. Buat program untuk menghitung varians dari n buah data
2. Buat program untuk mengurutkan n buah data
3. Buat program menampilkan bil prima kurang dari 100 (yaitu 2, 3, 5, 7, .... 997)
4. Buat program untuk mengalikan dua buah vektor (vektor baris maupun vektor
kolom).
5. Buat program untuk membuat matriks transpose.
BAGIAN VI
FILE TEKS
A. File Teks
Dengan bekerja pada file, data atau program yang dibuat tidak akan hilang. Salah satu tipe
file dalam Pascal adalah File Teks. File teks mempunyai ciri yaitu karakter yang
menyebabkan baris baru. Oleh karena itulah elemen pada file teks adalah baris. Tanda
akhir baris pada file teks adalah carriage return (CR) dan line feed (LF).
B. Deklarasi File Teks
Contoh cara mendeklarasikan file teks dalam Pascal adalah sebagai berikut:
Var
Filevar : text; {Filevar adalah variabel teks file}
C. Statement dalam File Teks
1. Assign(filevar,filename);
Digunakanuntuk mengawali semua operasi yang melibatkan File. Filevar adalah
variabel teks file yang sudah dideklarasikan. Sedangkan filename adalah nama file
yang bertipe string.
2. Rewrite(filevar)
Digunakan untuk membuka dan menciptakan file baru pada disk.
3. Reset(filevar)
Digunakan untuk membuka file yang sudah ada di disk.
4. Write(filevar, x)
Digunakan untuk menyimpan data yang ada pada variabel x kedalam file dan penunjuk
file akan bergeser ke arah sesudah data.
5. Writeln(filevar, x)
Digunakan untuk menyimpan data yang ada pada variabel x kedalam file dan penunjuk
file akan bergeser ke baris berikutnya.
6. Read(filevar, x)
Digunakan untuk membaca sebuah data yang ada pada file dan disimpan dalam
variabel x setelah itu penunjuk file akan bergeser ke arah sesudah data.
7. Readln(filevar, data)
Digunakan untuk membaca sebuah data yang ada pada file dan disimpan dalam
variabel x setelah itu penunjuk file akan bergeser ke baris berikutnya.
8. Close(filevar)
Untuk menutup file yang sedang aktif.
Contoh :
Ingin dibuat program untuk menyimpan data beripa bilangan 1 sampai 10 kedalam
file.
PROGRAM TAMPIL;
USES WINCRT;
VAR
F:TEXT;
I:INTEGER;
BEGIN
Assign(f,’c:\hasil.txt’);
Rewrite(f);
For i:=1 to 10 do
Writeln(f,i);
Close(f);
END.
SOAL:
1. Buat program untuk menyimpan n buah data yang dimasukkan lewat keyboard.
2. Baca data yang sudah disimpan pada soal no 1) lalu hitung nilai rata-rata dan
varians nya
3. Buat program untuk mengurutkan n buah data yang disimpan pada soal no 1) dan
hasil urutannya disimpan pada file lain.

Kata Bijak


Seorang pria bijak memasuki sebuah cafe dan mulai menceritakan sebuah lelucon dan membuat semua orang dalam cafe itu tertawa.
Beberapa saat kemudian pria itu mengulangi leluconnya, namun kali ini hanya beberapa orang saja yang tertawa.
5 menit kemudian pria itu kembali menceritakan lelucon yang sama, dan ternyata tidak ada yang tertawa.
Pria inipun tersenyum lebar, sambil berkata : "Bila kamu tidak bisa tertawa berulang-ulang pada lelucon yang sama , lalu mengapa kamu terus menangis berulang-ulang pada masalah yang sama?"

Program Statistika Deskriptif




uses wincrt;
var a,n : integer;
data, total, max, min, mean : real;
begin
total := 0;
write ('*****Banyaknya data***** : '); readln (n);
writeln;
for a := 1 to n do
begin
write ('####Data ke#### ',a,' : '); readln (data);
total := total + data;
if a = 1 then begin
max := data;
min := data;
end;
else begin
if data > max then max := data
else begin
if data < min then min := data; end; end; end; mean := total / n; writeln; writeln ('^^^Nilai terendah^^^ : ', min :1:2); writeln ('^^^Nilai tertinggi^^^ : ', max :1:2); writeln ('^^^Rata-rata^^^ : ', mean :1:2); end.

Program Faktorial


program faktorial;
uses wincrt;
var
i,a,n,f:integer;
begin
readln(n);
f:=1; i:=0;
if (n>1)then
begin
repeat
i:=i+1;
f:=f*i;
until i=n;
a:=n;
for i:=n downto 2 do
begin
write (a,'x');
a:=a-1;
end;
write(1,'=',f)
end
else
if (n=0)then writeln ('1') else
if (n=1)then writeln ('1') else
writeln ('tidak terdifinisi')
end.

Program Matriks


program matrik;
uses wincrt;
type data = array[1..10,1..10] of integer;
var matrikI,matrikII : data;
baris,kolom,pil : integer;
procedure isimatrik;
var i,j : integer;
begin
writeln('Penentuan ORDO MATRIK I');
write('Masukan banyak baris matrik I = ');readln(baris);
write('Masukan banyak kolom matrik I = ');readln(kolom);
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
readln(matrikI[i,j]);
end;
clrscr;
writeln('Penentuan ORDO MATRIK II');
write('Masukan banyak baris matrik II = ');readln(baris);
write('Masukan banyak kolom matrik II = ');readln(kolom);
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
readln(matrikII[i,j]);
end;
end;
procedure jumlahmatrik(m1,m2 : data);
var hasil : data;
i,j : integer;
begin
for i:=1 to baris do
for j:=1 to kolom do
begin
hasil[i,j]:=m1[i,j]+m2[i,j];
end;
clrscr;
writeln('Hasil Penjumlahan MATRIK');
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end;
procedure kurangmatrik(m1,m2 : data);
var hasil : data;
i,j : integer;
begin
for i:=1 to baris do
for j:=1 to kolom do
begin
hasil[i,j]:=m1[i,j]-m2[i,j];
end;
clrscr;
writeln('Hasil Penjumlahan MATRIK');
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end;
procedure kalimatrik(m1,m2 : data);
var hasil : data;
i,j,z : integer;
begin
for i:=1 to baris do
for j:=1 to kolom do
begin
hasil[i,j]:=0;
for z:=1 to baris do
hasil[i,j]:=hasil[i,j]+matrikI[i,z]*matrikII[z,j];
end;
clrscr;
writeln('Hasil Penjumlahan MATRIK');
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end;
begin
writeln(' M E N U');
writeln('(1) Penjumlahan Matrik');
writeln('(2) Pengurangan Matrik');
writeln('(3) Perkalian Matrik');
write('Pilihan = ');readln(pil);
clrscr;
case pil of
1 : begin
isimatrik;
jumlahmatrik(matrikI,matrikII);
end;
2 : begin
isimatrik;
kurangmatrik(matrikI,matrikII);
end;
3 : begin
isimatrik;
kalimatrik(matrikI,matrikII);
end;
end;
end.

Program Mencari Nilai Mata Uang


uses wincrt;

var uang : longint;

begin
  write('Nilai uang : ');readln(uang);

  if uang div 100000 > 0 then begin
    writeln(uang div 100000, ' lembar seratus ribuan');
    uang := uang mod 100000;
  end;

  if uang div 50000 > 0 then begin
    writeln(uang div 50000, ' lembar lima puluh ribuan');
    uang := uang mod 50000;
  end;

  if uang div 20000 > 0 then begin
    writeln(uang div 20000, ' lembar dua puluh ribuan');
    uang := uang mod 20000;
  end;

  if uang div 10000 > 0 then begin
    writeln(uang div 10000, ' lembar sepuluh ribuan');
    uang := uang mod 10000;
  end;

  if uang div 5000 > 0 then begin
    writeln(uang div 5000, ' lembar lima ribuan');
    uang := uang mod 5000;
  end;

  if uang div 1000 > 0 then begin
    writeln(uang div 1000, ' lembar ribuan');
    uang := uang mod 1000;
  end;

  if uang div 500 > 0 then begin
    writeln(uang div 500, ' lembar lima ratusan');
    uang := uang mod 500;
  end;

  if uang div 100 > 0 then begin
    writeln(uang div 100, ' ratusan');
    uang := uang mod 100;
  end;

  if uang div 50 > 0 then begin
    writeln(uang div 50, ' limapuluhan');
    uang := uang mod 50;
  end;

  if uang > 0 then begin
    writeln(uang, ' satuan');
  end;

end.

Hamster Unyu

My Pet Blondy

Labels




Blog Translate

English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified

Please Click In Here

Get cash from your website. Sign up as affiliate.
Free Birthday Cake Pink Cursors at www.totallyfreecursors.com