Pemanggilan Fungsi Dalam Pemrograman Prosedural

140 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s atau nama konstanta yang telah terdefi nisi dalam kamus atau konstanta; dapat juga berupa harga konstanta, atau harga yang dihasilkan oleh suatu ekspresi atau fungsi. 3. List parameter aktual harus sama jumlah, urutan dan typenya dengan list parameter formal pada pendefi nisian fungsinya. 4. Harga yang dihasilkan oleh fungsi dapat didefi nisikan domainnya dengan lebih rinci. 5. Pada akhir dari eksekusi fungsi, harga yang dihasilkan oleh fungsi dikirimkan ke pemakainya. Fungsi boleh dipakai oleh program utama, prosedur atau fungsi lain. Fungsi Terdefi nisi: Adalah fungsi yang sudah diberikan oleh sistem, dan tinggal dipakai dipanggil. Fungsi terdefi nisi selalu diberikan da t ar dan spesifi kasinya domain + range. Fungsi terdefi nisi untuk melakukan konversi tipe. Seringkali, dibutuhkan konversi dari bilangan riil menjadi integer atau sebaliknya. Maka didefi nisikan duabuah fungsi konversi bilangan numerik sebagai berikut: 141 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Fungsi-fungsi terdefi nisi untuk seleksi terhadap sebuah string : Fungsi-fungsi untuk memperoleh informasi tentang sebuah string : Fungsi suksesor dan predesesor untuk integer Fungsi matematik 142 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Contoh Penulisan Algoritmik Berikut ini diberikan contoh pendefi nisian dan pemakaian pemanggilan fungsi. Pendefi nisian Fungsi Pemanggilan Fungsi 143 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Contoh1-Fungsi : KONVERSI Persoalan: Tuliskanlah sebuah fungsi, yang mengkonversikan harga karakter angka nol sampai dengan 9 menjadi harga numerik sesuai dengan karakter yang tertulis. Contoh : ‘0’ → ‘0’, ‘8’ → ‘8’ Spesifi kasi : Fungsi KarakterToInteger : Domain : x :character [‘0’..’9’] Range : integer [0..9] Proses : analisis kasus terhadap x, untuk setiap harga x diasosiasikan integer yang sesuai. 144 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Contoh 2-Fungsi : APAKAH HURUF ‘A’ Pemetaan karakter ke type boolean Persoalan : Tuliskanlah fungsi IsAnA yang mentest apakah sebuah karakter yang diberikan kepadanya adalah sebuah huruf ‘A’. Harga yang dihasilkan adalah benar jika huruf itu ‘A’, salah jika huruf itu bukan ‘A’ Contoh : IsAnA‘A’ → true IsAnA ‘X’ → false IsAnA ‘Y’ → false Spesifi kasi : Fungsi IsAnA : Domain : x karakter Range : boolean Proses : menghasilkan true jika x adalah ‘A’, false jika tidak 145 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Contoh3-Fungsi : HITUNG METER+CM Pemetaan type dasar ke type bentukan Persoalan : Tuliskanlah sebuah fungsi, yang jika diberikan sebuah angka Cm yang menyatakan panjang dalam cm, akan menghasilkan pasangan harga x1, x2 sesuai dengan rumus ukuran metris i m = 100 cm.sehingga x1100+x2 = Cm Contoh : F100 = 1,0 F355 = 3, 55 Spesifi kasi : Fungsi KonversiCm : Domain : Cm : integer Range : pasangan harga integer Proses : menghitung Meter dan SisaCm sehingga Cm = 100 Meter + SisaCm 146 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Catatan: 1. Terjemahan teks fungsi pada contoh ini ke dalam beberapa bahasa pemrograman tidak “sederhana”, bahkan tidak mungkin dapat dilakukan secara langsung. 2. Cobalah menterjemahkan funsgi di atas ke dalam bahasa Pascal, C dan Ada. Akan terlihat perbedaan yang sangat besar di antara ketiganya. Contoh 4-Fungsi : Ubah dan Periksa KarPersoalan : Tuliskanlah algoritma yang membaca sebuah karakter dan mengubahnya menjadi integer yang sesuai dengan karakter itu jika karakter yang dibaca adalah antara ‘0’ dan ‘9’ dengan memanfaatkan funsgi Karakter ToInteger yang pernah dibuat. . Jika bukan di dalam daerah harga nol dan sembilan, maka harus dituliskan pesan yang berbunyi : ‘Bukan angka’ . Spesifi kasi Input : CC karakter Output : menuliskan integer [0..9] sesuai dengan karakter yang dibaca, jika karakter [‘0’..’9’], atau “Bukan angka” jika CC bukan angka Proses : Konversi dari karakter ke integer, jika CC [‘0’..’9’] Dengan catatan fungsi konversi adalah seperti terdefi nisi pada contoh1 Catatan : Test yang dilakukan sebelum pemanggilan fungsi Karakter ToInteger membuat fungsi Karakter 147 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s ToInteger cukup mengembalikan nilai yang terdefi nisi. Jika domain dari nilai masukan fungsi tidak hanya mencakup karakter angka, maka di dalam fungsi harus didefi nisikan suatu nilai yang di luar defi nisi angka. Contoh 5-Fungsi : HITUNG FUNGSI Defi nisi dan pemanggilan fungsi Persoalan Tuliskanlah algoritma yang membaca 3 bilangan bulat a,b,c, dan menghitung: 6 ax2 + bx +c untuk x = 1 Spesifi kasi Input : a,b,c bilangan bulat, koefi sien persamaan kuadrat, x = 1 Output : Fx Proses : menghitung Fx = 6 ax2 + bx +c menuliskan hasil 148 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Contoh-6 : MAX2 dan MAX3 a. Tuliskanlah fungsi MAX2 , yang menerima masukan dua buah bilangan real dan menghasilkan sebuah bilangan real yaitu salah satu di antara nilai dua buah bilangan tersebut yang terbesar.

b. Kemudian dengan memakai fungsi MAX2,

tuliskanlah sebuah fungsi lain MAX3 yang menghasilkan nilai terbesar dari tiga buah bilangan real. Contoh : MAX21,2 → 2 MAX210,2 → 10 MAX31,2,3 adalah MAX2MAX21,2,3 → 3 MAX310,2,3 adalah MAX2MAX210,2,3 → 10 } 149 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Catatan : a. Bagi yang sudah mengikuti kuliah Pemrograman Fungsional, dapat dilihat bahwa teks program di atas sangat selaras dengan ekspresi fungsional yang pernah dipelajari. b. Pemanggilan fungsi pada konteks prosedural adalah aplikasi fungsi pada konteks fungsional. Contoh-7: PENANGGALAN NEXTDAY Pemetaan type bentukan ke type bentukan Didefi nisikan tipe terstruktur untuk mewakili hari seperti dalam kalender yang kita pakai sehari-hari : type Nama : DATE Tanggal, Bulan,Tahun Konstanta : 5,12,1990 { artinya 5 Desember 1990} 25,2,2001 { artinya 25 Februari 2001}