1 / 81

Procedure dan Function dalam Bahasa Pascal

Procedure dan Function dalam Bahasa Pascal. Mata Kuliah Algoritma dan Pemrograman I Oleh: Anis Cherid, MTI. Universitas Mercu Buana Fakultas Teknik Industri Program Studi Teknik Informatika. Pemrograman Modular. Program yang baik dibuat secara MODULAR.

galena
Download Presentation

Procedure dan Function dalam Bahasa Pascal

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procedure dan Function dalam Bahasa Pascal Mata Kuliah Algoritma dan Pemrograman I Oleh: Anis Cherid, MTI Universitas Mercu Buana Fakultas Teknik Industri Program Studi Teknik Informatika http://www.mercubuana.ac.id

  2. Pemrograman Modular • Program yang baikdibuatsecara MODULAR. • Program yang dibuatsecara MODULAR artinya: program utamadibagi-bagimenjadibeberapa unit ataubeberapa subprogram yang berdirisendiri. http://www.mercubuana.ac.id

  3. Keuntungan Pemrograman Modular • Ukuran program kecil • Mudah melakukan pemeliharaan program (program maintenance) • Code reuse • Pembagian tugas http://www.mercubuana.ac.id

  4. Subprogram dalam Bahasa Pascal • Dalam Bahasa Pascal, subprogram terdiri dari 2 jenis, yaitu Procedure dan Function • Procedure: subprogram yang tidak mengembalikan nilai secara otomatis. • Function: subprogram yang mengembalikan sebuah nilai secara otomatis. http://www.mercubuana.ac.id

  5. Ukuran Program Kecil (1) Program penghasil 1 buah nada pada speaker PC uses windos; var frekuensi, durasi:integer; divisor:word; h, m, s, cs : word; waktuMulai, waktuSekarang: real; begin frekuensi:= 440; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} port[$43] := $b6; divisor := $120000 div frekuensi; port[$42] := divisor and $FF; port[$42] := divisor shr 8; port[$61] := port[$61] or 3; GetTime(h, m, s, cs); waktuMulai := h*3600 + m*60 + s + (cs/100); repeat GetTime(h,m,s,cs); waktuSekarang := h*3600 + m*60 + s + (cs/100); until waktuSekarang - waktuMulai > durasi/1000; port[$61] := port[$61] and not 3; {*** akhir bagian yang menghasilkan nada pada speaker ***} end. http://www.mercubuana.ac.id

  6. Ukuran Program Kecil (2) uses windos; var frekuensi, durasi:integer; divisor:word; h, m, s, cs : word; waktuMulai, waktuSekarang: real; begin frekuensi:= 440; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} port[$43] := $b6; divisor := $120000 div frekuensi; port[$42] := divisor and $FF; port[$42] := divisor shr 8; port[$61] := port[$61] or 3; GetTime(h, m, s, cs); waktuMulai := h*3600 + m*60 + s + (cs/100); repeat GetTime(h,m,s,cs); waktuSekarang := h*3600 + m*60 + s + (cs/100); until waktuSekarang - waktuMulai > durasi/1000; port[$61] := port[$61] and not 3; {*** akhir bagian yang menghasilkan nada pada speaker ***} end. Bagian yang menentukan frekuensi dan durasi nada yang akan dibunyikan (2 baris) http://www.mercubuana.ac.id

  7. Ukuran Program Kecil (3) uses windos; var frekuensi, durasi:integer; divisor:word; h, m, s, cs : word; waktuMulai, waktuSekarang: real; begin frekuensi:= 440; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} port[$43] := $b6; divisor := $120000 div frekuensi; port[$42] := divisor and $FF; port[$42] := divisor shr 8; port[$61] := port[$61] or 3; GetTime(h, m, s, cs); waktuMulai := h*3600 + m*60 + s + (cs/100); repeat GetTime(h,m,s,cs); waktuSekarang := h*3600 + m*60 + s + (cs/100); until waktuSekarang - waktuMulai > durasi/1000; port[$61] := port[$61] and not 3; {*** akhir bagian yang menghasilkan nada pada speaker ***} end. Bagian yang menghasilkan bunyi pada speaker PC (12 baris) http://www.mercubuana.ac.id

  8. Ukuran Program Kecil (4) Program penghasil 2 buah nada pada speaker PC uses windos; var frekuensi, durasi:integer; divisor:word; h, m, s, cs : word; waktuMulai, waktuSekarang: real; begin frekuensi:= 440; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} ………… ………… {*** akhir bagian yang menghasilkan nada pada speaker ***} frekuensi:= 466; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} ………… ………… {*** akhir bagian yang menghasilkan nada pada speaker ***} end. http://www.mercubuana.ac.id

  9. Ukuran Program Kecil (5) Bagian penghasil Nada ke-1 (14 baris) uses windos; var frekuensi, durasi:integer; divisor:word; h, m, s, cs : word; waktuMulai, waktuSekarang: real; begin frekuensi:= 440; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} ………… ………… {*** akhir bagian yang menghasilkan nada pada speaker ***} frekuensi:= 466; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} ………… ………… {*** akhir bagian yang menghasilkan nada pada speaker ***} end. http://www.mercubuana.ac.id

  10. Ukuran Program Kecil (6) uses windos; var frekuensi, durasi:integer; divisor:word; h, m, s, cs : word; waktuMulai, waktuSekarang: real; begin frekuensi:= 440; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} ………… ………… {*** akhir bagian yang menghasilkan nada pada speaker ***} frekuensi:= 466; durasi:= 1000; {*** awal bagian yang menghasilkan nada pada speaker ***} ………… ………… {*** akhir bagian yang menghasilkan nada pada speaker ***} end. Bagian penghasil Nada ke-2 (14 baris) http://www.mercubuana.ac.id

  11. Ukuran Program Kecil (7) Program penghasil: 1 BUAH LAGU, atau 100 BUAH NADA uses windos; var frekuensi, durasi:integer; divisor:word; h, m, s, cs : word; waktuMulai, waktuSekarang: real; begin BAGIAN PENGHASIL NADA 1 BAGIAN PENGHASIL NADA 2 BAGIAN PENGHASIL NADA 3 BAGIAN PENGHASIL NADA 4 ……… ……… ……… BAGIAN PENGHASIL NADA 50 BAGIAN PENGHASIL NADA 51 ……… ……… ……… BAGIAN PENGHASIL NADA 99 BAGIAN PENGHASIL NADA 100 end. 100 nada × 14 baris = 1400 baris ??? http://www.mercubuana.ac.id

  12. Memperkecil Ukuran Program begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  13. Memperkecil Ukuran Program begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  14. Memperkecil Ukuran Program begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  15. Memperkecil Ukuran Program begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  16. Memperkecil Ukuran Program begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  17. Memperkecil Ukuran Program {* awal bagian nada *} ………… {*akhir bagian nada *} begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  18. Memperkecil Ukuran Program {* awal bagian nada *} ………… {*akhir bagian nada *} begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  19. Memperkecil Ukuran Program {* awal bagian nada *} ………… {*akhir bagian nada *} begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  20. Memperkecil Ukuran Program {* awal bagian nada *} ………… {*akhir bagian nada *} begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  21. Memperkecil Ukuran Program {* awal bagian nada *} ………… {* akhir bagian nada *} begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  22. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  23. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  24. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  25. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin frekuensi:= 440; durasi:= 1000; frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  26. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  27. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin bunyi (440, 1000); frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  28. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin bunyi (440, 1000); frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  29. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin bunyi (440, 1000); frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  30. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin bunyi (440, 1000); frekuensi:= 466; durasi:= 1000; end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  31. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin bunyi (440, 1000); end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  32. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin bunyi (440, 1000); bunyi (466, 1000); end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  33. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin bunyi (440, 1000); bunyi (466, 1000); end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. http://www.mercubuana.ac.id

  34. Memperkecil Ukuran Program procedure bunyi (frekuensi, durasi:integer); var ……; begin {* awal bagian nada *} ………… {*akhir bagian nada *} end; begin bunyi (440, 1000); bunyi (466, 1000); end. begin frekuensi:= 440; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} frekuensi:= 466; durasi:= 1000; {* awal bagian nada *} ………… {*akhir bagian nada *} end. 28 baris 14 baris http://www.mercubuana.ac.id

  35. Ketentuan Membuat Procedure dalam Bahasa Pascal procedure Abc(); begin end; • Diletakkan sebelum program utama begin end. http://www.mercubuana.ac.id

  36. Ketentuan Membuat Procedure dalam Bahasa Pascal uses wincrt; procedure hapusBaris; var i:integer; begin GotoXY(1, WhereY); for i:=1 to 80 do write(' '); end; begin GotoXY(1,1); Writeln('Baris Satu'); Writeln('Baris Dua'); Writeln('Baris Tiga'); GotoXY(1,1); {ke baris 1} hapusBaris; GotoXY(1,3); {ke baris 3} hapusBaris; end. • Tanpa Parameter http://www.mercubuana.ac.id

  37. Ketentuan Membuat Procedure dalam Bahasa Pascal procedure cetakBintang(x:integer); begin while (x>0) do begin write('*'); x:=x-1; end; end; var i:integer; begin for i:=1 to 5 do begin cetakBintang(i); writeln; end; end. • Satu buah parameter masukan http://www.mercubuana.ac.id

  38. Ketentuan Membuat Procedure dalam Bahasa Pascal • Lebih dari satu buah parameter masukan, satu jenis parameter masukan. Uses windos; procedure bunyi(frekuensi, durasi : integer); begin {--- silakan lihat contoh program di awal modul ---} end; begin bunyi(440, 1000); bunyi(466, 1000); end. http://www.mercubuana.ac.id

  39. Ketentuan Membuat Procedure dalam Bahasa Pascal • Lebih dari satu buah parameter masukan, lebih dari satu jenis parameter masukan. procedure cetakString(s:string; posisi:integer); begin if posisi=2 then GotoXY ((80-length(s)) div 2, WhereY) else if posisi=3 then GotoXY (80-length(s), WhereY) else GotoXY (1, WhereY); writeln (s); end; begin cetakString('Cetak rata kiri', 1); cetakString('Cetak di tengah', 2); cetakString('Cetak rata kanan', 3); end. http://www.mercubuana.ac.id

  40. Ketentuan Membuat Procedure dalam Bahasa Pascal Uses wincrt; procedure dekompDetik(x:longint; var jam, menit, detik:integer); begin jam := x div 3600; x := x mod 3600; menit := x div 60; detik := x mod 60; end; var j,m,d:integer; begin dekompDetik(86399, j, m, d); writeln('86399 detik sama ', 'dengan ',j,' jam ',m, ' menit ',d,' detik'); end. • Satu buah parameter masukan dan tiga buah parameter keluaran http://www.mercubuana.ac.id

  41. Ketentuan Membuat Procedure dalam Bahasa Pascal • Satu buah parameter masukan/keluaran Uses wincrt; procedure lipatGanda (var x:integer); begin x := x * 2; end; var bil:integer; begin bil:=4; lipatGanda(bil); writeln(bil); end. http://www.mercubuana.ac.id

  42. Function dalam Bahasa Pascal http://www.mercubuana.ac.id

  43. nama function nilai yang dikembalikan Function dalam Bahasa Pascal Tipe data dari nilai yang dikembalikan double • Ketentuan Membuat Function: • Sama dengan ketentuan membuat procedure • Ditambah : • Function harus menyertakan tipe data dari nilai yang dikembalikan. • Function harus menyertakan baris instruksi yang mengembalikan nilai Baris instruksi yang mengembalikan nilai http://www.mercubuana.ac.id

  44. Function dalam Bahasa Pascal  PEMANGGILAN FUNCTION YANG BENAR: writeln (xpangkaty(2,4):2:0); writeln (xpangkaty(5+3, 2):2:0); writeln xpangkaty(xpangkaty(5,2), 2):3:0); http://www.mercubuana.ac.id

  45. Function dalam Bahasa Pascal PEMANGGILAN FUNCTION YANG SALAH: xpangkaty (2,4); Pemanggilan function tidak boleh berupa statement yang berdiri sendiri i:= xpangkaty (8,2); Nilai yang dikembalikan function bertipe double, sehingga tidak bisa disimpan dalam variabel i yang bertipe integer writeln (xpangkaty(9)); Function xpangkaty memiliki 2 buah parameter masukan, tetapi dipanggil hanya dengan menggunakan 1 buah argumen    http://www.mercubuana.ac.id

  46. Function dalam Bahasa Pascal • Function/procedure mempermudah pemeliharaan program (program maintenance), karena: • Meskipun algoritma dalam function/procedure berubah, algoritma dalam program utama tidak perlu diubah • Syarat: • Tidak boleh mengubah jumlah dan jenis parameter function/procedure http://www.mercubuana.ac.id

  47. Mempermudah Pemeliharaan 1 pangkat 2 = 1 2 pangkat 2 = 4 3 pangkat 2 = 9 4 pangkat 2 = 16 5 pangkat 2 = 25 1 pangkat 0 = 1 2 pangkat 0 = 2 3 pangkat 0 = 3 http://www.mercubuana.ac.id

  48. Mempermudah Pemeliharaan 1 pangkat 2 = 1 2 pangkat 2 = 4 3 pangkat 2 = 9 4 pangkat 2 = 16 5 pangkat 2 = 25 1 pangkat 0 = 1 2 pangkat 0 = 2 3 pangkat 0 = 3 BUG !!! http://www.mercubuana.ac.id

  49. Mempermudah Pemeliharaan http://www.mercubuana.ac.id

  50. Mempermudah Pemeliharaan http://www.mercubuana.ac.id

More Related