Case Based Reasoning (CBR): Contoh Perhitungan Similarity Lengkap

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

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:

\[ Similarity(T,S) = \frac{ \sum_{i=1}^{n} f(T_i,S_i)\times w_i }{ \sum_{i=1}^{n} w_i } \]

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:

\[ 0 \leq Similarity \leq 1 \]

Semakin mendekati 1, semakin mirip dua kasus yang dibandingkan.


Local Similarity

Pada data biner atau kategorikal sederhana, local similarity dapat menggunakan pencocokan eksak:

\[ f(T_i,S_i) = \begin{cases} 1, & T_i=S_i \\ 0, & T_i\neq S_i \end{cases} \]

Contoh:

Kasus baru:

G1 = 1

Kasus lama:

G1 = 1

maka:

\[ f(G1)=1 \]

Jika:

Kasus baru G2 = 1
Kasus lama G2 = 0

maka:

\[ f(G2)=0 \]

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:

\[ Similarity = \frac{ (1\times5)+(0\times3)+(1\times2) }{ 5+3+2 } \]
\[ Similarity = \frac{7}{10} = 0.70 \]

atau:

\[ 70\% \]

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:

\[ 5+4+4+3+2=18 \]

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:

\[ 5+4+4+0+2=15 \]

Similarity C1:

\[ Similarity(T,C1) = \frac{15}{18} = 0.8333 \]

atau:

\[ 83.33\% \]

#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:

\[ Similarity(T,C2) = \frac{3}{18} = 0.1667 \]

atau:

\[ 16.67\% \]

#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:

\[ Similarity(T,C3) = \frac{3+2}{18} = \frac{5}{18} = 0.2778 \]

atau:

\[ 27.78\% \]

#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:

\[ Similarity(T,C4) = \frac{5+2}{18} = \frac{7}{18} = 0.3889 \]

atau:

\[ 38.89\% \]

#08 Hasil Retrieve

Sebelum melihat tabel hasil, perhatikan bahwa similarity tertinggi berasal dari C1:

\[ Similarity(T,C1)=83.33\% \]

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:

\[ 83.33\% \]

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:

\[ Similarity \geq 0.75 \]

maka kasus dianggap cukup mirip.

Pada contoh:

\[ Similarity(T,C1)=0.8333 \]

karena:

\[ 0.8333 \geq 0.75 \]

C1 dapat diterima sebagai kandidat kasus terdekat.

Sebaliknya:

\[ Similarity(T,C4)=0.3889 \]

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:

\[ f(T_i,S_i) = 1- \frac{|T_i-S_i|} {Range_i} \]

dengan:

\[ Range_i = Max_i-Min_i \]

Contoh:

Suhu kasus baru = 85
Suhu kasus lama = 80
Rentang suhu     = 40

Maka:

\[ f(T_i,S_i) = 1- \frac{|85-80|}{40} \]
\[ = 1-\frac{5}{40} \]
\[ = 0.875 \]

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:

\[ 0.83 \]

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

  1. Aamodt, A., & Plaza, E. (1994). Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches. AI Communications, 7(1), 39–59.
  2. Kolodner, J. L. (1993). Case-Based Reasoning. Morgan Kaufmann.
  3. 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.

Ada yang Ditanyakan?

Jika anda masih ada kesulitan atau kekeliruan tentang penjelasan metode di atas, bisa menghubungi kami lewat WA/Email sesuai halaman Kontak.

Jika ingin memiliki file excel dari metode di atas bisa melihat cara download di halaman Download.

Jika ingin memiliki source code dari metode di atas, baik berbasis web maupun desktop bisa melihat daftar harga donasi di halaman Daftar Source Code.

Donasi ini digunakan oleh penulis untuk membayar server dan membeli kopi sembari membuat tutorial Metode/Algoritma lainnya :).