Bahasa Pemrograman Pascal

BAB VII BAHASA PEMROGRAMAN PASCAL

7.1. Flow Chart (Diagram Alir) Pada pembuatan suatu program diperlukan perencaaan tentang urutan proses yang secara logis harus benar. Prencanaan dalam suatu program pada umumnya meliputi hubungan antara input, proses dan output. Gambaran yang menyatakan hal tersebut dinamakan flow chart (diagram alir). Untuk membuat suatu flow chart biasanya dipergunakan simbol-simbol yang sesuai kondisi yang terjadi. Simbol-simbol atau tanda yang dipakai dalam suatu flow chart untuk pembuatan 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 program bisa tidak dituliskan. Bagian deklarasi berisi konstanta dan variabel yang akan 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; Write('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 sendiri. Aturan penulisan program Pascal adalah sebagai berikut; 1. Program Pascal boleh ditulis mulai kolom berapa saja dan diakhiri pada kolom berapa saja 2. Setiap statemen diakhiri dengan ; (titik koma) 3. Beberapa statemen boleh ditulis sekaligus di dalam satu baris Diktat Dasar Komputer dan Pemrograman T. Elektro FTI 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 bila 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 : ungkapan boolen yang menghasilkan nilai benar atau salah statemen 1, statemen 2 : pernyataan-pernyataan tunggal/majemuk. Dalam Pascal, pernyataan majemuk adalah kumpulan 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 pernyataan IF yang lain dalam pernyataan IF), ELSE selalu berpasangan dengan dengan IF yang terletak sebelum dan yang paling dekat dengan ELSE tersebut, serta terletak dalam blok pernyataan yang sama. Contoh 1 : Program untuk mencari akar persamaan kuadrat di bawah ini Program PersamaanKuadrat; uses crt; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

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

………. Pernyataan CASE …. (titik koma) begitu pula baris pernyataan sebelum ELSE. dalam artian boleh Diktat Dasar Komputer dan Pemrograman T.. OF …. Pernyataan CASE …. char... Pernyataan ELSE tidak diakhri dengan . Label n : Statemen n END.. 7. Elektro FTI UAD . Digunakan untuk pengambilan keputusan jika terdapat lebih dari dua alternatif jawaban yang tersedia. OF ….. Bentuk umum : CASE ungkapan OF Label 1 : Statemen 1 Label 2 : Statemen 1 ………. Perlu diketahui. ELSE dalam pernyataan CASE …. Of …. boleh diikuti ELSE. Percabangan II : Case …. maka dikerjakan statemen1. boolean atau tipe terbilang (kecuali real). Hanya bersifat pilihan. ………. jika bernilai label 2 akan dikerjakan statemen 2 dan seterusnya.4. OF …. 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. dimana : ungkapan : dapat berupa sembarang ungkapan yang memberikan hasil integer.Bahasa Pemrograman Pascal 60 3.

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

readln(menit). '2' : begin write('kaki= ').' meter'). end. readln. Elektro FTI UAD . jam:=menit/60. readln(kaki). end. Do… Salah satu ciri bahasa pemrograman adalah adanya perintah-perintah yang harus dikerjakan berulang. meter:=0. '3' : begin write('Derajat Fahrenheit = ')..jam:4:1.Celcius:4 :1.Bahasa Pemrograman Pascal 62 case pilihan of '1' : begin write('menit= '). Downto .' jam').ulang. yaitu: FOR … TO … DO… dan FOR … DOWNTO … DO… Bentuk umum : FOR pengubah:=ungkapan1 TO ungkapan2 DO Statemen.meter:4:1. else writeln('Tidak melakukan konversi'). Diktat Dasar Komputer dan Pemrograman T.' Celcius').3048*kaki. end. Dalam bahasa Pascal ada beberapa perintah untuk membuat kalang. celcius:=5/9*(fahrenheit-32). KalanG I : For … To … Do… dan For .. readln. readln. writeln('nilai ini sama dengan '. writeln('nilai ini sama dengan '. dan FOR pengubah:=ungkapan1 DOWNTO ungkapan2 DO Statemen. readln(fahrenheit).. end. end. Pengulangan ini sering disebut dengan kalang. writeln('nilai ini sama dengan '.5.. 7.

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

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

Diktat Dasar Komputer dan Pemrograman T. end.Bahasa Pemrograman Pascal 65 Suku ke-1 merupakan penjumlahan bilangan Fibonacci suku ke-(i-1) dan suku ke(i-2).2 = '. yang bentuk umumnya adalah sebagai berikut : WHILE kondisi DO Statemen dimana.. f1:=f. writeln. dengan bilangan pada suku pertama dan suku kedua didefinisikan sama dengan satu. 7. f1 :=1. Selain membuat kalang dengan FOR…. readln(n). f2:=f1.1 = '. begin clrscr. writeln('Ingin mencetak bilangan Fibonacci'). readln.i:2.…DO.f.6. kondisi : adalah ungkapan boolean yang digunakan sebagai syarat agar statemen dikerjakan berulang kali statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan diproses ulang.1).f1.… DOWNTO … DO … ada bentuk kalang yang lebih umum yaitu : WHILE … DO ….. write('sampai suku ke-'). f2:=1..TO.1).'. end. for i:=3 to n do begin f:=f1+f2. Until …. writeln('Suku ke.' = '.… dan FOR. writeln('Suku ke.n.… Do…. Kalang II : While . Elektro FTI UAD . writeln('Suku ke. dan Repeat . Var i. Uses crt.F:3).f2 : integer.. Program Fibonacci.

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

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

i:=1.eksponen:10:6). Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD . readln(x). Uses crt. write('Masukkan banyaknya suku(n): '). readln(n).0.Bahasa Pemrograman Pascal 68 n. eksponen:=eksponen+suku.0. n : integer. repeat n:=n+1. total2. mean. begin clrscr. eksponen:=1. end. writeln. writeln('Nilai fungsi = '. begin clrscr. suku:=1. dan untuk mengakhiri masukkan angka -1'). total2:=0. readln(bilangan).0.i : integer. while i <= n do begin suku:=suku*x/i. write('Masukan nilai x : '). total1:=0. total1:=total1+bilangan. Contoh 4 : Program untuk menghitung mean dan standar deviasi dari sejumlah data masukkan non negatif dan berhenti apabila masukkan data adalah -1. total1. end. n:=0.exp(x):10:6). std : real.0. Var bilangan. readln. Program Mean_StdDev. total2:=total2+bilangan*bilangan. writeln('Nilai deret = '. i:=i+1. Const neg=-1. writeln('Masukkan data non negatif.

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

maka nilai parameter aktual juga berubah. Elektro FTI UAD . Parameter perubah. Fungsi mempunyai kegunaan yang hampir sama dengan procedure dengan sedikit perbedaan. caca parameter dan tipe data setiap parameternya harus sesuai dengan parameter formal. selain digunakan untuk memanggil fungsi tersebut. tidak boleh berupa konstanta atau ungkapan. Daftar parameter aktual : berisi nama-nama parameter yang dioperasikan pada procedure yang dipanggil. sehingga dapat digunakan sebagai bagian dari ungkapan.Bahasa Pemrograman Pascal 70 1. kemudian dipanggil pada program utama. Urutan posisi. Bentuk umum pemanggilan procedure : Nama_procedure (daftar parameter aktual). yaitu : • • Fungsi hanya memberikan satu hasil Nama fungsi. Dalam procedure maupun program utamanya terdapat bagian deklarasi varibel. yaitu variabel yang hanya bisa diakses oleh bagian program dimana variabel tersebut dideklarasikan. yang mengambil nilai dari parameter aktual dan jika nilainya berubah. Parameter nilai. Parameter-parameter aktual ini harus dideklarasikan pada program utama. Variabel yang dideklarasikan pada program utama disebut variabel global. juga dianggap sebagai satu peubah. fungsi selalu akan menghitung satu nilai perubah (dalam hal ini nilai fungsi) Dalam fungsi tidak ada istilah parameter perubah. Diktat Dasar Komputer dan Pemrograman T. • • Jika fungsi digunakan. Nama procedure : harus sesuai dengan nama procedure yang digunakan pada waktu dideklarasikan. Sebuah procedure bisa memanggil procedure lain yang telah didefinikan sebelumnya. meskipun nilai parameter formal ini berubah. yaitu variabel yang dapat diakses pada semua bagian program. dimana. 2. Sedangkan pada procedure dideklarasikan variabel lokal. semua parameter dianggap sebagai parameter nilai. yang hanya mengambil nilai dari parameter aktual yang sesuai tanpa mengubah nilainya.

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

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

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

setiap elemen dalam array dapat diakses secara langsung. kata baku OF dan kemudian tipe-komponen. Pendefinisian tipe array terdiri dari kata baku ARRAY diikuti dengan tipeindeks yang diletakkan dalam tanda kurung siku. tipe dari tipe. Benteng. Jika terdapat lebih dari satu tipeindeks. Jadi dapat berupa tipe cahr.. Contoh deklarasi tipe array : TYPE Buahcatur = (Pion.. Raja). PerdanaMenteri. Masing.….. bagi). Diktat Dasar Komputer dan Pemrograman T. minus.1.tipe-indeks-n] OF tipe-komponen Jumlah tipe.Bahasa Pemrograman Pascal 74 7.masing tipe dari tipe-indeks dapat berbeda.indeks dapat terdiri lebih dari satu. Gajah.indeks dapat berupa sembarang tipe ordinalm kecuali integer. maka tipe-indeks yang satu dengan lainnya dipisahkan dengan tanda koma. ARRAY[tipe-indeks-1. boolean atau tipe skalar buatan dan juga tipe subrange.6] of BuahCatur Pada contoh di atas. Hitam). Tipeindeks menyatakan tipe nilai dari indeks array. dengan masing. Elektro FTI UAD .8. Contoh yang lain : TYPE Operator = (plus. Tipe-komponen menyatakan tipe dari elemen yang terdapat dalam array dan dapat berupa sembarang tipe. yang menggunakan identifier yang sama. dengan tipe pertama berupa skalar buatan dan tipe kedua berupa subrange. yang biasa dinamakan indeks array. kali. Perlu diketahui. Warna=(Putih. Melalui indeks array ini.masing elemen memiliki indeks tersendiri. Tipe Data Array Array merupakan tipe data berstruktur yang berisi sekumpulan komponen / elemen dengan tipe sama. Pilihan = ARRAY [warna. Pilihan mengandung dua tipe indeks.

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

yaitu lokasi dari D[1].5] OF integer. Contoh lain : X:=D[1]. dapat digunakan instruksi : Writeln(D[1]). setelah pengeksekusian pernyataan.. Contoh array dengan tipekomponen berbentuk array : TYPE Matriks2D = ARRAY [1. dan D[3]. dapat dilakukan dengan instruksi dengan instruksi D[i] := nilai. yakni mempunyai tipe. dengan i merupakan indeks-array dan nilai adalah bilangan yang hendak disimpan di D[i]. Jadi masing. D[1] bernilai 320. misalnya D[1].. Untuk mengambil isi array D.Bahasa Pemrograman Pascal 76 TYPE DaftarNilai = ARRAY[1. VAR D : DaftarNilai. Sebagai contoh : D[1]:=320. Ciri dari tipe array ini. D[2].indeks lebih dari satu atau tipe-komponen berupa array yang lain.3] OF integer. Array Multidimensi Yang termasuk dalam array multidimensi yaitu array yang memiliki lebih dari satu dimensi... Diktat Dasar Komputer dan Pemrograman T. memberikan nilai dari D[1] ke variabel X. Elektro FTI UAD .3] dari D memiliki lokasi penyimpanan tersendiri.masing indeks-array[1. yang akan menampilkan nilai D[1] pada layar. Untuk menyimpan suatu nilai ke dalam lokasi penyimpanan. Pendeklarasian seperti di atas menginstruksikan kepada compiler supaya menyediakan 3 lokasi memori untuk menyimpan data integer dari variabel D.3] OF ARRAY [1.

. Bentuk seperti Matrik2D dan Matrik3D dapat disederhanakan menjadi : TYPE Matriks2D = ARRAY [1. Matrik2D mengandung 3 elemen.. Tipe seperti Matriks2D dinamakan array berdimensi dua. j] Diktat Dasar Komputer dan Pemrograman T..3] [1.masing elemen terdiri dari 5 elemen.. misalnya untuk variabel yang dideklarasikan : VAR X : Matriks2D . Matrik2D mempunyai 3 x 5 elemen. Penggambaran array berdimensi dua.1...5] OF char. 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.Bahasa Pemrograman Pascal 77 Matriks3D = ARRAY [1.2 .. Indeks-array pertama untuk menunjuk baris . dengan masing. Bentuk penulisan yang lain : TYPE Matriks2D = ARRAY [1.1. Matriks3D = ARRAY [1. dengan tipe elemen yaitu char.2] [1.3] OF ARRAY [1. Matriks3D = ARRAY [1..2] OF ARRAY [1.5] OF char... Dengan kata lain.5] OF integer. Matrik3D merupakan tipe array yang mengandung 2 x 3 x 5 elemen.. Sedangkan bentuk seperti Matriks3D dinamakan array berdimensi tiga. Secara umum dapat dituliskan sebagai berikut : X[ i .5] OF char..3 .5] OF integer.3 . Tipe dari elemen integer.1.. Elektro FTI UAD . indeks-array kedua untuk menentukan kolom.3] [1.

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

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

j. {baca data. writeln.10.'. Diktat Dasar Komputer dan Pemrograman T. data dibaca elemen baris per baris} write('Banyak baris (maks = 10) : '). var i. data[i]:=data[j].data[i]). readln(baris). write('Banyak kolom (maks = 10) : ').10] of real. '. end. {cetak hasil} writeln. data[j]:=temp. end.i. writeln('Data setelah diurutkan : '). readln(kolom).') = '). writeln. begin clrscr. end. x : array[1.. kolom : integer. baris. end. readln. Elektro FTI UAD . for i:=1 to n do writeln(i:2. Contoh 3 : Program Baca_dan_Cetak_Matriks. for i:=1 to baris do begin for j:=1 to kolom do begin write('elemen( '.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].1.j]).'.. uses crt. writeln.j. readln(x[i.'.

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

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

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

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

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

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

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