Bahasa Pemrograman Pascal

BAB VII BAHASA PEMROGRAMAN PASCAL

7.1. Flow Chart (Diagram Alir) Pada pembuatan suatu program diperlukan perencaaan tentang urutan proses yang secara logis harus benar. Prencanaan dalam suatu program pada umumnya meliputi hubungan antara input, proses dan output. Gambaran yang menyatakan hal tersebut dinamakan flow chart (diagram alir). Untuk membuat suatu flow chart biasanya dipergunakan simbol-simbol yang sesuai kondisi yang terjadi. Simbol-simbol atau tanda yang dipakai dalam suatu flow chart untuk pembuatan program komputer telah ditetapkan sebagai berikut :

Terminal

Input / Output

Proses

Keputusan

Predefined Process

Konektor

Konektor Pindah halaman

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

56

Bahasa Pemrograman Pascal

57

Dengan adanya simbol atau tanda ini dimaksudkan untuk memudahkan dalam memahami alur atau jalannya proses yang ada pada suatu program.

7.2. Bahasa Pemrograman Pascal Struktur program Pascal dapat dikelompokkan dalam tiga bagian, yaitu: 1. Kepala Program 2. Bagian Deklarasi 3. Bagian Pernyataan/Statemen Kepala program terdiri dari kata program dan nama program. Kepala program bisa tidak dituliskan. Bagian deklarasi berisi konstanta dan variabel yang akan dipakai. Bagian statemen berisi perintah-perintah yang harus harus dikerjakan dan dimengerti oleh bahasa Pascal.

Program Lingkaran;

Kepala Program

Uses crt; Const pi=3.14159; Var jarijari, keliling, luas : real; Begin Clrscr; Write('Masukkan jari-jari : '); Readln(jarijari); Keliling := 2*pi*jarijari; Luas := pi*sqr(jarijari); Writeln('Jari-jari =',jarijari:5:2); Writeln('Keliling =',keliling:6:3); Writeln('Luas =',luas:6:3); Readln; End.

Bagian Deklarasi

Bagian Pernyataan

Suatu bahasa program komputer biasanya mempunyai aturan penulisan programnya sendiri. Aturan penulisan program Pascal adalah sebagai berikut; 1. Program Pascal boleh ditulis mulai kolom berapa saja dan diakhiri pada kolom berapa saja 2. Setiap statemen diakhiri dengan ; (titik koma) 3. Beberapa statemen boleh ditulis sekaligus di dalam satu baris Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Bahasa Pemrograman Pascal

58

7.3. Percabangan I : If ….. Then …. Else ….. Pernyataan percabangan/kendali/bersyarat merupakan pernyataan yang akan mengeksekusi suatu pernyataan yang mengikutinya bila suatu persyaratan dipenuhi. Salah satu pernyataan kendali untuk pengambilan keputusan dalam Pascal adalah pernyataan If … Then … Else …

Bentuk umum : IF kondisi THEN Statemen 1 ELSE Statemen 2 dimana : kondisi : ungkapan boolen yang menghasilkan nilai benar atau salah statemen 1, statemen 2 : pernyataan-pernyataan tunggal/majemuk. Dalam Pascal, pernyataan majemuk adalah kumpulan dari beberapa pernyataan yang diawali dengan kata baku BEGIN dan diakhiri oleh kata baku END, yang dianggap sebagai sebuah pernyataan tunggal. Maksudnya : bila kondisi bernilai TRUE (benar) maka akan dikerjakan statemen 1 dan statemen 2 dilewati, sedangkan jika kondisi bernilai FALSE (salah) maka akan dikerjakan statemen 2 dan statemen 1 dilewati. Untuk pernyataan IF yang berkalang (ada pernyataan IF yang lain dalam pernyataan IF), ELSE selalu berpasangan dengan dengan IF yang terletak sebelum dan yang paling dekat dengan ELSE tersebut, serta terletak dalam blok pernyataan yang sama. Contoh 1 : Program untuk mencari akar persamaan kuadrat di bawah ini Program PersamaanKuadrat; uses crt; Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful