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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

misalnya D[1].masing indeks-array[1. Contoh lain : X:=D[1]. Untuk menyimpan suatu nilai ke dalam lokasi penyimpanan.. Ciri dari tipe array ini. Diktat Dasar Komputer dan Pemrograman T.. dengan i merupakan indeks-array dan nilai adalah bilangan yang hendak disimpan di D[i]. Contoh array dengan tipekomponen berbentuk array : TYPE Matriks2D = ARRAY [1.3] OF ARRAY [1. Elektro FTI UAD . dapat dilakukan dengan instruksi dengan instruksi D[i] := nilai. memberikan nilai dari D[1] ke variabel X. Untuk mengambil isi array D. Jadi masing. dan D[3]. yaitu lokasi dari D[1].3] dari D memiliki lokasi penyimpanan tersendiri. dapat digunakan instruksi : Writeln(D[1]). yang akan menampilkan nilai D[1] pada layar. yakni mempunyai tipe.5] OF integer. Pendeklarasian seperti di atas menginstruksikan kepada compiler supaya menyediakan 3 lokasi memori untuk menyimpan data integer dari variabel D. Array Multidimensi Yang termasuk dalam array multidimensi yaitu array yang memiliki lebih dari satu dimensi.3] OF integer.indeks lebih dari satu atau tipe-komponen berupa array yang lain.. setelah pengeksekusian pernyataan. Sebagai contoh : D[1]:=320. D[2]. D[1] bernilai 320.. VAR D : DaftarNilai.Bahasa Pemrograman Pascal 76 TYPE DaftarNilai = 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. Matriks3D = ARRAY [1. dengan tipe elemen yaitu char.Bahasa Pemrograman Pascal 77 Matriks3D = ARRAY [1.... Tipe seperti Matriks2D dinamakan array berdimensi dua.masing elemen terdiri dari 5 elemen.1.. j] Diktat Dasar Komputer dan Pemrograman T. Bentuk penulisan yang lain : TYPE Matriks2D = ARRAY [1.1.3] [1. Penggambaran array berdimensi dua...5] OF char.3] [1. Matrik2D mempunyai 3 x 5 elemen. Dengan kata lain.3] OF ARRAY [1. Secara umum dapat dituliskan sebagai berikut : X[ i .5] OF char... indeks-array kedua untuk menentukan kolom.5] OF integer.3 . Indeks-array pertama untuk menunjuk baris ..1. Matrik3D merupakan tipe array yang mengandung 2 x 3 x 5 elemen. Matriks3D = ARRAY [1.. Matrik2D mengandung 3 elemen.2] [1.2] OF ARRAY [1.5] OF integer. misalnya untuk variabel yang dideklarasikan : VAR X : Matriks2D .3 . Bentuk seperti Matrik2D dan Matrik3D dapat disederhanakan menjadi : TYPE Matriks2D = ARRAY [1. dengan masing.2 . Sedangkan bentuk seperti Matriks3D dinamakan array berdimensi tiga.5] OF char.. Tipe dari elemen integer.. Elektro FTI UAD ..

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful