• Tidak ada hasil yang ditemukan

Buku Penunjang Praktek Pascal

N/A
N/A
Protected

Academic year: 2018

Membagikan "Buku Penunjang Praktek Pascal"

Copied!
20
0
0

Teks penuh

(1)

Buku Penunjang Praktek Pascal

(High level language)

I. Sekilas Struktur Pascal

Secara ringkas, struktur suatu program Pascal terdiri dari:

1. Judul program 2. Blok program

a. Bagian deklarasi „ deklarasi piranti „ deklarasi label „ deklarasi konstanta „ deklarasi tipe „ deklarasi variabel „ deklarasi prosedur „ deklarasi fungsi b. Bagian pernyataan

*) Berarti para mahasiswa dapat menyimpulkan langsung bahwa bahasa Pascal ini punya struktur dan merupakan bahasa terstruktur

*) Dan dalam aplikasinya, tidak harus semua bagian dari struktur tersebut harus ada tergantung keperluan programnya. Mungkin saja tidak perlu ada judul program, atau deklarasi label, atau tidak dibutuhkan adanya konstanta.

Penulisan Program Pascal

Program Pascal tidak mengenal aturan penulisan dikolom tertentu seperti pada Cobol ataupun RPG, jadi boleh ditulis mulai dari kolom keberapapun.

Suatu program Pascal yang paling sederhana hanya terdiri dari sebuah bagian pernyataan saja yang merupakan bagian terakhir dari suatu blok.

begin {awal bagian pernyataan }

end . {akhir bagian pernyataan yang harus diakhiri titik }

Bentuk umum dari bagian pernyataan ini adalah sebagai berikut:

begin .

statement ; { harus diakhiri titik koma } .

(2)

*) Dapat disimpulkan sementara bahwa dalam program Pascal harus dimulai dari Begin dan diakhiri End

Contoh penulisan program:

programcontoh ; { judul program yang bersifat optional menggunakan kata kunci program } usescrt ; { deklarasi piranti menggunakan kata kunci uses }

label 10, selesai ; { deklarasi label menggunakan kata kunci label } const { deklarasi konstanta menggunakan kata kunci const } x=1;

y=5;

type { deklarasi tipe menggunakan kata kunci type } hasil = integer;

var

j : integer; { deklarasi variabel menggunakan kata kunci var }

nama prosedur

procedurehitung (x, y : integer); { deklarasi prosedur menggunakan kata kunci procedure }

kumpulan parameter begin { awal prosedur }

end; { akhir prosedur yang harus diakhiri titik koma }

nama fungsi

kumpulan parameter

functionpangkat ( x, y : real) : real; { deklarasi fungsi menggunakan kata kunci function }

tipe fungsi begin {awal fungsi }

end; { akhir fungsi yang harus diakhiri titik koma }

Ket:

PROGRAM

Kata program pada bagian deklarasi merupakan kata yang berguna untuk memberikan judul program yang akan dibuat.

USES

Uses merupakan perintah yang digunakan untuk memakai suatu unit tertentu dari Turbo Pascal. Unit pada Turbo Pascal adalah kumpulan instruksi yang merupakan prosedur dan fungsi yang dipakai dalam Turbo Pascal.

Contoh:

(3)

- unit crt Æ unit yang mengatur kerja layar dan keyboard atau I/O, seperti : clrscr untuk membersihkan layar.

- unit printer Æ unit yang mengatur kerja printer sehingga dapat dilakukan pengiriman langsung ke printer yang berhubungan dengan perintah lst.

- unit graph Æ unit yang berorientasi ke pemrograman grafik.

- unit overlay Æ unit yang mengatur pembagian sebuah program menjadi dua file atau lebih

penulisannya: uses crt, printer;

II. OUTPUT

Ada banyak statement untuk menghasilkan OUTPUT, salah satunya Write dan Writeln

a. Ketik 1 (Kamu buka editor Pascalnya, ketiklah program berikut ! )

Program cetak1 (output); Begin

Write (‘Be’);

Write (‘la’);

Write (‘jar’); End

Coba di Run !

Hasil: Apakah dalam baris yang sama ?

Coba lagi program tersebut cuma write diganti dengan writeln

Hasil: ?

Kesimpulan: ?

b. Ketik 2

program cetak2 (output); begin

write (‘My name is’);

wrriteln(‘Jean Claude Van Dame.’); write(‘what yours?’);

end

Coba di Run !

Hasil: Apakah ada spasi antara is dan Jean ? mengapa ?

c. Ketik 3

(4)

Writeln(2000); Writeln(2000+503); Writeln(1075-500); Writeln(14*62);

