pengantar algoritma pemrograman ii

Post on 30-Nov-2014

5.562 Views

Category:

Technology

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

Algoritma Pemrograman II

TRANSCRIPT

Ketika program pascal yang dibuat sudah terlalu panjang dgn listing program puluhan bahkan ratusan ribu baris, sehingga kita mengalami kesulitan untuk memahami jalannya program secara keseluruhan, maka ada baiknya bila program tersebut dipecah menjadi beberapa bagian yang biasanya disebut modul, subprogram atau subrutin

Konsep semacam ini biasa disebut dengan pemrograman prosedural,yg kemudian dikenal dgn istilah “modul”.

Memecah program menjadi modul-modul tentunya akan lebih memudahkan dalam mencari kesalahan, memperbaiki serta membuat dokumentasinya

Pembuatan modul di Pascal dibagi dua jenis yaitu Prosedur dan Fungsi. Prosedur atau Fungsi adalah suatu modul program yang terpisah dari program utama, diletakan dalam blok tersendiri yang berfungsi sebagai bagian dari program. Setiap prosedur diawali dengan kata cadangan (reserver word) Procedure, sedangkan Fungsi diawali dengan kata cadangan Function.

Prosedur atau Fungsi banyak digunakan pada program terstruktur, karena :1. Merupakan penerapan konsep modular, yaitu

memecah program menjadi modul-modul atau subprogram-subprogam yang lebih sederhana.2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.

Struktur Pascal

PROGRAM nama_program;

USES Wincrt;

VAR

CONST

LABEL

TYPE

PROCEDURE nama_procedure;

Begin

………………….

End;

FUNCTION nama_function;

Begin

…………………

End;

BEGIN

………………

END.

Judul program

Sistem Unit

Bag. Deklarasi

Prosedur

Fungsi

Program Utama

Penggunaan prosedur di pascal dibagi:

Prosedur kompleks

prosedur

Prosedur sederhana

Procedure sederhana (procedure tanpa parameter) dipakai untuk menampilkan pilihan menu dsb. Procedure tersbt terdiri dari beberapa statemen. Setiap procedure mempunyai “nama”. Dengan syntax”:

Procedure nama;BeginStatemen;End;

CONTOH 1 tanpa procedure

PROGRAM PROC1;USES WINCRT;

BEGINWRITELN ('MEMANGGIL PROCEDURE');WRITELN ('PLIHAN MENU');WRITELN ('1:EDIT FILE TEKS');WRITELN ('2:BUKA FILE TEKS');WRITELN ('3:SAVE FILE TEKS');WRITELN ('4:COPY FILE TEKS');WRITELN ('5:CETAK FILE TEKS');WRITELN ('KEMBALI KE PROCEDURE');

END.

Layout:

PROGRAM PROC1;USES WINCRT;PROCEDURE DISPLAY_MENU;

BEGINWRITELN ('PLIHAN MENU');WRITELN ('1:EDIT FILE TEKS');WRITELN ('2:BUKA FILE TEKS');WRITELN ('3:SAVE FILE TEKS');WRITELN ('4:COPY FILE TEKS');WRITELN ('5:CETAK FILE TEKS');END;

{PROGRAM UTAMA}BEGINWRITELN ('MEMANGGIL PROCEDURE');DISPLAY_MENU;WRITELN ('KEMBALI KE PROCEDURE');END.

Layout:

Program proc2;Uses wincrt;Begin WriteLn(‘------------------------------’); WriteLn(‘SELAMAT BELAJAR’); WriteLn(‘------------------------------’);End.

Uses wincrt;Procedure Garis;BeginWriteLn(‘-----------------------------’);End;

Begin Garis; WriteLn(‘SELAMAT BELAJAR’); Garis;End.

Layout:

program matematika;uses wincrt;varnm,al : string [20];a,b,tb,kl,kr :real;beginCLRSCR;WRITE ('NAMA :'); READLN (NM);WRITE ('ALAMAT :'); READLN (AL);WRITE ('NILAI a :'); rEADLN (A);WRITE ('NILAI B :'); READLN (B);WRITELN;WRITELN ('PENJUMLAHAN');TB:=A+B;WRITELN ('PENJUMLAHAN =',TB:4:2);

WRITELN;WRITELN ('PENGURANGAN');KR:=A-B; WRITELN ('PENGURANGAN =',KR:4:2);WRITELN;WRITELN ('PERKALIAN');KL:=A*B;WRITELN ('PERKALIAN =',KL:4:2);END.

program CONTOH3;uses wincrt;varnm,al : string [20];a,b,tb,kl,kr :real;procedure input;beginWRITE ('NAMA :'); READLN (NM);WRITE ('ALAMAT :'); READLN (AL);WRITE ('NILAI a :'); rEADLN (A);WRITE ('NILAI B :'); READLN (B);WRITELN;end;

procedure jumlah; begin WRITELN ('PENJUMLAHAN'); TB:=A+B; WRITELN ('PENJUMLAHAN =',TB:4:2); WRITELN; end; procedure kurang; BEGIN WRITELN ('PENGURANGAN'); KR:=A-B; WRITELN ('PENGURANGAN =',KR:4:2); WRITELN; end;

procedure kali; begin WRITELN ('PERKALIAN'); KL:=A*B; WRITELN ('PERKALIAN =',KL:4:2); WRITELN; end; {program utama} BEGIN INPUT; JUMLAH; KURANG; KALI; END.

PROGRAM MODULAR;USES WINCRT;VARNM,NIP: STRING;GP,TUNJ,GB,PJ:REAL;GOL:CHAR;CONSTPAJAK=0.05;

PROCEDURE INPUT;BEGINwrite ('nama pegawai ='); readln (nm);write ('nip pegawai ='); readln (nip);write ('golongan ='); readln (gol);write ('gaji pokok ='); readln (gp);end;

PROCEDURE HITUNG_TUNJANGAN;BEGINIF GOL ='A' THEN TUNJ:=GP*0.25ELSE IF GOL ='B' THEN TUNJ:=GP*0.2 ELSE TUNJ:=GP*0.15;WRITELN ('TUNJANGAN ANDA =',TUNJ:10:2);END;

PROCEDURE HITUNG_PAJAK;BEGINIF GP>2500000 THEN BEGIN PJ:=GP*PAJAK; WRITELN ('PAJAK =',' ',PJ:10:2); ENDELSE BEGIN PJ:=0; WRITELN ('BEBAS PAJAK'); END;

PROCEDURE HITUNG_GAJI_BERSIH;BEGINGB:=(GP+TUNJ)-PJ;WRITELN ('GAJI BERSIH =',' ',GB:10:2);END;{PROGRAM UTAMA}BEGININPUT;HITUNG_TUNJANGAN;HITUNG_PAJAK;HITUNG_GAJI_BERSIH;END.

TUGAS ANDA:BUAT PROGRAM DGN MENGGUNAKAN PROCEDURE SEDERHANA UNTUK MENGHITUNG TUNJANGAN ANAK DAN TUNJANGAN KELUARGA DGN KETENTUAN SBB:A.JIKA SDH MENIKAH MAKA MENDAPATKAN TUNJANGAN KELUARGA SEBESAR 15% DR GAJI POKOK, JIKA BELUM MAKA TIDAK ADA TUNJANGAN KELUARGA.B.TUNJANGAN ANAK DIBERIKAN JIKA STATUSNYA SUDAH MENIKAH. DIBERIKAN MAKSIMAL KEPADA 3 ANAK, TIAP ANALK MENDAPATN 5% DARI GAJI POKOK.

Semua var yg digunakan pada contoh2 diatas merupakan var yg bersifat general dlm artian bahwa semua var yg telah dideklarasikan pd bag.deklarasi tsesbt berlaku untuk semua prosedur yg ada.

Pada modul (prosedure/fungsi) dikenal 2 jenis jangkauan var, yaitu:1. Var global2. Var lokal

Adl var yg didefinisikan/terletak pd program utama, dimana semua modul (prosedur/fungsi) bisa mengakses, menggunakan dan memodofikasinya.

formula var global:

Program gaji;

Var A,B,C :Char;

Procedure input;

Procedure tampil;

Ket : var A,B,C bisa diakses oleh prosedur input dan tampil

Suatu prosedur dpt mendeklarasikan var sendiri. Var2 itu hanya bekerja pada prosedur dimana var tersbt dideklarasikan.

Var2 tersbt dinamakan var lokal. Formulanya adalah:

Program gaji;Var A,B,C :Char;

Procedure input;Var D

Procedure tampil;Var A,E

- Semua bisa mengakses var A,B,C-Pada prosedur tampil definisi var global diganti menjadi var lokal-Prosedur tampil tdk bisa mengakses var D

PROGRAM BELI;USES WINCRT;VARTOTAL_BELI : REAL;PROCEDURE INPUT;BEGINWRITE ('MASUKKAN TOTAL PEMBELIAN:'); READLN (TOTAL_BELI);END;PROCEDURE HITUNG_DISKON;VARDISKON, BAYAR :REAL;BEGINIF TOTAL_BELI>100000 THEN DISKON:=TOTAL_BELI*0.05ELSE IF TOTAL_BELI>200000 THEN DISKON:=TOTAL_BELI*0.15 ELSE

Var global

Var lokal

IF TOTAL_BELI>500000 THEN DISKON:=TOTAL_BELI*0.2 ELSE DISKON:=0;BAYAR:=TOTAL_BELI-DISKON; WRITELN (' DISKON ANDA =',' ',' RP. ',DISKON:10:2);WRITELN (' TOTAL BAYAR ANDA =',' ',' RP. ',BAYAR :10:2);READLN;END;BEGININPUT;HITUNG_DISKON;READLN;END.

program lokal_var;uses wincrt;var A1,A2: integer; procedure tambah; var hasil : integer; begin hasil:=A1+A2; writeln ('Hasil =',hasil); end;Beginwrite ('Masukkan 2 angka bulat dgn spasi='); readln (a1,a2);tambah;end.

Var global

Var lokal

Layout:

BUATLAH PROSEDUR DGN MENGGUNAKAN VAR GLOBAL & VAR LOKAL YG MENERIMA 2 BUAH BIL YG MASING2 MENYATAKAN PANJANG & LEBAR SEBUAH EMPAT PERSEGI PANJANG (DLM CM) DAN MENGHITUNG LUAS & KELILING.

PROSEDUR KOMPLEKS

Prosedur yg menggunakan argumen

Prosedur yg memakai parameter

Prosedur juga bisa memakai var (data) untuk bekerja ketika dipanggil.A.Mendeklarasikan Var di dlm prosedurKetentuan:

1. var yg diterima oleh prosedur diapit dgn tanda kurung ().

2. Deklarasi dari var terletak diantara nama prosedur dan semi kolom.Contoh:

PROCEDURE PANGGIL (A, B : INTEGER);

NAMA PROSEDUR DEKLARASI VAR

B. Memanggil prosedur & menyampaikan nilai ke prosedurKetentuan:1. ketika prosedur dipanggil, nama prosedur

diikuti oleh sepasang ().2. var ditulis dlm tingkat yg sama seperti dlm prosedur terkait.

Contoh:

PANGGIL ( C, D );

Pemanggilan varPemanggilan prosedur

PROGRAM PANGGIL_VAR;USES WINCRT;VAR C,D:INTEGER;PROCEDURE PANGGIL (A,B: INTEGER);VAR E: INTEGER;BEGINE:=A*B;WRITELN ('HASIL KALI =',' ',E);END;BEGINWRITE ('MASUKKAN NILAI PERTAMA ='); READLN (C);WRITE ('MASUKKAN NILAI KEDUA ='); READLN (D);PANGGIL (C,D);READLN;END.

