Anda di halaman 1dari 33

Bahasa Pemrograman Pascal BAB VII BAHASA PEMROGRAMAN PASCAL 7.1.

Flow Chart (Diagram Alir) Pada pembuatan suatu program diperlukan perencaaa n tentang urutan proses yang secara logis harus benar. Prencanaan dalam suatu pr ogram pada umumnya meliputi hubungan antara input, proses dan output. Gambaran y ang menyatakan hal tersebut dinamakan flow chart (diagram alir). Untuk membuat s uatu flow chart biasanya dipergunakan simbol-simbol yang sesuai kondisi yang ter jadi. Simbol-simbol atau tanda yang dipakai dalam suatu flow chart untuk pembuat an program komputer telah ditetapkan sebagai berikut : Terminal Input / Output Proses Keputusan Predefined Process Konektor Konektor Pindah halaman Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD 56

Bahasa Pemrograman Pascal 57 Dengan adanya simbol atau tanda ini dimaksudkan untuk memudahkan dalam memahami alur atau jalannya proses yang ada pada suatu program. 7.2. Bahasa Pemrograman Pascal Struktur program Pascal dapat dikelompokkan dalam tiga bagian, yaitu: 1. Kepala Program 2. Bagian Deklarasi 3. Bagian Pernyataan/ Statemen Kepala program terdiri dari kata program dan nama program. Kepala progr am bisa tidak dituliskan. Bagian deklarasi berisi konstanta dan variabel yang ak an dipakai. Bagian statemen berisi perintah-perintah yang harus harus dikerjakan dan dimengerti oleh bahasa Pascal. Program Lingkaran; Kepala Program Uses crt; Const pi=3.14159; Var jarijari, keliling, luas : real; Begin Clrscr; W rite('Masukkan jari-jari : '); Readln(jarijari); Keliling := 2*pi*jarijari; Luas := pi*sqr(jarijari); Writeln('Jari-jari =',jarijari:5:2); Writeln('Keliling =', keliling:6:3); Writeln('Luas =',luas:6:3); Readln; End. Bagian Deklarasi Bagian Pernyataan Suatu bahasa program komputer biasanya mempunyai aturan penulisan programnya sen diri. Aturan penulisan program Pascal adalah sebagai berikut; 1. Program Pascal boleh ditulis mulai kolom berapa saja dan diakhiri pada kolom berapa saja 2. Set iap statemen diakhiri dengan ; (titik koma) 3. Beberapa statemen boleh ditulis s ekaligus di dalam satu baris Diktat Dasar Komputer dan Pemrograman T. Elektro FT I UAD

Bahasa Pemrograman Pascal 58 7.3. Percabangan I : If .. Then . Else .. Pernyataan percabangan/kendali/bersyarat merupakan pernyataan yang akan mengeksekusi suatu pernyataan yang mengikutinya b ila suatu persyaratan dipenuhi. Salah satu pernyataan kendali untuk pengambilan keputusan dalam Pascal adalah pernyataan If Then Else Bentuk umum : IF kondisi THEN Statemen 1 ELSE Statemen 2 dimana : kondisi : ungk apan boolen yang menghasilkan nilai benar atau salah statemen 1, statemen 2 : pe rnyataan-pernyataan tunggal/majemuk. Dalam Pascal, pernyataan majemuk adalah kum pulan dari beberapa pernyataan yang diawali dengan kata baku BEGIN dan diakhiri oleh kata baku END, yang dianggap sebagai sebuah pernyataan tunggal. Maksudnya : bila kondisi bernilai TRUE (benar) maka akan dikerjakan statemen 1 dan statemen 2 dilewati, sedangkan jika kondisi bernilai FALSE (salah) maka akan dikerjakan statemen 2 dan statemen 1 dilewati. Untuk pernyataan IF yang berkalang (ada pern yataan IF yang lain dalam pernyataan IF), ELSE selalu berpasangan dengan dengan IF yang terletak sebelum dan yang paling dekat dengan ELSE tersebut, serta terle tak dalam blok pernyataan yang sama. Contoh 1 : Program untuk mencari akar persa maan kuadrat di bawah ini Program PersamaanKuadrat; uses crt; Diktat Dasar Kompu ter dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 59 var a,b,c,d,x1,x2 :real; begin clrscr; writeln('Menghitung akar-akar persamaan k uadrat'); writeln('Nilai a,b,c dimasukkan dengan jeda spasi'); write('Masukkan n ilai a,b,c:'); readln(a,b,c); d:=b*b-4*a*c; if d<0 then writeln('tidak ada akar real') else begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); writeln('x1 =' ,x1:6:2); writeln('x2 =',x2:6:2); end; readln; end. Contoh Hasil Eksekusi : jika d = 0 Menghitung akar-akar persamaan kuadrat Nilai a,b,c dimasukkan dengan jeda spasi Masukkan nilai a,b,c:1 4 2 x1 = -0.59 x2 = -3.41 - jika d < 0 : Menghitung akar-akar persamaan kuadrat Nilai a,b,c dimasukkan den gan jeda spasi Masukkan nilai a,b,c:1 2 6 tidak ada akar real Catatan : 1. Di dalam IF boleh ada IF (pernyataan IF yang berkalang) 2. Jika dii nginkan kondisi = FALSE tidak mengerjakan apa-apa, maka ELSE tidak perlu ditulis kan. Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 60 3. Pernyataan ELSE tidak diakhri dengan ; (titik koma) begitu pula baris pernyat aan sebelum ELSE. 7.4. Percabangan II : Case .. Of .. Pernyataan CASE . OF . Digunakan untuk pengambil an keputusan jika terdapat lebih dari dua alternatif jawaban yang tersedia.

