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

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

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

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

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

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

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

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

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

var eksponen.. Uses crt. write('n = ? ').. + n').. until pencacah = n+1. Contoh 3 : Program berikut adalah program untuk menghitung deret eksponensial dan membandingkan dengan fungsi pustaka EXP dengan kalang WHILE …. x... end. Writeln('Menghitung jumlah 1 + 2 + 3 + .suku : real. Program Jumlah_Deret. begin clrscr. pencacah:=pencacah + 1.. uses crt... Elektro FTI UAD . Dari contoh 1 dengan kalang REPEAT …. DO …. Diktat Dasar Komputer dan Pemrograman T... writeln. writeln('Jumlah deret = '. readln.. repeat begin jumlah:=jumlah+pencacah. Deret eksponensial adalah : ex = ∑ xn x2 x3 x4 xn = 1 + x + + + + .. pencacah:=0.jumlah). pencacah : integer. + + ..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. Var n. end. readln(n). UNTIL …. jumlah. jumlah:=0.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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