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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful