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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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