Writeln(23 div 7); Writeln(18 mod 4);

End

Coba di Run ! Hasil: ? Kesimpulan: ?

*) Cari sendiri di buku cetak lain mengenai fungsi div, mod, round, trunc, dll

Latihan: Penggunaan write dan writeln

Buatlah program yang hasilnya sbb:

1. * * * * * * * * * * * * * * * *

2. + + + + + x x x x x - - - - - / / / / /

3. * * * * * * * * * * * * * * * * * * * * * * * *

4. Cetak hasil akhir dari rumus berikut 2 + 3 42

i. 6 x --- ii. ---- x 52 + 6 X 3 + 4 4 + 5 7

d. Ketik 4

Program cetak3kali (output);

Procedure c3k; {bahasan tentang Procedure ini akan dilanjutkan

(5)

Lebih mendalam, makanya tolong dilihat betul fungsi dan unjuk kerjanya}

begin

writeln(‘? ? ? ?’); writeln(‘? ?’); writeln(‘? ?’); writeln(‘? ? ? ?’); end;

begin

c3k; { memanggil procedure dengan nama c3k}

writeln;

c3k; { memanggil lagi untuk yang kedua }

writeln; c3k; end

Hasil: ?

*) Bila sdr ingin menambah cetakannya, di panggil aja nama procedurenya sering-sering, OK !.

II. 1 Pengulangan Mencetak dengan Satement FOR

a.Ketik 5

Program cetak5(output);

Procedure c5k; Begin

Writeln(‘* * * *’); Writeln(‘* *’); Writeln(‘* *’); Writeln(‘* * * *’); End;

Begin

For k:= 1 to 5 do {mencetak 5 kali}

Begin C5k; Writeln;

End; End

Hasil: ?

Kesimpulan : ?

*) For K := 1 to 5 do

(6)

program cetak5 (output);

var k:integer;

.

.

.

dst

b. Ketik 6

Ulangi program Ketik 5 diatas, hanya saja dalam FOR-loop sdr hapus statement Begin dan end nya.

Hasil: ?

Kesimpulan: ?

c. Ketik 7

Program bilangan1 (output); Var

K:integer; Begin

For K := 1 to 10 do

Writeln (2*K);

Writeln (‘Analisa dech ya !”); End

Hasil: ? Kesimpulan: ?

d. Ketik 8

program graph; var

gr:integer;

procedure datar;

var

pjg:integer; begin

(7)

for pjg:= 1to 8 do write (‘#’); writeln;

end

procedure sisi; var

ss:integer; begin

write (‘#’);

for ss:= 1 to 6 do write (‘ ‘); write(‘#’);

end

begin

datar; {panggil procedure datar}

for gr := 1 to 5 do

sisi; {panggil procedure sisi}

datar; {panggil procedure datar}

end

Latihan:

PENGULANGAN dengan FOR dibantu sistem Procedure

Tentukan program Pascalnya bila output yang diinginkan sbb:

5. # # # #

# # # # # # # # # # # # # # # # # # # # # # # #

(8)

6 faktorial adalah . 7 faktorial adalah . 8 faktorial adalah . 9 faktorial adalah . 10 faktorial adalah .

sebagai bantuan dan harap dilengkapi ! .

. .

writeln (0, ‘Faktorial adalah’, 1);

b:= 1;

7. Dari Latihan 6, modifikasi programnya agar tampilan/outputnya menjadi:

0! = 1 = 1

II.2 Pengulangan mencetak dengan Sistem NESTING LOOP

Pengertian sederhananya dari Nesting Loop adalah Ada Loop dalam Loop

a. Ketik 9

(9)

End

Hasil: ? Kesimpulan: ?

Bagaimana dengan program berikut,

b. Ketik 10

Program NL (output); Var

Baris,kolom :integer; Begin

For baris := 1 to 10 do Begin

For kolom:= 1 to 8 do Write (‘+’); Writeln; End;

End.

*) jika ada loop/perulangan yang tidak saling berhubungan dapat digunakan variabel yang sama, seperti masalah pada ketik 9

c. Ketik 11

program duasegi(output); var

baris, kolom:integer; begin

for baris:= 1 to 10 do begin

for kolom := 1 to 8 do write(‘+’);

write (‘ ‘);

for kolom := 1 to 8 do write (‘+’); writeln; end;

(10)

Latihan: Nesting Loop

8. Tentukan hasil cetakan program berikut

For foo:= 1 to 7 do Begin

For bar:= 1 to 5 do

Write(‘ada-ada’); Writeln(‘aja’);

End.

9. Tentukan programnya untuk mencetak

+ # # # # # # # # # + + # # # # # # # # + + + # # # # # # # + + + + # # # # # # + + + + + # # # # # + + + + + + # # # # + + + + + + + # # # + + + + + + + + # # + + + + + + + + + # + + + + + + + + + +

*) Sdr boleh menggunakan statement For kolom := baris + 1 to 10 do

10. Tentukan program untuk mencetak hasil berikut :

+ + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + +

*) Nilai index dari Loop-For juga dapat di mulai dari besar kekecil dengan statement DOWNTO

d. Ketik 12

(11)

For index := 5 to 1 do Write (index);

Hasil: ?

*) Kembali lihat soal 10

II. INPUT

Statement dalam Pascal yang digunakan untuk pembacaan suatu nilai input adalah dengan READ

Bentuk Umum: Read (variabel apa)

Berarti bahwa, bila dalam program harus ada proses input, maka harus disertakan pada judul program.

Mis: Program baca (input,output);

a. Ketik 13

Program hasilakh (input,output); Const

Jumbil=5; Var

Jumakh:integer; Bilinput :integer;

Index :integer; Begin

Jumakh = 0;

Write (‘inputkan bilangannya : ‘); For index::= 1 to jumbil do Begin

Read(bilinput); Write(bilinput);

Jumakh:=jumakh+bilinput; End;

Writeln;

Write(‘ Hasil akhir adalah : ‘,jumakh); End.

Run programnya, lalu ketikan nilai sembarang (yaitu nilai bilinput) dari keyboard Hasil: ?

Kesimpulan: ?

b. Ketik 14

Lengkapi dulu….!

Read(nilai);

(12)

Writeln(‘Nilai sekarang adalah : ‘,nilai); For index :=4 to 7 do

Begin

Write(index); Read(next); Write(next);

Nilai:=nilai+next mod index; Writeln(nilai);

End

Run programnya, lalu ketikan nilai sembarang (yaitu nilai ) dari keyboard

Hasil: ? Kesimpulan: ?

c. Ketik 15

Program penjumlahan(input,output); Var

Jum:integer; Bil:integer; Index:integer; Juminput:integer; Begin

Read(juminput);

Writeln(‘Ada : ‘,juminput,’nilai yang di inputkan’); Jum:=0;

Write(‘ Input : ‘);

For index:= 1 to juminput do Begin

Read(bil); Write(bil); Jum:=jum+bil; End;

Writeln;

Write(‘jumlahnya adalah :’, jum); End.

Latihan:

11. Rancang program, dimana jumlah data yang diinputkan bervariasi sehingga sdr dapat memasukkan nilai data yang bervariasi juga, misalnya program untuk mencari luas dan keliling beberapa persegi panjang dengan panjang dan lebar berbeda-beda

12. Rancang program untuk mencari umur rata-rata dari beberapa mahasiswa (baik jumlah maupun umur para mahasiswanya bervariasi).

(13)

13. Rancang program, mencari rata-rata nilai beberapa matakuliah dari tiap mahasiswa, dimana jumlah mahasiswanya juga lebih dari satu (kalau tidak salah untuk program yang ini diperlukan prinsip nesting loop, coba dech !)

14. Rancang program, untuk mencari nilai rata-rata setiap 5 kelompok bilangan berbeda yang sdr inputkan, dimana tiap kelompoknya terdiri atas 4 bilangan !

15. What is the difference between using a constant definition and reading the value from input ?

II.1 IF statements

Bentuk Umum : If kondisinya apa (condition)

Thenapa prosesnya (statement)

a. Ketik 16

Program kesukaan(input,output); Const

Bilkessukaan=18; Var

Bil:integer; {nilai-nilai yang diinputkan}

Index:integer; {banyaknya penginputan}

Juminput:integer; {berapa kali ingin menginputkan}

Begin

Read(juminput);

Writeln(‘Ada : ‘ ,juminput,’ nilai yang di inputkan’); For index:= 1 to juminput do

Begin

Read(bil); Write(bil);

If bil = bilkesukaan

Then write (‘ adalah bilangan kesukaan saya’); Writeln;

End;end.

Beberapa bentuk kondisi :

Contoh:

Expresi1 = expresi2 Îartinya sama dengan 5 = 6 is false(salah) Expresi1 < expresi2 Îartinya lebih kecil dari 5 < 6 is true (benar) Expresi1 <= expresi2 Îartinya lebih kecil atau

Sama dengan 5 <= 6 is true Expresi1 > expresi2 Îartinya lebih besar dari 5 > 6 is false Expresi1 >= expresi2 Îartinya lebih besar atau

(14)

