• Tidak ada hasil yang ditemukan

BAB 4 SENARAI, OPERATOR DAN ARITMETIK. Pengenalan. Objektif. 4.1 Perwakilan Senarai. TS Sistem Cerdas

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 SENARAI, OPERATOR DAN ARITMETIK. Pengenalan. Objektif. 4.1 Perwakilan Senarai. TS Sistem Cerdas"

Copied!
8
0
0

Teks penuh

(1)

BAB 4 SENARAI, OPERATOR DAN

ARITMETIK

Pengenalan

Bab ini membincangkan notasi khas untuk senarai yang merupakan satu bentuk struktur yang paling mudah dan berguna. Operasi-operasi asas senarai turut dibincangkan dalam bab ini. Pengiraan aritmetik mudah dan notasi operator akan diguna dalam penulisan aturcara bagi menambahkan kebolehbacaan aturcara Prolog.

Objektif

Di akhir bab ini anda dapat:

1. Mengetahui bagaimana data diwakilkan dalam bentuk senarai. 2. Mempelajari operasi-operasi asas senarai.

3. Mempelajari operasi aritmetik dalam bahasa pengaturcaraan Prolog.

4.1 Perwakilan Senarai

Senarai merupakan struktur data mudah yang diguna secara meluas dalam pengaturcaraan bukan numerik. Senarai adalah jujukan sebarang bilangan item seperti bolasepak, badminton, kriket, hoki atau ahmad, ali, siti, fatima. Senarai dalam Prolog ditulis sebagai:

[bolasepak,badminton,kriket,hoki] [ahmad,ali,siti,fatima]

Namun begitu, kesemua objek berstruktur dalam Prolog diwakilkan dalam bentuk pohon dan senarai juga tidak terkecuali dalam perwakilan ini. Perwakilan pohon bagi senarai di atas ditunjukkan dalam Rajah 4.1.

(2)

hoki []

Rajah 4.1 : Perwakilan pohon bagi senarai [bolasepak,badminton,kriket,hoki] Senarai dalam sistem Prolog boleh terdiri daripada senarai kodong atau senarai bukan kosong. Bagi kes yang pertama, senarai boleh ditulis sebagai atom, []. Bagi kes yang kedua, senarai boleh digambarkan sebagai mengandungi dua perkara iaitu :

(1) item pertama yang dikenali sebagai kepala senarai (2) item selebihnya yang dikenali sebagai ekor senarai Bagi contoh senarai di bawah:

[bolasepak,badminton,kriket,hoki]

kepala ialah bolasepak dan bahagian ekor senarai ialah: [badminton,kriket,hoki]

Di bawah dinyatakan ciri-ciri yang dipunyai oleh senarai:

• senarai boleh mengandungi sebarang bilangan elemen samada konstan, pembolehubah, nombor atau pun senarai yang lain.

• Satu senarai boleh kosong yang diwakilkan sebagai [].

• Elemen pertama dalam senarai dipanggil kepala senarai dan yang selebihnya dipanggil ekor senarai. Ekor bagi senarai juga dipanggil senarai. Contohnya :

Senarai=[aa,bb,cc] Kepala=aa Ekor=[bb,cc]

• Satu senarai boleh dipisahkan kepada kepala dan ekor dengan menggunakan simbol |

Senarai=[Kepala|Ekor] ?-[K|E]=[a,b,c] K=a E=[b,c] • Terdapat berbagai cara untuk menulis senarai yang sama. Contohnya : [a,b,c] = [a|[b,c]] = [a,b|[c]] = [a,b,c|[]]

• Elemen senarai boleh diulang dalam satu senarai. olasepak, badminton,kriket, hoki]

bolasepak badminton

(3)

4.2 Operasi Senarai

Operasi senarai adalah sama dengan operasi dalam set. Tetapi, terdapat 2 perbezaan iaitu :

1. Turutan atau susunan elemen dalam satu set tidak penting, tetapi susunan elemen dalam senarai adalah penting.

2. Elemen yang sama dalam senarai boleh diulang tetapi ulangan elemen yang sama dalam set tidak dibenarkan.

Antara operasi senarai yang boleh dilakukan ialah:

• menyemak sama ada sesuatu objek itu merupakan ahli kepada senarai iaitu sama dengan menyemak keahlian set.

• menggabungkan dua senarai dan menghasilkan senarai ketiga dan ini menyamai kesatuan bagi set.

• menambah objek baru kepada senarai atau menghapus objek dari senarai.

4.2.1 Keahlian

Andaikan kita mentakrif hubungan keahlian sebagai keahlian(X,S)

dengan X ialah objek dan S ialah senarai. Gol keahlian(X,S) adalah benar jika X wujud dalam S iaitu objek X adalah ahli kepada satu senarai S. Sebagai contoh:

keahlian (b,[a,b,c]) adalah benar keahlian (d,[a,b,c]) adalah palsu

keahlian ([b,c],[a,[b,c]]) adalah benar keahlian (b,[a,[b,c]]) adalah palsu

Aturcara hubungan keahlian boleh didasarkan kepada pemerhatian berikut: X adalah ahli kepada S jika sama ada

(1) X adalah kepala bagi S, atau (2) X adalah ahli kepada ekor bagi S

Hubungan keahlian boleh ditulis dalam aturcara Prolog dengan menggunakan 2 klausa. Klausa pertama itu fakta dan klausa kedua merupakan peraturan iaitu:

(4)

4.2.2 Penggabungan

Bagi penggabungan senarai, kita akan takrifkan hubungan: gabung(S1,S2,S3)

Hubungan gabung boleh menggabungkan 2 senarai S1 dan S2 untuk menghasilkan S3 yang terdiri daripada kandungan S1 dan S2. Sebagai contoh:

gabung([a,b],[c,d],[a,b,c,d]) adalah benar, tetapi

gabung([a,b],[c,d],[a,b,a,c,d])

adalah palsu. Dalam pentakrifan hubungan gabung, kita perlu mempertimbangkan dua kes, bergantung kepada argumen pertama iaitu S1.

(1) Jika argumen pertama adalah senarai kosong, maka argumen kedua dan ketiga adalah sama (kenalis ebagai S). Ini boleh ditunjukkan oleh fakta Prolog berikut:

gabung([],S,S).

(2) Jika argumen pertama bukan senarai kosong, maka ini bermakna ia mempunyai kepala dan ekor yang boleh digambarkkan sebagai:

[X|S1]

Rajah 4.2 menunjukkan penggabungan bagi [X|S1] dengan satu senarai S2. Hasil dari penggabungan ini ialah satu senarai [X|S3] dengan S3 adalah penggabungan di antara S1 dengan S2. Dalam Prolog, penggabungan senarai bagi kes kedua ini boleh ditulis sebagai:

gabung([X|S1],S2,[X|S3]) :- gabung(S1,S2,S3).

Bagi kedua-dua kes di atas, operasi penggabungan senarai boleh ditulis dalam aturcara Prolog melalui dua klausa iaitu:

gabung([],S,S).

gabung ([K|S1],S2,[K|S3]):-

(5)

Rajah 4.2: Penggabungan senarai

Aturcara ini seterusnya boleh diguna untuk menggabungkan sebarang senarai yang diberi. Sebagai contoh:

?-gabung([a,b],[c,d],S). S = [a,b,c,d]

?-gabung([a,[b,c]],[p,[],q,r],S). S = [a,[b,c],p,[],q,r]

Hubungan gabung adalah satu hubungan fleksibel dan boleh digunakan dalam pelbagai cara seperti:

(1) Untuk memecahkan satu senarai ?- gabung(S1,S2,[a,b,c]). S1=[],S2=[a,b,c];

S1=[a],S2=[b,c]; S1=[a,b],S2=[c]; S1=[a,b,c],S2=[]; (2) Untuk melihat corak

?-gabung(Sebelum,[d|Selepas],[a,b,c,d,e,f,g,h,i]). Sebelum=[a,b,c,d] Selepas=[f,g,h,i] S1 X S2 S3 X S3 [X|S1] [X|S3]

(6)

4.2.3 Penambahan Elemen

Untuk menambah elemen kepada senarai adalah mudah dengan memasukkan elemen baru itu di depan senarai supaya ia menjadi kepala baru senarai. Jika X ialah item baru dan S ialah senarai untuk dimasukkan item X, maka hasil yang diperolehi dari operasi penambahan ini ialah:

[X|S]

Secara ringkasnya satu elemen baru boleh ditambah di depan senarai dan boleh dicapai melalui klausa:

tambah(X,S[X|S]). Contohnya:

?- tambah(d,[a,b,c],S). S=[d,a,b,c]

Untuk menambah elemen pada senarai belakang pula, kita boleh guna hubungan append yang telah ditakrifkan dalam sesetengan implementasi sistem Prolog. Contohnya:

?-append([1,2,3],[4,5,6],X) X=[1,2,3,4,5,6]

4.2.4 Penghapusan Elemen

Penghapusan elemen X dari senarai S boleh diprogramkan sebagai hubungan: hapus(X,S,S1)

dengan S1 adalah sama dengan senarai S yang telah dihapuskan elemen X iaitu S1 tidak mengandungi elemen X. Hubungan hapus boleh ditakrifkan seperti hubungan keahlian. Terdapat dua kes yang perlu dipertimbangkan, iaitu:

(1) Jika X ialah kepala senarai, maka hasil penghapusan elemen ialah ekor senarai.

(3) Jika X berada di bahagian ekor senarai, maka ia akan dihapuskan di bahagian tersebut.

Satu elemen boleh dihapuskan dari satu senarai dengan menggunakan 2 klausa iaitu :

hapus(X,[X|Ekor], Ekor).

hapus(X,[Y|Ekor],[Y|Ekor1]):- delete(X,Ekor,Ekor1). Contoh operasi hapus elemen ialah:

(7)

S= [b,c] ?- hapus(a[b,a,c,a],S). S=[b,a,c,a]; S=[a,b,c,a]; S=[a,b,a,c]; No

Hubungan hapus adalah tidak deterministik. Jika X wujud beberapa kali dalam senarai, maka hubungan hapus akan menghapuskan sebarang elemen (yang sama) di antaranya secara penjejakan belakang. Proses penjejakan belakang tidak dibincangkan dalampenyediaan mudul ini.

4.3 Operasi

Aritmetik

Prolog menyediakan beberapa operator tertakrif untuk operasi asas aritmatik seperti: + tambah - tolak * darab / bahagi mod modulas

Contoh penggunaan operasi aritmetik dalam Prolog ialah:

?-X=1+2. (Satu percubaan yang salah dalam operasi aritmetik) X=1+2 (X disamakan kepada 1+2)

Aritmetik juga melibatkan perbandingan nilai numerikal. Contohnya: ?-100 *2 > 100

yes

?-X is 3/2, Y is 3 div 2

Jawapan yang diberi oleh sistem Prolog ialah: X = 1.5

(8)

integer. Penggunaan is dan operator ‘>’ akan mendesak sistem Prolog untuk membuat penilaian.

Operasi-operasi +, -, *, / dan div akan dilaksanakan dari kiri ke kanan. Sebagai contoh:

X is 5 – 2 – 1

akan diterjemahkan sebagai: X is (5-2) – 1

4.4 Rumusan

Bab ini memperkenalkan beberapa konsep seperti senarai, kepala senarai, ekor senarai, notasi senarai dan prosidur dalaman aritmetik. Bab ini juga tutut membincangkan beberapa operasi asas yang boleh dilaksanakan pada senarai. Kefahaman pelajar dalam bab ini amat penting kerana senarai banyak diguna dalam aplikasi sistem cerdas. Bab seterusnya dalam unit ini akan membincangkan konsep pangkalan data dan bagaimana pangkalan data ditakrif dan diguna dalam bahasa pengaturcaraan Prolog.

Latihan

1. Takrifkan predikat atau hubungan

jumsenarai(Senarai,Jumlah)

supaya Jumlah ialah jumlah bagi keseluruhan senarai nombor dalam Senarai.

2. Takrifkan hubungan

maksimum(X,Y,Mak)

supaya Mak merupakan nilai yang lebih besar di antara dua nombor X dan Y.

3. Takrifkan hubungan

songsangan(Senarai,SenaraiSongsang)

yang akan membuat songsangan terhadap senarai yang diinput. Contohnya songsangan([a,b,c,d],[d,c,b,a]).

Referensi

Dokumen terkait

7. Bayi perlu disenda4akan dengan *rekuensi yang sering karena kelainan tersebut dapat menyebabkan menelan udara lebih  banyak sehingga menimbulkan rasa tidak

Pembuatan aplikasi ini memberikan alternatif dalam mendapatkan informasi yang ada pada toko buku sehingga pelanggan dapat mengakses informasi tersebut dengan menggunakan

Si RELA adalah produk simpanan yangdikelola berdasarkan prinsip Mudharabah, yaitu anggota sebagai sohibul maal (pemilik dan) sedangkan BMT sebagai Mudharib

Intensi Agresivitas adalah kecenderungan seseorang berperilaku yang berlawanan dengan aturan umum atau norma sosial yang dilakukan baik secara fisik maupun verbal dengan sengaja

Sido Muncul Tbk dalam Membangun Stakeholder Engagement ( Studi Kasus Program Mudik Gratis Sido Muncul Bersama Pedagang Jamu ke-25 Periode 2014) dengan baik sesuai dengan..

Hanifah Agusputri dan Sofie (2019) Faktor-Faktor yang Berpengaruh terhadap Fraudulent Financial Reporting dengan Menggunakan Analisis Fraud Pentagon Variabel Dependen:

Alhamdulillahirobil’alamin, atas izin Allah SWT, akhirnya penulis dapat menyelesaikan penyusunan skripsi, dengan judul “Hubungan Antara Motivasi dan Sikap Bidan

Kalau kulit bumi i ni ru sak tidak terpeliharaseperti tidak ada pohon- pohonan , maka air tidak akan terpelihara dikul i t bumi yang disebut tanah.. P ohon-pohon