Bentuk umum : CASE ungkapan OF Label 1 : Statemen 1 Label 2 : Statemen 1 .. .. .. La : Statemen n END; dimana : ungkapan : dapat berupa sembarang ungkapan yang memberikan hasil intege r, char, boolean atau tipe terbilang (kecuali real). Label Statemen : konstanta yang mempunyai tipe yang sama dengan ungkapan : pernyataan yang mengikuti berupa rangkaian instruksi yang harus dikerjakan jika nilai konstanta dalam label sama dengan nilai variabel Maksudnya jika ungkapan bernilai label 1, maka dikerjakan statemen1, jika bernilai label 2 akan dikerjakan statemen 2 dan seterusnya. Per nyataan CASE . OF . boleh diikuti ELSE. Perlu diketahui, ELSE dalam pernyataan CAS E . OF . Hanya bersifat pilihan, dalam artian boleh Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 61 disertakan boleh tidak. Jika ELSE disertakan, pernyataan yang mengikuti ELSE aka n dieksekusi hanya bila nilai dari syarat-pemilih tidak ada dalam semua label. C ontoh 1 : Program nilai_ujian; uses crt; var nama : string[25]; nim : string[8]; nilai: integer; begin clrscr; write('Masukkan nama mahasiswa : '); readln(nama) ; write('Masukkan nomor induk mahasiswa : '); readln(nim); write('Masukkan nilai ujian : '); readln(nilai); writeln; case nilai div 10 of 10,9 : writeln('Nilai huruf = A'); 8 : writeln('Nilai huruf = B'); 7 : writeln('Nilai huruf = C'); 6 : writeln('Nilai huruf = D'); 5,4,3,2,1,0 : writeln('Nilai huruf = E'); end; read ln; end. Contoh 2 : Program konversi; uses crt; var menit, jam, kaki, meter, fahrenheit, celcius : real; pilihan :char; begin clrscr; writeln('Pilihan konversi:'); write ln('1) Menit ke jam'); writeln('2) Kaki ke meter'); writeln('3) Derajat Fahrenhe it ke Celcius'); write('pilihan ? '); readln(pilihan); Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 62 case pilihan of '1' : begin write('menit= '); readln(menit); jam:=menit/60; writ eln('nilai ini sama dengan ',jam:4:1,' jam'); readln; end; '2' : begin write('ka ki= '); readln(kaki); meter:=0.3048*kaki; writeln('nilai ini sama dengan ',meter :4:1,' meter'); readln; end; '3' : begin write('Derajat Fahrenheit = '); readln( fahrenheit); celcius:=5/9*(fahrenheit-32); writeln('nilai ini sama dengan ',Celc ius:4 :1,' Celcius'); readln; end; else writeln('Tidak melakukan konversi'); end ; end. 7.5. KalanG I : For To Do dan For ... Downto ... Do Salah satu ciri bahasa pemrogr aman adalah adanya perintah-perintah yang harus dikerjakan berulang- ulang. Peng ulangan ini sering disebut dengan kalang. Dalam bahasa Pascal ada beberapa perin tah untuk membuat kalang, yaitu: FOR TO DO dan FOR DOWNTO DO Bentuk umum : FOR pen gubah:=ungkapan1 TO ungkapan2 DO Statemen; dan FOR pengubah:=ungkapan1 DOWNTO un gkapan2 DO Statemen; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 63 dimana, pengubah : suatu pengubah yang disebut pengubah kendali, dapat berupa pe ngenal dari tipe integer, char, boolean atau tipe terbilang. ungkapan1 ungkapan2 : nilai awal pengubah : nilai akhir pengubah Beberapa aturan yang harus dipenuhi : Pengubah, ungkapan1 dan ungkapan2 harus me mpunyai tipe data yang sama Pada kalang TO ungkapan1<ungkapan2 Pada kalang DOWNT O ungkapan1>ungkapan2 Contoh 1 : Program untuk menghitung jumlah n bilangan pertama dan jumlah kuadrat n bilangan pertama Program jumlahKuadrat; Uses crt; Var jumlah, jmlkuadrat,i,n : integer; begin clrscr; Write('Banyak n bilangan yang akan diproses'); readln(n ); jumlah:=0; jmlkuadrat:=0; for i:=1 to n do begin jumlah:=jumlah+i; jmlkuadrat :=jmlkuadrat + i*i; writeln('Jumlah ',i:2,' bilangan pertama = ',jumlah:5); writ eln('Jumlah Kuadrat ',i:2,' bilangan pertama = ',jmlkuadrat:5); end; readln; end . Contoh 2 : Mencetak abjad dengan urutan terbalik dari za Program tulisabjad; Uses crt; Var karakter : char; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 64 begin clrscr; for karakter:= 'z' downto 'a' do write(karakter:2); readln; end. Contoh 3 : Program berikut adalah program untuk menghitung deret eksponensial da n membandingkan dengan fungsi pustaka EXP. Deret eksponensial adalah : ex = xn x2 x3 x4 xn = 1 + x + + + + ..... + + ....... 2! 3! 4! n! n = 0 n! Program eksponensial; uses crt; var eksponen, x,suku : real; n,i : integer; begi n clrscr; write('Masukkan banyaknya suku(n): '); readln(n); write('Masukan nilai x : '); readln(x); eksponen:=1.0; suku:=1.0; for i:=1 to n do begin suku:=suku* x/i; eksponen:=eksponen+suku; end; writeln; writeln('Nilai deret = ',eksponen:10 :6); writeln('Nilai fungsi = ',exp(x):10:6); readln; end. Contoh 4 : Bilangan Fibonacci memiliki rumusan : Fi = Fi-1 + F i-2 Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 65 Suku ke-1 merupakan penjumlahan bilangan Fibonacci suku ke-(i-1) dan suku ke(i-2 ), dengan bilangan pada suku pertama dan suku kedua didefinisikan sama dengan sa tu. Program Fibonacci; Uses crt; Var i,n,f,f1,f2 : integer; begin clrscr; writel n('Ingin mencetak bilangan Fibonacci'); write('sampai suku ke-'); readln(n); wri teln; writeln('Suku ke- 1 = ',1); writeln('Suku ke- 2 = ',1); f1 :=1; f2:=1; for i:=3 to n do begin f:=f1+f2; writeln('Suku ke- ',i:2,' = ',F:3); f2:=f1; f1:=f; end; readln; end.

