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

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

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

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

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

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

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

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

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

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

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

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

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

<Bagian Deklarasi> Begin <Bagian Pernyataan> End.z : real.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. Function : kata cadangan Pascal yang memberikan tanda bahwa deklarasi function dimulai. Var p:real.n-1. Tipe hasil : tipe data dari nilai fungsi Contoh 1 : Program Pangkat_Rekursif. Bentuk umum suatu fungsi: FUNCTION <Nama> (<Daftar parameter formal>) : <Tipe hasil>. n:integer. Nama : nama fungsi Daftar parameter formal : nama parameter yang akan dioperasikan di dalam fungsi. b : integer. Var a. dimana. Elektro FTI UAD . Uses crt. Procedure pangkat(x:real. var y:real). end Diktat Dasar Komputer dan Pemrograman T.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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