Prak.Dasar-Dasar Pemrograman Pertemuan – PROCEDURE & FUNCTION (Andrew Julius S. – Jeki Cahya S.)
THE Begining… Sebuah program yang baik modular programming (pemrograman terbagi/terpecah) Dengan modular programming, program lebih mudah dibaca dan dimengerti. Pembenahan program dan penelusuran jalannya program (debugging) menjadi lebih mudah sebab dapat langsung diketahui subprogram mana yang berjalan tidak sesuai dengan yang diharapkan. Pascal telah menyediakan dua jenis subprogram, yaitu procedure dan function (prosedur dan fungsi).
PROCEDURE suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Penulisannya menggunakan kata Procedure Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
PROCEDURE Merupakan sub program yang tidak mengembalikan nilai secara langsung. Prosedur memiliki struktur yang sama dengan struktur program, yaitu terdiri dari nama prosedur, deklarasi- deklarasi dan statement dalam procedure
PROCEDURE Perbedaan dengan program utama Untuk tanda berakhirnya Procedure diakhiri dengan tanda End; sedangkan Program Utama End. Semua deklarasi di dalam prosedur bersifat lokal sehingga hanya bisa digunakan oleh prosedur itu saja, sedangkan deklarasi di dalam program utama bersifat global sehingga dapat dikenali di seluruh bagian
PROCEDURE PROGRAM judul_program ; var {sifatnya global} PROCEDURE judul_prosedur ; {bagian deklarasi prosedur, sifatnya lokal} Begin Statement prosedur ; End ; Statement program utama ; end.
PROCEDURE CONTOH:: Untuk mencetak pola:: ***** * * * * Menggunakan Procedure… CARA? • Lihat pola yang sama. • Buat definisi: def bar1()=p*;p*;p*;p*;p*;enddef def bar2()=p*;ps;ps;ps;p*;enddef • Perintah menjadi: bar1();NL; bar2();NL; Tanpa Procedure p*; p*; p*; p*;p*;NL; p*;ps;ps; ps; p*; NL; p*; p*; p*; p*; p*; NL;
PROCEDURE uses crt; procedure bar1; begin writeln('*****'); End; clrscr; Bar1;bar2;bar2;bar2;bar1; readkey; end. CONTOH 2: uses crt; procedure hitung; var X, Y : integer; begin write ('Nilai X ='); readln (X) ; Y := X * X; end; hitung; writeln ('Nilai Y =', Y); end. BERHASIL?? Why??
PROCEDURE Bagaimana dengan ???????????? ***** * ***** * *
FUNCTION (Fungsi) Fungsi merupakan sub program/ bagian dari program — Function hampir sama dengan Procedure, Bedanya— Fungsi memiliki tipe data. Fungsi memberikan nilai balik, procedure tidak. Harus ada NamaFungsi di dalam tubuh fungsi, karena digunakan untuk menyimpan output. Penulisannya menggunakan kata Function
FUNCTION STRUKTUR: Uses crt; Function NamaFungsi:tipe data HASIL; begin { statement } NamaFungsi:={???}; end; {statement prog.utama}; HASIL := NamaFungsi; End.
FUNCTION uses crt; Function Y:integer; var X: integer; begin write ('Nilai X ='); readln (X) ; Y := X * X; write('Nilai Y ='); End; begin clrscr; writeln (Y); readkey; end. Program utama Function
Tugas Take Home Buat kalkulator dengan menu (menggunakan procedure dan fungsiHARUS MENGGUNAKAN FUNCTION DAN PROCEDURE SEIMBANG). Pemilihan menu menggunakan percabangan, dan masing-masing menu disimpan dalam sebuah procedure/fungsi.
Contoh Tugas ====Menu Kalkulator==== Tambah Kali Bagi Kurang Pangkat
Untuk Pilihan 1 =====Menu 1 ==== Masukkan angka 1: 3 Masukkan angka 2: 4 -------- + Hasil penjumlahan: 7
Untuk Pilihan 2 =====Menu 2 ==== Masukkan angka 1: 3 Masukkan angka 2: 4 -------- * Hasil perkalian : 12
Untuk Pilihan 3 =====Menu 3 ==== Masukkan angka 1: 3 Masukkan angka 2: 4 -------- / Hasil pembagian : 0.75
Untuk Pilihan 4 =====Menu 4 ==== Masukkan angka 1: 3 Masukkan angka 2: 4 -------- - Hasil pengurangan: -1
Untuk Pilihan 5 =====Menu 5 ==== Masukkan angka 1: 3 Masukkan angka 2: 4 -------- ^ Hasil penjumlahan: 81
KETENTUAN Menggunakan PROCEDURE dan FUNCTION SECARA SEIMBANG Dikirim .rar/.zip berisi .exe dan .pas subjek + file : DDPF_PROCEDURE_NIM email : jekicahyasaputri@yahoo.com Deadline : 15 november 2011 jam 23.59 Tidak ada tugas susulan Jika nama subjek/file salah ATO nggak sesuai ketentuan, resiko ditanggung pengirim.