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