BAB 2 LANDASAN TEORI
2.1.
Kecerdasan Buatan Istilah kecerdasan buatan sebenarnya berasal dari bahasa Inggris “Artificial Intelligence” (AI). Jika diartikan tiap kata, artificial artinya buatan, sedangkan intelligence adalah kata sifat yang berarti cerdas. Jadi artificial intelligence maksudnya adalah sesuatu buatan atau suatu tiruan yang cerdas. Cerdas di sini maksudnya adalah kepandaian atau ketajaman dalam berpikir, seperti halnya otak manusia dalam menyelesaikan suatu masalah.
2.1.1. Latar Belakang Pada awal diciptakannya, komputer hanya difungsikan sebagai alat komputasi belaka. Seiring dengan perkembangan waktu, penggunaan komputer semakin mendominasi kehidupan manusia sehingga komputer tidak hanya digunakan sebagai alat hitung saja, tetapi lebih dari itu yaitu menggantikan beberapa pekerjaan yang biasanya dilakukan oleh manusia. Manusia menjadi pintar dalam menyelesaikan segala permasalahan yang dihadapi karena manusia mempunyai pengetahuan dan pengalaman. Pengetahuan didapatkan dari proses belajar, pengalaman didapatkan karena perjalanan waktu dan kehidupan yang dialami oleh manusia. Semakin banyak bekal pengetahuan dan pengalaman yang dimiliki oleh seseorang, diharapkan orang tersebut lebih mampu menyelesaikan masalah yang dihadapinya.
8
9 Namun bekal pengetahuan saja tidak cukup, manusia juga diberikan akal untuk melakukan penalaran, mengambil kesimpulan berdasarkan pengetahuan dan pengalaman yang dimilikinya. Tanpa memiliki kemampuan penalaran yang baik, tidak ada artinya manusia itu memiliki pengetahuan dan pengalaman sebanyak apapun. Demikian juga sebaliknya, walaupun seorang manusia memiliki kemampuan penalaran yang baik, namun tanpa bekal pengetahuan dan pengalaman yang memadai, manusia juga tidak dapat menyelesaikan masalahnya dengan baik. Agar komputer bisa bertindak seperti dan sebaik manusia, maka komputer juga harus diberi bekal pengetahuan dan diberikan kemampuan untuk menalar. Untuk itu, artificial intelligence akan mencoba untuk memberikan beberapa metode untuk membekali komputer dengan kedua komponen tersebut agar komputer bisa menjadi mesin yang cerdas. 2.1.2. Definisi Kecerdasan Buatan Pernyataan bahwa komputer itu cerdas tentu bergantung kepada sudut pandang dari orang yang memanfaatkan komputer tersebut. Karena itulah sangat sulit untuk mendefinisikan dengan pasti apa yang dimaksud dengan kecerdasan buatan itu. Artificial Intelligence digunakan untuk mengetahui dan memodelkan proses-proses berpikir manusia dan mendesain mesin agar dapat menirukan perilaku manusia. Kecerdasan buatan (Artificial Intelligence) dapat juga didefinisikan sebagai (http://id.wikipedia.org/wiki/Artificial_intelligence) kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap
10 sebagai komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Menurut Russell dan Norvig (2003, p5) definisi tentang kecerdasan buatan dikembangkan berdasarkan empat kelompok kategori, yaitu : •
Sistem yang berpikir selayaknya manusia berpikir (thinking humanly)
•
Sistem yang bertindak selayaknya manusia bertindak (acting humanly)
•
Sistem yang berpikir secara rasional (thinking rationally)
•
Sistem yang bertindak secara rasional (actingt rationally)
Dari keempat perspektif di atas, pengertian kecerdasan buatan dapat dipandang dari berbagai sudut pandang, antara lain : •
Sudut pandang kecerdasan Kecerdasan buatan akan membuat mesin menjadi cerdas, yaitu mampu berbuat seperti apa yang dilakukan oleh manusia.
•
Sudut pandang penelitian Kecerdasan buatan adalah suatu studi bagaimana membuat mesin atau computer dapat melakukan sesuatu sebaik yang dikerjakan oleh manusia. Ada beberapa bidang (domain) yang sering dibahas oleh para peneliti meliputi:
11 a. Mundane Task meliputi persepsi (vision & speech), bahasa alami (understanding, generation & translation), pemikiran yang bersifat umum (common sense), dan robot kontrol. b. Formal Task misalnya permainan (games), Matematika (geometri, logika, kalkulus integral, pembuktian). c. Expert Task seperti analisis finansial, analisis medikal, analisis ilmu pengetahuan, rekayasa (desain, pencarian kegagalan, perencanaan manufaktur). •
Sudut pandang bisnis Kecerdasan buatan adalah sekumpulan peralatan (tools) yang sangat powerfull dan metodologis dalam menyelesaikan masalah bisnis.
•
Sudut pandang pemrograman Kecerdasan buatan meliputi studi tentang pemrograman simbolik,
penyelesaian
masalah
(problem
solving)
dan
pencarian (searching). Untuk melakukan aplikasi kecerdasan buatan ada dua bagian utama yang sangat dibutuhkan, yaitu : •
Basis pengetahuan (Knowledge Base) Berisi fakta – fakta, teori, pemikiran dan hubungan antara satu dengan yang lainnya.
•
Mesin Inferensi (Inference Engine) Merupakan mesin penarik kesimpulan berdasarkan fakta.
12 2.1.3. Konsep Kecerdasan Buatan Kecerdasan buatan bukan hanya sekedar ingin mengerti apa itu sistem kecerdasan, tetapi juga mengkonstruksinya. Metode pengujian kecerdasan yang paling dikenal yaitu Turing Test, diperkenalkan oleh Alan Turing pada tahun 1950. Proses pengujian ini melibatkan seseorang yang bertanya (manusia) dan dua objek (manusia dan komputer cerdas) yang diberi pertanyaan. Dalam pengujian ini, orang yang bertanya berusaha membedakan antara objek manusia dan objek komputer cerdas. Sifat penting dari kecerdasan buatan adalah bahwa kecerdasan buatan merupakan bagian dari ilmu komputer yang melakukan proses secara simbolik dan non-algoritmik dalam penyelesaian masalah. Proses penyelesaian masalah dalam konsep kecerdasan buatan dimulai dari metode heuristic, yang dalam bahasa Yunani berarti menemukan. Heuristic disini merupakan suatu strategi untuk melakukan proses pencarian (search) ruang problem secara efektif, yang memandu proses pencarian yang kita lakukan di sepanjang jalur yang memiliki kemungkinan sukses paling besar. Selanjutnya proses inferensi (penarikan kesimpulan), dimana AI (Artificial Intelligence) mencoba membuat mesin yang memiliki kemampuan berpikir atau mempertimbangkan (reasoning), termasuk didalamnya proses (inferencing) berdasarkan fakta-fakta dan aturan dengan menggunakan metode heuristic, dan sebagainya.
13 Terakhir dilakukan pencocokan pola (Pattern Matching) yaitu berusaha untuk menjelaskan objek, kejadian (events) atau proses, dalam hubungan logik atau komputasional. 2.1.4. Tujuan Dikembangkannya Kecerdasan Buatan Adapun tujuan dikembangkannya kecerdasan buatan adalah sebagai berikut : •
Untuk
mengembangkan
menyelesaikan
metode
masalah-masalah
dan
yang
sistem
untuk
biasa diselesaikan
melalui aktifivitas intelektual manusia, misalnya pengolahan citra, perencanaan, peramalan dan lain-lain, meningkatkan kinerja sistem informasi yang berbasis komputer. •
Untuk meningkatkan pengertian dan pemahaman kita pada bagaimana otak manusia bekerja.
2.1.5. Kelebihan dan Kekurangan Kecerdasan Buatan Secara sederhana, kelebihan dan kekurangan dari kecerdasan buatan dapat dilihat dalam tabel berikut. (Hestiningsih, 2007).
14 Tabel 2.1 Kelebihan dan kekurangan kecerdasan buatan
2.2.
Kelebihan
Kekurangan
1. Lebih bersifat pemanen 2. Lebih mudah diduplikasi dan disebarkan 3. Lebih murah jika dibandingkan dengan Natural Intelligence 4. Lebih bersifat konsisten 5. Dapat didokumentasikan 6. Dapat mengerjakan pekerjaan lebih cepat 7. Dapat mengerjakan pekerjaan lebih baik
1. Tidak kreatif, karena untuk menambah pengetahuan harus dilakukan melalui sistem yang dibangun 2. Harus bekerja dengan inputinput simbolik sehingga tidak memungkinkan untuk menggunakan pengalaman secara langsung 3. Pemikiran sangat terbatas
Soft Computing Sistem cerdas pada dasarnya merupakan suatu sistem yang berusaha meniru cara berpikir manusia. Peniruan cara berpikir tersebut terdiri atas dua bagian yaitu peniruan proses berpikir dan peniruan proses komputasi. Pengembangan suatu sistem yang memiliki kecerdasan komputasional dikenal dengan
istilah
soft
computing.
Soft
computing
berusaha
untuk
mengintegrasikan beberapa paradigma model perhitungan meliputi artificial neural network, fuzzy logic dan genetic algorithms. 2.2.1. Pengertian Soft Computing Soft Computing adalah kumpulan teknik – teknik perhitungan dalam ilmu komputer, inteligensia semu, machine learning dan beberapa disiplin ilmu teknik lainnya, yang berusaha untuk mempelajari, memodelkan, dan menganalisa fenomena yang sangat rumit : untuk metode yang lebih konvensional yang tidak memberikan biaya rendah, analitis dan solusi lengkap (http://en.wikipedia.org/wiki/Soft_computing).
15 Selain itu, pengertian soft computing yang lain adalah segolongan metode yang mampu mengolah data dengan baik walaupun didalamnya terdapat ketidakpastian (uncertainty), ketidakakuratan (imprecision) maupun kebenaran parsial (partial truth). 2.2.2. Soft Computing Sebagai Solusi Metode soft computing (Wiryana, 2004) menempati posisi yang menarik dalam perkembangan metode komputasi dan pemecahan masalah pada saat ini. Hal ini karena ditawarkan solusi yang menarik dan kemudahan implementasi dari metode ini untuk memecahkan masalah-masalah yang tadinya sangat sulit dipecahkan dengan komputer dengan menggunakan metode komputasi konvensional. Dengan adanya toleransi terhadap imprecision, uncertainty dan partial truth, diharapkan akan dapat menciptakan suatu sistem yang cerdas (intelligent systems), handal (robustness), mudah diproses atau dijalankan (tractability) dan membutuhkan biaya yang lebih murah (low solution cost). Karakteristik ini menempatkan soft computing sebagai salah satu solusi yang dapat digunakan untuk memecahkan berbagai masalah yang terdapat pada domain dunia nyata (real-world domain), misalnya : -
Bagaimana kita mampu membaca berbagai macam corak tulisan tangan, atau bahkan pada tulisan itu ada sebagian yang terhapus.
-
Bagaimana membuat AC agar mengatur sendiri suhunya secara otomatis, sehingga udara didalam ruangan terasa nyaman.
16 -
Bagaimana mengenali sesorang, padahal tidak seluruh wajahnya dapat terlihat.
Solusi berbagai masalah yang terdapat pada domain ini tidak mudah dihitung dengan berbagai model analitik yang ada. Diperlukan solusi yang seolah memiliki kecerdasan sehingga mampu menyelesaikan masalah – masalah yang sedemikian kompleks itu. Disinilah soft computing dapat menjadi suatu solusi atas permasalahan-permasalahan tersebut. Metode soft computing, tidak menggunakan satu algoritma yang pasti untuk memecahkan suatu masalah. Suatu teknik hanyalah mendeskripsikan interaksi antar sub sistem, bukanlah langkah pemecahan permasalahan secara detail. Sehingga dapat dilukiskan pemecahan menggunakan diagram sebagai berikut (Wiryana, 2004) :
Gambar 2.1 Pemecahan masalah dengan Soft Computing Pada problem space, untuk setiap problem yang ingin dipecahkan, telah diketahui contoh penyelesaiannya, yang biasanya dilakukan oleh manusia. Informasi yang bersifat pemetaan dari masalah ke solusi inilah yang akan diberikan kepada perangkat soft computing. Dengan memberikan proses
17 pelatihan maupun optimasi secara terus menerus terhadap sistem maka solusi untuk seluruh problem space dapat ditemukan. Jadi dalam perancangan sistem, tidak pernah didefinisikan bagaimana solusi tersebut dicapai, yang ada hanyalah contoh-contoh, ataupun aturan-aturan kecil dari sistem tersebut. 2.2.3. Metode-metode Soft Computing Dengan mengacu pada definisi yang diberikan oleh Zadeh, metodemetode dalam soft computing dapat dikategorikan ke dalam tiga kategori besar: •
Jaringan Saraf Tiruan (Artificial Neural Network) yang menggunakan pembelajaran.
•
Probabilistic Reasoning untuk mengakomodasi ketidakpastian.
•
Logika
Samar
(Fuzzy
Logic)
untuk
mengakomodasi
ketidaktepatan. Kemudian ditambah dengan : •
Genetic Algorithm
•
Belief Network
•
Chaos Theory
Metode–metode ini sebenarnya bukanlah sesuatu yang baru yang dikembangkan setelah munculnya konsep soft computing. Yang terjadi justru sebaliknya. Metode–metode Fuzzy Logic, Artificial Neural Network, Probabilistic Reasoning maupun Genetic Algorithm telah ada lebih dahulu. Fuzzy Logic telah berkembang sejak tahun 1965. Konsep–konsep dasar Neural Network telah digali sejak tahun 1940an. Demikian pula halnya dengan Probabilistic Reasoning dan Genetic Algorithm yang bukan merupakan hal
18 baru. Oleh karena itu, Zadeh menyebut soft computing sebagai reinkarnasi dari metode–metode di atas. Walaupun semua konsep dan teori diatas adalah untuk memproses sistem dan menyelesaikan masalah yang bersifat uncertainty, keberadaan semua konsep dan teori tersebut seharusnya tidak dilihat sebagai suatu persaingan (competitive) tetapi lebih dilihat sebagai saling melengkapi (complementary). Tidak ada satu konsep atau teoripun yang bersifat perfect, powerful, dan general untuk menyelesaikan semua masalah dalam real-world application, sehingga penggunaan suatu konsep atau teori bergantung dan disesuaikan dengan jenis dan karakteristik dari permasalahan dan aplikasinya. Bahkan, untuk dapat membentuk suatu complicated system yang cerdas (intelligent
system),
harus
diperlukan
suatu
hybrid
system
melalui
penggabungan beberapa konsep dan teori dari soft computing. Lebih lanjut lagi, dalam konsep soft computing, metode–metode ini ibarat pilar-pilar, saling mendukung dan bekerjasama dalam memecahkan suatu permasalahan. Keunggulan yang diperoleh dari kerjasama metode– metode itu lebih ditekankan daripada keunggulan individual masing-masing. Kekurangan satu metode akan ditutup dengan kelebihan metode lainnya dan keunggulan satu metode disumbangkan, sehingga segi–segi positif dari metode yang ada tersebut dapat dimanfaatkan secara optimal. beberapa karakteristik dari Soft computing yang perlu diperhatikan, yaitu:
19 1. Soft
computing
memerlukan
keahlian
manusia,
apabila
direpresentasikan dalam bentuk aturan (IF-THEN) 2. Model komputasi dari soft computing diilhami oleh proses biologis 3. Soft computing merupakan teknik optimasi baru 4. Soft computing menggunakan komputasi numeris 5. Soft computing memiliki toleransi kegagalan 2.2.3.1 Jaringan Saraf Tiruan Jaringan saraf Tiruan adalah sebuah prosesor yang terdistribusi paralel dan mempunyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu : 1. Pengetahuan diperoleh oleh jaringan melalui suatu proses belajar. 2. Kekuatan hubungan antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk menyimpan pengetahuan.
Gambar 2.2 Contoh Jaringan Saraf Tiruan Sederhana
20 Pada Jaringan Saraf Tiruan, setiap neuron menerima satu input, setiap input dikalikan dengan bobot (weight) yang sesuai dengan kekuatan sinapsis. Jumlah seluruh input yang berbobot tersebut menentukan kemungkinan neuron untuk menembakan sinyal. Nilai ini yang disebut dengan level aktivasi (activation level). Level aktivasi menggunakan fungsi aktivasi agar dapat dihitung. Perhitungan nilai aktivasi ini biasanya menggunakan fungsi-fungsi : •
Fungsi Identitas
•
Fungsi Tangga Biner
•
Fungsi Tangga Bipolar
•
Fungsi Sigmoid Biner
•
Fungsi Sigmoid Bipolar
2.2.3.2 Probabilistic Reasoning Sejauh ini, telah dikenal beberapa teknik yang digunakan untuk menggambarkan model kepercayaan, di mana ada dua kondisi nyata yang didapatkan, yaitu sebagian fakta yang dipercaya benar (true) dan yang dipercaya salah (false). Misalnya untuk memecahkan masalah yang mampu menjelaskan tingkat kepercayaan tak tentu tetapi ada beberapa bukti (evidence) yang mendukung masalah tersebut. Suatu penalaran di mana adanya penambahan fakta baru dapat mengakibatkan ketidakkonsistenan disebut dengan penalaran Non Monotonis. Beberapa ciri dari jenis penalaran ini antara lain: 1. Mengandung ketidakpastian 2. Adanya perubahan pengetahuan
21 3. Penambahan fakta baru dapat mengubah konklusi yang sudah terbentuk Untuk mengatasi penalaran non monotonis dibutuhkan suatu penalaran yang mampu beradaptasi terhadap ketidakpastian, yakni dengan penalaran probabilitas. Metode penalaran probabilitas mengijinkan sistem intelegensia semu untuk menggunakan pengetahuan yang tak tentu atau probabilitas dan dapat membantu kita mengumpulkan bukti untuk melakukan hipotesa. Penalaran probabilitas merupakan alat yang tepat untuk membuat keputusan. Teori pengambilan keputusan, berhubungan dengan teori probabilitas, menyediakan teknik tambahan untuk membantu meminimalisasi resiko dalam pengambilan keputusan. 2.2.3.3 Genetic Algorithm Genetic Algorithm (GA) adalah teknik pencarian yang di dalam ilmu komputer untuk menemukan penyelesaian perkiraan untuk optimisasi dan masalah pencarian (http://id.wikipedia.org/wiki/Algoritma_genetik). Algoritma Genetik pertama kali dikembangkan oleh John Holland pada tahun 1970-an di New York, Amerika Serikat. Metoda Algoritma Genetik diinspirasikan dan didasarkan pada proses evolusi yang terjadi pada makhluk hidup. Proses evolusi bertujuan untuk menghasilkan keturunan yang lebih baik. Demikan juga metoda Algoritma Genetik, bekerja dengan suatu cost function sebagai fungsi yang menguji kualitas solusi yang dalam hal ini dilambangkan sebagai suatu individu dalam
22 satu generasi. Suatu solusi akan di-kodekan dengan kode string dan dapat dianggap seperti DNA, kemudian akan dikawinkan dengan solusi lainnya. Suatu individu baru terlahir dianggap sebagai solusi baru. Sehingga pada dasarnya Genetic Algorithm ini merupakan proses search yang berdasarkan seleksi alami dan genetika (Wiryana, 2004). Keuntungan dari Genetic Algorithm adalah sifat metode pencariannya yang lebih optimal, tanpa terlalu memperbesar ruang pencarian, dan tanpa kehilangan completeness. Sehingga dapat dengan mudah digunakan pada suatu permasalahan untuk menghasilkan suatu search heuristic yang tidak domain dependent. Algoritma Genetik ini merupakan perkembangan dari evolutionary algorithm, yang hanya menggunakan prinsip seleksi dan mutasi saja, sedangkan Algoritma Genetik menggunakan seleksi, mutasi, rekombinasi, dan beberapa variasi mekanisme yang diinsprasikan oleh mekanisme alam.
Gambar 2.3 Contoh proses Algoritma Genetik
23 Secara sederhana, algoritma umum dari algoritma genetik ini dapat dirumuskan menjadi beberapa langkah, yaitu : a. Membentuk suatu populasi individual dengan keadaan acak b. Mengevaluasi kecocokan setiap individual keadaan dengan hasil yang diinginkan c. Memilih individual dengan kecocokan tertinggi (fitness) d. Bereproduksi, mengadakan persilangan antar individual terpilih diselingi mutasi e. Mengulangi langkah b – d sampai ditemukan individual dengan hasil yang diinginkan Kelebihan–kelebihan yang dimiliki oleh Genetic Algorithm adalah •
GA memiliki kemampuan untuk mencari nilai optimal secara paralel, melalui proses kerjasama antara berbagai unit, yang disebut kromosom individu.
•
GA tidak memerlukan perhitungan matematika yang rumit seperti differensial yang diperlukan oleh algoritma optimisasi yang lain.
Sementara, Genetic Algorithm pun memiliki beberapa kekurangan, yaitu : •
Tidak memiliki rumusan yang pasti, bagaimana mentransfer parameter permasalahan ke dalam kode genetik. Dengan kata lain, hal ini memerlukan pengalaman dan wawasan dari desainer.
24 •
Banyak parameter yang perlu diset secara baik agar proses evolusi dalam GA berjalan sesuai dengan yang diharapkan.
•
Penentuan rumus untuk menghitung fitness merupakan hal yang sangat penting dan mempengaruhi proses evolusi pada GA. Sayangnya
tidak
ada
prosedur
yang
baku
bagaimana
menentukan rumus tsb. 2.2.3.4 Belief Network Belief Network (disebut juga Bayesian Network) adalah sebuah model grafis probabilistik yang merepresentasikan sekumpulan variabel dan kebebasan
probabilistiknya
(http://en.wikipedia.org/wiki/Belief_network).
Sebagai contoh, sebuah Bayesian Network dapat menggambarkan hubungan probabilistik antara penyakit dan gejala, jaringannya dapat digunakan untuk menghitung peluang kehadiran berbagai tipe penyakit. Dalam pemodelannya, Bayesian Network menggunakan Directed Acyclic Graph (DAG), di mana setiap node mewakili satu variabel dan arc (edge) melambangkan kondisi ketergantungan antar variabel. Ketergantungan tersebut diukur oleh conditional probability untuk setiap node dengan parent node-nya. Maka jika variabel-variabel dari jejaring adalah { X i , i = 1,Κ , n} dan Pa(Xi) menggambarkan himpunan parent dari Xi, maka parameter dari jejaring ini
adalah
sebuah
himpunan
distribusi
{P ( X i | Pa ( X i )), i = 1,Κ , n} .
Probabilitas ini menjelaskan joint probabilities distribution untuk seluruh jejaring sebagai berikut ini:
25 n
P( X 1 ,Κ , X n ) = ∏ P( X i | Pa( X i )) i =1
Untuk mendefinisikan sebuah jejaring Bayesian, harus dispesifikasikan terlebih dahulu : •
Variabel-variabel untuk X1, X2, ..., Xn.
•
Hubungan antara variabel-variabel tersebut. Hubungan ini merepresentasikan pengaruh kasual antar variabel-variabel. Jejaring yang dibentuk dari variabel-variabel ini dan hubunganhubungan di antaranya haruslah merupakan sebuah DAG.
•
Probabilitas setiap variabel terhadap parent-nya, yaitu P(Xi | Pa(Xi)) untuk i = 1, ..., n.
Dapat juga dikatakan bahwa Jejaring Bayesian merupakan sebuah model dan alat acuan untuk memecahkan masalah-masalah yang tidak pasti dengan cara menggambarkan relasi probabilitas. 2.2.3.5 Chaos Theory Chaos Theory mendeskripsikan kelakuan dari sistem dinamis nonlinier tertentu yang mungkin mempertunjukan kedinamisan yang sensitif pada kondisi awal. Sebagai hasil dari kesensitifan ini, yang menunjukan dirinya sebagai sebuah pertumbuhan eksponensial dari gangguan dalam kondisi awal, kelakuan sistem yang semrawut tampak secara acak. Hal ini terjadi meskipun sistem ini deterministic, yang berarti kedinamisan masa depan mereka secara mutlak ditentukan oleh kondisi awalnya, tanpa elemen acak yang terlibat (http://en.wikipedia.org/wiki/Chaos_theory).
26 2.2.3.6 Logika Samar Logika Samar (Fuzzy Logic) adalah metodologi pemecahan masalah dengan beribu–ribu aplikasi dalam pengendali yang tersimpan dan pemrosesan informasi. Fuzzy logic menyediakan cara sederhana untuk menggambarkan kesimpulan pasti dari informasi yang ambigu, samar–samar, atau tidak tepat. Sedikit banyak, fuzzy logic menyerupai pembuatan keputusan pada manusia dengan kemampuannya untuk bekerja dari data yang ditafsirkan dan mencari solusi yang tepat. Konsep Fuzzy Logic diperkenalkan oleh Prof. Lotfi Zadeh dari Universitas California di Berkeley pada 1965, dan dipresentasikan bukan sebagai suatu metodologi control, tetapi sebagai suatu cara pemrosesan data dengan memperkenankan penggunaan partial set membership dibanding crisp set membership atau non-membership. Fuzzy logic pada dasarnya merupakan logika bernilai banyak (multivalued logic) yang dapat mendefinisikan nilai diantara keadaan konvensional seperti ya atau tidak, benar atau salah, hitam atau putih, dan sebagainya. Penalaran fuzzy menyediakan cara untuk memahami kinerja dari sistem dengan cara menilai input dan output system dari hasil pengamatan. 2.2.3.6.1 Alasan Penggunaan Logika Samar Logika Samar menawarkan beberapa karakteristik unik (Kaehler, 1998) yang menjadikannya suatu pilihan yang baik untuk banyak masalah control. Karakteristik-karakteristik yang dimaksud antara lain :
27 •
Sudah menjadi sifatnya yang kuat selama tidak membutuhkan ketepatan, input yang bebas derau (noise), dan dapat diprogram untuk gagal dengan aman jika sensor arus balik dimatikan atau rusak. Kontrol output adalah fungsi kontrol halus meskipun jarak variasi input yang cukup besar.
•
Selama fuzzy logic controller memproses aturan–aturan yang dibuat user yang memerintah sistem kontrol target, ia dapat dimodifikasi
dengan
mudah
untuk
meningkatkan
atau
mengubah secara drastis performa sistem. Sensor yang baru dapat dengan mudah digabungkan ke dalam sistem secara sederhana dengan menghasilkan aturan memerintah yang sesuai. •
Fuzzy logic tidak terbatas pada sedikit masukan umpan-balik dan satu atau dua output control, tidak juga penting untuk menilai atau menghitung parameter rata-rata perubahan dengan tujuan agar dapat diimplementasikan. Sensor data yang menyediakan beberapa indikasi untuk aksi dan reaksi sistem sudah cukup. Hal ini memungkinkan sensor menjadi murah sehingga
menghemat
biaya
sistem
keseluruhan
dan
kompleksitas rendah. •
Karena menggunakan operasi–operasi yang berbasiskan aturan, jumlah input yang masuk akal dapat diproses ( 1 sampai 8 atau lebih ) dan banyak output ( 1 sampai 4 atau lebih ) dihasilkan,
28 walaupun pendefinisian rulebase secara cepat menjadi rumit jika terlalu banyak input dan output dipilih untuk implementasi tunggal selama pendefinisian rules (aturan), hubungan timbal baliknya juga harus didefinisikan. Akan lebih baik jika memecah sistem kedalam potongan–potongan yang lebih kecil dan menggunakan fuzzy logic controllers yang lebih kecil untuk didistribusikan pada sistem, masing–masing dengan tanggung jawab yang lebih terbatas. •
Fuzzy Logic dapat mengontrol sistem nonlinier yang akan sulit atau tidak mungkin untuk dimodelkan secara matematis. Hal ini membuka pintu bagi sistem control yang secara normal dianggap tidak mungkin untuk otomatisasi.
Sedangkan karakteristik utama dari fuzzy logic yang ditemukan oleh Prof. Lotfi A. Zadeh adalah sebagai berikut (Aziz & Parthiban, 1996) : •
Dalam fuzzy logic, penalaran tepat dipandang sebagai suatu kasus terbatas dari penalaran kira –kira.
•
Dalam fuzzy logic segala sesuatunya adalah masalah derajat keanggotaan.
•
Sistem logis manapun dapat difuzzifikasi.
•
Dalam fuzzy logic, pengetahuan diinterpretasikan sebagai koleksi dari fuzzy yang dipaksakan pada sekumpulan variabel.
•
Kesimpulan
dipandang
sebagai
perkembangan pembatas elastis.
sebuah
proses
dari
29 Menurut Kusumadewi (2004,p) terdapat beberapa alasan penggunaan logika fuzzy antara lain : •
Konsep logika fuzzy
mudah dimengerti. Konsep matetmatis
yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti. •
Logika fuzzy sangat fleksibel
•
Logika fuzzy memiliki toleransi terhadap data – data yang tidak tepat.
•
Logika fuzzy mampu memodelkan fungsi-fungsi non-linear yang sangat kompleks.
•
Logika
fuzzy
dapat
membangun
dan
mengaplikasikan
pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan. •
Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional.
•
Logika fuzzy didasarkan pada bahasa alami
Adapun langkah – langkah penggunaan fuzzy logic adalah sebagai berikut (Kaehler, 1998) : 1. Definisikan tujuan dan kriteria kontrol : •
Apa yang kita coba kontrol?
•
Apa yang harus kita lakukan untuk mengontrol sistem?
•
Respon seperti apa yang kita butuhkan?
•
Apa mode kegagalan sistem yang mungkin?
30 2. Tentukan hubungan antara input dan output serta memilih jumlah minimum variabel input pada mesin fuzzy logic (secara khusus error dan rata-rata perubahan error). 3. Dengan menggunakan struktur berbasis aturan dari fuzzy logic, jabarkan permasalahan kontrol ke dalam aturan IF X AND Y THEN Z yang mendefinisikan respon output sistem yang diinginkan untuk kondisi input sistem yang diberikan. Jumlah dan kompleksitas dari rules bergantung pada jumlah parameter input yang diproses dan jumlah variabel fuzzy yang bekerjasama dengan tiap–tiap parameter. Jika mungkin, gunakan setidaknya satu variabel dan turunan waktunya. Walaupun mungkin untuk menggunakan sebuah parameter tunggal yang error saat itu juga tanpa mengetahui rata–rata perubahannya, hal ini melumpuhkan kemampuan sistem untuk meminimalisasi keterlampauan untuk sebuah tingkat input. 4. Buat fungsi keanggotaan yang menjelaskan nilai input atau output yang digunakan dalam rules. 5. Buat rutinitas proses awal dan akhir yang penting jika diimplementasikan dalam software, sebaliknya program rules ke dalam mesin hardware fuzzy logic. 6. Uji sistem, evaluasi hasil, atur rules dan fungsi keanggotaan, dan lakukan uji ulang sampai didapat hasil yang memuaskan.
31 2.2.3.6.2 Konsep Logika Samar Dalam logika konvensional, nilai kebenaran mempunyai kondisi yang pasti yaitu benar atau salah (true atau false), dimana tidak ada kondisi antara. Namun pemikiran mengenai logika konvensional ini sangat tidak mungkin dalam kehidupan yang nyata. Karenanya, muncul konsep logika samar (Fuzzy Logic) yang menawarkan suatu logika yang dapat merepresentasikan dunia nyata. Konsep penting dalam logika samar yaitu variabel linguistik yang juga memegang peranan penting dalam beberapa aplikasi. Variabel linguistik adalah variabel yang bernilai kata/kalimat, bukan angka. Alasan penggunaan kata atau kalimat dibanding angka yaitu karena informasi yang disampaikan lebih informatif, meskipun peranan linguistik kurang spesifik dibandingkan angka. Contoh : Jika “kecepatan” adalah variabel linguistik, maka nilai linguistik untuk variabel kecepatan misalnya “lambat”, “sedang”, dan “cepat”. Tentunya hal ini sesuai dengan kebiasaan manusia sehari-hari dalam menilai sesuatu, misalnya : “Ia mengendarai mobil dengan cepat”, tanpa memberikan berapa nilai kecepatannya. 2.2.3.6.3 Himpunan Fuzzy Sangat penting bagi kita untuk terlebih dahulu mengetahui apa itu crisp set atau yang dikenal juga dengan conventional set, sebelum kita
32 mengarah pada bagaimana himpunan fuzzy dibuat untuk mengatasi kekurangan pada crisp set. 2.2.3.6.3.1 Crisp Set Dalam kebanyakan jenis pemikiran sehari-hari dan refleksi bahasanya, manusia menggunakan crisp set untuk mengelompokan sesuatu. Yang menjadi anggota dari crisp set adalah yang seluruhnya berhubungan atau yang tidak sama sekali. Contohnya, seorang wanita pasti dikatakan hamil atau tidak, ia tidak pernah dikatakan “hamil sebagian” atau “sedikit hamil”. Berpikir dengan crisp set menjadikan segala sesuatunya lebih sederhana, karena sesuatu bisa merupakan anggota dari suatu crisp set atau tidak. Crisp set dapat digunakan untuk merepresentasikan gambaran pengertian hitam dan putih. Seringkali juga, saat sesuatu itu merupakan anggota dari sebuah crisp set maka pada waktu yang sama bukan merupakan
anggota dari crisp set manapun. Kembali hal ini
menyederhanakan penggunaan logika dengan proses pemikiran semacam ini. Konstruksi linguistik yang menggambarkan jenis pemikiran ini dapat benar–benar berguna, terutama saat kategori crisp digunakan. Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis dengan
µA[x],
memiliki 2
kemungkinan, yaitu (Kusumadewi, 2004 : p3) : •
Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau
33 •
Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.
Untuk lebih jelasnya, bisa dilihat dari contoh dibawah ini :
Gambar 2.4 Himpunan : MUDA, PAROBAYA, dan TUA Dari gambar di atas dapat dijelaskan bahwa : •
Apabila seseorang berusia 34 tahun, maka ia dikatakan MUDA (µMUDA[34] = 1);
•
Apabila seseorang berusia 35 tahun, maka ia dikatakan TIDAK MUDA (µMUDA[35] = 0);
•
Apabila seseorang berusia 35 tahun, maka ia dikatakan PAROBAYA (µPAROBAYA[35] = 1);
•
Apabila seseorang berusia 34 tahun, maka ia dikatakan TIDAK PAROBAYA (µPAROBAYA[34] = 0);
•
Apabila seseorang berusia 55 tahun, maka ia dikatakan PAROBAYA (µPAROBAYA[55] = 1);
•
Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan TIDAK PAROBAYA (µPAROBAYA[35 – 1hr] = 0);
34 Dari sini bisa dikatakan bahwa pemakaian himpunan crisp untuk menyatakan umur sangat tidak adil, adanya perubahan kecil saja pada suatu nilai mengakibatkan perbedaan kategori yang cukup signifikan. Oleh karena itu, digunakanlah himpunan fuzzy untuk mengantisipasi hal tersebut. 2.2.3.6.3.2 Fuzzy Set Logika fuzzy lahir berdasarkan fenomena–fenomena alam yang serba tidak tepat dan samar ditinjau dari cara berpikir manusia, dimana pada kenyataannya tidak ada suatu kondisi atau pernyataan yang tepat 100% benar atau 100% salah. Prof. Lotfi A. Zadeh mengemukakan bahwa true atau false dalam logika Boolean tidak dapat merepresentasikan pernyataan yang tidak pasti yang berada diantara pernyataan true atau false tadi,
seperti
yang
sering
terjadi
dalam
dunia
nyata.
Untuk
merepresentasikan nilai ketidakpastian antara true atau false tersebut, Prof. Lotfi A. Zadeh mengembangkan suatu teori berdasarkan conventional set yang disebutnya fuzzy set (himpunan fuzzy). Sebagai ganti dari pernyataan dengan nilai seluruhnya true atau semuanya false, logika fuzzy memberikan nilai yang spesifik pada setiap nilai diantara pernyataan true atau false dengan menentukan fungsi kenaggotaan (membership function) bagi tiap nilai input dari proses fuzzy (crisp input) dan derajat keanggotaan (degree of membership) yaitu menyatakan derajat dari crisp input sesuai membership function antara 0 sampai 1, sehingga memungkinkan bagi suatu persamaan memiliki nilai true dan false secara bersamaan.
35 Menurut Prof. Lotfi A Zadeh (Aziz & Parthiban, 1996), fuzzy set adalah sebuah kelas dari objek dengan serangkaian kesatuan dari grades of membership (nilai keanggotaan). Sebuah himpunan dikarakterisasikan oleh sebuah fungsi keanggotaan yang memberikan tiap objek sebuah nilai keanggotaan yang rentang nilainya antara 0 dan 1. Gagasan pencantuman (inclusion), penyatuan (union), persimpangan (intersection), pelengkap (complement), hubungan (relation), kecembungan (convexity), dan sebagainya diberikan pada himpunan tersebut, dan berbagai macam sifat dari pemikiran ini dalam konteks dari fuzzy set dibangun. Secara khusus, dalil untuk fuzzy set cembung dibuktikan tanpa perlu fuzzy set terputus. Aturan umum untuk teori fuzzy set dituliskan sebagai berikut (Marshall, 1993) :
dimana n merupakan jumlah kemungkinan. Rumusan diatas menyatakan bahwa kita dapat mengambil n jumlah event yang mungkin dan menggunakan f untuk menghasikan hasil tunggal yang mungkin. Untuk lebih jelasnya mengenai himpunan fuzzy dapat dilihat pada contoh persoalan dibawah ini (Kusumadewi, 2004 : p5) :
36
Gambar 2.5 Himpunan fuzzy untuk variabel Umur Dengan adanya himpunan fuzzy memungkinkan seseorang untuk dapat masuk kedalam 2 himpunan yang berbeda, MUDA dan PAROBAYA, PAROBAYA dan TUA, dan sebagainya. Seberapa besar eksistensinya dalam himpunan
tersebut dapat dilihat pada nilai
keanggotaannya. Dari gambar di atas, dapat dilihat bahwa : •
Seseorang yang berumur 40 tahun, termasuk dalam himpunan MUDA dengan
µMUDA[40]
= 0,25; namun dia juga termasuk
dalam himpunan PAROBAYA dengan µPAROBAYA[40] = 0,5. •
Seseorang yang berumur 50 tahun, termasuk dalam himpunan MUDA dengan
µMUDA[50]
= 0,25; namun dia juga termasuk
dalam himpunan PAROBAYA dengan µPAROBAYA[50] = 0,5. Kalau pada himpunan crisp, nilai keanggotaan hanya ada 2 kemungkinan, yaitu 0 atau 1, pada himpunan fuzzy nilai keanggotaan terletak pada rentang 0 sampai 1. Apabila x memiliki nilai keanggotaan fuzzy
µA[x] =
0 berarti x tidak menjadi anggota himpunan A, demikian
37 pula apabila x memiliki nilai keanggotaan fuzzy µA[x] = 1 berarti x menjadi anggota penuh pada himpunan A. Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas menimbulkan kerancuan. Keduanya memiliki nilai pada interval [0,1], namun interpretasi nilainya sangat berbeda antara kedua kasus tersebut. Keanggotaan fuzzy memberikan suatu ukuran terhadap pendapat atau keputusan, sedangkan probabilitas mengindikasikan proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka panjang. Misalnya, jika nilai keanggotaan suatu himpunan fuzzy MUDA adalah 0,9 maka tidak perlu dipermasalahkan berapa seringnya nilai itu diulang secara individual untuk mengharapkan suatu hasil yang hampir pasti muda. Di lain pihak, nilai probabilitas 0,9 muda berarti 10% dari himpunan tersebut diharapkan tidak muda. Himpunan fuzzy memiliki 2 atribut, yaitu (Kusumadewi, 2004 : p6): •
Linguistik Yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami, seperti : MUDA, PAROBAYA, TUA.
•
Numerik Yaitu suatu nilai (angka) yang menunjukan ukuran dari suatu variabel seperti : 40, 25, 50, dsb.
38 2.2.3.6.4 Perbedaan Himpunan Klasik dan Himpunan Fuzzy Perbedaan himpunan fuzzy dengan himpunan klasik dapat diilustrasikan seperti pada gambar dibawah ini. Dari gambar tersebut dapat terlihat himpunan fuzzy memiliki batas yang tidak jelas, sedangkan himpunan klasik memiliki batas yang jelas. Pada gambar di bawah ini, tanda ‘)’ menyatakan batas akhir dari sebuah scope dan tanda ‘[‘ menyatakan batas awal sebuah scope dari himpunan klasik.
Gambar 2.6 Rentang suhu yang dinyatakan dalam Himpunan Klasik
Gambar 2.7 Rentang suhu yang dinyatakan dalam Himpunan Fuzzy 2.2.3.6.5 Sistem Fuzzy Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy, yaitu (Kusumadewi, 2004 : p6) : a. Variabel Fuzzy
39 Variabel fuzzy merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy. Contoh : umur, temperatur, permintaan, dsb. b. Himpunan Fuzzy Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy. c. Semesta Pembicaraan Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk
dioperasikan
dalam
suatu
variabel
fuzzy.
Semesta
pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai semesta pembicaraan dapat berupa bilangan positif maupun negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas atasnya. Contoh : •
Semesta pembicaraan untuk variable umur : [0 +∞]
•
Semesta pembicaraan untuk variable temperature : [0 40]
d. Domain Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy. Seperti halnya semesta pembicaraan, domain merupakan himpunan
bilangan real yang
senantiasa naik
(bertambah) secara monoton dari kiri ke kanan. Nilai domain dapat berupa bilangan positif maupun negatif. Contoh : •
MUDA
= [0,
45]
40 •
PAROBAYA
= [35,
55]
•
TUA
= [45,
+∞]
2.2.3.6.6 Fungsi Keanggotaan Fungsi keanggotaan (membership function) adalah suatu kurva yang menunjukan pemetaan titik–titik data input ke dalam nilai keanggotaannya (sering juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0 sampai 1 (Kusumadewi, 2004 : p8). Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. 2.3
Analisis Kelompok Analisis Kelompok (cluster analysis), disebut juga analisis segmentasi (segmentation analysis) atau analisis taksonomi (taxonomy analysis), merupakan seperangkat teknik untuk mencapai pekerjaan memilah–milah objek–objek observasi menjadi subset–subset yang relatif homogen, berdasarkan kesamaan–kesamaan antar objek (Pontoh, 2002). Clustering adalah klasifikasi objek ke dalam kelompok yang berbeda, atau lebih tepatnya, pembagian sebuah set data ke dalam subset–subset (cluster), sehingga data dalam tiap subset idealnya berbagi beberapa sifat umum yang seringkali dekatnya bergantung pada perhitungan jarak. Pengelompokkan data (data clustering) adalah teknik umum untuk analisis data statistik, yang digunakan pada banyak bidang, termasuk machine learning, data mining, pengenalan pola, analisis citra dan bioinformatik (http://en.wikipedia.org/wiki/Cluster_analysis).
41 Terdapat dua jenis algoritma pengelompokan data antara lain pengelompokkan hierarkis (hierarchical clustering) dan pengelompokan partisional
(partitional
clustering)
(http://en.wikipedia.org/wiki/Cluster_analysis). 2.3.1
Hierarchical Clustering Algoritma hierarkis menemukan cluster berturut-turut menggunakan cluster yang dibangun sebelumnya, atau dengan kata lain pembagian data ke dalam kelompok-kelompok tertentu tidak dilakukan dalam satu langkah. Bahkan, serangkaian pembagian terjadi, yang mungkin berjalan dari sebuah cluster tunggal yang berisikan semua objek ke n cluster yang masing-masing berisi sebuah objek tunggal. Hierarchical Clustering dibagi kedalam dua metode antara lain : •
Agglomerative Method Didapat dengan serangkaian penyatuan n objek kedalam kelompok-kelompok. Metode ini lebih umum digunakan.
•
Divisive Method Memisahkan n objek secara berturut-turut kedalam finer grouping.
Hierarchical Clustering dapat ditunjukkan dengan sebuah diagram dua dimensi yang dikenal sebagai dendogram yang mengilustrasikan penyatuan atau pemisahan yang dibuat pada tiap urutan tahap dari analisis. Contoh dendogram adalah sebagai berikut :
42
Gambar 2.8 Dendogram Prosedur pengelompokan
hierarkis
agglomerative
menghasilkan
serangkaian pembagian data, Pn, Pn-1, ....... , P1 . Pn yang pertama berisi n kelompok objek tunggal, P1 berisi kelompok tunggal yang berisi semua permasalahan n. Pada tiap tahap tertentu metode ini bekerja sama dengan dua cluster yang paling mirip. Perbedaan antara metode timbul karena cara yang berbedabeda dalam menetapkan jarak (atau kemiripan) antar cluster. Beberapa
teknik
pengelompokkan
agglomerative
yang
sering
digunakan adalah : •
Single Linkage Clustering Salah
satu
metode
pengelompokan
hierarkis
agglomerative yang paling sederhana adalah pertalian tunggal (single lingkage), dikenal juga dengan teknik tetangga terdekat (nearest neighbor). Pendefinisian sifat dari metode ini adalah bahwa jarak antar kelompok ditetapkan sebagai jarak antara
43 pasangan objek terdekat, dimana hanya pasangan yang berisikan satu objek dari tiap kelompok yang dipertimbangkan.
Gambar 2.9 Single Linkage Clustering •
Complete Linkage Clustering Metode pengelompokan Complete Linkage , disebut juga furthest neighbor, adalah kebalikan dari single linkage. Jarak antar kelompok ditetapkan sebagai jarak antar pasangan objek terjauh, satu dari tiap-tiap kelompok.
44
Gambar 2.10 Complete Linkage Clustering •
Average Linkage Clustering Jarak antar dua cluster ditetapkan sebagai jarak rata-rata antar semua pasangan objek, dimana tiap-tiap pasangan dibentuk dari satu objek dari masing-masing kelompok.
Gambar 2.11 Average Linkage Clustering
45 2.3.2
Partitional Clustering Berbeda dengan hierarchical clustering, pada metode pengelompokkan parsional ini, pembagian data ke dalam kelompok-kelompok tertentu justru dilakukan dalam satu langkah. Partitional Clustering (Kaski, 1997), pada sisi lain, berusaha secara langsung untuk mendekomposisikan set data ke dalam sebuah set cluster yang terputus-putus. Fungsi standar yang diusahakan untuk diminimalisasi oleh algoritma pengelompokkan mungkin menekankan pada struktur lokal dari data, dengan menugaskan cluster untuk mencapai puncaknya dalam fungsi kepadatan kemungkinan, atau struktur global. Secara khusus, kriteria global menyangkut meminimalkan ketidakcocokan dalam sampel pada tiap cluster,
beberapa ukuran
saat memaksimalkan
ketidakcocokan pada cluster yang berbeda. Beberapa teknik pengelompokkan partisional yang sering digunakan antara lain : •
K-Means Clustering K-means (MacQueen,1967) adalah salah satu algoritma unsupervised learning paling sederhana yang menyelesaikan masalah pengelompokan yang umum dikenal. Prosedurnya mengikuti
cara
yang
sederhana
dan
mudah
untuk
mengklasifikasikan set data yang diberikan melalui sejumlah tertentu cluster (diasumsikan k cluster) menentukan prioritas. Gagasan utamanya adalah untuk menetapkan k centroid, satu untuk masing-masing cluster. Centroid ini seharusnya
46 ditempatkan dalam cara yang cerdik karena lokasi yang berbeda menyebabkan hasil yang berbeda pula. Jadi, pilihan terbaik untuk menempatkannya sejauh mungkin satu sama lain. Langkah selanjutnya adalah menjadikan tiap point masuk dalam set data yang diberikan dan mengasosiasikannya ke centroid terdekat. Ketika tidak ada point yang pending, langkah pertama sempurna dan groupage awal selesai. Pada titik ini kita perlu mengkalkulasi ulang k centroid baru sebagai barycenter dari cluster yang didapat dari tahap sebelumnya. Setelah kita mendapatkan k centroid baru ini, ikatan baru harus dilakukan antara data set point yang sama dan centroid baru terdekat. Perulangan dilakukan. Dari hasil perulangan ini kita mungkin memperhatikan bahwa k centroid mengubah lokasinya langkah demi langkah hingga akhirnya tidak ada lagi perubahan yang bisa dilakukan. Dengan kata lain centroid tidak bergerak lagi. Algoritma ini bertujuan pada peminimalan sebuah fungsi objektif, dalam hal ini fungsi error kuadrat. Fungsi objektifnya :
dimana point
adalah ukuran jarak yang dipilih antara data dan pusat cluster
, adalah sebuah indikator jarak
pada n data point dari pusat cluster.
47 Adapun algoritmanya terdiri dari langkah-langkah sebagai berikut : 1. Tempatkan
k
direpresentasikan
point oleh
kedalam
ruang
objek-objek
yang yang
dikelompokkan. Point ini menerangkan centroid grup awal. 2. Arahkan tiap objek ke grup yang memiliki centroid terdekat. 3. Ketika semua objek telah diarahkan, hitung ulang posisi dari k centroid. 4. Ulangi langkah 2 dan 3 sampai centroid tidak lagi bergerak. Hal ini menciptakan pemisahan objek ke dalam grup yang manakah matriks yang diminimalkan dapat dihitung. •
QT Clustering Algorithm QT (Quality Threshold) Clustering (Heyer et al,1999) adalah
suatu
metode alternatif dalam pemisahan data,
diciptakan untuk pengelompokan gen. Hal ini memerlukan penetapan banyaknya cluster awal, dan selalu menghasilkan hasil yang sama ketika dijalankan berkali – kali. 2.3.3
Fuzzy Clustering Fuzzy Clustering merupakan bagian dari ruang lingkup logika fuzzy. Fuzzy Clustering
merupakan salah satu teknik untuk menentukan cluster
48 optimal dalam suatu ruang vektor yang sangat berguna bagi pemodelan fuzzy terutama dalam mengidentifikasi aturan-aturan fuzzy. Dalam Fuzzy Clustering, elemen data dapat berada dalam satu atau lebih cluster, dan asosiasi dengan tiap elemen adalah serangkaian level keanggotaan. Hal ini mengindikasikan kekuatan asosiasi antara elemen data dan cluster tertentu. Fuzzy Clustering adalah sebuah proses menetapkan level keanggotaan ini, dan kemudian menggunakannya untuk menetapkan elemen data ke satu atau lebih cluster (http://en.wikipedia.org/wiki/Fuzzy_clustering). Metode fuzzy clustering yang sering digunakan adalah : •
Subtractive Clustering Subtractive clustering didasarkan atas ukuran densitas (potensi) titik–titik data dalam suatu ruang (variabel). Konsep dasar dari subtractive clustering adalah menentukan daerah–daerah dalam suatu variabel yang memiliki densitas tinggi terhadap titik–titik di sekitarnya. Titik dengan jumlah tetangga terbanyak akan dipilih sebagai pusat cluster. Titik yang sudah terpilih sebagai pusat cluster ini kemudian akan dikurangi densitasnya. Kemudian algoritma akan memilih titik lain yang memiliki tetangga terbanyak untuk dijadikan pusat cluster yang lain. Hal ini akan dilakukan berulang–ulang hingga semua titik diuji.
•
Fuzzy C-Means (FCM) Fuzzy C–Means
adalah suatu teknik clustering data
dimana keberadaan tiap-tiap titik data dalam suatu cluster
49 ditentukan oleh derajat keanggotaan. Teknik ini pertama kali diperkenalkan oleh Jim Bezdek pada tahun 1981 (Jantzen, 1998). Fuzzy
C–Means
(FCM)
adalah
algoritma
pengelompokkan yang terawasi, sebab pada FCM kita perlu tahu terlebih dahulu jumlah cluster yang akan dibentuk. Algoritma FCM mencoba untuk membagi kumpulan elemen X={ ,
, ... ,
} kedalam koleksi c fuzzy cluster
berkenaan dengan criteria yang diberikan. Diberikan set data yang terbatas, algoritma mengembalikan pusat c cluster V dimana V =
, i =1, 2, ... , c dan matriks partisi U : U =
..., c, j =1,..., n dimana
, i =1,
adalah nilai numerik dalam [0,1] yang
memberitahukan tingkatan kemana
masuk ke dalam cluster
ke-i. Algoritma FCM menurut Sri Kusuma Dewi dan Hari Purnomo (2004,p84-85) diberikan sebagai berikut : 1. Input data yang akan di-cluster X, berupa matriks yang berukuran n x m
(n = jumlah
sample data , m = atribut setiap data). Xij = data sample ke -i (i = 1,2, ... , n), atribut ke -j (j = 1,2, ... , m). 2. Tentukan jumlah cluster (c), pangkat (w), maksimum iterasi (MaxIter), error terkecil yang
50 diharapkan (ξ), fungsi objektif awal (P0 = 0), dan iterasi awal (t = 1). 3. Bangkitkan bilangan random μik, i = 1,2, … , n; k = 1,2, … , c; sebagai elemen – elemen matriks partisi awal U. Hitung jumlah setiap kolom (atribut) :
dengan j= 1,2,…,m. Hitung :
4. Hitung pusat cluster ke-k : Vkj, dengan k=1,2,…c dan j=1,2,…m dengan
5. Hitung fungsi objektif pada iterasi ke-t, Pt :
6. Hitung perubahan matrix partisi :
dengan i=1,2,…n dan k=1,2,…c 7. Cek kondisi berhenti :
51 •
Jika ( | Pt – Pt-1| < ξ ) atau (t > jumlah iterasi maksimum) maka berhenti
•
Jika tidak maka t=t+1 dan ulangi perhitungan dimulai dari menghitung pusat cluster.
2.4
Computer-Assisted Instruction Komputer telah digunakan dalam dunia pendidikan sejak 25 tahun yang lalu. Pengembangan awal ke depan memperkenalkan program perangkat lunak sebagai alat bantu dalam proses pembelajaran yang diformulasikan ke dalam bentuk Computer-Assisted Instruction (CAI). Menurut Freedman (1996, p11), CAI adalah suatu sistem pengajaran yang menggunakan komputer sebagai alat bantu dalam menyampaikan materimateri yang diajarkan. CAI dikenal dengan berbagai istilah, misalnya di Amerika Serikat CAI lebih dikenal dengan nama Computer-Assisted Learning (CAL), di Inggris lebih mengenal CAI sebagai Computer-Based Training (CBT), dan juga dikenal istilah-istilah lainnya seperti Computer-Based Instruction (CBI), Computer-Based Education (CBE), Interactive Multimedia Instruction (IMI), dan Computer-Managed Instruction (CMI). Istilah-istilah ini dapat digunakan untuk menunjukkan kegunaan teknologi komputer dalam penulisan materi, manajemen proses pendidikan, pelatihan, instruksi, dan pengajaran. Perbedaan istilah-istilah tersebut mencerminkan bagian dari dukungan komputer dan
52 aktivitas tradisional manusia dalam pendidikan dan spesifikasi dari prosesproses berbasiskan komputer. 2.4.1
CAI Tradisional CAI dirancang untuk meningkatkan pembelajaran melalui interaksi dengan komputer yang menampilkan permasalahan-permasalahan kepada pelajar secara interaktif dengan tujuan supaya proses belajar menjadi lebih efisien, konsisten, dan meningkatkan motivasi pemelajar, disertai dengan umpan balik yang cepat dan bersifat individualized. Walaupun CAI telah menjadi penyedia pembelajaran individu selama 25 tahun, sistem tersebut sangat pasif, di mana sistem ini hanya menampilkan teks dari halaman satu ke halaman lainnya yang menggunakan sebuah decision tree untuk memandu pemelajar berdasarkan jawaban dan tanggapan dari si pemelajar (Urban-Lurain, 1996). CAI gagal meningkatkan tingkat pengetahuan pemelajar, karena CAI tidak mampu untuk membedakan pemelajar dari segi kebutuhan maupun latar belakang pemelajar. Dan tentu saja sistem ini tidak memiliki kemampuan sebagai pengajar sesungguhnya yang dapat mengetahui kapan harus membantu pemelajar ketika menghadapi kesulitan terhadap suatu subjek atau kapan akan melanjutkan pemberian topik baru ketika pemelajar sudah mengalami peningkatan.
2.4.2
Intelligent Tutoring System Dengan adanya kemajuan dalam bidang intelegensia semu dan pengetahuan kognitif, para peneliti dalam bidang teknologi informasi melihat adanya kebutuhan intelegensia semu pada sistem CAI. Maka dikombinasikan
53 dengan kemampuan dalam proses komputer terutama dalam bidang pengajaran secara prosedural dan strategi untuk memecahkan masalah, teknik intelegensia semu dipakai untuk mengevaluasi status pengetahuan yang dimiliki oleh pemelajar. Tanpa pengetahuan yang cukup tentang “apa yang diketahui” dan “tidak diketahui” oleh pemelajar akan masalah yang sedang diberikan, sistem tersebut tidak dapat memberikan pengajaran yang bersifat adaptif terhadap pemelajar. Oleh karena telah hadir sebuah bidang baru hasil integrasi antara intelegensia semu dengan CAI yang disebut Intelligent Tutoring System (ITS) untuk mengatasi kekurangan-kekurangan CAI. Berdasarkan definisinya, ITS adalah sistem intelegensia yang menyediakan pembelajaran kepada pemelajar dan memiliki kemampuan untuk membandingkan pemahaman pengetahuan belajar oleh model pakar. Oleh karena itu, tidak seperti CAI yang pasif menunggu pemelajar untuk melanjutkan subjeknya, ITS secara nyata mendorong keingintahuan pemelajar dengan secara aktif memantau kemampuan pemelajar dan memberikan bantuan ketika diminta. ITS mengacu pada sistem instruksional komputerisasi tingkat lanjut, di mana: •
Menyediakan
interaktivitas
yang
tinggi,
penyampaian
pembelajaran dan pelatihan berbasiskan komputer. •
Menyesuaikan pembelajaran dengan kekuatan dan kelemahan pemelajar
•
Menyediakan pelatihan dengan pengajar intelegensia semu
•
Memperbesar metode pembelajaran secara lebih mendalam
54 ITS
dapat
membentuk
suatu
model
yang
merepresentasikan
pengetahuan yang dimiliki pemelajar. Model dibentuk berdasarkan jawaban dan tanggapan pemelajar. 2.4.3
Pembelajaran Adaptif Berbasis Web Beberapa tahun lalu, peneliti bidang teknologi pembelajaran mulai berpikir bahwa untuk menghasilkan hasil pembelajaran jarak jauh yang optimal, seharusnya sistem e-learning mampu berperan sebagai pengajar yang dapat mengakomodasikan segala kebutuhan pemelajar. Kebutuhan ini dipengaruhi oleh karakteristik setiap pemelajar. Akhirnya muncul konsep penggabungan antara sistem pembelajaran adaptif, sistem manajemen pembelajaran dan sistem manajemen konten berbasis web yang menghasilkan sebuah konsep sistem pembelajaran adaptif berbasis web (Adaptive Web Based Learning). Sistem pembelajaran adaptif mampu mengakomodasikan perbedaan karakteristik diantara siswa atau grup siswa karena setiap individu atau grup memiliki metode belajar yang berbeda. Kemampuan ini mengadaptasi cara mengajar guru atau dosen dimana ia dapat melewati suatu topik ajar atau sebuah bab tertentu jika dianggap tidak sesuai dengan kebutuhan peserta didiknya. Dengan demikian sistem pembelajaran yang adaptif semestinya juga memiliki kemampuan dalam pemilihan materi ajar yang sesuai dengan kebutuhan pemelajar. Sistem adaptif (disebut juga agen cerdas) dalam bidang pembelajaran seharusnya dapat melakukan :
55 a. Inisialisasi model dari karakteristik pemelajar (Student Model). Biasanya pada tahap ini terjadi peningkatan masalah kesalahan pengertian, kesalahan konsep atau kesalahan kalibrasi. b. Inisialisasi materi pembelajaran serta mampu memprediksi materi apa yang dilewati, materi yang sedang dipelajari dan materi apa yang diminta (Current Model). c. Menyediakan materi pembelajaran dan merevisi current model. d. Pengulangan materi sampai semua bahan ajar dipahami oleh siswa dan sistem memiliki sebuah model siswa yang baik untuk pembelajaran berikutnya (student’s profile). Berikut adalah arsitektur dari sistem adaptive web-based learning :
Gambar 2.12 Arsitektur Sistem Pembelajaran Adaptif Berbasis Web
56 2.4.3.1 Model Pemelajar Model Pemelajar (Student Model) merupakan salah satu komponen penting dalam penyediaan keadaptifan dalam lingkungan pembelajaran yang cerdas. Dengan kata lain, student model bertujuan untuk mencapai keadaptifan dalam adaptive WBL. Teknik student modelling tidak hanya menyediakan panduan individualis tetapi juga dukungan pembelajaran adaptif. Student Modelling mencakup pembuatan model individual untuk tiap pemelajar yang mengidentifikasi pengetahuan terkini dari pemelajar dan menyesuaikannya dengan susunan kurikulum serta membantu pemelajar dalam pengarahan untuk menyelesaikan rangkaian pelajaran. Student modelling, sebagai model dari pemelajar, merepresentasikan tingkat kepercayaan sistem komputer terhadap pengetahuan pemelajar. Secara umum student modelling digunakan aspek yang berhubungan dengan aplikasi sistem pengajaran berbasis komputer. Alberta Research Council's Student Modeling study (1995), menyatakan bahwa untuk dapat memungkinkan pengajaran dirancang secara individual, sangat penting untuk pertama-tama menangkap pemahaman pemelajar terhadap pelajaran. Dengan informasi ini, tingkat kesulitan materi pembelajaran dan perbaikan-perbaikan penting lainnya dapat diawasi dalam sistem pengajaran. Berdasarkan arsitektur sistem diatas, student model mencakup 3 bagian antara lain (Vassileva,1995) : •
Pengetahuan pemelajar (Knowledge)
57 Lembaran probabilistik dengan konsep dan relasi yang diajarkan •
Sejarah (History) Tugas atau metode pengajaran dan materi ajar yang digunakan.
•
Sifat dan Preferensi pribadi pemelajar (Personal traits and Preference) Terdiri dari 2 daftar variabel dengan nilainya : o Menunjukkan sifat-sifat psikologis seperti kepercayaan diri, motivasi, konsentrasi, perhatian, kecerdasan, dsb. o Menunjukkan tipe-tipe media yang dipilih
Membangun sebuah student model mencakup penetapan beberapa point berikut : •
”Who”, menyangkut tingkat spesialisasi dalam menetapkan siapa yang dimodelkan dan apa sejarah pemelajar.
•
”What”, menyangkut tujuan, rencana, tindakan, kemampuan, pengetahuan dan kepercayaan pemelajar.
•
”How”, menyangkut masalah bagaimana model tersebut diperoleh dan dipelihara.
•
”Why”, menyangkut apakah memperoleh informasi dari pemelajar,
memberikan
bantuan
kepada
pemelajar,
menyediakan umpan balik kepada pemelajar atau menafsirkan tingkah laku pemelajar.
58 Dalam mempertahankan sebuah student model, ada beberapa faktor yang
perlu
dipertimbangkan
meliputi
fakta
bahwa pemelajar
tidak
menunjukkan performa yang konsisten, melupakan informasi secara acak dan kemudian menampilkan langkah-langkah besar dalam pemahaman. 2.4.3.2 Course Generator Course
Generator
adalah
komponen
yang
membuat
materi
pembelajaran, mengadakan interaksi dengan pemelajar dan memelihara student model (Vassileva,1995). Course Generator terdiri atas 2 komponen utama yaitu : •
Course Planner merupakan
program perencanaan graph
AND-OR
yang
memiliki 2 tujuan utama antara lain : o Menghasilkan
rencana
mengenai
konsep-konsep
pelajaran untuk mencapai tujuan pembelajaran yang telah ditetapkan o Merencanakan susunan tugas untuk pengajaran goalconcept. Planner dijalankan untuk membuat rencana pembelajaran (course plan). Algoritma planning adalah modifikasi algoritma AO*
yaitu
algoritma
pencarian
heuristik
breadth-first
(Nilsson,1980). Hasil yang didapat berupa graph AND yang dimulai dari konsep yang diketahui/dikuasai oleh pemelajar
59 (mempunyai nilai probabilitas tinggi pada Student Model) dan mengarah pada konsep target. •
The Executor Executor menghasilkan pembelajaran yang didasarkan pada rencana pembelajaran yang telah ditetapkan oleh course planner dengan menyeleksi dan mempresentasikan materi pembelajaran yang sesuai dan tepat. Selain itu, executor juga bertugas memperbaharui student model, mengambil alih hasil perhitungan tes pelajar yang dilakukan sebelumnya oleh student model. Selanjutnya, executor mengambil materi pembelajaran yang sesuai untuk memberikan penjelasan dan perbaikan terhadap kesalahan-kesalahan yang dilakukan pelajar pada saat tes. Langkah ini diambil sebagai aksi umpan balik terhadap kesalahan pemelajar. Meskipun student model di-update, jejak perubahan dari student model tetap dipertahankan sehingga memungkinkan course planner melakukan perubahan rencana atau membuat strategi perencanaan yang baru, apabila tingkat pengetahuan pemelajar tidak mengalami kemajuan yang memuaskan.
60 2.4.3.3 Basis Data Database merupakan tempat penyimpanan data, misalnya data pemelajar atau pengetahuan subyek. Berdasarkan arsitektur sistem diatas (Gambar 2.25) komponen database terdiri atas 2 bagian (Vassileva,1995) : •
Materi Pembelajaran (Teaching Materials) Materi pembelajaran berisi unit presentasi dan pengujian yang memungkinkan
komunikasi
dengan
pemelajar.
Materi
pembelajaran dapat disampaikan melalui media-media seperti text, gambar grafis, animasi, video, suara, dsb. Materi pembelajaran yang baik harus difokuskan pada konsep yang diberikan secara tepat, disamping menggunakan bahasa sederhana yang mudah dimengerti agar informasi pengetahuan diterima dengan baik oleh pemelajar. •
Struktur Konsep (Concept Structure) Struktur Konsep berisi struktur pengetahuan yang akan diajarkan. Struktur konsep direpresentasikan sebagai graph AND-OR dengan nodes yang berhubungan dengan elemen pengetahuan (konsep) dan link yang berhubungan dengan hubungan yang mungkin antar konsep-konsep tersebut. Struktur konsep digunakan untuk membuat rencana mengenai isi pembelajaran untuk mencapai tujuan pengajaran.
61 2.4.3.4 Authoring Module Authoring Module merupakan salah satu komponen arsitektur sistem seperti terlihat pada Gambar 2.25 diatas, yang berfungsi sebagai editor. Dilihat dari fungsinya, authoring module terdiri dari (Vassileva,1995) : •
Teaching Materials Editor Merupakan tool yang memungkinkan adanya ”wrapping” , dimana sistem dapat menggunakan materi pembelajaran yang dibuat oleh authoring tool apapun untuk menghasilkan material multimedia. Tujuan dibentuknya komponen ini adalah untuk memperluas bahan presentasi sebagai tambahan informasi domain. Semua data faktual yang sering mengalami perubahan diberi parameter untuk selanjutnya dihubungkan dengan objek/konsep yang sesuai yang terdapat pada struktur konsep.
•
Concept Structure Editor Merupakan editor grafis yang memungkinkan pengembangan, memperluas dan memodifikasi struktur konsep. Concept structure editor ini mendukung pembuatan, penghapusan dan pertukaran antar domain. Untuk domain yang terpilih, editor ini memungkinkan adanya : o Insert, delete-move, name-rename nodes pada layer o Insert, delete dan connect link o Menampilkan semantik link yang beragam dengan warna yang berbeda-beda.
62 o Melihat materi pembelajaran yang ada didalam database dan mengasosiasikannya dengan nodes dan link dari struktur konsep. •
Editor for Instructional Tasks and Methods Editor ini serupa dengan editor struktur konsep diatas, dimana editor ini memungkinkan pembuatan, penghapusan dan pemodifikasian struktur tugas pembelajaran. Metode alternatif dekomposisi tugas ditampilkan dengan menghubungkan tasknodes dengan pancaran yang memiliki warna, ketebalan dan pola yang berbeda.
2.5
Peta Konsep Peta konsep (concept map) adalah diagram yang menunjukkan hubungan antar konsep (http://en.wikipedia.org/wiki/Concept_map). Konsepkonsep dihubungkan dengan panah yang diberi label dalam struktur hierarki yang bercabang kebawah. Teknik pemetaan konsep (concept mapping) dikembangkan oleh Joseph D.Novak dan tim-nya di Universitas Cornell pada 1970. Pengembangan ini didasarkan pada teori kognitif oleh David Ausubel (Assimilation Theory), yang menekankan pentingnya pengetahuan awal untuk mempelajari konsep baru. Selanjutnya Novak mengajarkan murid-muridnya membuat peta konsep untuk menanggapi tiap pertanyaan. Peta konsep digunakan untuk menstimulasi berbagai ide kompleks yang muncul, sehingga pada akhirnya dapat berfungsi sebagai alat yang dapat meningkatkan sistem pembelajaran yang bermakna. Penggunaan peta konsep
63 juga dipercaya dapat meningkatkan daya kreativitas seseorang. Hal ini yang menyebabkan peta konsep sering digunakan dalam perancangan berbagai perangkat lunak. 2.6
Design Tools
2.6.1 State Transition Diagram State Transition Diagram (STD) adalah suatu alat perancangan yang menggambarkan perilaku dinamis dari objek dalam suatu sistem. State Transition Diagram memperlihatkan urutan keadaan yang dilalui sebuah objek, kejadian yang menyebabkan transisi antar keadaan, dan perlakuan yang diakibatkan oleh perubahan keadaan dari sistem. (Maksimchuk & Naiburg, 2004) Adapun beberapa simbol yang digunakan dalam diagram ini: •
Notasi Initial State Merupakan simbol yang menggambarkan keadaan masuk ke dalam sistem. Notasi Initial State digambarkan dengan bentuk lingkaran hitam.
Gambar 2.13 Notasi Initial State •
Notasi Final State Merupakan simbol yang menggambarkan keadaan keluar dari sistem. Notasi Final State digambarkan dengan bentuk lingkaran hitam yang dikelilingi oleh lingkaran lain.
64
Gambar 2.14 Notasi Final State •
Notasi State State didefinisikan sebagai kondisi atau interaksi dalam masa hidup suatu objek dimana objek tersebut memenuhi kondisi tertentu, melakukan aksi tertentu atau menunggu event tertentu. State berbentuk kotak dengan ujung-ujung yang melengkung.
Gambar 2.15 Notasi state •
Notasi State Transition Merupakan simbol yang digunakan untuk mewakili transisi yang terjadi di antara dua keadaan karena adanya suatu kondisi/aksi. State transition disimbolkan dengan anak panah dan disertai keterangan tindakan yang dilakukan
Gambar 2.16 Notasi State Transition •
Notasi Kondisi dan Aksi State dihubungkan dengan state transition dan deskripsi dari transisi tersebut yang disebut aksi. Aksi bergantung pada suatu kondisi.
Notasi
kondisi
dan
aksi
digunakan
untuk
menggambarkan hal ini dan terletak berdampingan dengan state transition.
65
Gambar 2.17 Notasi Kondisi dan Aksi •
Notasi Select Connective Notasi yang bertujuan untuk menggantikan notasi state transition dalam kasus dimana terdapat banyak notasi state transition dengan kondisi dan aksi yang sejenis. Dalam pemodelan web notasi ini dapat digunakan untuk melakukan pengelompokan hyperlink.
Gambar 2.18 Notasi Select Connective 2.6.2 Entity Relationship Diagram Entity Relationship Diagram adalah suatu alat pemodelan data semantik yang digunakan untuk mencapai tujuan penggambaran dan pendeskripsian data secara abstrak. Model Entity Relationship pertama diperkenalkan oleh Dr.Peter Chen pada tahun 1976 dan menjadi dasar dari berbagai model Entity Relationship yang berkembang selanjutnya. Salah satu model Entity Relationship yang paling sering digunakan adalah model Barker/Oracle yang diciptakan oleh Richard Baker dan kemudian diadopsi dan dimodifikasi oleh perusahaan Oracle. (Bagui & Earp, 2003) Adapun simbol yang digunakan pada model Barker/Oracle antara lain: •
Notasi Entity
66 Merupakan simbol yang menggambarkan suatu entity dalam database. Nama dari entity dituliskan pada bagian atas. Primary key ditandai dengan simbol “#” atau “PK” dan Foreign key ditandai dengan simbol “*” atau “FK”. Atribut-atribut yang wajib diisi ditandai dengan tulisan yang ditebalkan atau diberikan tanda “not null” pada kanan atribut.
Gambar 2.19 Notasi Entity •
Notasi Mandatory Relationship Notasi mandatory relationship menggambarkan hubungan antara dua entity dimana partisipasinya bersifat wajib.
Gambar 2.20 Notasi Mandatory Relationship •
Notasi Optional Relationship Notasi optional relationship menggambarkan hubungan antara dua entity dimana partisipasinya bersifat opsional.
Gambar 2.21 Notasi Optional Relationship •
Notasi Cardinality Notasi cardinality mendeskripsikan banyaknya satu tipe record berkaitan dengan record lain. Notasi cardinality terdiri atas tiga
67 notasi yaitu “Nol”, “Satu” dan notasi “Banyak/Lebih”. Notasi cardinality dapat berpasangan untuk membentuk notasi “Nol atau Lebih”, “Satu atau Lebih”, “Nol atau Satu”, dan “Tepat Satu”. Notasi “Nol” tidak dapat berdiri sendiri.
Gambar 2.22 Notasi Cardinality 2.6.3 Pseudocode Secara harafiah, pseudocode diartikan sebagai rancangan program atau program “tiruan” yang biasanya pertama kali ditulis oleh seorang pemrogram komputer sebelum menulis program yang sebenarnya. Pseudocode merupakan salah satu cara untuk mendefinisikan spesifikasi proses, yakni penjelasan dari proses-proses yang terjadi di dalam sistem, yang mana keberadaanya harus mudah dimengerti baik oleh pemakai maupun pembuat sistem. Sebagai salah satu cara pendefinisian spesifikasi proses, pseudocode dapat menjadi pedoman bagi pembuat program dalam membuat kode program maupun dokumentasi. Adapun beberapa karakteristik dari pseudocode dapat dijabarkan sebagai berikut: •
Statement/perintah ditulis dalam Bahasa Inggris / Indonesia sederhana
•
Setiap perintah ditulis dalam baris terpisah
68 •
Keyword digunakan untuk menjelaskan control structure tertentu
•
Setiap set/bagian instruksi memiliki awal dan akhir
•
Pengelompokkan statement bisa membentuk satu model yang mempunyai nama
2.7
Development Tools
2.7.1 Java Applet Java applet adalah sebuah program kecil yang ditulis dengan menggunakan bahasa pemrograman Java, yang diakses melalui halaman Web dan dapat di-download ke dalam mesin klien yang kemudian menjalankannya di dalam jendela penjelajah web. Java applet dapat secara dinamis menambahkan beberapa fungsi kepada halaman-halaman Web yang bersifat statis. Akan tetapi, untuk menjalankannya sebuah komputer harus memiliki program penjelajah web yang dapat menjalankan Java, seperti Microsoft Internet Explorer 4.0 ke atas, Netscape Navigator, Mozilla Firefox, dan Opera (Deitel&Deitel, 2005, pg.958). Ketika sebuah Java applet dibuat, semua pernyataan Java yang terkandung di dalam kode sumbernya akan dikompilasi menjadi Java bytecode, yakni sebuah bahasa mesin semu (virtual engine/machine language) yang dibentuk oleh Java. Berkas yang berisi Java bytecode ini akan disimpan sebagai sebuah berkas kelas Java (Java class file) di dalam sebuah Web server, seperti halnya Apache HTTP Server atau Microsoft Internet Information Services (IIS). Sebuah halaman Web yang hendak menggunakan applet
69 tersebut harus menggunakan tag <APPLET>... di dalam kode sumber-nya. Ketika sebuah penjelajah Web milik klien melakukan request kepada halaman Web tersebut dan menemukan bahwa di dalamnya terdapat tag <APPLET>..., bytecode di dalam Java class file akan dieksekusi oleh mesin semu di dalam jendela penjelajah Web, yang dapat berupa Microsoft Java Virtual Machine atau Java Runtime Engine dari Sun Microsystems. 2.7.2 Bahasa Pemrograman PHP PHP (Personal Home Page) adalah bahasa pemrograman komputer untuk menghasilkan halaman web dinamis (Castagnetto, 1999). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1994. Pada waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa sekumpulan script yang digunakan untuk mengolah data form dari web. Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI, kependekan dari Personal Home Page/Form Interpreter. Dengan perilisan kode sumber ini menjadi open source, maka banyak programmer yang tertarik untuk ikut mengembangkan PHP. Berikut beberapa keunggulan PHP antara lain : •
Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan kompilasi dalam penggunaannya.
•
Web Server yang mendukung PHP dapat ditemukan dimana mana dari mulai IIS sampai dengan apache, dengan konfigurasi yang relatif mudah.
70 •
Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan developer yang siap
membantu dalam
pengembangan. •
Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak.
•
PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (linux, unix, windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah sistem.
2.7.3 Basis Data Basis data (database) adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut (http://id.wikipedia.org/wiki/Basis_data). Perangkat lunak yang digunakan untuk mengelola dan memanggil query basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi. Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan objek yang diwakili suatu basis data, dan hubungan di antara objek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau
71 model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabeltabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel. Selain kedua istilah di atas, key juga menjadi salah satu istilah penting dalam penggunaan basis data. Ada tiga macam key yang dapat diterapkan pada suatu tabel, yaitu : •
Primary key Primary
key
merupakan
field
yang
digunakan
untuk
menghubungkan tabel dengan tabel lainnya. Primary key dapat terdiri dari sebuah atau beberapa field yang harus unik. •
Foreign key Foreign key merupakan key tujuan, yaitu berupa field yang digunakan sebagai field tujuan yang dihubungkan dengan primary key sebagai key asal.
•
Candidate key Candidate key adalah field yang dapat menjadi primary key pada suatu tabel.
Perangkat
lunak
basis
data
yang
banyak
digunakan
dalam
pemrograman dan merupakan perangkat basis data high level antara lain: DB2,
72 Microsoft SQL Server, Oracle, Sybase, Interbase, XBase, Firebird, MySQL, PostgreSQL, Microsoft Access, FoxPro dan sebagainya. Selain perangkat lunak tersebut, terdapat juga perangkat lunak pemrograman basis data aras rendah (low level), diantaranya Btrieve dan Tsunami Record Manager. 2.7.3.1 Structured Query Language (SQL) SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung
bahasa
ini
untuk
melakukan
manajemen
datanya
(http://id.wikipedia.org/wiki/SQL). Secara umum, SQL terdiri dari tiga bahasa, yaitu Data Definition Language (DDL), Data Manipulation Language (DML) dan Data Control Language (DCL). Implementasi DDL, DML dan DCL berbeda untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. •
Data Definition Language DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus
73 objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data. Beberapa contoh bentuk perintah yang termasuk dalam DDL antara lain: CREATE TABLE, CREATE INDEX, ALTER TABLE, DROP TABLE, dan sebagainya. •
Data Manipulation Language DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah: o SELECT untuk menampilkan data o INSERT untuk menambahkan data baru o UPDATE untuk mengubah data yang sudah ada o DELETE untuk menghapus data
•
Data Control Language DCL adalah kelompok perintah yang dipakai untuk melakukan
otorisasi
terhadap
pengaksesan
data
dan
pengalokasian ruang. Termasuk dalam kategori DCL yaitu pernyataan-pernyataan seperti GRANT, REVOKE, COMMIT, dan ROLLBACK. 2.7.3.2 MySQL MySQL adalah salah satu jenis aplikasi basis data yang bersifat compatible dengan bahasa pemrograman PHP. MySQL saat ini digunakan dalam
mayoritas
aplikasi
yang
menggunakan
PHP
sebagai
bahasa
74 pemrogramannya. Hal ini dikarenakan MySQL mempunyai beberapa keuntungan seperti: •
Bersifat free sehingga mengurangi biaya perancangan
•
Open source
•
Memiliki performa yang cepat
•
Mudah digunakan karena menggunakan sintaks SQL
•
Dengan menggunakan sintaks PHP ataupun tools lain seperti phpMyAdmin, data yang disimpan pada MySQL dapat dimanipulasi dengan mudah dan praktis