PROGRAM JUMLAH;USES WINCRT;VAR NOMOR1, NOMOR2 : INTEGER; PROCEDURE JAWAB (KESATU, KEDUA: INTEGER); VAR HASIL: INTEGER; BEGIN HASIL:=KESATU+KEDUA; WRITELN ('HASILNYA ADALAH =',' ',HASIL); END;BEGINWRITE ('MASUKKAN DUA ANGKA DALAM SPASI ='); READLN (NOMOR1, NOMOR2);JAWAB (NOMOR1, NOMOR2);READLN;END.

PARAMETER:- Secara sederhana ”parameter merupakan var yg

dituliskan di dalam kurung setelah nama prosedur atau fungsi”.

- Parameter adl nama var yg dideklarasikan pada bag header prosedur.

- Kebanyakan program memerlukan pertukaran data/informasi antara prosedur (fungsi) dan titik dimana ia dipanggil.

- Penggunaan parameter menawarkan mekanisme pertukaran data/informasi tersbt.

- Prosedur dgn parameter diakses dgn cara memanggil namanya dr program utama atau modul program yg lain disertai parameternya.

Berdasarkan penulisannya terdapat 2 jenis parameter, yaitu :

1. parameter aktual (actual parameter).. parameter aktual adalah parameter yang disertakan pada saat pemanggilan prosedur/fungsi tersebut di blok program utama.

2. parameter formal (formal parameter) Parameter formal adalah parameter yang disertakan/dituliskan pada saat pendeklarasian prosedur/fungsi itu sendiri

Tiap-tiap parameter aktual berpasangan dgn parameter formal yg bersesuaian.

Aturan yg harus diperhatikan dlm korespondensi satu2 antara parameter aktual dan parameter formal adl:1. jumlah parameter aktual pada pemanggilan prosedur harus sama dgn jumlah parameter formal pada deklarasi prosedurnya.2. tiap parameter aktual harus bertipe sama dgn tipe parameter formal yg bersesuaian.3. tiap parameter aktual harus diekspresikan dgn cara yg taat-asas dgn parameter formal yg bersesuaian, bergantung pada jenis parameter formal.

PROGRAM TESTNILAI;USES WINCRT;VARX,Y: INTEGER;

PROCEDURE NOEFFECT (X,Y:INTEGER);BEGINX:=Y;Y:=0;WRITELN ( X , Y );END;

BEGINX:=1;Y:=2;WRITELN (X,Y);NOEFFECT (X,Y);WRITELN (X,Y);END.

LAYOUT :

Berdasarkan tujuannya, terdapat 3 jenis parameter formal yg disertakan dlm prosedur/fungsi, yaitu :1. Parameter masukan (input parameter)2. Parameter keluaran (output parameter)3.parameter masukan/keluaran (input/output parameter)

Parameter masukan adl parameter yg nilainya berfungsi sbagi masukan untuk prosedur. Pd bhs pemrograman parameter masukan sering dinamakan parameter nilai.

Parameter keluaran adl parameter yg menampug keluaran yg dihaslkan prosedur.

Parameter masukan/keluaran adl parameter yg berfungsi sbagai masukan sekaligus sebagai keluaran bagi prosedur. Parameter masukan/keluaran biasa disbt parameter reference (parameter acuan).

Pada parameter masukan, nilai parameter aktual diisikan kedlm parameter formal. Nilai ini digunakan dlm badan prosedur.

Nilai yg dinyatakan dlm parameter masukan tdk bisa dikirim dlm arah sebaliknya (formal ke aktual)

Perubahan nilai parameter dlm bdn prosedur tdk mengubah nilai parameter aktual, karena yg dipentingkan adalah nilainya. Oleh karena itu nama parameter aktual boleh berbeda dgn nama parameter formal yg bersesuaian.

top related