7.6. Kalang II : While . Do. dan Repeat .... Until . Selain membuat kalang dengan F OR.TO.DO. dan FOR.. DOWNTO DO ada bentuk kalang yang lebih umum yaitu : WHILE DO . ng bentuk umumnya adalah sebagai berikut : WHILE kondisi DO Statemen dimana, kon disi : adalah ungkapan boolean yang digunakan sebagai syarat agar statemen diker jakan berulang kali statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan diproses ulang. Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 66

Contoh 1 : Jumlah deret n bilangan asli pertama Program Jumlah_Deret; Uses crt; Var n, jumlah, pencacah : integer; begin clrscr; Writeln('Menghitung jumlah 1 + 2 + 3 + ... + n'); write('n = ? '); readln(n); pencacah:=1; jumlah:=0; while pen cacah <= n do begin jumlah:=jumlah+pencacah; pencacah:=pencacah + 1; end; writel n; writeln('Jumlah deret = ',jumlah:5); readln; end. Selain membuat kalang denga n 3 cara di atas masih ada cara lain untuk membuat kalang, yaitu dengan perintah REPEAT . UNTIL yang bentuk umumnya adalah sebagai berikut : REPEAT Statemen . UNTI disi dimana, statemen : adalah pernyataan tunggal atau pernyataan majemuk yang a kan diproses ulang. Kondisi : adalah ungkapan boolen sebagai syarat agar pernyat aan diproses ulang. Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 67 Catatan : Salah satu statemen diantara repeat dan until harus ada yang bisa meru bah nilai kondisi sehingga kalang bisa berhenti Contoh 2 : Mengganti kalang WHILE DO . Dari contoh 1 dengan kalang REPEAT . UNTIL . . Program Jumlah_Deret; Uses crt; Var n, jumlah, pencacah : integer; begin clrsc r; Writeln('Menghitung jumlah 1 + 2 + 3 + ... + n'); write('n = ? '); readln(n); pencacah:=0; jumlah:=0; repeat begin jumlah:=jumlah+pencacah; pencacah:=pencaca h + 1; end; until pencacah = n+1; writeln; writeln('Jumlah deret = ',jumlah); re adln; end. Contoh 3 : Program berikut adalah program untuk menghitung deret eksponensial dan membandingkan dengan fungsi pustaka EXP dengan kalang WHILE . DO . Deret eksponensial adalah : ex = xn x2 x3 x4 xn = 1 + x + + + + ..... + + ....... 2! 3! 4! n! n = 0 n! Program eksponensial; uses crt; var eksponen, x,suku : real; Diktat Dasar Komput er dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 68 n,i : integer; begin clrscr; write('Masukkan banyaknya suku(n): '); readln(n); w rite('Masukan nilai x : '); readln(x); eksponen:=1.0; suku:=1.0; i:=1; while i < = n do begin suku:=suku*x/i; eksponen:=eksponen+suku; i:=i+1; end; writeln; writ eln('Nilai deret = ',eksponen:10:6); writeln('Nilai fungsi = ',exp(x):10:6); rea dln; end. Contoh 4 : Program untuk menghitung mean dan standar deviasi dari sejumlah data masukkan non negatif dan berhenti apabila masukkan data adalah -1. Program Mean_ StdDev; Uses crt; Const neg=-1; Var bilangan, total1, total2, mean, std : real; n : integer; begin clrscr; total1:=0.0; total2:=0.0; n:=0; writeln('Masukkan dat a non negatif, dan untuk mengakhiri masukkan angka -1'); readln(bilangan); repea t n:=n+1; total1:=total1+bilangan; total2:=total2+bilangan*bilangan; Diktat Dasa r Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 69 writeln('Masukkan data non negatif, dan untuk mengakhiri masukkan angka -1'); re adln(bilangan); until bilangan=neg; mean:= total1/n; std:=sqrt(total2/(n-1)-sqr( total1)/(n*(n-1))); writeln('Mean = ',mean:7:2); writeln('Deviasi Standar = ',st d:8:3); readln; end. 7.7. Procedure dan Fungsi Procedure merupakan bentuk subprogram dalam bahasa Pas cal, yaitu sekelompok statemen yang bisa menjadi bagian dari program / sub progr am. Procedure dipakai untuk mengelompokkan bagian program, yang dapat dikerjakan berkali-kali dengan memanggil namanya saja, sehingga menyederhanakan struktur p rogram dan mengurangi pengulangan penulisan bagian-baigan program berkali-kali. Deklarasi procedure terletak pada bagian deklarasi pada program yang menggunakan nya, dibawah deklarasi VAR pada program utama. Bentuk umum : PROCEDURE <nama_pro cedure> (<daftar parameter formal>); <Bagian deklarasi variabel lokal> Begin <Ba gian Pernyataan> End; dimana, pemberian nama procedure : mengikuti aturan perber ian nama variabel daftar parameter formal : bersifat option, boleh ada boleh tid ak. Daftar ini hanya untuk mengontrol komunikasi informasi ke dan dari procedure tersebut. Ada 2 tipe parameter formal, yaitu : Diktat Dasar Komputer dan Pemrog raman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 70 1. Parameter perubah, yang mengambil nilai dari parameter aktual dan jika nilain ya berubah, maka nilai parameter aktual juga berubah. 2. Parameter nilai, yang h anya mengambil nilai dari parameter aktual yang sesuai tanpa mengubah nilainya, meskipun nilai parameter formal ini berubah. Dalam procedure maupun program utam anya terdapat bagian deklarasi varibel. Variabel yang dideklarasikan pada progra m utama disebut variabel global, yaitu variabel yang dapat diakses pada semua ba gian program. Sedangkan pada procedure dideklarasikan variabel lokal, yaitu vari abel yang hanya bisa diakses oleh bagian program dimana variabel tersebut didekl arasikan. Sebuah procedure bisa memanggil procedure lain yang telah didefinikan sebelumnya, kemudian dipanggil pada program utama. Bentuk umum pemanggilan proce dure : Nama_procedure (daftar parameter aktual); dimana, Nama procedure : harus sesuai dengan nama procedure yang digunakan pada waktu dideklarasikan. Daftar pa rameter aktual : berisi nama-nama parameter yang dioperasikan pada procedure yan g dipanggil. Parameter-parameter aktual ini harus dideklarasikan pada program ut ama, tidak boleh berupa konstanta atau ungkapan. Urutan posisi, caca parameter d an tipe data setiap parameternya harus sesuai dengan parameter formal. Fungsi me mpunyai kegunaan yang hampir sama dengan procedure dengan sedikit perbedaan, yai tu : Fungsi hanya memberikan satu hasil Nama fungsi, selain digunakan untuk mema nggil fungsi tersebut, juga dianggap sebagai satu peubah, sehingga dapat digunak an sebagai bagian dari ungkapan. Jika fungsi digunakan, fungsi selalu akan mengh itung satu nilai perubah (dalam hal ini nilai fungsi) Dalam fungsi tidak ada ist ilah parameter perubah, semua parameter dianggap sebagai parameter nilai. Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 71 Semua parameter diperlukan sebagai masukan pada fungsi tersebut dengan keluarann ya adalah nama fungsi yang bertindak sebagai satu perubah. Bentuk umum suatu fungsi: FUNCTION <Nama> (<Daftar parameter formal>) : <Tipe ha sil>; <Bagian Deklarasi> Begin <Bagian Pernyataan> End; dimana, Function : kata cadangan Pascal yang memberikan tanda bahwa deklarasi function dimulai. Nama : n ama fungsi Daftar parameter formal : nama parameter yang akan dioperasikan di dalam fungsi. Tipe hasil : tipe data dari nilai fungsi Contoh 1 : Program Pangkat_Rekursif; Uses crt; Var a,z : real; b : integer; Proc edure pangkat(x:real; n:integer; var y:real); Var p:real; Begin if n=0 then y:=1 else if n>0 then begin pangkat(x,n-1,y); y:y*x); end Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 72 else begin pangkat(x,n+1,y); y:y/x; end; end; begin clrscr; writel('Data A: '); readln(a); writeln; writel('Data B: '); readln(b); writeln; while(a<>0) or (b<>0 ) do begin writeln; write(a:5:2,' pangkat',b:3'='); pangkat(a,b,z); write(z:5:2) ; writeln; writeln; write('Data A: '); readln(a); writeln; write('Data B: '); re adln(b); writeln; end; write('Tekan <Enter>') readln; end. Contoh 2 : Program Jumlahan; Uses crt; Var jum, x : integer; function jumlah(n:i nteger):integer; Var i,s : integer; begin s:=0; for i:=1 to n do s:=s+i; jumlah: =s; end; begin clrscr; writeln('Masukkan bilangan bulat 1 ...100'); readln(x); D iktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 73 jum:=jumlah(x); writeln; writeln('jumlah',x,'suku pertama deret hitung = ' ,jum: 6); readln; end. Contoh 3 : Program Pangkat_Rekursif2; Uses crt; Var a : real; b : integer; funct ion pangkat(x:real; n:integer):real; begin if n=0 then pangkat:=1 else if n>0 th en pangkat:=pangkat(x,n-1)*x else pangkat:=pangkat(x,n+1)/x; end; begin clrscr; write('Data A: '); readln(a); writeln; write('Data B: '); readln(b); writeln; wh ile(a<>0) or (b<>0) do begin writeln; write(a:5:2,' pangkat',b:3,'='); write(pan gkat(a,b):5:2); writeln; writeln; write('Data A: '); readln(a); writeln; write(' Data B: '); readln(b); writeln; end; write('Tekan <Enter>'); readln; end. Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 74 7.8. Tipe Data Array Array merupakan tipe data berstruktur yang berisi sekumpula n komponen / elemen dengan tipe sama, yang menggunakan identifier yang sama, den gan masing- masing elemen memiliki indeks tersendiri, yang biasa dinamakan indek s array. Melalui indeks array ini, setiap elemen dalam array dapat diakses secar a langsung. Pendefinisian tipe array terdiri dari kata baku ARRAY diikuti dengan tipeindeks yang diletakkan dalam tanda kurung siku, kata baku OF dan kemudian t ipe-komponen. ARRAY[tipe-indeks-1,..,tipe-indeks-n] OF tipe-komponen Jumlah tipe- indeks dapat terdiri lebih dari satu. Jika terdapat lebih dari satu tipeindeks, maka tipe-indeks yang satu dengan lainnya dipisahkan dengan tanda k oma. Masing- masing tipe dari tipe-indeks dapat berbeda. Perlu diketahui, tipe d ari tipe- indeks dapat berupa sembarang tipe ordinalm kecuali integer. Jadi dapa t berupa tipe cahr, boolean atau tipe skalar buatan dan juga tipe subrange. Tipe indeks menyatakan tipe nilai dari indeks array. Tipe-komponen menyatakan tipe da ri elemen yang terdapat dalam array dan dapat berupa sembarang tipe. Contoh dekl arasi tipe array : TYPE Buahcatur = (Pion, Gajah, Benteng, PerdanaMenteri, Raja) ; Warna=(Putih, Hitam); Pilihan = ARRAY [warna,1..6] of BuahCatur Pada contoh di atas, Pilihan mengandung dua tipe indeks, dengan tipe pertama berupa skalar bua tan dan tipe kedua berupa subrange. Contoh yang lain : TYPE Operator = (plus, mi nus, kali, bagi); Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 75 Nilai Tanda = 1..0; = ARRAY[operator] of integer; ArrayKar = ARRAY [char] of integer; VAR Jumlahtanda : tanda; Cacahkarakter : arr aykar Vektor : ARRAY[nilai] of String[15] Contoh pendefinisian tipe array yang salah : (tipe- indeks berupa integer tidak diperkenankan) TYPE Nilai = integer; Daftar = ARRAY[Nilai] OF real; Array Berdimensi Satu Array berdimensi satu merupakan array dengan ciri memiliki tipe- indeks hanya sebuah dan tipe-komponen tidak berupa array. Contoh array be rdimensi satu : VAR x : ARRAy [1..8] of real; Menyatakan bahwa indeks-array dari variabel x dapat berupa 1,2,3,,8 dan isi array bertipe real. Sedangkan VAR Huruf : ARRAy [A..Z] of integer; Menyatakan bahwa indeks-array dari variabel Huruf dapat berupa karakter A, B, C, , Z dan tipe isi array adalah integer. Ukuran Array x sa ma dengan 8. Ukuran Array Huruf sama dengan 26. Pengaksesan terhadap suatu array , dapat dibedakan dalam dua macam operasi, yaitu penyimpanan dan pengambilan ele men array. Untuk menjelaskan hal ini, diambil contoh : Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 76 TYPE DaftarNilai = ARRAY[1..3] OF integer; VAR D : DaftarNilai; Pendeklarasian s eperti di atas menginstruksikan kepada compiler supaya menyediakan 3 lokasi memo ri untuk menyimpan data integer dari variabel D, yaitu lokasi dari D[1], D[2], d an D[3]. Jadi masing- masing indeks-array[1..3] dari D memiliki lokasi penyimpan an tersendiri. Untuk menyimpan suatu nilai ke dalam lokasi penyimpanan, dapat di lakukan dengan instruksi dengan instruksi D[i] := nilai, dengan i merupakan inde ks-array dan nilai adalah bilangan yang hendak disimpan di D[i]. Sebagai contoh : D[1]:=320; setelah pengeksekusian pernyataan, D[1] bernilai 320. Untuk mengamb il isi array D, misalnya D[1], dapat digunakan instruksi : Writeln(D[1]); yang a kan menampilkan nilai D[1] pada layar. Contoh lain : X:=D[1]; memberikan nilai d ari D[1] ke variabel X. Array Multidimensi Yang termasuk dalam array multidimensi yaitu array yang memil iki lebih dari satu dimensi. Ciri dari tipe array ini, yakni mempunyai tipe- ind eks lebih dari satu atau tipe-komponen berupa array yang lain. Contoh array deng an tipekomponen berbentuk array : TYPE Matriks2D = ARRAY [1..3] OF ARRAY [1..5] OF integer; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 77 Matriks3D = ARRAY [1..2] OF ARRAY [1..3] OF ARRAY [1..5] OF char; Matrik2D menga ndung 3 elemen, dengan masing- masing elemen terdiri dari 5 elemen. Dengan kata lain, Matrik2D mempunyai 3 x 5 elemen. Tipe dari elemen integer. Matrik3D merupa kan tipe array yang mengandung 2 x 3 x 5 elemen, dengan tipe elemen yaitu char. Bentuk seperti Matrik2D dan Matrik3D dapat disederhanakan menjadi : TYPE Matriks 2D = ARRAY [1..3 ,1..5] OF integer; Matriks3D = ARRAY [1..2 ,1..3 ,1..5] OF char ; Bentuk penulisan yang lain : TYPE Matriks2D = ARRAY [1..3] [1..5] OF integer; Matriks3D = ARRAY [1..2] [1..3] [1..5] OF char; Tipe seperti Matriks2D dinamakan array berdimensi dua. Sedangkan bentuk seperti Matriks3D dinamakan array berdim ensi tiga. Penggambaran array berdimensi dua, misalnya untuk variabel yang didek larasikan : VAR X : Matriks2D ; kolom 1 Baris 1 Baris 2 Baris 3 * kolom 2 kolom 3 kolom 4 kolom 5 Untuk mengakses setiap elemen dari X diperlukan dua buah indeks array. Indeks-ar ray pertama untuk menunjuk baris, indeks-array kedua untuk menentukan kolom. Sec ara umum dapat dituliskan sebagai berikut : X[ i , j] Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 78 Yang menyatakan elemen pada baris idan kolom j. Pada diagram, elemen yang ditand ai dengan * memiliki identitas X[2,3]. Untuk array berdimensi tiga, identitas da ri suatu elemen array ditentukan oleh tiga buah indeks-array. Contoh berikut men unjukkan car membuat isi keseluruhan elemen array X bernilai nol. for i := 1 to 3 do for j := 1 to 5 do X [ i , j] := 0; Proses membuat elemen array X sama deng an nol untuk perintah di atas dimulai dari X[1,1] kemudian X[1,2], X[1,3], X[1,4 ], X[2,1], X[2,2], X[2,3], X[2,4], X[3,1], X[3,2], X[3,3], X[3,4], X[4,1], X[4,2 ], X[4,3] dan terakhir X[4,4] Contoh 1 : Program deviasi_standar; { untuk menghitung nilai rata-rata, } { vari ans dan deviasi standart } uses crt; const maksdata = 25; type arraydata = array [1..maksdata] of real; var i, n : integer; data : arraydata; jumlah, rerata, tem p, varians, standev : real; begin clrscr; write('Banyak Data : '); readln(n); wr iteln; for i:= 1 to n do begin write('Data ke - ',i:2,' = '); readln(data[i]); e nd; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 79 {menghitung jumlah dan rata-rata data} jumlah :=0; for i:=1 to n do jumlah:=juml ah+data[i]; rerata:=jumlah/n; {menghitung varian dan deviasi standar} temp:=0; f or i:=1 to n do temp:=temp+sqr(data[i]-rerata); varians:=temp/n; standev:=sqrt(v arians); {cetak hasil} writeln; writeln('Cacah data writeln('Jumlah data writeln ('Nilai rata-rata writeln('Varians writeln('Deviasi standart readln; end. = = = = = ',n:10); ',jumlah:10:4); ',rerata:10:4); ',varians:10:7); ',standev:10:7); Contoh 2 : Program MengurutkanDataString; {untuk mengurutkan data menurut abjad} uses crt; Type MaksString = string[30]; Var i,j,n : integer; temp : MaksString; data : array[1..20] of MaksString; begin clrscr; write('Jumlah Data : '); readl n(n); writeln; writeln('Data Semula : '); writeln; for i:=1 to n do begin write( i:2,'. '); readln(data[i]); end; Diktat Dasar Komputer dan Pemrograman T. Elektr o FTI UAD

