ALGORITMA PEMROGRAMAN MODULAR
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 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
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; Begin Statemen; End;
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.
Layout:
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.
Layout :
Program proc2; Uses wincrt; Begin WriteLn(‘------------------------------’); WriteLn(‘SELAMAT BELAJAR’); WriteLn(‘------------------------------’); End.
Uses wincrt; Procedure Garis; Begin WriteLn(‘-----------------------------’); End; Begin Garis; WriteLn(‘SELAMAT BELAJAR’); Garis; End.
Layout:
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);
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; 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;
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; 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;
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;
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;
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.
 
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.
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
 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;
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
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
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.
 
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
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 yg menggunakan argumen PROSEDUR KOMPLEKS Prosedur yg memakai parameter
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
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
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.
 
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.
 
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; 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.
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.

Pengantar Algoritma Pemrograman II

  • 1.
  • 2.
    Ketika program pascalyang 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 Judulprogram 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 dipascal 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.
  • 9.
    PROGRAM PROC1; USESWINCRT; 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.
  • 11.
    Program proc2; Useswincrt; Begin WriteLn(‘------------------------------’); WriteLn(‘SELAMAT BELAJAR’); WriteLn(‘------------------------------’); End.
  • 12.
    Uses wincrt; ProcedureGaris; Begin WriteLn(‘-----------------------------’); End; Begin Garis; WriteLn(‘SELAMAT BELAJAR’); Garis; End.
  • 13.
  • 14.
    program matematika; useswincrt; 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; useswincrt; 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; beginWRITELN ('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; beginWRITELN ('PERKALIAN'); KL:=A*B; WRITELN ('PERKALIAN =',KL:4:2); WRITELN; end; {program utama} BEGIN INPUT; JUMLAH; KURANG; KALI; END.
  • 20.
  • 21.
    PROGRAM MODULAR; USESWINCRT; 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; BEGINIF 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; BEGINIF 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; BEGINGB:=(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: BUATPROGRAM 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 ygdigunakan 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 varyg 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 dptmendeklarasikan 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; USESWINCRT; 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; useswincrt; 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.
  • 35.
    BUATLAH PROSEDUR DGNMENGGUNAKAN 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 menggunakanargumen PROSEDUR KOMPLEKS Prosedur yg memakai parameter
  • 37.
    Prosedur juga bisamemakai 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. Memanggilprosedur & 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; USESWINCRT; 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; USESWINCRT; 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 terdapat2 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 harusdiperhatikan 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; USESWINCRT; 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.
  • 48.
    Berdasarkan tujuannya, terdapat3 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.