• Tidak ada hasil yang ditemukan

Bahasa Pemrograman Pascal

N/A
N/A
Protected

Academic year: 2017

Membagikan "Bahasa Pemrograman Pascal"

Copied!
32
0
0

Teks penuh

(1)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD 56 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

(2)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

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;

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.

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 Kepala Program

Bagian Deklarasi

(3)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD 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

(4)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD var a,b,c,d,x1,x2 :real;

begin clrscr;

writeln('Menghitung akar-akar persamaan kuadrat'); writeln('Nilai a,b,c dimasukkan dengan jeda spasi'); write('Masukkan nilai a,b,c:');

readln(a,b,c); d:=b*b-4*a*c;

if d<0 then writeln('tidak ada akar real') else

begin

x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); writeln('x1 =',x1:6:2); writeln('x2 =',x2:6:2); end;

readln; end.

Contoh Hasil Eksekusi :

- jika d = 0

Menghitung akar-akar persamaan kuadrat

Nilai a,b,c dimasukkan dengan jeda spasi

Masukkan nilai a,b,c:1 4 2

x1 = -0.59

x2 = -3.41

- jika d < 0 :

Menghitung akar-akar persamaan kuadrat

Nilai a,b,c dimasukkan dengan jeda spasi

Masukkan nilai a,b,c:1 2 6

tidak ada akar real

Catatan :

1. Di dalam IF boleh ada IF (pernyataan IF yang berkalang)

(5)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

3. Pernyataan ELSE tidak diakhri dengan ; (titik koma) begitu pula baris pernyataan sebelum ELSE.

7.4. Percabangan II : Case ….. Of …..

Pernyataan CASE …. OF …. Digunakan untuk pengambilan keputusan jika terdapat lebih dari dua alternatif jawaban yang tersedia.

Bentuk umum :

CASE ungkapan OF Label 1 : Statemen 1 Label 2 : Statemen 1 ………..

……….. ………..

Label n : Statemen n END;

dimana :

ungkapan : dapat berupa sembarang ungkapan yang memberikan hasil integer, char, boolean atau tipe terbilang (kecuali real).

Label : konstanta yang mempunyai tipe yang sama dengan ungkapan Statemen : pernyataan yang mengikuti berupa rangkaian instruksi yang

harus dikerjakan jika nilai konstanta dalam label sama dengan nilai variabel

Maksudnya jika ungkapan bernilai label 1, maka dikerjakan statemen1, jika bernilai label 2 akan dikerjakan statemen 2 dan seterusnya.

(6)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

disertakan boleh tidak. Jika ELSE disertakan, pernyataan yang mengikuti ELSE akan dieksekusi hanya bila nilai dari syarat-pemilih tidak ada dalam semua label.

Contoh 1 :

Program nilai_ujian; uses crt;

var nama : string[25]; nim : string[8]; nilai: integer; begin

clrscr;

write('Masukkan nama mahasiswa : '); readln(nama);

write('Masukkan nomor induk mahasiswa : '); readln(nim);

write('Masukkan nilai ujian : '); readln(nilai);

writeln;

case nilai div 10 of

10,9 : writeln('Nilai huruf = A'); 8 : writeln('Nilai huruf = B'); 7 : writeln('Nilai huruf = C'); 6 : writeln('Nilai huruf = D');

5,4,3,2,1,0 : writeln('Nilai huruf = E'); end;

readln; end.

Contoh 2 :

Program konversi; uses crt;

var

menit, jam, kaki, meter, fahrenheit, celcius : real; pilihan :char;

begin clrscr;

writeln('Pilihan konversi:'); writeln('1) Menit ke jam'); writeln('2) Kaki ke meter');

writeln('3) Derajat Fahrenheit ke Celcius'); write('pilihan ? ');

(7)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD case pilihan of

'1' : begin

write('menit= '); readln(menit); jam:=menit/60;

writeln('nilai ini sama dengan ',jam:4:1,' jam');

readln; end;

'2' : begin

write('kaki= '); readln(kaki);

meter:=0.3048*kaki;

writeln('nilai ini sama dengan ',meter:4:1,' meter');

readln; end;

'3' : begin

write('Derajat Fahrenheit = '); readln(fahrenheit);

celcius:=5/9*(fahrenheit-32);

writeln('nilai ini sama dengan ',Celcius:4 :1,' Celcius');

readln; end;

else writeln('Tidak melakukan konversi'); end;

end.

7.5. KalanG I : For … To … Do… dan For ... Downto ... Do…

Salah satu ciri bahasa pemrograman adalah adanya perintah-perintah yang harus dikerjakan berulang- ulang. Pengulangan ini sering disebut dengan kalang. Dalam bahasa Pascal ada beberapa perintah untuk membuat kalang, yaitu:

FOR … TO … DO… dan FOR … DOWNTO … DO… Bentuk umum :

FOR pengubah:=ungkapan1 TO ungkapan2 DO Statemen;

dan

(8)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD dimana,

pengubah : suatu pengubah yang disebut pengubah kendali, dapat berupa pengenal dari tipe integer, char, boolean atau tipe terbilang. ungkapan1 : nilai awal pengubah

ungkapan2 : 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; Uses crt;

Var jumlah, jmlkuadrat,i,n : integer; begin

clrscr;

Write('Banyak n bilangan yang akan diproses'); readln(n);

jumlah:=0; jmlkuadrat:=0; for i:=1 to n do begin

jumlah:=jumlah+i;

jmlkuadrat:=jmlkuadrat + i*i;

writeln('Jumlah ',i:2,' bilangan pertama = ',jumlah:5);

writeln('Jumlah Kuadrat ',i:2,' bilangan pertama = ',jmlkuadrat:5);

end; readln; end.

Contoh 2 : Mencetak abjad dengan urutan terbalik dari z…a

Program tulisabjad; Uses crt;

(9)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Program berikut adalah program untuk menghitung deret eksponensial dan membandingkan dengan fungsi pustaka EXP.

Deret eksponensial adalah :

...

var eksponen, x,suku : real; n,i : integer; begin

clrscr;

write('Masukkan banyaknya suku(n): '); readln(n);

writeln('Nilai deret = ',eksponen:10:6); writeln('Nilai fungsi = ',exp(x):10:6); readln;

end.

Contoh 4 :

(10)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Suku 1 merupakan penjumlahan bilangan Fibonacci suku (i-1) dan suku ke-(i-2), dengan bilangan pada suku pertama dan suku kedua didefinisikan sama dengan satu.

Program Fibonacci; Uses crt;

Var i,n,f,f1,f2 : integer; begin

clrscr;

writeln('Ingin mencetak bilangan Fibonacci'); write('sampai suku ke-');

readln(n); writeln;

writeln('Suku ke- 1 = ',1); writeln('Suku ke- 2 = ',1); f1 :=1; f2:=1;

for i:=3 to n do begin

f:=f1+f2;

writeln('Suku ke- ',i:2,' = ',F:3); f2:=f1; f1:=f;

end; readln; end.

7.6. Kalang II : While .… Do…. dan Repeat .... Until ….

Selain membuat kalang dengan FOR….TO.…DO.… dan FOR..… DOWNTO … DO … ada bentuk kalang yang lebih umum yaitu : WHILE … DO …. yang bentuk umumnya adalah sebagai berikut :

WHILE kondisi DO Statemen

dimana,

kondisi : adalah ungkapan boolean yang digunakan sebagai syarat agar statemen dikerjakan berulang kali

(11)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD Contoh 1 : Jumlah deret n bilangan asli pertama

Program Jumlah_Deret; Uses crt;

Var n, jumlah, pencacah : integer; begin

clrscr;

Writeln('Menghitung jumlah 1 + 2 + 3 + ... + n'); write('n = ? ');

readln(n); pencacah:=1; jumlah:=0;

while pencacah <= n do begin

jumlah:=jumlah+pencacah; pencacah:=pencacah + 1; end;

writeln;

writeln('Jumlah deret = ',jumlah:5); readln;

end.

Selain membuat kalang dengan 3 cara di atas masih ada cara lain untuk membuat kalang, yaitu dengan perintah REPEAT …. UNTIL yang bentuk umumnya adalah sebagai berikut :

REPEAT ………… Statemen …………. UNTIL kondisi

dimana,

statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan diproses ulang.

(12)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

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 …. Dari contoh 1 dengan kalang REPEAT …. UNTIL …..

Program Jumlah_Deret; Uses crt;

Var n, jumlah, pencacah : integer; begin

