ABSTRAK
Final Project ini bertema Expert System, yang berjudul HP Sahabat Rumah. Expert system ini bertujuan untuk memudahkan pekerjaan rumah terutama dalam pengecekan peralatan listrik, seperti lampu, AC, TV dan pagar elektrik. Dengan cara mengontrol jarak jauh menggunakan Short Messages Service (SMS). Berdasarkan program yang telah dibuat, program tersebut dihubungkan dengan nomer telpon yang ada di rumah tersebut dengan menggunakan kata sandi tertentu. Kemudian dihubungkan dengan alat yang dapat menerjemahkan kata sandi yang kita kirimkan, lalu nantinya program akan memberi balasan sesuai dengan apa yang di tanyakan. Sehingga hal ini dapat menjadikan sebuah manfaat bagi siapa saja yang menggunakannya.
KATA PENGANTAR
Assalamua’alaikum Wr. Wb.
Pertama-tama penulis panjatkan puja dan puji syukur kehadirat Allah SWT atas berkah, rahmat dan karunia-Nya yang dilimpahkan kepada penulis sehingga dapat menyusun dan menyelesaikan Desigen Expert System yang berjudul “HP Sahabat Rumah” ini dengan sebaik-baiknya. Serta tidak lupa pula Shalawat dan Salam tetap tercurahkan kepada Rasulullah Nabi Muhammad SAW.
Penulis juga mengucapkan terima kasih atas bimbingan ada masukan dari Dosen Matematika Diskrit, Bapak Mukhlakson yang membantu penulis dalam menyelesaikan tugas Final Project ini hingga terselesaikan dengan baik.
Penulis menyadari sepenuhnya bahwa dalam penulisan masih jauh dari kesempurnaan karena terbatasnya sumber dan kemampuan yang penulis miliki. Sebab kesempurnaan seutuhnya hanya milik Allah SWT dan kekurangan hanya hanya ada pada diri kita, sehingga penulis sangat mengharapkan kritik dan saran yang sifatnya membangun agar Final Project ini menjadi lebih baik. Dan semoga hasil karya ini dapat berguna bagi pembaca dan perkembangan ilmu pengetahuan bagi kita semua. Amin.
Wassalamu’alaikum Wr. Wb.
Surabaya, 22 Desember 2009
Penulis
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Pada jaman sekarang manusia banyak sekali yang di sibukkan dengan hal-hal urusan atau kepentingan yang berada di luar lingkungan rumah, mungkin seperti pekerja kantoran. Terkadang mereka pulang larut malam sehingga tidak dapat mengontrol keadaan rumah seperti halnya menyalakan lampu. Atau pada saat mereka ada keperluan diluar mulai pagi hingga larut malam. Bahkan sampai menginap di luar rumah seperti halnya pulang kampung. Biasanya kita kerepotan dalam urusan pengecekan alat-alat listrik seperti mengontrol lampu rumah, mengecek peralatan listrik laininnya seperti TV atau AC, laku mengecek keadaan pagar dalam keadaan terkunci atau tidak.
Sekarang pemanfaatan SMS sangat lah marak dan bahkan kenyataannya tidak bisa lepas dari kehidupan sehari-hari manusia. Hampir setiap saat fitur SMS selalu digunakan mulai dari hal yang penting untuk dibicarakan, sampai dalam hal mengobrol sekalipun melalui SMS.
Dengan maraknya penggunaan fitur SMS tersebut, kami ingin menciptakan suatu pemanfaatan baru terhadap fitur tersebut. Dengan mengunakan fitur SMS, untuk mengontrol keadaan rumah yang nyatanya terkadang jika kita berada jauh diluar rumah atau sedang melakukan kegiatan yang membutuhkan waktu yang lama diluar rumah, kita kebingung bagaimana cara untuk menyalakan lampu rumah jika malam ataupun lupa apakah peralatan listrik yang ada dirumah sudah di non aktifkan. Ataupun ingin mengecek apakah keadaan pagar masih terkunci dengan baik atau tidak. Maka pada hal-hal semacam ini kita akan memberi sebuah kemudahan dengan cara menggunakan SMS dan dihubungkan pada kata-kata sandi yang telah ditentukan sebelumnya, dan meletakkan alat perantaranya seperti telpon rumah dan alat-alat penerjemah kata sandi itu di setiap alat listrik yang telah ditentukan.
1.2 Rumusan Masalah
Berdasarkan latar belakang tersebut, maka dapat disusun rumusan masalah sebagi berikut:
1. Bagaimana cara mengecek dan mengontrol keadaan peralatan listrik yang ada pada rumah dari jarak jauh?
2. Dampak pemakaian expert system ini dalam mengecek dan mengontrol keadaan peralatan listrik yang ada pada rumah dari jarak jauh?
1.3 Ruang Lingkup
Adapun ruang lingkup dalam expert system ini adalah:
1. Peralatan listrik yang ada di rumah seperti lampu, TV, AC, dan pagar elektrik
1.4 Tujuan Expert System
Adapun tujuan expert system ini adalah:
1. Mengetahui cara mengecek dan mengontrol keadaan peralatan listrik yang ada pada rumah dari jarak jauh.
2. Mengetahui dampak pemakaian expert system ini dalam mengecek dan mengontrol keadaan peralatan listrik yang ada pada rumah dari jarak jauh.
1.5 Manfaat Expert System
Hasil dari expert system ini diharapkan dapat bermanfaat dan membantu manusia dalam mengecek dan mengontrol peralatan listrik yang ada dirumah. Sehingga orang-orang yang mempunyai pekerjaan diluar tidak perlu kebingungan atau kerepotan dalam mengurusi persoalan-persoalan yang seperti itu.
BAB 3
DESAIN EXPERT SYSTEM
Desain Expert System dari program kami sebenarnya tidaklah rumit. Lebih jelasnya dapat dilihat dalam flowchart berikut.
Kali pertama, tentu saja ada terminator dengan isi start. Artinya program dimulai. Setelah itu, ada inisialisasi data peralatan listrik on/off. Maksudnya, program membuat inisialisasi data, mana saja peralatan listrik yang sedang menyala dan peralatan listrik mana saja yang sedang mati.
Kemudian di chart ketiga ada inisialisai parameter yang digunakan untuk pengecekan. Artinya, kami membuat parameter-parameter yang nantinya berguna untuk diakses saat proses bekerja.
Selanjutnya ada inisialisasi parameter yang digunakan untuk menyalakan atau mematikan peralatan listrik. Sudah jelas bahwa parameter ini digunakan untuk merubah yang sedang menyala menjadi mati dan sebaliknya.
Setelah itu, ada chart proses yang berisi input kata kunci parameter untuk melakukan proses. Fungsinya tentu saja untuk melakukan masukan ntuk mengakses parameter-parameter yang telah dibuat. Kemudian di chart yang berikutnya, ada cetak hasil. Digunakan untuk mencetak hasil dari masukan yang diterima program.
Sebelum program berakhir, tentu saja ada pencetakan hasil seperti yang telah kami nyatakan sebelumnya. Setelah pencetakn hasil, maka program pu berakhir.
CHAPTER 4
PENGEMBANGAN EXPERT SYSTEM
Untuk menggunakan Prolog dalam logic programming, tentu saja kita harus menuiskan inisialisasi data, parameter, dan hal-hal lain yang dapat mendukung pengaksesan data yang telah dibuat.
Dalam pengembangan expert system di program ini, kami hany menuliskan dua bagian, yaitu inisialisasi data dan pengunaan parameter. Berikut ini adalah snapshot dari inisialisasi data yang telah kami buat.
Di atas terlihat bahwa ada inisialisasi data lampu, AC, TV, dan pagar. Coba kita lihat satu saja diantara mereka. Di baris pertama, ada kode sebagai berikut
lampu(teras,99,1,on).
Maksud dari kode di atas adalah, peralatan listrik berupa lampu, posisinya berada di teras. Angka 99 disini kami gunakan sebagai inisialisasi kondisi dari lampu tersebut. Disini kami menggunakan dalam persen. Sehingga, nanti bila dicetak akan tertulis 99%.
Kemudian di bagian ketiga ada angka 1. Di bagian ketiga ini kami mggunakannya sebagai penanda usia dari peralatan listri tersebut. Inisialisasi yang kami buat disini dalam satuan bulan. Jadi, bila nantinya program mencetak usia ini, akan tercetak 1 bulan.
Setelah itu di bagian terakhir ada kata on. On disini kami gunakan sebagai inisialisasi bahwa lampu yang ditunjuk sedang dalam keadaan menyala.
Penjelasan di atas berlaku pada tiga peralatan listrik yang ada, yaitu lampu, ac, dan tv. Berbedah halnya dengan pagar elektrik. Kami hanya menggunakan tiga predikat. Contohnya sebagai berikut.
pagar(besar,depan,buka).
Kode di atas maksudnya adalah peralatan listrik berupa pagar elektrik, ukurannya besar, posisinya di depan, dan dalam keadaan sedang terbuka. Mungkin sedikit berbeda dengan lainnya. Namun, tidak ada masalah yang akan ditimbulkan darinya.
Kemudian kita masuk ke area parameter. Untuk mengakses data yang telah kami inisialisasikan, kami menggunakan beberapa parameter yang diantaranya digunakan untuk pengecekan, menyalakan, dan mematikan. Dalam parameter ini, kami membaginya menjadi 7 bagian unutk memudahkan penjelasan.
Untuk lebih mudahnya, kita lihat saja snapshot dari inisialisasi parameter sebagai berikut beserta penjelasannya satu persatu.
Parameter 1
Pada bagian pertama, kami menggunakan parameter yang berfungsi untuk pengecekan peralatan listrik yang sedang menyala. Bisa dilihat pada baris pertama ada cek_lampu_on. Untuk memudahkan pengguna, kami menggunaka bahasa yang sederhana dan ringkas seperti di atas.
cek_lampu_on sendiri, artinya adalah pengecekan lampu yang sedang dalam posisi on (menyala). Setelah itu, kita masuk kedalamnya. Ada kode sebagai berikut
lampu(Pos,_,_,on),write(Pos),nl,fail.
Kami menuliskan seperti di atas agar program melakukan pendeteksian ke data mana saja dari peralatan lampu yang sedang menyala. Setelah itu akan ada keluaran berupa posisi lampu yang sedang menyala (ditunjukkan oleh write(Pos)). Kemudian ada nl untuk menggunakan new line, seperti tombol enter pada keyboard.
Penjelasan di atas juga hampir sama dengan dua pengcekan yang lain.
Parameter 2
Parameter yang kedua sebenarnya tidak jauh berbeda denga parameter yang pertama. Namun bedanya disini program yang akan mengakses data dari peralatan listrik yang sedang off.
Parameter 3
Dalam parameter yang ketiga sebenarnya juga tidak jauh berbeda dengan dua parameter sebelumnya. Perbedaannya, jika dua parameter sebelumnya hanya mengecek peralatan listrik yang sedang menyala (parameter 1) atau sedang mati (parameter 2), disini pengecekan diunakan untuk mengakses semuanya. Baik yang sedang mati maupun menyala.
Perbedaan berikutnya adalah pencetakan hasil dari keduanya. Dalam dua parameter sebelumnya, keluaran hanya berupa posisi dari suatu peralatan listrik. Sedangkan disini akan ada sedikit tambahan yaitu pencetakan kata lampu untuk parameter lampu (contohnya ditunjukkan oleh write(‘Lampu ‘), dan pencetakan kondisi lampu sedang menyala atau mati (ditunjukkan oleh write(S) pada lampu, TV, AC, dan write(K) untuk pagar).
Penjelasan di atas juga berlaku pada tiga parameter lainnya, hanya berbeda parameter (apakah lampu, AC, TV, atau pagar) yang diakses dan perbedaan penulisan kata seperti write(‘Lampu ‘) dengan write(‘AC ‘) maupun dengan yang lain.
Parameter 4
Parameter yang keempat digunakan untuk mengetahui kondisi dan usia dari tiga peralatan listrik yaitu lampu, ac, dan tv.
Dalam parameter ini, kami hanya mengakses tiga predikat, yaitu posisi, kondisi dan usia (ditunjukkan oleh lampu(Pos,Cond,Usia,_)). Kemudian dalam pencetakannya akan seperti penjelasan di paragraf terakhir dari parameter 3. Selain itu, menurut kami penjelasan pada parameter pertama sudah cukup mewakili.
Paramater 5
Parameter yang satu ini digunakan untuk menyalakan lampu, TV, dan AC. Dalam parameter ini, yang diakses hanyalah dua predikat yaitu posisi dan keadaan lampu (contohnya ditunjukkan oleh lampu(Pos,_,_off)). Karena, untuk menyalakan lampu, maka yang kami gunakan untuk pencarian adalah peralatan listrik yang dalam keadaan off (mati).
Setelah itu ada penulisan kata, kemudian penulisan posisi (write(Pos)), dan penulisan kata on (write(‘ on’)). Fungsinya sudah jelas.
Parameter 6
Parameter yang keenam sebenarnya hampir sama dengan parameter kelima. Namun bedanya disini adalah jika parameter 5 untuk menyalakan peralatan listrik, maka di parameter 6 ini digunakan untuk mematikan peralatan listrik.
Tentu saja yang dicari oleh program bukan peralatan listrik yang dalam keadaan off (menyala) seperti parameter 5, namun yang dicari adalah yang dalam keadaan on (menyala).
Parameter 7
Parameter yang terakhir ini digunakan untuk membuka dan menutup pagar. Kami menggunakan ketiga presikat yang dimiliki oleh pagar, yaitu ukuran, posisi, dan keadaan (contohnya ditunjukkan oleh pagar(Uk,Pos,tutup)).
Untuk membuka pagar kami menuliskan kata pagar (write(‘Pagar ‘)), kemudian menuliskan ukuran pagar (write(Uk)), setelah itu menuliskan posisi pagar (write(Pos)), dan yang terakhir menuliskan write(‘ tutup’) yang digunakan untuk menuliskan kata tutup.
Untuk menutup pagar kami menuliskan kata pagar (write(‘Pagar ‘)), kemudian menuliskan ukuran pagar (write(Uk)), setelah itu menuliskan posisi pagar (write(Pos)), dan yang terakhir menuliskan write(‘ buka’) yang digunakan untuk menuliskan kata tutup.
CHAPTER 5
EXPERT SYSTEM TEST CASE
Untuk melakukan pengetesan program dari inisialisasi data dan inisialisasi parameter yang telah dituliskan di atas, maka kami menggunakan aplikasi prolog. Langkah pertama adalah dengan membuka aplikasi prolog tersebut. Kemudian klik consult dan pilih file yang berisi data dan parameter tadi.
Setelah itu, baru kita mengetikkan parameter yang telah dibuat sebelumnya. Contoh snapshotnya seperti di bawah ini.
Dalam gambar di atas dapat dilihat bahwa pada nomor pertama kami melakukan seperti contoh pada parameter yang pertama.
Pada nomor dua kami sesuaikan dengan parameter kedua. Sedangkan Nomor tiga dan nomor empat adalah contoh penerapan dari parameter ketiga.
Pada nomor lima dari gambar di atas, merupakan implementasi dari paramater empat.
Kemudian nomor enam dari gambar di atas berdasarkan pada parameter lima. Lalu di nomor 7 kita dapat melihat contoh dari parameter keenam.
Dan pada dua nomor terakhir, yaitu nomor 8 dan 9 adalah contoh dari parameter ketujuh dalam penjelasan kami sebelumnya. BAB 6
KESIMPULAN
Ide dari expert system ini menurut kami sangatlah bagus dan tepat guna. Karena saat ini banyak sekali orang yang lupa pada keadaan peralatan listrik yang ditinggalkan di rumah.
Namun, di sisi lain, dengan beberapa analisa yang telah kami buat sendiri, kami merasa jurnal yang kami buat sebenarnya sangat jauh dari kata sempurna. Hal ini dikarenakan terjadi kesalahan setelah jika kita melakukan perubahan keadaan peralatan listrik. Misalnya saja kita merubah lampu yang mati menjadi menyala. Tapi jika setelah itu kami melakukan pengecekan lampu, maka keluaran tidak akan berubah dari pengecekan awal. Intinya untuk saat ini kami tidak bisa melakukan perubahan value dari inisialisasi data yang telah dilakukan sebelumnya.
Untuk pengembangan selanjutnya, kami berharap ada yang mampu mengimplementasikan ide expert system ini ke dalam kehidupan nyata.
DAFTAR PUSTAKA
Buku
Logic Programming with Prolog, Max Bramer, USA, 2005.
Discrete and Combinatorial Mathematics, Kenneth H. Rosen, Florida, 2000.
Web page
BIOGRAFI PENULIS
Give short introduction of your team member here. Tell a little bit of your life to the readers. Do not forget to include your photo.
LAMPIRAN
1. Pseudocode Program
lampu(teras,99,1,on).
lampu(kamar_1,90,8,on).
lampu(kamar_2,75,1,off).
lampu(kamar_3,0,error,off).
lampu(k_mandi_1,100,1,off).
lampu(k_mandi_2,90,12,on).
lampu(dapur,60,24,off).
lampu(r_tamu,85,5,on).
lampu(r_tengah,10,36,off).
ac(kamar1,90,12,off).
ac(kamar2,90,12,off).
ac(r_tengah,80,12,on).
tv(r_tengah,95,12,off).
tv(kamar_1,90,12,off).
pagar(besar,depan,buka).
pagar(kecil,depan,tutup).
pagar(besar,blkg,tutup).
cek_lampu_on :- lampu(Pos,_,_,on),write(Pos),nl,fail.
cek_ac_on :- ac(Pos,_,_,on),write(Pos),nl,fail.
cek_tv_on :- tv(Pos,_,_,on),write(Pos),nl,fail.
cek_lampu_off :- lampu(Pos,_,_,off),write(Pos),nl,fail.
cek_ac_off :- ac(Pos,_,_,off),write(Pos),nl,fail.
cek_tv_off :- tv(Pos,_,_,off),write(Pos),nl,fail.
cek_lampu :- lampu(Pos,_,_,S),write('Lampu '),write(Pos),write(' '),write(S),nl,fail.
cek_tv :- tv(Pos,_,_,S),write('TV '),write(Pos),write(' '),write(S),nl,fail.
cek_ac :- ac(Pos,_,_,S),write('AC '),write(Pos),write(' '),write(S),nl,fail.
cek_pagar :- pagar(Uk,Pos,K),write('Pagar '),write(Uk),write(' '),write(Pos),write(' '),write(K),nl,fail.
kond_lampu :- lampu(Pos,Cond,Usia,_),write('Lampu '),write(Pos),write(' '),write(Cond),write('% '),write(Usia),write(' bulan'),nl,fail.
kond_ac :- ac(Pos,Cond,Usia,_),write('AC '),write(Pos),write(' '),write(Cond),write('% '),write(Usia),write(' bulan'),nl,fail.
kond_tv :- tv(Pos,Cond,Usia,_),write('TV '),write(Pos),write(' '),write(Cond),write('% '),write(Usia),write(' bulan'),nl,fail.
lampu_on :- lampu(Pos,_,_,off),write('Lampu '),write(Pos),write(' on'),nl,fail.
tv_on :- tv(Pos,_,_,off),write('TV '),write(Pos),write(' on'),nl,fail.
ac_on :- ac(Pos,_,_,off),write('AC '),write(Pos),write(' on'),nl,fail.
lampu_off :- lampu(Pos,_,_,on),write('Lampu '),write(Pos),write(' off'),nl,fail.
tv_off :- tv(Pos,_,_,on),write('TV '),write(Pos),write(' off'),nl,fail.
ac_off :- ac(Pos,_,_,on),write('AC '),write(Pos),write(' off'),nl,fail.
pagar_buka :- pagar(Uk,Pos,tutup),write('Pagar '),write(Uk),write(' '),write(Pos),write(' buka'),nl,fail.
pagar_tutup :- pagar(Uk,Pos,buka),write('Pagar '),write(Uk),write(' '),write(Pos),write(' tutup'),nl,fail.
Kode ini bisa di copy-paste langsung ke notepad.
Tidak ada komentar:
Posting Komentar