# Penjelasan Contoh Input Harga, Tahun, dan Mesin CC pada Rekomendasi K-Means ## 1. Gambaran Umum Fitur rekomendasi mobil menggunakan metode K-Means untuk mengelompokkan data mobil berdasarkan kemiripan atribut numerik. Atribut utama yang digunakan sebagai fitur perhitungan adalah: ```text harga, tahun, mesin_cc ``` Ketiga atribut tersebut dipakai karena dapat mewakili karakteristik utama mobil bekas: - Harga menunjukkan kisaran budget atau kemampuan beli pengguna. - Tahun menunjukkan usia atau kebaruan mobil. - Mesin CC menunjukkan kapasitas mesin mobil. Ketika pengguna memasukkan harga, tahun, dan mesin cc, sistem akan mencari mobil yang sesuai dengan input tersebut. Data mobil yang tersedia akan diproses dalam model K-Means untuk menentukan kelompok atau cluster yang paling sesuai. ## 2. Contoh Input Pengguna Misalnya pengguna memasukkan data berikut: ```text Harga/Budget : Rp 200.000.000 Tahun Minimal : 2018 Mesin CC : 1500 ``` Artinya pengguna ingin mencari mobil dengan harga maksimal Rp 200.000.000, tahun minimal 2018, dan kapasitas mesin yang mendekati 1500 cc. ## 3. Contoh Data Mobil Misalnya terdapat lima data mobil yang memenuhi batas budget dan tahun: | Kode Mobil | Harga | Tahun | Mesin CC | |---|---:|---:|---:| | A | Rp 130.000.000 | 2018 | 1200 | | B | Rp 150.000.000 | 2019 | 1500 | | C | Rp 170.000.000 | 2020 | 1500 | | D | Rp 190.000.000 | 2021 | 1800 | | E | Rp 200.000.000 | 2022 | 2000 | Setiap mobil kemudian direpresentasikan ke dalam bentuk fitur numerik: ```text A = [130000000, 2018, 1200] B = [150000000, 2019, 1500] C = [170000000, 2020, 1500] D = [190000000, 2021, 1800] E = [200000000, 2022, 2000] ``` ## 4. Penentuan Centroid Awal Dalam K-Means, centroid adalah titik pusat dari sebuah cluster. Pada awal proses, sistem menentukan centroid awal. Misalnya jumlah cluster yang digunakan adalah 2, maka contoh centroid awal dapat berupa: ```text Centroid 0 = [130000000, 2018, 1200] Centroid 1 = [200000000, 2022, 2000] ``` Centroid awal ini menjadi acuan sementara untuk menentukan mobil mana yang paling dekat dengan masing-masing cluster. ## 5. Proses Pemilihan Cluster Setiap mobil dihitung jaraknya terhadap centroid. Mobil akan masuk ke cluster dengan jarak paling dekat. Contoh hasil pengelompokan awal: ```text Cluster 0: A = [130000000, 2018, 1200] B = [150000000, 2019, 1500] C = [170000000, 2020, 1500] Cluster 1: D = [190000000, 2021, 1800] E = [200000000, 2022, 2000] ``` Mobil A, B, dan C lebih dekat dengan Centroid 0, sedangkan mobil D dan E lebih dekat dengan Centroid 1. ## 6. Pergeseran Centroid Setelah anggota cluster terbentuk, centroid baru dihitung berdasarkan rata-rata nilai setiap fitur dari anggota cluster tersebut. ### Centroid Baru Cluster 0 Anggota Cluster 0: ```text A = [130000000, 2018, 1200] B = [150000000, 2019, 1500] C = [170000000, 2020, 1500] ``` Perhitungan centroid baru: ```text Harga = (130000000 + 150000000 + 170000000) / 3 = 150000000 Tahun = (2018 + 2019 + 2020) / 3 = 2019 Mesin CC = (1200 + 1500 + 1500) / 3 = 1400 ``` Maka centroid baru untuk Cluster 0 adalah: ```text Centroid 0 baru = [150000000, 2019, 1400] ``` ### Centroid Baru Cluster 1 Anggota Cluster 1: ```text D = [190000000, 2021, 1800] E = [200000000, 2022, 2000] ``` Perhitungan centroid baru: ```text Harga = (190000000 + 200000000) / 2 = 195000000 Tahun = (2021 + 2022) / 2 = 2021.5 Mesin CC = (1800 + 2000) / 2 = 1900 ``` Maka centroid baru untuk Cluster 1 adalah: ```text Centroid 1 baru = [195000000, 2021.5, 1900] ``` Pergeseran centroid terjadi karena titik pusat cluster diperbarui mengikuti rata-rata anggota cluster. Proses ini akan diulang sampai posisi cluster stabil atau anggota cluster tidak berubah lagi. ## 7. Pemilihan Hasil Rekomendasi Setelah cluster terbentuk, sistem memilih mobil yang paling sesuai dengan input pengguna. Dalam contoh ini, input pengguna adalah: ```text [200000000, 2018, 1500] ``` Mobil yang memiliki harga di bawah atau mendekati budget, tahun sesuai, dan mesin cc mendekati 1500 akan mendapat skor rekomendasi yang lebih baik. Contoh mobil yang cocok: ```text C = [170000000, 2020, 1500] ``` Mobil C dapat menjadi rekomendasi yang baik karena: - Harga masih di bawah budget Rp 200.000.000. - Tahun 2020 lebih baru dari batas minimal 2018. - Mesin 1500 cc sesuai dengan input pengguna. ## 8. Hubungan dengan Kode Program Pada kode API Flask, fitur yang digunakan untuk K-Means terdapat pada fungsi berikut: ```python def car_features(car): return [car["harga"], car["tahun"], car["mesin_cc"]] ``` Fungsi tersebut menunjukkan bahwa proses clustering menggunakan tiga atribut utama, yaitu harga, tahun, dan mesin cc. Proses pergeseran centroid terdapat pada bagian berikut: ```python new_centroids.append( [sum(member[column] for member in members) / len(members) for column in range(len(vectors[0]))] ) centroids = new_centroids ``` Kode tersebut menghitung rata-rata anggota cluster untuk membentuk centroid baru. ## 9. Kesimpulan Berdasarkan contoh di atas, input harga, tahun, dan mesin cc dapat digunakan sebagai acuan dalam proses rekomendasi mobil. K-Means akan mengelompokkan data mobil berdasarkan kemiripan harga, tahun, dan kapasitas mesin. Setelah cluster terbentuk, centroid akan bergeser mengikuti rata-rata anggota cluster sampai hasil pengelompokan stabil. Dengan demikian, fitur rekomendasi dapat memberikan hasil yang lebih sesuai karena mempertimbangkan budget pengguna, batas tahun kendaraan, dan kapasitas mesin yang diinginkan.