Contoh 3 : Program berikut adalah program untuk menghitung deret eksponensial dan membandingkan dengan fungsi pustaka EXP dengan kalang WHILE …. DO ….

Deret eksponensial adalah :

...

(13)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD n,i : integer;

begin

clrscr;

write('Masukkan banyaknya suku(n): '); readln(n);

write('Masukan nilai x : '); readln(x);

eksponen:=1.0; suku:=1.0; i:=1;

while i <= n do begin

suku:=suku*x/i;

eksponen:=eksponen+suku; i:=i+1;

end; writeln;

writeln('Nilai deret = ',eksponen:10:6); writeln('Nilai fungsi = ',exp(x):10:6); readln;

end.

Contoh 4 :

Program untuk menghitung mean dan standar deviasi dari sejumlah data masukkan non negatif dan berhenti apabila masukkan data adalah -1.

Program Mean_StdDev; Uses crt;

Const neg=-1;

Var bilangan, total1, total2, mean, std : real; n : integer;

begin

clrscr;

total1:=0.0; total2:=0.0; n:=0;

writeln('Masukkan data non negatif, dan untuk mengakhiri masukkan angka -1');

readln(bilangan); repeat

n:=n+1;

total1:=total1+bilangan;

(14)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

writeln('Masukkan data non negatif, dan untuk mengakhiri masukkan angka -1');

readln(bilangan); until bilangan=neg; mean:= total1/n;

std:=sqrt(total2/(n-1)-sqr(total1)/(n*(n-1))); writeln('Mean = ',mean:7:2);

writeln('Deviasi Standar = ',std:8:3); readln;

end.

7.7. Procedure dan Fungsi

Procedure merupakan bentuk subprogram dalam bahasa Pascal, yaitu sekelompok statemen yang bisa menjadi bagian dari program / sub program. Procedure dipakai untuk mengelompokkan bagian program, yang dapat dikerjakan berkali-kali dengan memanggil namanya saja, sehingga menyederhanakan struktur program dan mengurangi pengulangan penulisan bagian-baigan program berkali-kali.

Deklarasi procedure terletak pada bagian deklarasi pada program yang menggunakannya, dibawah deklarasi VAR pada program utama.

Bentuk umum :

PROCEDURE <nama_procedure> (<daftar parameter formal>); <Bagian deklarasi variabel lokal>

Begin

<Bagian Pernyataan> End;

dimana,

pemberian nama procedure : mengikuti aturan perberian nama variabel

daftar parameter formal : bersifat option, boleh ada boleh tidak. Daftar ini hanya untuk mengontrol komunikasi informasi ke dan dari procedure tersebut.

(15)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

1. Parameter perubah, yang mengambil nilai dari parameter aktual dan jika nilainya berubah, maka nilai parameter aktual juga berubah.

2. Parameter nilai, yang hanya mengambil nilai dari parameter aktual yang sesuai tanpa mengubah nilainya, meskipun nilai parameter formal ini berubah.

Dalam procedure maupun program utamanya terdapat bagian deklarasi varibel. Variabel yang dideklarasikan pada program utama disebut variabel global, yaitu variabel yang dapat diakses pada semua bagian program. Sedangkan pada procedure dideklarasikan variabel lokal, yaitu variabel yang hanya bisa diakses oleh bagian program dimana variabel tersebut dideklarasikan.

Sebuah procedure bisa memanggil procedure lain yang telah didefinikan sebelumnya, kemudian dipanggil pada program utama.

Bentuk umum pemanggilan procedure :

Nama_procedure (daftar parameter aktual); dimana,

Nama procedure : harus sesuai dengan nama procedure yang digunakan pada waktu dideklarasikan.

Daftar parameter aktual : berisi nama-nama parameter yang dioperasikan pada procedure yang dipanggil.

Parameter-parameter aktual ini harus dideklarasikan pada program utama, tidak boleh berupa konstanta atau ungkapan. Urutan posisi, caca parameter dan tipe data setiap parameternya harus sesuai dengan parameter formal.

Fungsi mempunyai kegunaan yang hampir sama dengan procedure dengan sedikit perbedaan, yaitu :

• Fungsi hanya memberikan satu hasil

• Nama fungsi, selain digunakan untuk memanggil fungsi tersebut, juga dianggap sebagai satu peubah, sehingga dapat digunakan sebagai bagian dari ungkapan.

• Jika fungsi digunakan, fungsi selalu akan menghitung satu nilai perubah (dalam hal ini nilai fungsi)

(16)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

• Semua parameter diperlukan sebagai masukan pada fungsi tersebut dengan keluarannya adalah nama fungsi yang bertindak sebagai satu perubah.

Bentuk umum suatu fungsi:

FUNCTION <Nama> (<Daftar parameter formal>) : <Tipe hasil>; <Bagian Deklarasi>

Begin

<Bagian Pernyataan> End;

dimana,

Function : kata cadangan Pascal yang memberikan tanda bahwa deklarasi function dimulai.

Nama : nama fungsi

Daftar parameter formal : nama parameter yang akan dioperasikan di dalam fungsi.

Tipe hasil : tipe data dari nilai fungsi

Contoh 1 :

Program Pangkat_Rekursif; Uses crt;

Var a,z : real; b : integer;

Procedure pangkat(x:real; n:integer; var y:real); Var p:real;

Begin

if n=0 then y:=1 else

if n>0 then begin

pangkat(x,n-1,y); y:y*x);

(17)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD else

begin

pangkat(x,n+1,y); y:y/x;

end; end; begin clrscr;

writel('Data A: '); readln(a); writeln; writel('Data B: '); readln(b); writeln; while(a<>0) or (b<>0) do

begin

writeln;

write(a:5:2,' pangkat',b:3'='); pangkat(a,b,z);

write(z:5:2); writeln;

writeln;

write('Data A: '); readln(a); writeln; write('Data B: '); readln(b); writeln; end;

write('Tekan <Enter>') readln;

end.

Contoh 2 :

Program Jumlahan; Uses crt;

Var jum, x : integer;

function jumlah(n:integer):integer; Var i,s : integer;

begin s:=0;

for i:=1 to n do s:=s+i;

jumlah:=s; end;

begin clrscr;

(18)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD jum:=jumlah(x);

writeln;

writeln('jumlah',x,'suku pertama deret hitung = ' ,jum:6);

readln; end.

Contoh 3 :

Program Pangkat_Rekursif2; Uses crt;

Var a : real; b : integer;

function pangkat(x:real; n:integer):real; begin

if n=0 then pangkat:=1 else

if n>0 then pangkat:=pangkat(x,n-1)*x else pangkat:=pangkat(x,n+1)/x; end;

begin clrscr;

write('Data A: '); readln(a); writeln; write('Data B: '); readln(b); writeln; while(a<>0) or (b<>0) do

begin

writeln;

write(a:5:2,' pangkat',b:3,'='); write(pangkat(a,b):5:2);

writeln; writeln;

write('Data A: '); readln(a); writeln; write('Data B: '); readln(b); writeln; end;

write('Tekan <Enter>'); readln;

(19)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD 7.8. Tipe Data Array

Array merupakan tipe data berstruktur yang berisi sekumpulan komponen / elemen dengan tipe sama, yang menggunakan identifier yang sama, dengan masing- masing elemen memiliki indeks tersendiri, yang biasa dinamakan indeks array. Melalui indeks array ini, setiap elemen dalam array dapat diakses secara langsung.

Pendefinisian tipe array terdiri dari kata baku ARRAY diikuti dengan tipe-indeks yang diletakkan dalam tanda kurung siku, kata baku OF dan kemudian tipe-komponen.

ARRAY[tipe-indeks-1,…..,tipe-indeks-n] OF tipe-komponen

Jumlah indeks dapat terdiri lebih dari satu. Jika terdapat lebih dari satu tipe-indeks, maka tipe-indeks yang satu dengan lainnya dipisahkan dengan tanda koma. Masing- masing tipe dari tipe-indeks dapat berbeda. Perlu diketahui, tipe dari tipe- indeks dapat berupa sembarang tipe ordinalm kecuali integer. Jadi dapat berupa tipe cahr, boolean atau tipe skalar buatan dan juga tipe subrange. Tipe-indeks menyatakan tipe nilai dari Tipe-indeks array. Tipe-komponen menyatakan tipe dari elemen yang terdapat dalam array dan dapat berupa sembarang tipe. Contoh deklarasi tipe array :

TYPE

Buahcatur = (Pion, Gajah, Benteng, PerdanaMenteri, Raja); Warna=(Putih, Hitam);

Pilihan = ARRAY [warna,1..6] of BuahCatur

Pada contoh di atas, Pilihan mengandung dua tipe indeks, dengan tipe pertama berupa skalar buatan dan tipe kedua berupa subrange.

Contoh yang lain :

TYPE

(20)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD Nilai = 1..0;

Tanda = ARRAY[operator] of integer; ArrayKar = ARRAY [char] of integer; VAR

Jumlahtanda : tanda; Cacahkarakter : arraykar

Vektor : ARRAY[nilai] of String[15]

Contoh pendefinisian tipe array yang salah : (tipe- indeks berupa integer tidak diperkenankan)

TYPE Nilai = integer;

Daftar = ARRAY[Nilai] OF real;

Array Berdimensi Satu

Array berdimensi satu merupakan array dengan ciri memiliki tipe- indeks hanya sebuah dan tipe-komponen tidak berupa array. Contoh array berdimensi satu :

VAR x : ARRAy [1..8] of real;

Menyatakan bahwa indeks-array dari variabel x dapat berupa 1,2,3,…,8 dan isi array bertipe real. Sedangkan

VAR Huruf : ARRAy [‘A’..”Z’] of integer;

Menyatakan bahwa indeks-array dari variabel Huruf dapat berupa karakter A, B, C, …, Z dan tipe isi array adalah integer. Ukuran Array x sama dengan 8. Ukuran Array Huruf sama dengan 26.

(21)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD TYPE

DaftarNilai = ARRAY[1..3] OF integer; VAR

D : DaftarNilai;

Pendeklarasian seperti di atas menginstruksikan kepada compiler supaya menyediakan 3 lokasi memori untuk menyimpan data integer dari variabel D, yaitu lokasi dari D[1], D[2], dan D[3]. Jadi masing- masing indeks-array[1..3] dari D memiliki lokasi penyimpanan tersendiri. Untuk menyimpan suatu nilai ke dalam lokasi penyimpanan, dapat dilakukan dengan instruksi dengan instruksi D[i] := nilai, dengan i merupakan indeks-array dan nilai adalah bilangan yang hendak disimpan di D[i]. Sebagai contoh :

D[1]:=320;

setelah pengeksekusian pernyataan, D[1] bernilai 320.

Untuk mengambil isi array D, misalnya D[1], dapat digunakan instruksi :

Writeln(D[1]);

yang akan menampilkan nilai D[1] pada layar. Contoh lain :

X:=D[1];

memberikan nilai dari D[1] ke variabel X.

Array Multidimensi

Yang termasuk dalam array multidimensi yaitu array yang memiliki lebih dari satu dimensi. Ciri dari tipe array ini, yakni mempunyai tipe- indeks lebih dari satu atau komponen berupa array yang lain. Contoh array dengan tipe-komponen berbentuk array :

(22)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Matriks3D = ARRAY [1..2] OF ARRAY [1..3] OF ARRAY [1..5] OF char;

Matrik2D mengandung 3 elemen, dengan masing- masing elemen terdiri dari 5 eleme n. Dengan kata lain, Matrik2D mempunyai 3 x 5 elemen. Tipe dari elemen integer. Matrik3D merupakan tipe array yang mengandung 2 x 3 x 5 elemen, dengan tipe elemen yaitu char. Bentuk seperti Matrik2D dan Matrik3D dapat disederhanakan menjadi :

TYPE Matriks2D = ARRAY [1..3 ,1..5] OF integer; Matriks3D = ARRAY [1..2 ,1..3 ,1..5] OF char;

Bentuk penulisan yang lain :

TYPE Matriks2D = ARRAY [1..3] [1..5] OF integer; Matriks3D = ARRAY [1..2] [1..3] [1..5] OF char;

Tipe seperti Matriks2D dinamakan array berdimensi dua. Sedangkan bentuk seperti Matriks3D dinamakan array berdimensi tiga. Penggambaran array berdimensi dua, misalnya untuk variabel yang dideklarasikan :

VAR X : Matriks2D ;

kolom 1 kolom 2 kolom 3 kolom 4 kolom 5

*

Untuk mengakses setiap elemen dari X diperlukan dua buah indeks array. Indeks-array pertama untuk menunjuk baris, indeks-array kedua untuk menentukan kolom. Secara umum dapat dituliskan sebagai berikut :