Bahasa Pemrograman Pascal 80 {proses pengurutan} for i:=1 to n do for j:=1 to n do if data[i] < data[j] then begin temp:=data[i]; data[i]:=data[j]; data[j]:=temp; end; {cetak hasil} writeln ; writeln('Data setelah diurutkan : '); writeln; for i:=1 to n do writeln(i:2,'. ',data[i]); readln; end. Contoh 3 : Program Baca_dan_Cetak_Matriks; uses crt; var i,j, baris, kolom : int eger; x : array[1..10,1..10] of real; begin clrscr; {baca data, data dibaca elem en baris per baris} write('Banyak baris (maks = 10) : '); readln(baris); write(' Banyak kolom (maks = 10) : '); readln(kolom); writeln; for i:=1 to baris do begi n for j:=1 to kolom do begin write('elemen( ',i,',',j,') = '); readln(x[i,j]); e nd; writeln; end; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 81 {cetak elemen dalam matriks} writeln; writeln('Matriks : '); Writeln; for i:=1 t o baris do begin for j:=1 to kolom do write(x[i,j]:8:3); writeln; end; readln; e nd. Contoh 4 : Program Daftar_nama; uses crt; type array_nama = array[1..1000] of st ring[30]; array_alamat = array[1..100] of string[50]; var i,j : integer; nm : st ring[30]; nama : array_nama; alamat : array_alamat; begin clrscr; writeln('Tulis nama, jika selesai beri(.) pada nama'); writeln; j:=0; write('Nama : '); readln (nm); while nm <> '.' do begin j:=j+1; nama[j]:=nm; write('Alamat : '); readln(a lamat[j]); writeln; write('Nama : '); readln(nm); end; writeln(' DAFTAR NAMA ALA MAT '); writeln('---------------------------------'); Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 82 writeln('|No| Nama | Alamat |'); writeln('=================================='); for i:=1 to j do writeln('|',i:3,'|',nama[i]:15,'|', alamat[i]:21,'|'); write('---------------------------------'); readln; end. 7.9. Record (Rekaman) Record merupakan salah satu tipe data terstruktur yang ter diri atas sekumpulan variabel data terstruktur. Tipe data tersebut memungkinkan untuk memanipulasi sekumpulan elemen data dengan tipe yang tidak sama, yang seol aholah merupakan satu obyek. Variabel data terstruktur penyusun record disebut f ield (medan). Record sering digunakan dalam program terutama yang berhubungan de ngan file. Misalnya, sebuah record tentang data seseorang, yang terdiri dari nam a, alamat, umur dan pekerjaan. Semua data tersebut dihimpun dalam satu record de ngan nama, alamat, umur dan pekerjaan sebagai field- fieldnya. Bentuk umum : TYP E nama_record = RECORD nama_field_1 : tipe_data_1; nama_field_2 : tipe_data_2; . . .. nama_field_N : tipe_data_N; END; VAR pengenal : nama_record; Contoh : TYPE penanggalan = RECORD Tanggal : 1..31; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 83 Bulan Tahun END; Data = RECORD NomorMhas Nama, Fakultas END; : string[9]; : 1900..2010; : integer; : string[20]; VAR TanggalLahir : Penanggalan; DataMahasiswa : ARRAY [1..20] of Data Tanggal, Bulan, Tahun, NomorMhs, Nama dan Fakultas merupakan field (identifier f ield). Variabel TanggalLahir merupakan variabel bertipe record, yang berisi tiga buah field yaitu Tanggal, Bulan dan Tahun. Sedangakan variabel DataMahasiswa me rupakan variabel array dengan tipe komponennya berupa record yang mengandung 3 b uah field (NomorMhs, Nama dan Fakultas ) Masing- masing record dapat diakses sec ara langsung. Bentuk pengaksesannya adalah sebagai berikut : Nama_Variabel_Record.Nama_Medan Contoh p engaksesan atau pernyataan penugasan yang melibatkan variabel bertipe record : a ) TanggalLahir.Tanggal :=1; Artinya : field Tanggal pada variabel TanggalLahir d iisi sama dengan 1. b) DataMahasiswa[13].Nama :=Bunga Rani; Artinya : field Nama d ari variabel DataMahasiswa pada indeks array sama dengan 13 diisi dengan string Bunga Rani. c) DataMahasiswa[i] := DataMahasiswa[i-1]; Artinya : isi seluruh fiel d dari variabel DataMahasiswa [i] diisi dengan isi field dari DataMahasiswa [i-1 ]. Pernyataan ini sama artinya dengan : Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 84 DataMahasiswa[i].NomorMhs := DataMahasiswa[i-1].NomorMhs; DataMahasiswa[i].Nama := DataMahasiswa[i-1].Nama; DataMahasiswa[i].Fakultas := DataMahasiswa[i-1].Faku ltas; d) NamaMahasiswa := DataMahasiswa[2].Nama; Artinya : isi Nama dari DataMah asiswa[2] disalinkan ke variabel bukanrecord NamaMahasiswa. Contoh 1 : Program P erkalian_Bilangan_Kompleks; (**************************************) (* contoh p enggunaan record *) (* untuk pengolahan bilangan kompleks *) (****************** ********************) Uses Crt; Type BilanganKompleks = RECORD Re, Im : real; EN D; Var Kompleks1, Kompleks2, HasilKali : BilanganKompleks; Begin clrscr; writeln ('Bilangan Kompleks Pertama'); Write('Riil, Imajiner ? '); Readln(Kompleks1.Re, Kompleks1.Im); writeln; writeln('Bilangan Kompleks Kedua'); Write('Riil, Imajine r ? '); Readln(Kompleks2.Re, Kompleks2.Im); writeln; {menghitung perkalian bilan gan HasilKali.Re := Kompleks1.Re * - Kompleks1.Im HasilKali.Im := Kompleks1.Re * + Kompleks1.Im {cetak hasil} writeln; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD kompleks} Kompleks2.Re * Kompleks2.Im; Kompleks2.Im * Kompleks2. Re;

