CS1023 Pemrograman Komputer Lecture 8 Prosedur
Definisi Sederetan instruksi algoritmik yang diberi nama, dan akan menghasilkan efek neto yang terdefinisi. Spesifikasi nama prosedur dan parameter (jika ada) initial state (IS) dan final state (FS) Prosedur didefinisikan dalam kamus Ketika “dipanggil” akan terjadi asosiasi paramater (jika ada) IS dan FS menjamin bahwa eksekusi program akan menghasilkan efek neto yang diharapkan
Definisi (lanj) Jadi, setiap prosedur harus Dibuat spesifikasinya dan dituliskan kode programnya Dipanggil, pada saat eksekusi
Parameter Tanpa parameter Berparamater Memanfaatkan nama-nama yang terdefinisi pada kamus global Harus “hati-hati”, jika teks program sangat besar dan memuat banyak file. Berparamater Untuk kode yang sama pada saat eksekusi dapat dipakai untuk nama paramater yang berbeda-beda Parameter yang dituliskan pada definisi prosedur disebut paramater formal Paramter yang dituliskan pada pemanggilan disebut paramater aktual
Parameter (lanj) Parameter formal, list nama variabel untuk mendefinisikan prosedur, agar dapat dieksekusi dengan nama yang berbeda ketika dipanggil akan diasosiasikan terhadap nama variabel lain pada saat pemanggilan type parameter input, diperlukan sebagai masukan untuk melakukan aksi output, nilai yang dihasilkan oleh prosedur. Input/output, nilai yang diperlukan sebagai masukan untuk melakukan aksi dan pada akhir prosedur akan dihasilkan nilai yang baru.
Parameter (lanj) Parameter aktual, nama variabel atau nilai (harga) yang dipakai ketika prosedur dipanggil dapat berupa nama atau harga (nilai) harus berupa nama jika tipe parameter output yang digunakan (karena hasil disimpan di nama var tsb) Pada saat pemanggilan, parameter aktual harus sesuai dengan parameter formalnya. parameter input harus terdefinisi nilainya parameter output tidak perlu didefinisikan nilainya paramter input/output harus terdefinisi nilainya. pada saat pemanggilan, terjadi asosiasi antara parameter formal dan aktual sesuai posisi (posisition based), maka type var atau nilai (harga) harus kompatibel
Kamus lokal vs global pendefinisian variabel kamus global berlaku untuk program dan semua prosedur/fungsi yang didefinisikan di kamus algoritma utama pendefinisian variabel pada kamus lokal hanya berlaku dalam ruang lingkup fungsi/prosedur yang bersangkutan dan fungsi/prosedur yang didefinisikan di dalamnya.
Pemrograman Moduler program dibagi menjadi modul-modul yang terdefinisi dengan baik dalam bentuk prosedur-prosedur harus jelas definisi dan ruang lingkupnya agar dapat dipanggil secara independen mempermudah programmer untuk “membaca” suatu program yang sangat besar pada beberapa bahasa pemrograman, programmer tidak perlu tahu sama sekali “isi” dari suatu prosedur/fungsi karena sudah “disediakan” oleh bahasa pemrograman tsb. Programmer cukup “memanggilnya” saja
Harus didefinisikan di kamus pemanggil Notasi Algoritmik pendefinisian/spesifikasi prosedur boleh kosong, jika ada (minimal satu nama) maka harus satu atau beberapa nama variabel beserta type nya Harus didefinisikan di kamus pemanggil
Notasi Algoritmik pemanggilan prosedur Saat “dipanggil” terjadi asosiasi antara parameter aktual dan formal list-nama parameter formal dan aktual harus sama jumlah, urutan dan typenya. pemanggilan prosedur
Notasi Algoritmik Syarat pemanggilan prosedur : list-parameter aktual yang berupa Input dpt menggunakan nama variabel atau nama konstanta yg telah dididefinisikan di kamus atau konstanta harga suatu konstanta atau harga yg dihasilkan ekspresi atau fungsi list-parameter aktual yang berupa Output harus berupa nama variabel list-parameter aktual yang berupa Input/Output harus berupa nama variabel
Contoh 1. Voltage
Contoh Solusi 1 : Voltage
Contoh Solusi 2 : Voltage
Komentar Solusi Voltage Prosedur dg parameter lebih menjamin modularitas program. Sedapat mungkin semua prosedur diparameterisasi dg baik Prosedur tanpa parameter bekerja dg nama variabel global. Hanya boleh dipakai untuk kasus yg sangat khusus yaitu jika nama variabel global mrp “universe” dari program. Prosedur tanpa parameter tidak boleh dipakai jika alasannya hanya karena pemrogram malas menuliskan parameter !
Contoh 2 : Tukar
Contoh 2 : Tukar
Contoh 3 : Tukar
Latihan Prosedur 1. Bonus Pegawai
Latihan Prosedur 2. Gaji Karyawan
Latihan Prosedur 3. Akar Persamaan Kuadrat 4. Jumlah hari dalam bulan