X[ i , j] Baris 1

Baris 2

(23)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

Yang menyatakan elemen pada baris idan kolom j. Pada diagram, elemen yang ditandai dengan * memiliki identitas X[2,3].

Untuk array berdimensi tiga, identitas dari suatu elemen array ditentukan oleh tiga buah indeks-array. Contoh berikut menunjukkan car membuat isi keseluruhan elemen array X bernilai nol.

for i := 1 to 3 do for j := 1 to 5 do

X [ i , j] := 0;

Proses membuat elemen array X sama dengan nol untuk perintah di atas dimulai dari X[1,1] kemudian X[1,2], X[1,3], X[1,4], X[2,1], X[2,2], X[2,3], X[2,4], X[3,1], X[3,2], X[3,3], X[3,4], X[4,1], X[4,2], X[4,3] dan terakhir X[4,4]

Contoh 1 :

Program deviasi_standar;

{ untuk menghitung nilai rata-rata, } { varians dan deviasi standart }

uses crt;

const maksdata = 25;

type arraydata = array[1..maksdata] of real; var

i, n : integer; data : arraydata;

jumlah, rerata, temp, varians, standev : real; begin

clrscr;

write('Banyak Data : '); readln(n);

writeln;

for i:= 1 to n do begin

write('Data ke - ',i:2,' = '); readln(data[i]);

(24)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD {menghitung jumlah dan rata-rata data} jumlah :=0;

for i:=1 to n do

jumlah:=jumlah+data[i]; rerata:=jumlah/n;

{menghitung varian dan deviasi standar} temp:=0;

for i:=1 to n do

temp:=temp+sqr(data[i]-rerata); varians:=temp/n;

standev:=sqrt(varians);

{cetak hasil} writeln;

writeln('Cacah data = ',n:10);

writeln('Jumlah data = ',jumlah:10:4); writeln('Nilai rata-rata = ',rerata:10:4); writeln('Varians = ',varians:10:7); writeln('Deviasi standart = ',standev:10:7); readln;

end.

Contoh 2 :

Program MengurutkanDataString;

{untuk mengurutkan data menurut abjad} uses crt;

Type MaksString = string[30]; Var

i,j,n : integer; temp : MaksString;

data : array[1..20] of MaksString; begin

clrscr;

write('Jumlah Data : '); readln(n); writeln; writeln('Data Semula : '); writeln;

for i:=1 to n do begin

(25)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD {proses pengurutan}

for i:=1 to n do for j:=1 to n do

if data[i] < data[j] then begin

temp:=data[i]; data[i]:=data[j]; data[j]:=temp; end;

{cetak hasil}

writeln; writeln('Data setelah diurutkan : '); writeln;

for i:=1 to n do

writeln(i:2,'. ',data[i]); readln;

end.

Contoh 3 :

Program Baca_dan_Cetak_Matriks; uses crt;

var

i,j, baris, kolom : integer; x : array[1..10,1..10] of real; begin

clrscr;

{baca data, data dibaca elemen baris per baris} write('Banyak baris (maks = 10) : ');

readln(baris);

write('Banyak kolom (maks = 10) : '); readln(kolom);

writeln;

for i:=1 to baris do begin

for j:=1 to kolom do begin

write('elemen( ',i,',',j,') = '); readln(x[i,j]);

(26)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD {cetak elemen dalam matriks}

writeln;

writeln('Matriks : '); Writeln; for i:=1 to baris do

begin

for j:=1 to kolom do write(x[i,j]:8:3); writeln;

end; readln; end.

Contoh 4 :

Program Daftar_nama; uses crt;

type array_nama = array[1..1000] of string[30]; array_alamat = array[1..100] of string[50]; var

i,j : integer; nm : string[30]; nama : array_nama; alamat : array_alamat; begin

clrscr;

writeln('Tulis nama, jika selesai beri(.) pada nama');

writeln; j:=0;

write('Nama : '); readln(nm);

while nm <> '.' do begin

j:=j+1;

nama[j]:=nm;

write('Alamat : '); readln(alamat[j]); writeln;

write('Nama : '); readln(nm);

end;

(27)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

writeln('|No| Nama | Alamat |'); writeln('=================================='); for i:=1 to j do

