Kemudian dengan memakai fungsi MAX2,

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} 150 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Tuliskanlah algoritma untuk : - membaca sebuah tanggal dan sebuah kode bahasa penulisan 1=Inggris, 2=Indonesia, 3=Perancis, - menuliskan tanggal keesokan harinya sesuai dengan kode bahasa Dalam bahasa Inggris DATE ditulis dalam : Bulan, ‘’,Tanggal.’’,Tahun Dalam bahasa Indonesia DATE ditulis dalam : Tanggal, ‘-’,Bulan.’-’,Tahun Dalam bahasa Perancis DATE ditulis dalam : Tanggal, ‘’,Bulan.’’,Tahun - Proses menghitung hari esok dilakukan oleh sebuah fungsi NextDay yang menerima masukan sebuah tanggal dan menghasilkan tanggal keesokan harinya. Contoh pemanggilan dan hasil fungsi diberikan sebagai berikut. NextDay13,4,1990,1 → 4 141990 NextDay30,1,1990,2 → 31-1-1990 NextDay31,12,1990,3 → 111991 151 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Soal untuk algoritma di atas: - Tuliskanlah defi nisi fungsi KABISAT dan algoritmanya. - Buat analisis kasus yang lain dari yang dituliskan pada fungsi NEXTDAY di atas, dengan mulai menganalisis tanggal dan bukan bulan. - Buatlah kode program dari fungsi Nextday yang sama dengan hanya melakukan komputasi aritmatika, seperti halnya pada perhitungan durasi yang dibahas pada kalkulasi Type terstruktur JAM pada penjelasan Sequence. 152 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Latihan Soal Fungsi 1. Domain dan range dari fungsi secara umum dapat dirumuskan sebagai berikut : Defi nisikan untuk masing-masing kategori tersebut tiga buah fungsi. Tuliskanlah algoritmanya. 2. Pada beberapa kasus, dikehendaki bahwa fungsi merupakan parameter. Sangat praktis jika nama fungsi dapat dipakai sebagai parameter. Pelajarilah cara implementasi nama fungsi sebagai parameter dalam beberapa bahasa pemrograman. 3. Pada beberapa bahasa Fortran, Pascal fungsi hanya dapat menghasilkan harga bertype dasar. Bahkan pada FORTRAN hanya dapat menghasilkan type numeric integer, real. Bagaimana cara merealisasi fungsi yang menghasilkan type bentukan? 4. Hitung fungsi linier dan patah-patah Tuliskanlah sebuah fungsi bernama FLINIER yang menerima input sebuah bilangan real dan menghitung harga fx sesuai dengan kurva yang melewati titik- titik sebagai berikut : 153 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Pecahan 1. Defi nisikan sebuah tipe pecahan yang terdiri dari pembilang dan penyebut bilangan integer, dan sekumpulan fungsi yang merupakan realisasi dari operator pecahan : a. JumlahP : menerima dua buah pecahan, menghasilkan jumlah berupa pecahan b. KurangP : menerima dua buah pecahan, menghasilkan selisih berupa pecahan c. KaliP : menerima dua buah pecahan, menghasilkan hasil kali berupa pecahan d. BagiP : menerima dua buah pecahan, menghasilkan hasil bagi berupa pecahan 2. Buat soal di atas jika pecahan terdiri atas bilangan bulat, pembilang dan penyebut, dengan syarat bahwa pembilang harus lebih kecil dari penyebut 3. Bagi yang sudah mengikuti kuliah pemrograman fungsional dengan menggunakan Diktat Pemrograman Fungsional oleh penulis yang sama, lihat pembahasan mengenai Type PECAHAN, kemudian buatlah semua operator menjadi fungsi dalam notasi prosedural. Implementasikan dalam sebuah unitteks terpisah yang akan mengelola semua operasi terhadap pecahan dengan kerangka sebagai berikut : 154 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s TYPE JAM dan DATE lihat bagian Type Bagi yang sudah mengikuti kuliah pemrograman fungsional, dengan berinspirasi kepada Type Pecahan, buatlah semua operator menjadi fungsi dalam notasi prosedural. Implementasikan dalam sebuah unit teks terpisah yang akan mengelola semua operasi terhadap pecahan dengan kerangka sebagai berikut : 155 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s BAB IX PROSEDUR

9.1 Defi nisi

P rosedur adalah sederetan instruksi algoritmik yang diberi nama, dan akan menghasilkan efek neto yang terdefi nisi. Prosedur menyatakan suatu aksi dalam konsep algoritma yang dibicarakan pada cerita “Mengupas kentang”. Mendefi nisikan membuat spesifi kasi prosedur berarti menentukan nama prosedur serta parameternya jika ada, dan mendefi nisikan keadaan awal Initial State, I.S. dan keadaan akhir Final State, F.S. dari prosedur tersebut. Prosedur didefi nisikan dituliskan spesifi kasinya dalam kamus. Cara penulisan spesifi kasi : prosedur diberi nama, dan parameter formal jika ada yang juga diberi nama dan d ij elaskan tipenya. Secara sederhana, dapat diartikan bahwa sebuah prosedur yang terdefi nisi “disimpan” di tempat lain, dan ketika “dipanggil” dengan menyebutkan namanya “seakan-akan” teks yang tersimpan di tempat lain itu menggantikan teks pemanggilan. Pada saat itu terjadi asosiasi parameter jika ada. Dengan konsep ini, maka I.S dan F.S dari prosedurlah yang menjamin bahwa eksekusi program akan menghasilkan efek neto yang diharapkan. 156 Konsep Pemrograman Komputer Berbasis Teks dan Grafi s Jadi, setiap prosedur harus : - didefi nisikan dibuat spesifi kasinya dan dituliskan kode programnya - dipanggil, pada saat eksekusi oleh prosedur lain atau oleh program utama.

9.2 Parameter Prosedur Prosedur tanpa parameter memanfaatkan nilai

dari nama-nama yang terdefi nisi pada kamus global. Pemakaiannya biasanya harus “hati-hati”, apalagi jika teks program sudah sangat besar dan implementasinya menjadi banyak fi le. Prosedur berparameter dirancang, agar sepotong kode yang sama ketika eksekusi dilakukan, dapat dipakai untuk nama parameter yang bebeda-beda. Nama parameter yang dituliskan pada defi nisispesifi kasi prosedur disebut sebagai parameter formal. Sedangkan parameter yang dituliskan pada pemanggilan prosedur disebut sebagai parameter aktual. Parameter formal adalah nama-nama variabel list nama yang dipakai dalam mendefi nisikan prosedur, dan membuat prosedur tersebut dapat dieksekusi dengan nama-nama yang berbeda ketika dipanggil. Parameter formal adalah list nama yang akan dipakai pada prosedur, yang nantinya akan diasosiasikan terhadap nama variabel lain pada saat pemanggilan. Sesuai dengan ketentuan nilainya, ada tiga type parameter formal: - parameter Input, yaitu parameter yang diperlukan prosedur sebagai masukan untuk melakukan aksi yang efektif. - parameter Output, yaitu parameter yang nilainya akan dihasilkan oleh prosedur. Hasil nilai akan disimpan