Pengantar Algoritma Pemrograman II

  • 4,545 views
Uploaded on

Algoritma Pemrograman II

Algoritma Pemrograman II

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,545
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
262
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ALGORITMA PEMROGRAMAN MODULAR
  • 2.
    • 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
  • 3.
    • 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.
  • 4.
    • Struktur Pascal
    Judul program PROGRAM nama_program; USES Wincrt; VAR CONST LABEL TYPE PROCEDURE nama_procedure; Begin ………………… . End; FUNCTION nama_function; Begin ………………… End; BEGIN ……………… END. Sistem Unit Bag. Deklarasi Prosedur Fungsi Program Utama
  • 5.
    • Penggunaan prosedur di pascal dibagi:
    Prosedur kompleks prosedur Prosedur sederhana
  • 6.
    • 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;
    • Begin
    • Statemen;
    • End;
  • 7.
    • CONTOH 1 tanpa procedure
    • PROGRAM PROC1;
    • USES WINCRT;
    • BEGIN
    • WRITELN ('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.
  • 8.
    • Layout:
  • 9.
    • PROGRAM PROC1;
    • USES WINCRT;
    • PROCEDURE DISPLAY_MENU;
    • BEGIN
    • 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');
    • END;
    • {PROGRAM UTAMA}
    • BEGIN
    • WRITELN ('MEMANGGIL PROCEDURE');
    • DISPLAY_MENU;
    • WRITELN ('KEMBALI KE PROCEDURE');
    • END.
  • 10. Layout :
  • 11. Program proc2; Uses wincrt; Begin WriteLn(‘------------------------------’); WriteLn(‘SELAMAT BELAJAR’); WriteLn(‘------------------------------’); End.
  • 12.
    • Uses wincrt;
    • Procedure Garis;
    • Begin
    • WriteLn(‘-----------------------------’);
    • End;
    • Begin
    • Garis;
    • WriteLn(‘SELAMAT BELAJAR’);
    • Garis;
    • End.
  • 13. Layout:
  • 14.
    • program matematika;
    • uses wincrt;
    • var
    • nm,al : string [20];
    • a,b,tb,kl,kr :real;
    • begin
    • CLRSCR;
    • 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);
  • 15.
    • WRITELN;
    • WRITELN ('PENGURANGAN');
    • KR:=A-B;
    • WRITELN ('PENGURANGAN =',KR:4:2);
    • WRITELN;
    • WRITELN ('PERKALIAN');
    • KL:=A*B;
    • WRITELN ('PERKALIAN =',KL:4:2);
    • END.
  • 16.  
  • 17.
    • program CONTOH3;
    • uses wincrt;
    • var
    • nm,al : string [20];
    • a,b,tb,kl,kr :real;
    • procedure input;
    • begin
    • WRITE ('NAMA :'); READLN (NM);
    • WRITE ('ALAMAT :'); READLN (AL);
    • WRITE ('NILAI a :'); rEADLN (A);
    • WRITE ('NILAI B :'); READLN (B);
    • WRITELN;
    • end;
  • 18.
    • 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;
  • 19.
    • procedure kali;
    • begin
    • WRITELN ('PERKALIAN');
    • KL:=A*B;
    • WRITELN ('PERKALIAN =',KL:4:2);
    • WRITELN;
    • end;
    • {program utama}
    • BEGIN
    • INPUT;
    • JUMLAH;
    • KURANG;
    • KALI;
    • END.
  • 20.  
  • 21.
    • PROGRAM MODULAR;
    • USES WINCRT;
    • VAR
    • NM,NIP: STRING;
    • GP,TUNJ,GB,PJ:REAL;
    • GOL:CHAR;
    • CONST
    • PAJAK=0.05;
    • PROCEDURE INPUT;
    • BEGIN
    • write ('nama pegawai ='); readln (nm);
    • write ('nip pegawai ='); readln (nip);
    • write ('golongan ='); readln (gol);
    • write ('gaji pokok ='); readln (gp);
    • end;
  • 22.
    • PROCEDURE HITUNG_TUNJANGAN;
    • BEGIN
    • IF GOL ='A' THEN TUNJ:=GP*0.25
    • ELSE
    • IF GOL ='B' THEN TUNJ:=GP*0.2
    • ELSE
    • TUNJ:=GP*0.15;
    • WRITELN ('TUNJANGAN ANDA =',TUNJ:10:2);
    • END;
  • 23.
    • PROCEDURE HITUNG_PAJAK;
    • BEGIN
    • IF GP>2500000 THEN
    • BEGIN
    • PJ:=GP*PAJAK;
    • WRITELN ('PAJAK =',' ',PJ:10:2);
    • END
    • ELSE
    • BEGIN
    • PJ:=0;
    • WRITELN ('BEBAS PAJAK');
    • END;
  • 24.
    • PROCEDURE HITUNG_GAJI_BERSIH;
    • BEGIN
    • GB:=(GP+TUNJ)-PJ;
    • WRITELN ('GAJI BERSIH =',' ',GB:10:2);
    • END;
    • {PROGRAM UTAMA}
    • BEGIN
    • INPUT;
    • HITUNG_TUNJANGAN;
    • HITUNG_PAJAK;
    • HITUNG_GAJI_BERSIH;
    • END.
  • 25.  
  • 26.
    • TUGAS ANDA:
    • BUAT PROGRAM DGN MENGGUNAKAN PROCEDURE SEDERHANA UNTUK MENGHITUNG TUNJANGAN ANAK DAN TUNJANGAN KELUARGA DGN KETENTUAN SBB:
    • JIKA SDH MENIKAH MAKA MENDAPATKAN TUNJANGAN KELUARGA SEBESAR 15% DR GAJI POKOK, JIKA BELUM MAKA TIDAK ADA TUNJANGAN KELUARGA.
    • TUNJANGAN ANAK DIBERIKAN JIKA STATUSNYA SUDAH MENIKAH. DIBERIKAN MAKSIMAL KEPADA 3 ANAK, TIAP ANALK MENDAPATN 5% DARI GAJI POKOK.
  • 27.
    • 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 global
    • 2. Var lokal
  • 28.
    •  Adl var yg didefinisikan/terletak pd program utama, dimana semua modul (prosedur/fungsi) bisa mengakses, menggunakan dan memodofikasinya.
    • formula var global:
    Ket : var A,B,C bisa diakses oleh prosedur input dan tampil Program gaji ; Var A,B,C :Char; Procedure input; Procedure tampil;
  • 29.
    • Suatu prosedur dpt mendeklarasikan var sendiri. Var2 itu hanya bekerja pada prosedur dimana var tersbt dideklarasikan.
    • Var2 tersbt dinamakan var lokal.
    • Formulanya adalah:
    • 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 gaji ; Var A,B,C :Char; Procedure input; Var D Procedure tampil; Var A,E
  • 30.
    • PROGRAM BELI;
    • USES WINCRT;
    • VAR
    • TOTAL_BELI : REAL;
    • PROCEDURE INPUT ;
    • BEGIN
    • WRITE ('MASUKKAN TOTAL PEMBELIAN:'); READLN (TOTAL_BELI);
    • END;
    • PROCEDURE HITUNG_DISKON ;
    • VAR
    • DISKON, BAYAR :REAL;
    • BEGIN
    • IF TOTAL_BELI>100000 THEN DISKON:=TOTAL_BELI*0.05
    • ELSE
    • IF TOTAL_BELI>200000 THEN DISKON:=TOTAL_BELI*0.15
    • ELSE
    Var global Var lokal
  • 31.
    • 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;
    • BEGIN
    • INPUT;
    • HITUNG_DISKON;
    • READLN;
    • END.
  • 32.  
  • 33.
    • program lokal_var;
    • uses wincrt;
    • var
    • A1,A2: integer;
    • procedure tambah ;
    • var
    • hasil : integer;
    • begin
    • hasil:=A1+A2;
    • writeln ('Hasil =',hasil);
    • end;
    • Begin
    • write ('Masukkan 2 angka bulat dgn spasi='); readln (a1,a2);
    • tambah ;
    • end.
    Var global Var lokal
  • 34. Layout:
  • 35.
    • 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.
  • 36.
    • Prosedur yg menggunakan argumen
    PROSEDUR KOMPLEKS Prosedur yg memakai parameter
  • 37.
    • Prosedur juga bisa memakai var (data) untuk bekerja ketika dipanggil.
    • Mendeklarasikan Var di dlm prosedur
    • Ketentuan:
    • 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
  • 38.
    • B. Memanggil prosedur & menyampaikan nilai ke prosedur
    • Ketentuan:
    • 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 var Pemanggilan prosedur
  • 39.
    • PROGRAM PANGGIL_VAR;
    • USES WINCRT;
    • VAR C,D:INTEGER;
    • PROCEDURE PANGGIL (A,B: INTEGER);
    • VAR
    • E: INTEGER;
    • BEGIN
    • E:=A*B;
    • WRITELN ('HASIL KALI =',' ',E);
    • END;
    • BEGIN
    • WRITE ('MASUKKAN NILAI PERTAMA ='); READLN (C);
    • WRITE ('MASUKKAN NILAI KEDUA ='); READLN (D);
    • PANGGIL (C,D);
    • READLN;
    • END.
  • 40.  
  • 41.
    • 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;
    • BEGIN
    • WRITE ('MASUKKAN DUA ANGKA DALAM SPASI =');
    • READLN (NOMOR1, NOMOR2);
    • JAWAB (NOMOR1, NOMOR2);
    • READLN;
    • END.
  • 42.  
  • 43.
    • 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.
  • 44.
    • 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.
  • 45.
    • 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.
  • 46.
    • PROGRAM TESTNILAI;
    • USES WINCRT;
    • VAR
    • X,Y: INTEGER;
    • PROCEDURE NOEFFECT (X,Y:INTEGER);
    • BEGIN
    • X:=Y;
    • Y:=0;
    • WRITELN ( X , Y );
    • END;
    • BEGIN
    • X:=1;
    • Y:=2;
    • WRITELN (X,Y);
    • NOEFFECT (X,Y);
    • WRITELN (X,Y);
    • END.
  • 47. LAYOUT :
  • 48.
    • 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).
  • 49.
    • 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.