writeln('|',i:3,'|',nama[i]:15,'|', alamat[i]:21,'|');

write('---'); readln;

end.

7.9. Record (Rekaman)

Record merupakan salah satu tipe data terstruktur yang terdiri atas sekumpulan variabel data terstruktur. Tipe data tersebut memungkinkan untuk memanipulasi sekumpulan elemen data dengan tipe yang tidak sama, yang seolah-olah merupakan satu obyek. Variabel data terstruktur penyusun record disebut field (medan).

Record sering digunakan dalam program terutama yang berhubungan dengan file. Misalnya, sebuah record tentang data seseorang, yang terdiri dari nama, alamat, umur dan pekerjaan. Semua data tersebut dihimpun dalam satu record dengan nama, alamat, umur dan pekerjaan sebagai field- fieldnya.

Bentuk umum :

TYPE nama_record = RECORD

nama_field_1 : tipe_data_1; nama_field_2 : tipe_data_2; ..

..

nama_field_N : tipe_data_N; END;

VAR pengenal : nama_record;

Contoh :

TYPE penanggalan = RECORD

(28)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD Bulan : string[9];

Tahun : 1900..2010; END;

Data = RECORD

NomorMhas : integer; Nama,

Fakultas : string[20]; END;

VAR

TanggalLahir : Penanggalan;

DataMahasiswa : ARRAY [1..20] of Data

Tanggal, Bulan, Tahun, NomorMhs, Nama dan Fakultas merupakan field (identifier field). Variabel TanggalLahir merupakan variabel bertipe record, yang berisi tiga buah field yaitu Tanggal, Bulan dan Tahun. Sedangakan variabel DataMahasiswa merupakan variabel array dengan tipe komponennya berupa record yang mengandung 3 buah field (NomorMhs, Nama dan Fakultas )

Masing- masing record dapat diakses secara langsung. Bentuk pengaksesannya adalah sebagai berikut :

Nama_Variabel_Record.Nama_Medan

Contoh pengaksesan atau pernyataan penugasan yang melibatkan variabel bertipe record :

a) TanggalLahir.Tanggal :=1;

Artinya : field Tanggal pada variabel TanggalLahir diisi sama dengan 1. b) DataMahasiswa[13].Nama :=’Bunga Rani’;

Artinya : field Nama dari variabel DataMahasiswa pada indeks array sama dengan 13 diisi dengan string ‘ Bunga Rani’.

c) DataMahasiswa[i] := DataMahasiswa[i-1];

(29)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

DataMahasiswa[i].NomorMhs := DataMahasiswa[i-1].NomorMhs; DataMahasiswa[i].Nama := DataMahasiswa[i-1].Nama;

DataMahasiswa[i].Fakultas := DataMahasiswa[i-1].Fakultas; d) NamaMahasiswa := DataMahasiswa[2].Nama;

Artinya : isi Nama dari DataMahasiswa[2] disalinkan ke variabel bukan-record NamaMahasiswa.

Contoh 1 :

Program Perkalian_Bilangan_Kompleks; (**************************************) (* contoh penggunaan record *) (* untuk pengolahan bilangan kompleks *) (**************************************)

Uses Crt; Type

BilanganKompleks = RECORD

Re, Im : real; END;

Var

Kompleks1, Kompleks2,

HasilKali : BilanganKompleks;

Begin clrscr;

writeln('Bilangan Kompleks Pertama'); Write('Riil, Imajiner ? ');

Readln(Kompleks1.Re, Kompleks1.Im); writeln;

writeln('Bilangan Kompleks Kedua'); Write('Riil, Imajiner ? ');

Readln(Kompleks2.Re, Kompleks2.Im); writeln;

{menghitung perkalian bilangan kompleks} HasilKali.Re := Kompleks1.Re * Kompleks2.Re - Kompleks1.Im * Kompleks2.Im; HasilKali.Im := Kompleks1.Re * Kompleks2.Im + Kompleks1.Im * Kompleks2.Re;

(30)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

write('Hasil kali 2 bilangan kompleks diatas adalah : ');

writeln(Hasilkali.Re:6:2, '+',HasilKali.Im: 6:2, ' i');

writeln('Bagian Riil = ',HasilKali.Re:6:2); writeln('Bagian Imajiner = ',HasilKali.Im:6:2); readln;

