Type Bentukan

Type Bentukan

Type Bentukan
Pada bagian ini akan membahas tentang produk dari tipe, atau disebut juga type bentukan, dengan pokok bahasan :
1. Bagaimana memakai ekspresi fungsional untuk mendefinisikan tipe komposisi/terstruktur
2. Produk dari type
3. Konstruktor dan selektor
4. Predikat
Spesifikasi type :
Type adalah himpunan nilai dan sekumpulan operator terdefinisi terhadap type tersebut. Membuat spesifikasi type adalah menentukan nama, domain dan operasi yang dapat dilakukan oleh type tersebut. Dalam konteks fungsional, operator terhadap type dijabarkan menjadi fungsi.
Contoh :
Integer : deret dari bit
word : deret dari character, deret character 8 bit
date : integer yang mewakili hari dibanding suatu reference.
Type Bentukan (terstruktur, komposisi) adalah type yang dibentuk dari type yang tersedia. Beberapa contoh type bentukan yang sering dipakai dalam pemrograman :
1. Type BilKompleks, yang terdiri dari bilangan riil dan bilangan imaginer.
2. Type Point, yang terdiri dari (absis,ordinat)
3. Type Pecahan, yang terdiri dari (pembilang,penyebut)
4. Type Date, yang terdiri dari (tanggal,bulan,tahun)
5. Type Jam, yang terdiri dari (jam,menit,detik)
Dari suatu type bentukan, dapat dibentuk type bentukan yang lain. Misalnya :
1. Berdasarkan type point (absis,ordinat), dapat dibentuk type berikut :
Garis, yang terdiri dari (titik-awal, titik-akhir)
2. Berdasarkan Jam dan Date, dapat dibentuk type baru Waktu
yang terdiri dari (jam,tanggal).
Contoh penggunaan Type Bentukan :
1.Type point
Untuk menentukan nilai absis dan ordinat
(defun absis(p) //untuk menentukan titik absis (titik awal)
(car p) // untuk mengambil nilai pertama dari sebuah list
)

(defun ordinat(p) //untuk menentukan titik ordinat (titik akhir)
(car (cdr p)) //untuk mengambil nilai setelah nilai pertama dari sebuah list
)
2. Type pecahan
untuk menentukan nilai pembilang dan penyebut
(defun pemb(p) //untuk menentukan pembilang
(if (>= (car p) 0) (car p) //jika nilai pertama dari list lebih dari sama dengan 0 maka pembilangnya = nilai pertama dari list
(format t “Input Salah!”)) //jika nilai pertama kurang dari 0 maka input salah
)

(defun peny(p) //untuk menentukan penyebut
(if (> (car (cdr p)) 0) (car (cdr p)) //jika nilai setelah nilai pertama dari list lebih dari sama dengan 0 maka pembilangnya = nilai pertama dari list
(format t “Input Salah!”)) //jika nilai setelah nilai pertama kurang dari 0 maka input salah
)

Leave a Comment

Your email address will not be published. Required fields are marked *