K-Nearest Neighbors (KNN): Studi Kasus dan Penyelesaian nya

29 Maret 2026 26 views

Studi Kasus:

Deskripsi Masalah: Sebuah toko online ingin memprediksi apakah seorang pelanggan akan membeli atau tidak membeli produk berdasarkan 2 fitur:

  • Usia: Umur pelanggan (tahun)

  • Penghasilan: Penghasilan bulanan (juta rupiah)

Tujuan: Diberikan data pelanggan baru dengan Usia = 33 dan Penghasilan = 7 juta, prediksi apakah pelanggan tersebut akan Beli atau Tidak Beli menggunakan algoritma KNN dengan K = 3

Penyelesaian:

Langkah 1: Siapkan Data Training

Berikut adalah data 10 pelanggan yang sudah diketahui label kelasnya:

No

Usia

Penghasilan (juta)

Label (Kelas)

1

25

4

Tidak Beli

2

30

8

Beli

3

35

6

Beli

4

20

3

Tidak Beli

5

40

9

Beli

6

22

5

Tidak Beli

7

45

7

Beli

8

28

3

Tidak Beli

9

38

10

Beli

10

24

6

Tidak Beli

Data Baru yang Ingin Diklasifikasikan:

Usia

Penghasilan (juta)

Label?

33

7

? (ingin diprediksi)

Maka dari data diatas dapat di visualisasikan sebagai berikut:

Langkah 2: Hitung Jarak Euclidean

Hitung jarak dari data baru (33, 7) ke setiap data training menggunakan rumus:

d=(x2x1)2+(y2y1)2d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}

Perhitungan Manual

Data 1 (25, 4):

d1=(3325)2+(74)2=64+9=73=8.544d_1 = \sqrt{(33-25)^2 + (7-4)^2} = \sqrt{64 + 9} = \sqrt{73} = 8.544

Data 2 (30, 8):

d2=(3330)2+(78)2=9+1=10=3.162d_2 = \sqrt{(33-30)^2 + (7-8)^2} = \sqrt{9 + 1} = \sqrt{10} = 3.162

Data 3 (35, 6):

d3=(3335)2+(76)2=4+1=5=2.236d_3 = \sqrt{(33-35)^2 + (7-6)^2} = \sqrt{4 + 1} = \sqrt{5} = 2.236

Data 4 (20, 3):

d4=(3320)2+(73)2=169+16=185=13.601d_4 = \sqrt{(33-20)^2 + (7-3)^2} = \sqrt{169 + 16} = \sqrt{185} = 13.601

Data 5 (40, 9):

d5=(3340)2+(79)2=49+4=53=7.280d_5 = \sqrt{(33-40)^2 + (7-9)^2} = \sqrt{49 + 4} = \sqrt{53} = 7.280

Data 6 (22, 5):

d6=(3322)2+(75)2=121+4=125=11.180d_6 = \sqrt{(33-22)^2 + (7-5)^2} = \sqrt{121 + 4} = \sqrt{125} = 11.180

Data 7 (45, 7):

d7=(3345)2+(77)2=144+0=144=12.000d_7 = \sqrt{(33-45)^2 + (7-7)^2} = \sqrt{144 + 0} = \sqrt{144} = 12.000

Data 8 (28, 3):

d8=(3328)2+(73)2=25+16=41=6.403d_8 = \sqrt{(33-28)^2 + (7-3)^2} = \sqrt{25 + 16} = \sqrt{41} = 6.403

Data 9 (38, 10):

d9=(3338)2+(710)2=25+9=34=5.831d_9 = \sqrt{(33-38)^2 + (7-10)^2} = \sqrt{25 + 9} = \sqrt{34} = 5.831

Data 10 (24, 6):

d10=(3324)2+(76)2=81+1=82=9.055d_{10} = \sqrt{(33-24)^2 + (7-6)^2} = \sqrt{81 + 1} = \sqrt{82} = 9.055

Maka didapatkan jarak kesemua data latih terhadap data uji dapat divisualisasikan seperti berikut:

Langkah 3: Urutkan dari Terkecil ke Terbesar

Urutan

No Data

Jarak

Kelas

1

Data 3

2.236

Beli

2

Data 2

3.162

Beli

3

Data 9

5.831

Beli

4

Data 8

6.403

Tidak Beli

5

Data 5

7.280

Beli

6

Data 1

8.544

Tidak Beli

7

Data 10

9.055

Tidak Beli

8

Data 6

11.180

Tidak Beli

9

Data 7

12.000

Beli

10

Data 4

13.601

Tidak Beli


Langkah 4: Ambil K=3 Tetangga Terdekat

Tetangga

No Data

Jarak

Kelas

Tetangga 1

Data 3 (35, 6)

2.236

Beli

Tetangga 2

Data 2 (30, 8)

3.162

Beli

Tetangga 3

Data 9 (38, 10)

5.831

Beli


dari langkah 3 & 4 dapat divisualisasikan sebagai berikut:

Langkah 5: Lihat Kelas dari K=3 Tetangga

Tetangga

Kelas

Tetangga 1 (Data 3)

Beli

Tetangga 2 (Data 2)

Beli

Tetangga 3 (Data 9)

Beli

Langkah 6: Majority Voting

Kelas

Jumlah Suara

Beli

3 suara

Tidak Beli

0 suara

Mayoritas = Beli (3 dari 3)

Kesimpulan

Pelanggan dengan Usia = 33 dan Penghasilan = 7 juta diprediksi akan MEMBELI produk.

Komentar

Tulis Komentar

Belum ada komentar. Jadilah yang pertama!