End.

Contoh 2 :

Program Rerata_Nilai;

(***************************************************) (* program untuk membaca nomor, nama dan nilai tes *) (* dari sejumlah siswa, dan untuk menghitung nilai *) (* rata-ratanya serta menampilkan hasil pengolahan *) (* ke layar penampil yang disusun berdasarkan *) (* nilai rata-rata yang tertinggi *) (***************************************************) Uses crt;

const

JumlahTes = 5; MaksSiswa = 20; Type

RekamanSiswa = Record

Nomor : integer; Nama : string[20];

nilai : array[1..jumlahtes] of real; rerata: real;

End;

ArraySiswa = Array[1..MaksSiswa] of RekamanSiswa; Var

jumlah : 1..MaksSiswa; i,j : integer;

totalnilai : real;

siswa : ArraySiswa; temporer : RekamanSiswa; Begin

Clrscr;

{pemasukan data}

write('Jumlah data : '); readln(jumlah);

writeln;

(31)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD

{menghitung rata-rata nilai tes masing-masing siswa} for i:=1 to jumlah do

{mengurutkan data berdasar nilai rata-rata yang tinggi}

writeln(siswa[i].nomor:5,siswa[i].nama:20, siswa[i].rerata:11:1);

writeln('======================================='); readln;

(32)

Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD Contoh 3 :

Program Rekaman; uses crt;

type krs = record

nama_mhs : string[20]; no_mhs : integer;

kodefak : string[5]; end;

var

datakrs : array[1..100] of krs; i,jum_mhs,norek : integer;

jawab : char; begin

clrscr;

writeln('Isi rekaman berikut : ! '); write('Ada berapa cacah rekaman ? '); readln(jum_mhs); writeln;

for i:=1 to jum_mhs do begin

write('Nama Mahasiswa : ');

readln(datakrs[i].nama_mhs); write('Nomor Mahasiswa : ');

readln(datakrs[i].no_mhs); write('Kode Fakultas : ');

readln(datakrs[i].kodefak); writeln;

end;

jawab:='y';

while(jawab='Y') or (jawab='y') do begin

write('Menampilkan rekaman ke berapa : '); readln(norek);

writeln;

writeln('Nama Mahasiswa :

',datakrs[norek].nama_mhs); writeln('Nomor Mahasiswa :

',datakrs[norek].no_mhs); writeln('Kode Fakultas :

',datakrs[norek].kodefak); writeln;

write('Menampilkan lagi ? (Y/N)'); readln(jawab); end;

Referensi

Dokumen terkait

Pada bulan Agustus 2011, Kota Banjarmasin merupakan wilayah yang memiliki TPT tertinggi di Kalimantan Selatan (7,14 persen), diikuti Kota Banjarbaru dengan TPT sebesar

“Butiran Kewangan” dipaparkan bagi membolehkan pengguna menyemak maklumat kewangan. 6) Klik untuk meneruskan proses pendaftaran pada tab Butiran Aset.. 7) Masukkan maklumat

sehingga dengan melihat ringkasan laporan keuangan diatas, untuk sementara dapat dilihat bagaimana perusahaan menjaga likuiditasnya dari aspek pengalokasian dana pada aktiva

Halaman 6 LAMPIRAN II PENJABARAN PERTANGGUNGJAWABAN - PENJABARAN LAPORAN REALISASI ANGGARAN PENDAPATAN DAN

Novita Dianasari, 2012, Pengaruh CAR, ROE, LDR dan NPL terhadap Return Saham Serta Pengaruh Saat Sebelum dan Sesudah Publikasi Laporan Keuangan pada Bank Go Public di

Pengaruh Strategi Diferensiasi dan Positioning Produk Terhadap Motivasi Nasabah ( Studi Kasus Pada Produk Tabungan Investa Cendekia di BSM KCP Banyumanik2. Semarang )

Retnaningati (2011), melakukan penelitian di SMA Negeri 3 Surakarta menggunakan Model Pembelajaran Siklus Belajar (Learning Cycle) Untuk Meningkatkan Ke- terampilan Proses

Penentuan varians bersyarat dari sebuah peubah acak diberikan peubah acak lainnya, baik diskrit maupun kontinu dijelaskan dalam Definisi 7.12... 2 FUNGSI PEMBANGKIT