pengantar algoritma pemrograman ii

48
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

Upload: formatik

Post on 30-Nov-2014

5.561 views

Category:

Technology


7 download

DESCRIPTION

Algoritma Pemrograman II

TRANSCRIPT

Page 1: Pengantar Algoritma Pemrograman II

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

Page 2: Pengantar Algoritma Pemrograman II

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.

Page 3: Pengantar Algoritma Pemrograman II

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

Page 4: Pengantar Algoritma Pemrograman II

Penggunaan prosedur di pascal dibagi:

Prosedur kompleks

prosedur

Prosedur sederhana

Page 5: Pengantar Algoritma Pemrograman II

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;

Page 6: Pengantar Algoritma Pemrograman II

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.

Page 7: Pengantar Algoritma Pemrograman II

Layout:

Page 8: Pengantar Algoritma Pemrograman II

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.

Page 9: Pengantar Algoritma Pemrograman II

Layout:

Page 10: Pengantar Algoritma Pemrograman II

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

Page 11: Pengantar Algoritma Pemrograman II

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

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

Page 12: Pengantar Algoritma Pemrograman II

Layout:

Page 13: Pengantar Algoritma Pemrograman II

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);

Page 14: Pengantar Algoritma Pemrograman II

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

Page 15: Pengantar Algoritma Pemrograman II
Page 16: Pengantar Algoritma Pemrograman II

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;

Page 17: Pengantar Algoritma Pemrograman II

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;

Page 18: Pengantar Algoritma Pemrograman II

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

Page 19: Pengantar Algoritma Pemrograman II
Page 20: Pengantar Algoritma Pemrograman II

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;

Page 21: Pengantar Algoritma Pemrograman II

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;

Page 22: Pengantar Algoritma Pemrograman II

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

Page 23: Pengantar Algoritma Pemrograman II

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.

Page 24: Pengantar Algoritma Pemrograman II
Page 25: Pengantar Algoritma Pemrograman II

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.

Page 26: Pengantar Algoritma Pemrograman II

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

Page 27: Pengantar Algoritma Pemrograman II

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

Page 28: Pengantar Algoritma Pemrograman II

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

Page 29: Pengantar Algoritma Pemrograman II

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

Page 30: Pengantar Algoritma Pemrograman II

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.

Page 31: Pengantar Algoritma Pemrograman II
Page 32: Pengantar Algoritma Pemrograman II

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

Page 33: Pengantar Algoritma Pemrograman II

Layout:

Page 34: Pengantar Algoritma Pemrograman II

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.

Page 35: Pengantar Algoritma Pemrograman II

PROSEDUR KOMPLEKS

Prosedur yg menggunakan argumen

Prosedur yg memakai parameter

Page 36: Pengantar Algoritma Pemrograman II

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

Page 37: Pengantar Algoritma Pemrograman II

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

Page 38: Pengantar Algoritma Pemrograman II

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.

Page 39: Pengantar Algoritma Pemrograman II
Page 40: Pengantar Algoritma Pemrograman II

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.

Page 41: Pengantar Algoritma Pemrograman II
Page 42: Pengantar Algoritma Pemrograman II

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.

Page 43: Pengantar Algoritma Pemrograman II

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.

Page 44: Pengantar Algoritma Pemrograman II

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.

Page 45: Pengantar Algoritma Pemrograman II

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.

Page 46: Pengantar Algoritma Pemrograman II

LAYOUT :

Page 47: Pengantar Algoritma Pemrograman II

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).

Page 48: Pengantar Algoritma Pemrograman II

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.