Case Based Reasoning (CBR) adalah metode pemecahan masalah yang menggunakan pengalaman atau kasus-kasus lama untuk membantu menyelesaikan kasus baru yang memiliki karakteristik serupa.
Pada sistem pakar, CBR bekerja dengan mencari kasus terdahulu yang paling mirip dengan kasus baru. Tingkat kemiripan biasanya dihitung menggunakan nilai similarity. Kasus dengan similarity tertinggi dapat digunakan sebagai dasar untuk memberikan solusi awal, kemudian solusi tersebut dapat direvisi sebelum kasus baru disimpan sebagai pengetahuan baru.
Tutorial ini menggunakan contoh diagnosis kerusakan laptop agar proses CBR dapat dihitung secara manual, mulai dari menentukan gejala dan bobot, membentuk basis kasus, menghitung similarity setiap kasus, memilih kasus terdekat, hingga menjelaskan siklus Retrieve, Reuse, Revise, dan Retain.
Daftar Isi
- Pengertian Case Based Reasoning
- Konsep Dasar Case Based Reasoning
- Siklus 4R pada CBR
- Representasi Kasus pada CBR
- Rumus Similarity CBR
- Local Similarity
- Global Similarity
- Contoh Kasus Perhitungan CBR
- Menentukan Threshold Similarity
- Similarity untuk Data Numerik
- Pseudocode CBR
- CBR vs Rule Based Reasoning
- CBR vs KNN
- Kelebihan dan Kekurangan CBR
- Kapan CBR Cocok Digunakan?
- Kesalahan Umum Implementasi CBR
- Ringkasan
- FAQ Case Based Reasoning
- Referensi
- Source Code Case Based Reasoning
Pengertian Case Based Reasoning
Case Based Reasoning adalah pendekatan pemecahan masalah yang menggunakan kasus sebelumnya sebagai sumber pengalaman untuk menangani kasus baru.
Secara sederhana, logika CBR adalah:
Jika kasus baru mirip dengan kasus yang pernah terjadi sebelumnya, maka solusi dari kasus lama dapat digunakan sebagai dasar untuk menyelesaikan kasus baru.
Berbeda dengan sistem berbasis rule yang hanya mengandalkan kumpulan aturan IF-THEN, CBR menyimpan pengetahuan dalam bentuk case base.
Satu kasus biasanya memiliki:
- deskripsi masalah,
- atribut atau gejala,
- solusi,
- hasil atau diagnosis,
- dan informasi lain yang relevan.
Konsep Dasar Case Based Reasoning
CBR menggunakan pengalaman masa lalu sebagai sumber pengetahuan.
Misalnya sistem memiliki kasus lama:
Gejala:
- Laptop sering mati sendiri
- Kipas sangat berisik
- Suhu laptop tinggi
Diagnosis:
Overheating
Solusi:
Membersihkan sistem pendingin dan memeriksa kipas.
Kemudian terdapat kasus baru dengan gejala yang hampir sama.
Sistem akan membandingkan kasus baru dengan seluruh kasus lama, menghitung tingkat similarity, kemudian mengambil kasus yang paling mirip.
Alur sederhananya:
Kasus Baru
↓
Cari Kasus Lama yang Mirip
↓
Hitung Similarity
↓
Ambil Kasus Terdekat
↓
Gunakan / Sesuaikan Solusi
↓
Simpan Pengalaman Baru
Siklus 4R pada CBR
CBR umumnya dijelaskan menggunakan siklus 4R:
| Tahap | Nama | Fungsi |
|---|---|---|
| 1 | Retrieve | Mencari kasus lama yang paling mirip dengan kasus baru |
| 2 | Reuse | Menggunakan solusi kasus lama untuk kasus baru |
| 3 | Revise | Mengevaluasi dan memperbaiki solusi jika diperlukan |
| 4 | Retain | Menyimpan kasus baru sebagai pengalaman baru |
Retrieve
Pada tahap Retrieve, sistem mencari kasus dalam case base yang memiliki tingkat kemiripan tertinggi dengan kasus baru.
Reuse
Solusi dari kasus terdekat digunakan sebagai solusi awal.
Revise
Solusi dievaluasi. Jika tidak sepenuhnya sesuai, pakar atau sistem dapat melakukan penyesuaian.
Retain
Kasus yang telah selesai dapat disimpan ke case base sehingga dapat digunakan untuk membantu penyelesaian kasus lain di masa depan.
Representasi Kasus pada CBR
Kasus dapat direpresentasikan menggunakan sejumlah atribut.
Pada contoh diagnosis laptop, kasus direpresentasikan menggunakan lima gejala:
G1 = Laptop sering mati sendiri
G2 = Kipas laptop sangat berisik
G3 = Suhu laptop tinggi
G4 = Laptop terasa lambat
G5 = Sering muncul blue screen
Setiap gejala menggunakan nilai biner:
1 = gejala terjadi
0 = gejala tidak terjadi
Contoh:
C1 = [1, 1, 1, 0, 0]
Artinya pada kasus C1:
- G1 terjadi,
- G2 terjadi,
- G3 terjadi,
- G4 tidak terjadi,
- G5 tidak terjadi.
Rumus Similarity CBR
Salah satu rumus yang umum digunakan pada CBR adalah weighted similarity:
Keterangan:
- \(T\) = target case atau kasus baru,
- \(S\) = source case atau kasus lama,
- \(f(T_i,S_i)\) = local similarity atribut ke-\(i\),
- \(w_i\) = bobot atribut ke-\(i\),
- \(n\) = jumlah atribut.
Nilai similarity biasanya berada pada rentang:
Semakin mendekati 1, semakin mirip dua kasus yang dibandingkan.
Local Similarity
Pada data biner atau kategorikal sederhana, local similarity dapat menggunakan pencocokan eksak:
Contoh:
Kasus baru:
G1 = 1
Kasus lama:
G1 = 1
maka:
Jika:
Kasus baru G2 = 1
Kasus lama G2 = 0
maka:
Global Similarity
Global similarity diperoleh dengan menggabungkan seluruh local similarity dan bobot atribut.
Misalnya terdapat tiga atribut:
| Atribut | Local Similarity | Bobot |
|---|---|---|
| A1 | 1 | 5 |
| A2 | 0 | 3 |
| A3 | 1 | 2 |
Maka:
atau:
Nilai tersebut menunjukkan tingkat kemiripan berdasarkan fungsi similarity dan bobot yang digunakan.
Contoh Kasus Perhitungan CBR
Contoh berikut menggunakan CBR untuk mencari kasus kerusakan laptop yang paling mirip dengan kasus baru.
#01 Menentukan Gejala dan Bobot
Digunakan lima gejala dengan bobot berikut:
| Kode | Gejala | Bobot |
|---|---|---|
| G1 | Laptop sering mati sendiri | 5 |
| G2 | Kipas laptop sangat berisik | 4 |
| G3 | Suhu laptop tinggi | 4 |
| G4 | Laptop terasa lambat | 3 |
| G5 | Sering muncul blue screen | 2 |
Total bobot:
Bobot yang lebih besar menunjukkan bahwa atribut tersebut dianggap lebih penting dalam proses pencarian kemiripan.
Pada sistem nyata, bobot sebaiknya ditentukan berdasarkan pengetahuan pakar, hasil penelitian, atau metode pembobotan yang dapat dipertanggungjawabkan.
#02 Menentukan Basis Kasus Lama
Case base memiliki empat kasus lama.
| Kasus | G1 | G2 | G3 | G4 | G5 | Diagnosis |
|---|---|---|---|---|---|---|
| C1 | 1 | 1 | 1 | 0 | 0 | Overheating |
| C2 | 0 | 0 | 0 | 1 | 1 | Gangguan RAM |
| C3 | 0 | 0 | 0 | 1 | 0 | Storage Bermasalah |
| C4 | 1 | 0 | 0 | 0 | 0 | Gangguan Power |
Setiap kasus lama menyimpan diagnosis dan dapat pula menyimpan solusi yang pernah digunakan.
Contoh solusi:
| Kasus | Diagnosis | Solusi Lama |
|---|---|---|
| C1 | Overheating | Bersihkan sistem pendingin dan periksa kipas |
| C2 | Gangguan RAM | Periksa pemasangan dan kondisi RAM |
| C3 | Storage Bermasalah | Periksa kapasitas dan kesehatan storage |
| C4 | Gangguan Power | Periksa adaptor, baterai, dan jalur daya |
#03 Menentukan Kasus Baru
Kasus baru memiliki gejala:
| Gejala | Nilai |
|---|---|
| G1 | 1 |
| G2 | 1 |
| G3 | 1 |
| G4 | 1 |
| G5 | 0 |
Representasi kasus baru:
T = [1, 1, 1, 1, 0]
Sistem akan membandingkan kasus baru \(T\) dengan C1, C2, C3, dan C4.
#04 Menghitung Similarity Kasus C1
Kasus C1:
C1 = [1, 1, 1, 0, 0]
Kasus baru:
T = [1, 1, 1, 1, 0]
Local similarity:
| Gejala | T | C1 | Local Similarity | Bobot | Nilai Terbobot |
|---|---|---|---|---|---|
| G1 | 1 | 1 | 1 | 5 | 5 |
| G2 | 1 | 1 | 1 | 4 | 4 |
| G3 | 1 | 1 | 1 | 4 | 4 |
| G4 | 1 | 0 | 0 | 3 | 0 |
| G5 | 0 | 0 | 1 | 2 | 2 |
Jumlah nilai terbobot:
Similarity C1:
atau:
#05 Menghitung Similarity Kasus C2
Kasus C2:
C2 = [0, 0, 0, 1, 1]
Contoh perhitungan:
- G1 berbeda → \(0\times5=0\)
- G2 berbeda → \(0\times4=0\)
- G3 berbeda → \(0\times4=0\)
- G4 sama → \(1\times3=3\)
- G5 berbeda → \(0\times2=0\)
Sehingga:
atau:
#06 Menghitung Similarity Kasus C3
Kasus C3:
C3 = [0, 0, 0, 1, 0]
Nilai yang sama:
- G4 sama → bobot 3,
- G5 sama → bobot 2.
Maka:
atau:
#07 Menghitung Similarity Kasus C4
Kasus C4:
C4 = [1, 0, 0, 0, 0]
Nilai yang sama:
- G1 sama → bobot 5,
- G5 sama → bobot 2.
Maka:
atau:
#08 Hasil Retrieve
Sebelum melihat tabel hasil, perhatikan bahwa similarity tertinggi berasal dari C1:
Sedangkan similarity berikutnya hanya 38.89%, 27.78%, dan 16.67%.
Hasil Retrieve:
| Rank | Kasus | Diagnosis | Similarity |
|---|---|---|---|
| 1 | C1 | Overheating | 83.33% |
| 2 | C4 | Gangguan Power | 38.89% |
| 3 | C3 | Storage Bermasalah | 27.78% |
| 4 | C2 | Gangguan RAM | 16.67% |
Kasus dengan similarity terbesar adalah:
C1 = Overheating
dengan nilai:
Maka C1 menjadi kasus yang dipilih pada tahap Retrieve.
Catatan: nilai similarity menunjukkan tingkat kemiripan terhadap representasi kasus dan bobot yang digunakan. Nilai 83.33% tidak otomatis berarti probabilitas diagnosis benar sebesar 83.33%.
#09 Tahap Reuse
Kasus C1 memiliki solusi lama:
Bersihkan sistem pendingin dan periksa kipas.
Karena C1 adalah kasus dengan similarity tertinggi, solusi tersebut dapat digunakan sebagai solusi awal untuk kasus baru.
Pada tahap Reuse:
Kasus baru
→ mirip dengan C1
→ menggunakan solusi C1 sebagai kandidat solusi
Namun solusi belum harus langsung dianggap final.
#10 Tahap Revise
Kasus baru memiliki G4:
Laptop terasa lambat = 1
sedangkan pada C1:
Laptop terasa lambat = 0
Artinya terdapat satu perbedaan antara kasus baru dan kasus lama.
Pada tahap Revise, solusi dapat diperiksa kembali.
Contoh:
Solusi awal:
Bersihkan sistem pendingin dan periksa kipas.
Revisi:
Bersihkan sistem pendingin, periksa kipas,
dan lakukan pemeriksaan tambahan terhadap penyebab laptop lambat.
Tahap Revise penting karena CBR tidak selalu dapat menggunakan solusi lama tanpa penyesuaian.
#11 Tahap Retain
Jika solusi yang telah direvisi berhasil menyelesaikan masalah, kasus baru dapat disimpan ke case base.
Contoh kasus baru:
C5
Gejala : [1, 1, 1, 1, 0]
Diagnosis: Overheating
Solusi : Bersihkan pendingin, periksa kipas,
dan lakukan pemeriksaan performa.
Case base setelah Retain:
| Kasus | G1 | G2 | G3 | G4 | G5 | Diagnosis |
|---|---|---|---|---|---|---|
| C1 | 1 | 1 | 1 | 0 | 0 | Overheating |
| C2 | 0 | 0 | 0 | 1 | 1 | Gangguan RAM |
| C3 | 0 | 0 | 0 | 1 | 0 | Storage Bermasalah |
| C4 | 1 | 0 | 0 | 0 | 0 | Gangguan Power |
| C5 | 1 | 1 | 1 | 1 | 0 | Overheating |
Dengan demikian, CBR dapat menambah pengalaman baru selama sistem digunakan.
Menentukan Threshold Similarity
Beberapa implementasi CBR menggunakan threshold untuk menentukan apakah kasus lama cukup mirip untuk digunakan.
Misalnya:
Threshold = 0.75
Jika:
maka kasus dianggap cukup mirip.
Pada contoh:
karena:
C1 dapat diterima sebagai kandidat kasus terdekat.
Sebaliknya:
sehingga tidak memenuhi threshold 0.75.
Threshold bukan nilai universal. Nilainya harus ditentukan berdasarkan kebutuhan sistem, karakteristik data, validasi pakar, atau hasil pengujian.
Similarity untuk Data Numerik
Tidak semua atribut CBR berbentuk biner.
Jika atribut berupa angka, salah satu bentuk local similarity yang dapat digunakan adalah:
dengan:
Contoh:
Suhu kasus baru = 85
Suhu kasus lama = 80
Rentang suhu = 40
Maka:
Artinya similarity lokal untuk atribut suhu adalah 0.875.
Pemilihan fungsi local similarity perlu disesuaikan dengan tipe data dan makna atribut.
Pseudocode CBR
Berikut pseudocode sederhana untuk tahap Retrieve:
input:
target_case
case_base
weights
best_case = null
best_similarity = 0
for each source_case in case_base:
weighted_score = 0
total_weight = 0
for each attribute:
local_similarity =
compare(
target_case[attribute],
source_case[attribute]
)
weighted_score +=
local_similarity * weights[attribute]
total_weight += weights[attribute]
similarity =
weighted_score / total_weight
if similarity > best_similarity:
best_similarity = similarity
best_case = source_case
return best_case, best_similarity
Setelah Retrieve, sistem dapat melanjutkan:
Reuse
↓
Revise
↓
Retain
CBR vs Rule Based Reasoning
CBR dan Rule Based Reasoning sama-sama dapat digunakan pada sistem pakar, tetapi sumber pengetahuannya berbeda.
| Aspek | Case Based Reasoning | Rule Based Reasoning |
|---|---|---|
| Pengetahuan | Kasus atau pengalaman lama | Rule IF-THEN |
| Proses utama | Mencari kasus yang mirip | Mencocokkan fakta dengan rule |
| Hasil | Solusi berdasarkan kasus terdekat | Kesimpulan berdasarkan rule |
| Penambahan pengetahuan | Dapat menyimpan kasus baru | Menambah atau mengubah rule |
| Mekanisme | Retrieve, Reuse, Revise, Retain | Inferensi rule |
| Cocok untuk | Masalah dengan pengalaman kasus terdahulu | Masalah dengan aturan pakar yang jelas |
CBR vs KNN
CBR dan K-Nearest Neighbor sama-sama menggunakan konsep kemiripan, tetapi tidak identik.
| Aspek | CBR | KNN |
|---|---|---|
| Fokus | Pemecahan masalah berbasis pengalaman | Klasifikasi atau regresi |
| Data utama | Kasus lengkap beserta solusi | Data latih berlabel |
| Siklus | Retrieve, Reuse, Revise, Retain | Cari K tetangga lalu voting/agregasi |
| Adaptasi solusi | Dapat dilakukan | Umumnya tidak menjadi tahap khusus |
| Penyimpanan kasus baru | Merupakan bagian Retain | Tidak otomatis menjadi bagian algoritma |
| Similarity/distance | Dapat disesuaikan per atribut | Umumnya menggunakan distance tertentu |
Pada implementasi tertentu, tahap Retrieve pada CBR dapat menggunakan teknik nearest neighbor. Namun keseluruhan proses CBR lebih luas karena mencakup Reuse, Revise, dan Retain.
Kelebihan dan Kekurangan CBR
Kelebihan CBR
- Memanfaatkan pengalaman kasus terdahulu.
- Pengetahuan mudah dipahami karena direpresentasikan sebagai kasus.
- Dapat berkembang dengan menyimpan kasus baru.
- Tidak selalu membutuhkan rule yang sangat banyak.
- Dapat memberikan contoh kasus terdahulu sebagai penjelasan hasil.
- Cocok untuk permasalahan yang memiliki histori penyelesaian kasus.
Kekurangan CBR
- Kualitas hasil sangat bergantung pada kualitas case base.
- Case base yang besar dapat meningkatkan biaya pencarian.
- Pemilihan atribut, bobot, dan fungsi similarity sangat memengaruhi hasil.
- Solusi kasus lama belum tentu langsung cocok untuk kasus baru.
- Kasus yang salah atau tidak relevan dapat menurunkan kualitas sistem.
- Tahap Retain perlu dikontrol agar case base tidak dipenuhi kasus duplikat atau berkualitas rendah.
Kapan CBR Cocok Digunakan?
CBR cocok digunakan ketika:
- tersedia kumpulan kasus lama;
- masalah baru cenderung memiliki kemiripan dengan kasus sebelumnya;
- solusi terdahulu dapat digunakan kembali atau diadaptasi;
- pengalaman kasus merupakan sumber pengetahuan penting;
- sistem diharapkan dapat menambah pengetahuan dari kasus baru;
- atau sulit menyusun seluruh pengetahuan menjadi rule IF-THEN.
Contoh penerapan:
- diagnosis kerusakan perangkat,
- troubleshooting,
- help desk,
- konsultasi teknis,
- rekomendasi penyelesaian masalah,
- diagnosis berbasis kasus,
- evaluasi kasus hukum,
- dan berbagai sistem berbasis pengalaman.
Kesalahan Umum Implementasi CBR
1. Menganggap similarity sebagai probabilitas
Jika similarity:
maka artinya kasus memiliki tingkat kemiripan 83% menurut fungsi similarity yang digunakan.
Nilai tersebut tidak otomatis berarti peluang diagnosis benar sebesar 83%.
2. Semua atribut diberi bobot sama tanpa alasan
Jika beberapa gejala lebih penting, bobot sebaiknya mencerminkan tingkat kepentingannya.
Bobot perlu memiliki dasar yang jelas.
3. Tidak melakukan normalisasi atribut numerik
Atribut numerik dengan skala yang sangat berbeda dapat menghasilkan similarity yang tidak proporsional jika langsung dibandingkan.
4. Melewati tahap Revise
Kasus paling mirip belum tentu identik.
Solusi lama dapat membutuhkan penyesuaian.
5. Menyimpan semua kasus baru tanpa validasi
Tahap Retain sebaiknya menyimpan kasus yang sudah diverifikasi agar kualitas case base tetap terjaga.
6. Tidak menentukan strategi jika similarity rendah
Jika seluruh kasus memiliki similarity rendah, sistem sebaiknya tidak memaksakan penggunaan solusi lama.
Sistem dapat:
- meminta konsultasi pakar,
- meminta data tambahan,
- atau menyatakan belum tersedia kasus yang cukup mirip.
Ringkasan
Case Based Reasoning menggunakan pengalaman kasus lama untuk membantu menyelesaikan kasus baru melalui empat tahap:
Retrieve
↓
Reuse
↓
Revise
↓
Retain
Pada contoh diagnosis laptop, kasus baru:
T = [1, 1, 1, 1, 0]
dibandingkan dengan empat kasus lama.
Hasil similarity:
| Kasus | Similarity |
|---|---|
| C1 | 83.33% |
| C2 | 16.67% |
| C3 | 27.78% |
| C4 | 38.89% |
Kasus paling mirip adalah C1 - Overheating dengan similarity 83.33%.
Solusi C1 dapat digunakan pada tahap Reuse, diperiksa dan disesuaikan pada tahap Revise, kemudian kasus baru yang sudah tervalidasi dapat disimpan kembali melalui tahap Retain.
FAQ Case Based Reasoning
Apa itu Case Based Reasoning?
Case Based Reasoning adalah metode pemecahan masalah yang menggunakan kasus terdahulu sebagai pengalaman untuk membantu menyelesaikan kasus baru.
Apa kepanjangan CBR?
CBR adalah singkatan dari Case Based Reasoning.
Apa saja tahapan CBR?
Tahapan utama CBR adalah Retrieve, Reuse, Revise, dan Retain.
Apa itu Retrieve?
Retrieve adalah proses mencari satu atau beberapa kasus lama yang paling mirip dengan kasus baru.
Apa itu Reuse?
Reuse adalah proses menggunakan solusi dari kasus lama sebagai solusi awal untuk kasus baru.
Apa itu Revise?
Revise adalah proses mengevaluasi dan memperbaiki solusi agar sesuai dengan kondisi kasus baru.
Apa itu Retain?
Retain adalah proses menyimpan kasus baru yang telah selesai dan tervalidasi ke dalam case base.
Apa itu similarity pada CBR?
Similarity adalah ukuran tingkat kemiripan antara kasus baru dengan kasus lama berdasarkan atribut dan fungsi kemiripan yang digunakan.
Apakah nilai similarity sama dengan probabilitas?
Tidak. Similarity menunjukkan tingkat kemiripan berdasarkan model perbandingan yang digunakan, bukan probabilitas kebenaran diagnosis.
Mengapa CBR menggunakan bobot?
Bobot digunakan untuk membedakan tingkat kepentingan masing-masing atribut dalam proses perhitungan similarity.
Apakah CBR termasuk metode sistem pakar?
Ya. CBR dapat digunakan sebagai pendekatan pada sistem pakar, khususnya ketika pengetahuan direpresentasikan dalam bentuk pengalaman kasus terdahulu.
Apa perbedaan CBR dan Forward Chaining?
CBR mencari pengalaman kasus lama yang mirip, sedangkan Forward Chaining memulai inferensi dari fakta dan menjalankan rule yang premisnya terpenuhi.
Apa perbedaan CBR dan Backward Chaining?
CBR berfokus pada pencarian kasus serupa, sedangkan Backward Chaining memulai penalaran dari goal kemudian mencari rule dan fakta yang dapat membuktikannya.
Apa perbedaan CBR dan KNN?
KNN berfokus pada tetangga terdekat untuk klasifikasi atau regresi, sedangkan CBR memiliki proses lebih luas berupa Retrieve, Reuse, Revise, dan Retain.
Apakah kasus baru selalu disimpan?
Tidak harus. Kasus baru sebaiknya disimpan setelah solusi dan hasilnya divalidasi agar case base tetap berkualitas.
Referensi
- Aamodt, A., & Plaza, E. (1994). Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches. AI Communications, 7(1), 39–59.
- Kolodner, J. L. (1993). Case-Based Reasoning. Morgan Kaufmann.
- Watson, I. (1997). Applying Case-Based Reasoning: Techniques for Enterprise Systems. Morgan Kaufmann.
Source Code Case Based Reasoning
Berikut source code yang menggunakan metode Case Based Reasoning pada RumahSourceCode.