b. Ketik 17

masalahnnya:

pertama adalah menentukan berapa bilangan yang akan di test, yang kedua adalah jumlah proses pembandingan yang akan dilakukan. Kita gunakan istilah ‘comparand’ untuk object/nilai pembandingnya, dimana ingin diketahui jumlah bilangan yang diinputkan yang lebih besar dari nilai pembanding. Artinya, disini kita menginginkan sebuah counter dan ingin menambah 1 tiap saat bila nilai yang diinputkan lebih besar

Read jumlah nilai-nilai yang akan di test

Read pembanding

Set counter to nol

Kerjakan sebanyak jumlah nilai-nilai yang akan ditest Baca nilai input

If nilai input > comparand

Then tambah 1 ke counter Cetak nilai akhir counter

Kita konversi ke Pascal, OK !

Program compare(input,output);

Writeln (‘ Ada sebanyak ‘, juminput, ‘ nilai input’); Read(comparand);

Wrriteln(‘Kita akan check nilai-nilai yang besar dari ‘, comparand); Greater=0;

For counter:= 1 to juminput do Begin

Writeln (‘ Maka ada ‘, greater, ‘ nilai lebih besar.’); End.

*) Sorry, nama-nama variablenya tidak A, B, C,….tetapi pakai kata-kata yang panjang, dan bahkan ada yang bahasa inggris, seperti greater, comparand, dll. Kalau jadi tambah susah, ganti aja dengan yang mudah diingat

(15)

II. 2 Else

Bila dari masalah di atas (ketik 17) diinginkan mendapatkan juga nilai-nilai yang lebih kecil dari comparand dan dicetak keterangan ‘lebih kecil’. Berarti :

IF begini-begini (kondisi)

Then begitu1 (statement1) Else atau begitu2 (statement2);

*) Perlu diketahui bahwa tidak ada tanda semicolon (;) sebelum else, karena IF-THEN-ELSE adalah merupakan satu statement yang terdiri dari 2 bagian statement

*) Untuk mengingatkan, bahwa pemberian tanda semicolon(;) diakhir sebuah statement, yaitu bila ada statement berikutnya.

Kita ubah sedikit program ketik 17 dengan menyisipkan logika else….

c. Ketik 18

Writeln (‘ Ada sebanyak ‘, juminput, ‘ nilai input’); Read(comparand);

Wrriteln(‘Kita akan check nilai-nilai yang besar dari ‘, comparand); Greater=0;

For counter:= 1 to juminput do Begin

(16)

Hasil: ?

Kesimpulan: ngerti enggak ? IF ngerti, modifikasi lah program itu Sesuai keinginan dan khayalan sdr.

ELSE

Pelajari lagi dech…….!

Yang lebih seru lagi……

Dalam IF-THEN-ELSE ini juga ada logika nested-loop. Dengan bentuk umum

IF begini (*kondisi1*)

THEN IF begini-begini (*kondisi2*)

THEN begitu (*statement1*)

ELSE begitu-begitu (*statement2*)

Atau boleh juga…., dengan menghilangkan loop dari IF kedua ( di-end-kan saja)

IF begini (*kondisi1*)

Atau lagi……, dengan mem-fungsikan ELSE dari IF pertama

IF begini (*kondisi1*)

THEN IF begini-begini (*kondisi2*)

THEN begitu (*statement1*)

ELSE begitu-begitu (*statement2*)

ELSE begitu-begitu-begitu (*statement3*)

d. Ketik 19

writeln (‘Posisi pada(‘, padabrs, ‘, ‘,padacol, ‘) .’); For baris :=1 to 8 do

(17)

e. Ketik 20

sama dengan ketik 19 tetapi modifikasi statement IF nya dengan IF (padabrs=baris) AND (padacol=colom)

THEN write (‘ #’); .

. dst

*) Belum pernah belajar fungsi AND ya….., makanya belajar dari buku lain dulu.

ARRAY

- Setiap variabel yang dinyatakan sebagai ARRAY harus dideklarasikan pada

blok VAR

- Hal yang perlu dinyatakan adalah nama variabel, indeks variabel dan tipe

variabel

- Deklarasi ini juga akan melakukan pemesanan tempat/ memori dari setiap

variabel ARRAY tersebut.

-

Contoh deklarasi seperti dibawah ini:

VAR

nama : array [1..10] of string[15];

nobp

: array [1..10] of longint;

A

: array [1..10,1..10] of integer;

X

: array [1..10] of real;

Contoh penggunaan ARRAY

Dibuat program Pascal untuk mengolah data nilai mahasiswa. Setiap mahasiswa mempunyai data:

- Nama - NOBP

- Nilai midtest

(18)

Dari data tersebut akan diolah sehingga mendapatkan nilai indeks. Jumlah mahasiswa adalah n orang, sehingga variabel dinyatakan sebagai ARRAY.

PROGRAM mhs (input, output); USES crt;

VAR

nama : array [1..10] of string[15];

nobp

: array[1..10] of longint;

quiz,mid,akhir,rata : array [1..10] of real;

indeks

: array[1..10] of string[1];

i,n,k :

integer;

BEGIN

clrscr;

write (‘Jumlah Mahasiswa

: ‘);readln(n);

FOR i := 1 to n do

gotoxy (30, 5); readln(nama);

gotoxy (30, 6); readln(nobp);

gotoxy (30, 7); readln(quiz);

gotoxy (30, 8); readln(mid);

gotoxy (30, 9); readln(akhir);

END;

gotoxy(2,2);write(‘Nama Nobp

Rata-rata

Indeks’);

gotoxy(2,3);write(‘~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~’);

{ 2345678901234567890123456789012345678

1

2

3

}

FOR i := 1 to n do

BEGIN

(19)

clrscr;

gotoxy (2, 3+i); write(nama[i]);

gotoxy (11, 3+i); write(nobp[i]);

gotoxy (22, 3+i); write(rata[i]);

gotoxy (33, 3+i); write(indeks[i]);

END;

gotoxy(2,4+i);write(‘~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~’);

END.

RECORD

• Record merupakan type data terstruktur yang harus dideklarasikan sendiri

• Record terdiri dari beberapa field dimana setiap field harus dinyatakan namanya dan type dari field tersebut

• Deklarasi dari record dapat dinyatakan pada bagian blok TYPE dan pada blok VAR

• Untuk melakukan pengolahan terhadap field dapat dilakukan dengan 2 cara: - perintah titik

- statement WITH

• Dibawah ini adalah contoh deklarasi record:

TYPE mahasiswa = RECORD Nama : string [15] ; BP : string [8] ; Umur : integer ; END;

VAR mhs : mahasiswa; { hanya untuk 1 orang mahasiswa }

Membaca field dengan menggunakan perintah titik:

(20)

Kalau menggunakan statement WITH:

WITH mhs DO BEGIN

Write ('Nama : '); readln (nama); Write ('Nobp : '); readln (nobp); Write ('Umur : '); readln (umur); END ;

• Untuk lebih dari satu mahasiswa (misalkan 5 orang mahasiswa)

TYPE mahasiswa = RECORD Nama : string [15] ; BP : string [8] ; Umur : integer ; END;

VAR mhs : array [1..5] of mahasiswa; i : byte;

BEGIN

For i := 1 to 5 do BEGIN

WITH mhs[ i ] DO BEGIN

Write ('Nama : '); readln (nama); Write ('Nobp : '); readln (nobp); Write ('Umur : '); readln (umur); END ;

For i := 1 to 5 do BEGIN

WITH mhs[ i ] DO BEGIN

Write ('Nama : '); writeln (nama); Write ('Nobp : '); writeln (nobp); Write ('Umur : '); writeln (umur); END;

END ; END.

Referensi

Dokumen terkait

Oleh karena Pulau Maputi diduga memiliki nilai biodiversitas tinggi, namun data mengenai ekosistem di pulau tersebut belum ada, maka pada tahun 2013 dilakukan

berlawanan arah mengelilingi kepala pasien selama 15-20 detik 9. Radiografi Panoramik merupakan gabungan dari gambar frontal / depan dan lateral dari tulang wajah. Pada

Dari kedua nilai tersebut diketahui bahwa sebagian besar ikan kurisi yang tertangkap di Perairan Teluk Banten belum dewasa dan mengalami pemijahan, karena nilai ukuran

Dalam penjilidan kembali bahan pustaka atau buku pada Perpustakaan Universitas HKBP Nommensen di lakukan dengan menggunakan lem.. Penjilidan dengan menggunakan paku dan hekter

Seluruh data dari hasil pengamatan yang dikaitkan dengan Cobit khususnya pada 4 proses DS, maka usulan perbaikan TI dapat diberikan sesuai model standar Cobit.. Hasil

Menurut penulis dalam pembahasan singkat diatas, yang sangat menarik dalam Buku Novel berjudul “Analisis Denotasi dan Konotasi Terhadap Narasi Perempuan Bercadar

Hasil penelitian ini sesuai dengan penelitian yang dilakukan oleh Masini (2015) menunjukkan Ibu yang berpartisipasi dalam kelas ibu hamil, lebih banyak pada ibu yang