<p><strong>Penggunaan Query Distinct &#8211; </strong>Pada tutorial mysql sebelumnya kita telah belajar tentang bagaimana <strong><a href="https://www.tutorialpedia.net/cara-membuat-database-mysql/" target="_blank" rel="noopener">Membuat Database MySQL</a>, </strong>dan juga menyimpan, mengubah dan menghapus pada database MySQL. Pada tutorial kali ini, kita akan membahas tentang bagaimana penggunaan <a href="https://www.w3schools.com/sql/sql_distinct.asp" target="_blank" rel="noopener">query distinct</a> pada mysql. Query ini digunakan untuk menghapus atau mengeleminasi duplikasi dari hasil tampilan <strong>SELECT</strong>. Sama seperti query <b>AS, ORDER BY,</b> dan <b>LIMIT</b>, query <b>DISTINCT</b> ini digunakan sebagai tambahan dari query utamanya, yakni <b>SELECT</b>.</p>
<div class="bacajuga">
<div class="titlebaca"><strong>Baca Juga:</strong></div>
<div class="contentbaca">
<ul>
<li><a href="https://www.tutorialpedia.net/cara-export-data-dari-mysql-ke-excel-dengan-php/">Cara Export Data Dari MySQL ke Excel dengan PHP</a></li>
<li><a href="https://www.tutorialpedia.net/membuat-database-baru-di-postgresql/">Membuat Database Baru di PostgreSQL</a></li>
<li><a href="https://www.tutorialpedia.net/perintah-mysql-yang-sering-digunakan/">Perintah MySQL yang Sering Digunakan Dalam Programming</a></li>
</ul>
</div>
</div>
<div class="partner-banner-aftc-baca-juga" style="text-align: center; margin-top: 30px;"></div>
<p>Mempersiapkan table sampel <strong>Daftar_dosen.</strong></p>
<pre class="lang:default decode:true">+------------+----------------+------------+-----------+ 
| NIP_dosen | nama_dosen | no_hp | alamat | 
+------------+----------------+------------+-----------+ 
| 0160436012 | Sabrina Sari | 0812349900 | Pekanbaru | 
| 0173551078 | Aria Sulistya | 0880743523 | Jakarta | 
| 0260432002 | Maya Ari Putri | 0812342342 | Palembang | 
| 0275430005 | Susi Indriani | 0812656532 | Bogor | 
| 0360432014 | Suci Syuhada | 0812341122 | Palembang | 
| 0480432066 | Tia Santrini | 0812451177 | Padang | 
| 0576431001 | M. Siddiq | 0812979005 | Jakarta | 
| 0770435006 | Rubin Hadi | 0812567678 | Papua | 
| 0785531001 | Siswanto | 0852878006 | Padang | 
| 0867221006 | Rudi Arwana | 0823987598 | Jakarta | 
| 0869437003 | Mustalifah | 0812338877 | Aceh | 
| 1080432007 | Arif Budiman | 0812456345 | Makasar | 
+------------+----------------+------------+-----------+</pre>
<p>Kalau anda ingin menggunakan table yang sama seperti yang saya gunakan anda bisa menginputnya secara manual atau menggunakan query <b>LOAD DATA INFILE</b> dibawah, untuk file txt dapat diperoleh dari sample data tabel <strong><a href="https://www.tutorialpedia.net/wp-content/uploads/daftar_dosen.txt" target="_blank" rel="noopener">daftar dosen</a>.</strong></p>
<pre class="lang:default decode:true " title="MySQL">mysql>; TRUNCATE daftar_dosen; 
Query OK, 0 rows affected (0.05 sec) 
mysql>; LOAD DATA INFILE 'D:\\MySQL\\daftar_dosen.txt' 
INTO TABLE daftar_dosen 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; 
Query OK, 12 rows affected (0.04 sec) 
Records: 12 Deleted: 0 Skipped: 0 Warnings: 0 
mysql>; SELECT * FROM daftar_dosen; 
+------------+----------------+------------+-----------+ 
| NIP_dosen | nama_dosen | no_hp | alamat | 
+------------+----------------+------------+-----------+ 
| 0160436012 | Sabrina Sari | 0812349900 | Pekanbaru | 
| 0173551078 | Aria Sulistya | 0880743523 | Jakarta | 
| 0260432002 | Maya Ari Putri | 0812342342 | Palembang | 
| 0275430005 | Susi Indriani | 0812656532 | Bogor | 
| 0360432014 | Suci Syuhada | 0812341122 | Palembang | 
| 0480432066 | Tia Santrini | 0812451177 | Padang | 
| 0576431001 | M. Siddiq | 0812979005 | Jakarta | 
| 0770435006 | Rubin Hadi | 0812567678 | Papua | 
| 0785531001 | Siswanto | 0852878006 | Padang | 
| 0867221006 | Rudi Arwana | 0823987598 | Jakarta | 
| 0869437003 | Mustalifah | 0812338877 | Aceh | 
| 1080432007 | Arif Budiman | 0812456345 | Makasar | 
+------------+----------------+------------+-----------+ 
12 rows in set (0.00 sec)</pre>
<h3>Cara Penggunaan Query Distinct Untuk Menghapus Duplikasi</h3>
<p>Menghapus duplikasi disini artinya query DISTINCT digunakan hanya untuk memanipulasi tampilan hasil dari tabel. Duplikasi yang dihapus adalah untuk tampilan data, bukan tabel asli dari MySQL.</p>
<p>Misal, apabila kita hanya ingin menampilkan seluruh kota pada table <strong>daftar_dosen.</strong></p>
<pre class="lang:default decode:true ">mysql>; SELECT alamat FROM daftar_dosen ORDER BY alamat; 
+-----------+ 
| alamat | 
+-----------+ 
| Aceh | 
| Bogor | 
| Jakarta | 
| Jakarta | 
| Jakarta | 
| Makasar | 
| Padang | 
| Padang | 
| Palembang | 
| Palembang | 
| Papua | 
| Pekanbaru | 
+-----------+ 
12 rows in set (0.00 sec)</pre>
<p>Saya menambahkan perintah ORDER BY agar tampilan lebih rapi dengan diurutkan berdasarkan alamat.</p>
<p>Pada hasil diatas kota yang ditampilkan terdapat duplikasi, hal ini dikarenakan ada beberapa dosen yang mempunyai alamat yang sama. Jika yang kita inginkan bahwa untuk setiap kota yang sama, hasil query harus muncul 1 kali saja, kita akan memerlukan perintah DISTINCT.</p>
<h3><strong>Cara Penulisan Query Distinct</strong></h3>
<p>Contoh penulisan query distinct:</p>
<pre class="lang:default decode:true ">SELECT DISTINCT nama_kolom FROM nama_tabel;</pre>
<ul>
<li>Nama_kolom adalah nama kolom yang akan ditampilkan.</li>
<li>Nama_tabel adalah nama tabel untuk kolom yang akan ditampilkan.</li>
</ul>
<p>Sehingga untuk contoh kasus diatas, maka kita akan menggunakan query distinct untuk menampilkan seluruh kota 1 kali saja. Contoh Querynya.</p>
<pre class="lang:default decode:true ">mysql>; SELECT DISTINCT alamat FROM daftar_dosen ORDER BY alamat; 
+-----------+ 
| alamat | 
+-----------+ 
| Aceh | 
| Bogor | 
| Jakarta | 
| Makasar | 
| Padang | 
| Palembang | 
| Papua | 
| Pekanbaru | 
+-----------+ 
8 rows in set (0.00 sec)</pre>
<p>Dengan penggunaan perintah distinct maka data yang sama hanya ditampilkan satu kali.</p>
<p>Namun jika kita menambahkan kolom nama_dosen seperti query berikut:</p>
<pre class="lang:default decode:true ">mysql>; SELECT DISTINCT nama_dosen,alamat FROM daftar_dosen 
ORDER BY alamat; 
+----------------+-----------+ 
| nama_dosen | alamat | 
+----------------+-----------+ 
| Mustalifah | Aceh | 
| Susi Indriani | Bogor | 
| Aria Sulistya | Jakarta | 
| M. Siddiq | Jakarta | 
| Rudi Arwana | Jakarta | 
| Arif Budiman | Makasar | 
| Siswanto | Padang | 
| Tia Santrini | Padang | 
| Maya Ari Putri | Palembang | 
| Suci Syuhada | Palembang | 
| Rubin Hadi | Papua | 
| Sabrina Sari | Pekanbaru | 
+----------------+-----------+ 
12 rows in set (0.06 sec)</pre>
<p>Terlihat bahwa MySQL tetap menampilkan seluruh isi tabel tanpa ada yang dibuang. Hal ini dikarenakan query DISTINCT hanya mengeleminasi query yang unik, atau tidak sama dilihat secara baris per baris (per record). Dengan mengkombinasikan nama_dosen dengan alamat, maka setiap baris dianggap unik, kecuali terdapat nama dosen dan alamat yang persis sama.</p>
<p>Itulah tutorial <strong>Penggunaan Query Distinct Pada MySQL</strong></p>

Penggunaan Query Distinct Pada MySQL
Recent Articles
Kumpulan DNS Gratis Tercepat!
DNS merupakan sebuah sistem yang bertugas menyimpan semua informasi data domain dalam jaringan. Dengan adanya DNS, domain atau hostname yang ada akan ditranslate dan...
Apa itu DNS ? Dan Fungsinya
Apa itu DNS? - DNS (Domain Name System) adalah sebuah sistem yang bertugas menyimpan semua informasi data domain dalam jaringan. Dengan adanya DNS, domain...
Apa itu OLT ? Serta Fungsinya Dalam Jaringan
Apa itu olt ? OLT (Optical Line Termination) adalah perangkat keras yang berfungsi sebagai titik akhir (end-point) dari layanan jaringan optik pasif (Passive Optical...
Template Voucher Untuk Mixradius
Template Voucher Untuk Mixradius - Pasti kalian bosen kan dengan template voucher default mixradius? tenang. kali ini saya akan memberikan template untuk voucher mixradius kamu agar...
Daftar Port Game Online Mikrotik Terbaru
Daftar port game online dibawah ini bisa digunakan untuk membuat rule agar koneksi ke game online tersebut bisa lancar, bisa juga untuk memisahkan antara...