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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful