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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful