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

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

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

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

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

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

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

Selain membuat kalang dengan FOR….i:2. f2:=f1. writeln. f2:=1.… DOWNTO … DO … ada bentuk kalang yang lebih umum yaitu : WHILE … DO ….' = '.2 = '. writeln('Suku ke. begin clrscr..1 = '.f1.TO. dan Repeat .…DO. f1:=f. f1 :=1..1). end. writeln('Ingin mencetak bilangan Fibonacci'). Program Fibonacci. Elektro FTI UAD .… Do…. Var i.'. 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). end.F:3).6..n.f2 : integer. for i:=3 to n do begin f:=f1+f2. writeln('Suku ke. yang bentuk umumnya adalah sebagai berikut : WHILE kondisi DO Statemen dimana. 7. Diktat Dasar Komputer dan Pemrograman T. write('sampai suku ke-').f.… dan FOR. Uses crt. Until …. readln(n). Kalang II : While . writeln('Suku ke. dengan bilangan pada suku pertama dan suku kedua didefinisikan sama dengan satu. readln.1)..

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful