bab 2 landasan teori 2.1. kecerdasan...
TRANSCRIPT
8
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.
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 metode dan sistem untuk
menyelesaikan masalah-masalah yang 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
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 input-input simbolik sehingga tidak memungkinkan untuk menggunakan pengalaman secara langsung
3. Pemikiran sangat terbatas
2.2. 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, metode-
metode 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 },,1,{ niX i Κ= dan
Pa(Xi) menggambarkan himpunan parent dari Xi, maka parameter dari jejaring
ini adalah sebuah himpunan distribusi },,1)),(|({ niXPaXP ii Κ= .
Probabilitas ini menjelaskan joint probabilities distribution untuk seluruh
jejaring sebagai berikut ini:
25
∏=
=n
iiin XPaXPXXP
11 ))(|(),,( Κ
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 hubungan-
hubungan 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 sebuah proses dari
perkembangan pembatas elastis.
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 berbeda-
beda 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 beberapa ukuran
ketidakcocokan dalam sampel pada tiap cluster, 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 adalah ukuran jarak yang dipilih antara data
point 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 point kedalam ruang yang
direpresentasikan oleh objek-objek 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 = , i =1,
..., c, j =1,..., n dimana 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 materi-
materi 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 proses-
proses 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 goal-
concept.
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 task-
nodes 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). Konsep-
konsep 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>...</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>...</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 tabel-
tabel 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