<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
	<id>https://inibudi.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Algoritma%3A_K-Nearest_Neighbors_%28KNN%29</id>
	<title>Algoritma: K-Nearest Neighbors (KNN) - Riwayat revisi</title>
	<link rel="self" type="application/atom+xml" href="https://inibudi.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Algoritma%3A_K-Nearest_Neighbors_%28KNN%29"/>
	<link rel="alternate" type="text/html" href="https://inibudi.or.id/wiki/index.php?title=Algoritma:_K-Nearest_Neighbors_(KNN)&amp;action=history"/>
	<updated>2026-04-19T14:48:10Z</updated>
	<subtitle>Riwayat revisi halaman ini di wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://inibudi.or.id/wiki/index.php?title=Algoritma:_K-Nearest_Neighbors_(KNN)&amp;diff=22304&amp;oldid=prev</id>
		<title>Budi: ←Membuat halaman berisi &#039;&#039;&#039;&#039;K-Nearest Neighbors&#039;&#039;&#039; atau &#039;&#039;&#039;KNN&#039;&#039;&#039; merupakan salah satu algoritma dalam bidang pembelajaran mesin yang digunakan untuk klasifikasi dan regresi. Algoritma ini bekerja berdasarkan prinsip kemiripan atau kedekatan antara titik data baru dengan data yang sudah ada dalam dataset. KNN termasuk dalam kategori metode &#039;&#039;lazy learning&#039;&#039;, yang berarti algoritma ini tidak membangun model eksplisit selama proses pelatihan, tetapi memanfaatkan sel...&#039;</title>
		<link rel="alternate" type="text/html" href="https://inibudi.or.id/wiki/index.php?title=Algoritma:_K-Nearest_Neighbors_(KNN)&amp;diff=22304&amp;oldid=prev"/>
		<updated>2025-11-09T01:34:59Z</updated>

		<summary type="html">&lt;p&gt;←Membuat halaman berisi &amp;#039;&amp;#039;&amp;#039;&amp;#039;K-Nearest Neighbors&amp;#039;&amp;#039;&amp;#039; atau &amp;#039;&amp;#039;&amp;#039;KNN&amp;#039;&amp;#039;&amp;#039; merupakan salah satu &lt;a href=&quot;/wiki/index.php/Algoritma&quot; title=&quot;Algoritma&quot;&gt;algoritma&lt;/a&gt; dalam bidang &lt;a href=&quot;/wiki/index.php/Pembelajaran_mesin&quot; title=&quot;Pembelajaran mesin&quot;&gt;pembelajaran mesin&lt;/a&gt; yang digunakan untuk &lt;a href=&quot;/wiki/index.php?title=Klasifikasi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Klasifikasi (halaman belum tersedia)&quot;&gt;klasifikasi&lt;/a&gt; dan &lt;a href=&quot;/wiki/index.php/Regresi&quot; title=&quot;Regresi&quot;&gt;regresi&lt;/a&gt;. Algoritma ini bekerja berdasarkan prinsip kemiripan atau kedekatan antara titik data baru dengan data yang sudah ada dalam &lt;a href=&quot;/wiki/index.php?title=Dataset&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Dataset (halaman belum tersedia)&quot;&gt;dataset&lt;/a&gt;. KNN termasuk dalam kategori metode &amp;#039;&amp;#039;lazy learning&amp;#039;&amp;#039;, yang berarti algoritma ini tidak membangun &lt;a href=&quot;/wiki/index.php?title=Model&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Model (halaman belum tersedia)&quot;&gt;model&lt;/a&gt; eksplisit selama proses pelatihan, tetapi memanfaatkan sel...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Halaman baru&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;K-Nearest Neighbors&amp;#039;&amp;#039;&amp;#039; atau &amp;#039;&amp;#039;&amp;#039;KNN&amp;#039;&amp;#039;&amp;#039; merupakan salah satu [[algoritma]] dalam bidang [[pembelajaran mesin]] yang digunakan untuk [[klasifikasi]] dan [[regresi]]. Algoritma ini bekerja berdasarkan prinsip kemiripan atau kedekatan antara titik data baru dengan data yang sudah ada dalam [[dataset]]. KNN termasuk dalam kategori metode &amp;#039;&amp;#039;lazy learning&amp;#039;&amp;#039;, yang berarti algoritma ini tidak membangun [[model]] eksplisit selama proses pelatihan, tetapi memanfaatkan seluruh dataset pelatihan untuk melakukan prediksi. Konsep dasar KNN adalah mencari &amp;#039;&amp;#039;k&amp;#039;&amp;#039; tetangga terdekat dari data uji, lalu menentukan prediksi berdasarkan mayoritas label atau rata-rata nilai dari tetangga tersebut.&lt;br /&gt;
&lt;br /&gt;
== Konsep Dasar ==&lt;br /&gt;
KNN menggunakan ukuran jarak untuk menentukan kedekatan antara titik data. Salah satu ukuran jarak yang umum digunakan adalah [[jarak Euclidean]], yang didefinisikan sebagai:&lt;br /&gt;
&amp;lt;math&amp;gt;d(p,q) = \sqrt{\sum_{i=1}^{n} (p_i - q_i)^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
di mana &amp;#039;&amp;#039;p&amp;#039;&amp;#039; dan &amp;#039;&amp;#039;q&amp;#039;&amp;#039; adalah vektor atribut dari dua titik data, dan &amp;#039;&amp;#039;n&amp;#039;&amp;#039; adalah jumlah dimensi. Selain jarak Euclidean, terdapat juga jarak [[Manhattan]], jarak [[Minkowski]], dan jarak [[Hamming]] yang dapat digunakan sesuai jenis data dan kebutuhan.&lt;br /&gt;
&lt;br /&gt;
== Proses Klasifikasi ==&lt;br /&gt;
Proses klasifikasi KNN melibatkan langkah-langkah berikut:&lt;br /&gt;
# Menentukan nilai &amp;#039;&amp;#039;k&amp;#039;&amp;#039;, yaitu jumlah tetangga terdekat yang akan dipertimbangkan.&lt;br /&gt;
# Menghitung jarak antara data uji dan seluruh data latih dalam [[ruang vektor]].&lt;br /&gt;
# Mengurutkan data latih berdasarkan jarak terkecil.&lt;br /&gt;
# Memilih &amp;#039;&amp;#039;k&amp;#039;&amp;#039; tetangga terdekat.&lt;br /&gt;
# Menentukan kelas mayoritas dari &amp;#039;&amp;#039;k&amp;#039;&amp;#039; tetangga tersebut sebagai hasil prediksi.&lt;br /&gt;
&lt;br /&gt;
== Proses Regresi ==&lt;br /&gt;
Selain untuk klasifikasi, KNN juga dapat digunakan untuk [[regresi]]. Dalam kasus ini, hasil prediksi adalah rata-rata nilai dari &amp;#039;&amp;#039;k&amp;#039;&amp;#039; tetangga terdekat. Rumus rata-rata sederhana untuk regresi KNN adalah:&lt;br /&gt;
&amp;lt;math&amp;gt;\hat{y} = \frac{1}{k} \sum_{i=1}^{k} y_i&amp;lt;/math&amp;gt;&lt;br /&gt;
di mana &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; adalah nilai target dari tetangga ke-&amp;#039;&amp;#039;i&amp;#039;&amp;#039;. Regresi KNN sering digunakan pada data yang memiliki hubungan non-linear antara variabel input dan output.&lt;br /&gt;
&lt;br /&gt;
== Pemilihan Nilai k ==&lt;br /&gt;
Nilai &amp;#039;&amp;#039;k&amp;#039;&amp;#039; mempengaruhi kinerja algoritma KNN secara signifikan. Nilai &amp;#039;&amp;#039;k&amp;#039;&amp;#039; yang terlalu kecil dapat menyebabkan model sensitif terhadap [[noise]], sedangkan nilai &amp;#039;&amp;#039;k&amp;#039;&amp;#039; yang terlalu besar dapat mengaburkan perbedaan antar kelas. Pemilihan nilai &amp;#039;&amp;#039;k&amp;#039;&amp;#039; sering dilakukan melalui [[validasi silang]] untuk menemukan keseimbangan antara bias dan [[varians]].&lt;br /&gt;
&lt;br /&gt;
== Normalisasi dan Skala Data ==&lt;br /&gt;
Karena KNN menggunakan jarak sebagai ukuran kedekatan, perbedaan skala antar atribut dapat mempengaruhi hasil. Oleh karena itu, normalisasi atau [[standarisasi]] data sering dilakukan sebelum menerapkan algoritma KNN. Salah satu metode normalisasi adalah [[min-max scaling]], sedangkan standarisasi umumnya dilakukan dengan mengubah data sehingga memiliki [[mean]] 0 dan [[deviasi standar]] 1.&lt;br /&gt;
&lt;br /&gt;
== Kompleksitas dan Efisiensi ==&lt;br /&gt;
KNN memiliki kompleksitas waktu yang tinggi untuk prediksi karena setiap data uji harus dihitung jaraknya ke seluruh data latih. Kompleksitas waktu untuk prediksi adalah &amp;lt;math&amp;gt;O(n \cdot d)&amp;lt;/math&amp;gt;, di mana &amp;#039;&amp;#039;n&amp;#039;&amp;#039; adalah jumlah data latih dan &amp;#039;&amp;#039;d&amp;#039;&amp;#039; adalah jumlah dimensi. Untuk meningkatkan efisiensi, dapat digunakan struktur [[data]] seperti [[KD-Tree]] atau [[Ball Tree]].&lt;br /&gt;
&lt;br /&gt;
== Keunggulan ==&lt;br /&gt;
Algoritma KNN memiliki beberapa keunggulan:&lt;br /&gt;
# Sederhana dan mudah diimplementasikan.&lt;br /&gt;
# Dapat digunakan untuk klasifikasi maupun regresi.&lt;br /&gt;
# Tidak memerlukan asumsi distribusi data yang kompleks.&lt;br /&gt;
# Mampu menangani data dengan hubungan non-linear.&lt;br /&gt;
&lt;br /&gt;
== Kelemahan ==&lt;br /&gt;
Meskipun sederhana, KNN memiliki beberapa kelemahan:&lt;br /&gt;
# Memerlukan memori besar untuk menyimpan seluruh data latih.&lt;br /&gt;
# Waktu prediksi yang relatif lama pada dataset besar.&lt;br /&gt;
# Sensitif terhadap atribut yang memiliki skala berbeda.&lt;br /&gt;
# Rentan terhadap noise dan data yang tidak relevan.&lt;br /&gt;
&lt;br /&gt;
== Penerapan ==&lt;br /&gt;
KNN digunakan secara luas dalam berbagai bidang, seperti:&lt;br /&gt;
# [[Pengolahan citra]] untuk pengenalan objek.&lt;br /&gt;
# [[Sistem rekomendasi]] untuk memprediksi preferensi pengguna.&lt;br /&gt;
# [[Deteksi penipuan]] dalam transaksi [[perbankan]].&lt;br /&gt;
# [[Analisis genom]] dalam [[bioinformatika]].&lt;br /&gt;
&lt;br /&gt;
== Variasi dan Pengembangan ==&lt;br /&gt;
Terdapat beberapa variasi dari algoritma KNN, seperti [[Weighted KNN]] yang memberikan bobot pada tetangga berdasarkan jaraknya, dan [[Edited Nearest Neighbor]] yang menghapus data latih yang dianggap noise. Pengembangan lain termasuk penggunaan [[jarak Mahalanobis]] untuk mempertimbangkan kovariansi antar atribut.&lt;br /&gt;
&lt;br /&gt;
== Hubungan dengan Metode Lain ==&lt;br /&gt;
KNN sering dibandingkan dengan algoritma seperti [[Support Vector Machine]] dan [[Decision Tree]]. Berbeda dengan SVM yang mencari [[hyperplane]] optimal, KNN tidak melakukan proses pelatihan eksplisit dan hanya mengandalkan data yang ada. Dibandingkan dengan Decision Tree, KNN lebih fleksibel pada data non-linear namun kurang efisien pada data berukuran besar.&lt;br /&gt;
&lt;br /&gt;
== Kesimpulan ==&lt;br /&gt;
K-Nearest Neighbors adalah algoritma yang sederhana namun efektif untuk berbagai tugas pembelajaran mesin. Dengan pemilihan parameter yang tepat, normalisasi data, serta optimisasi struktur pencarian, KNN dapat memberikan hasil yang kompetitif dibandingkan metode lain. Namun, keterbatasan dalam efisiensi dan sensitivitas terhadap skala data harus diperhatikan dalam penerapannya.&lt;/div&gt;</summary>
		<author><name>Budi</name></author>
	</entry>
</feed>