Bahasa Pemrograman Pascal 85 write('Hasil kali 2 bilangan kompleks diatas adalah : '); writeln(Hasilkali.Re:6 :2, '+',HasilKali.Im: 6:2, ' i'); writeln('Bagian Riil = ',HasilKali.Re:6:2); wr iteln('Bagian Imajiner = ',HasilKali.Im:6:2); readln; End. Contoh 2 : Program Rerata_Nilai; (********************************************** *****) (* program untuk membaca nomor, nama dan nilai tes *) (* dari sejumlah si swa, dan untuk menghitung nilai *) (* rata-ratanya serta menampilkan hasil pengo lahan *) (* ke layar penampil yang disusun berdasarkan *) (* nilai rata-rata yan g tertinggi *) (***************************************************) Uses crt; c onst JumlahTes = 5; MaksSiswa = 20; Type RekamanSiswa = Record Nomor : integer; Nama : string[20]; nilai : array[1..jumlahtes] of real; rerata: real; End; Array Siswa = Array[1..MaksSiswa] of RekamanSiswa; Var jumlah : 1..MaksSiswa; i,j : in teger; totalnilai : real; siswa : ArraySiswa; temporer : RekamanSiswa; Begin Clr scr; {pemasukan data} write('Jumlah data : '); readln(jumlah); writeln; for i:=1 to jumlah do Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 86 begin write('Nomor siswa : '); Readln(siswa[i].nomor); write('Nama siswa : '); R eadln(siswa[i].nama); write('Nilai : '); for j := 1 to JumlahTes do begin write( j:2,'. '); read(siswa[i].nilai[j]); end; writeln; writeln; end; {menghitung rata -rata nilai tes masing-masing siswa} for i:=1 to jumlah do begin totalnilai :=0; for j:=1 to jumlahtes do totalnilai := totalnilai + siswa[i].nilai[j]; siswa[i] .rerata := totalnilai / jumlahtes; end; {mengurutkan data berdasar nilai rata-ra ta yang tinggi} for i:=i to jumlah-1 do for j:=i+1 to jumlah do if siswa[i].rera ta < siswa[j].rerata then begin temporer := siswa[i]; siswa[i] := siswa[j]; sisw a[j] := temporer; end; {mencetak hasil} writeln; writeln('====================== ================='); writeln('Nomer Nama Nilai'); writeln('Siswa Siswa rata-rata '); writeln('======================================='); for i:= 1 to jumlah do w riteln(siswa[i].nomor:5,siswa[i].nama:20, siswa[i].rerata:11:1); writeln('====== ================================='); readln; readln; end. Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal 87 Contoh 3 : Program Rekaman; uses crt; type krs = record nama_mhs : string[20]; n o_mhs : integer; kodefak : string[5]; end; var datakrs : array[1..100] of krs; i ,jum_mhs,norek : integer; jawab : char; begin clrscr; writeln('Isi rekaman berik ut : ! '); write('Ada berapa cacah rekaman ? '); readln(jum_mhs); writeln; for i :=1 to jum_mhs do begin write('Nama Mahasiswa : '); readln(datakrs[i].nama_mhs); write('Nomor Mahasiswa : '); readln(datakrs[i].no_mhs); write('Kode Fakultas : '); readln(datakrs[i].kodefak); writeln; end; jawab:='y'; while(jawab='Y') or (j awab='y') do begin write('Menampilkan rekaman ke berapa : '); readln(norek); wri teln; writeln('Nama Mahasiswa : ',datakrs[norek].nama_mhs); writeln('Nomor Mahas iswa : ',datakrs[norek].no_mhs); writeln('Kode Fakultas : ',datakrs[norek].kodef ak); writeln; write('Menampilkan lagi ? (Y/N)'); readln(jawab); end; end. Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Anda mungkin juga menyukai