Dapatkan 'Easy Gammu Installer' - Cara Mudah Install Gammu + Ebook Gammu
Ingin Punya Script SMS Gateway dengan PHP + MySQL?

Dapatkan segera phpSMS V3.0, software SMS Gateway multi fungsi berbasis web buatan saya sendiri untuk keperluan Anda.
[Info Lengkap...]

Mencari Duplikasi Data dengan SQL


June 26th, 2008 | by rosihanari | Cetak Artikel Ini Cetak Artikel Ini

Anda ingin mencari data yang berduplikasi dalam tabel dalam database yang Anda miliki? Dengan menggunakan statement SQL, Anda dapat mengetahui data yang berduplikasi dengan mudah dan cepat.

Bagaimana caranya? Simak artikel ini dengan baik.

Untuk pembahasan, akan diambil contoh tabel mahasiswa dengan struktur field berikut ini

NIM -> Varchar(10)
NamaMhs -> Varchar(20)

Pada struktur tabel di atas, memang seharusnya tidak boleh ada data pada field NIM yang berduplikasi. Repot… apabila ada dua atau lebih mahasiswa yang memiliki NIM yang sama.

Bagi programmer yang baik, tentunya akan membuat primary key pada field NIM untuk mencegah duplikasi data.  Namun bagaimana seandainya si programmer lupa untuk memberikan primary key pada NIM, padahal data mahasiswa sudah telanjur tersimpan dalam tabel? Jangan khawatir wahai programmer… ada cara untuk mencari data yang berduplikasi. Gunakan saja statement SQL.

Begini perintahnya:

SELECT nim, count(*) as jumlah FROM namatabel
GROUP BY nim ORDER BY jumlah DESC;

Perintah di atas akan menghitung jumlah data untuk setiap kelompok nim. Secara logika, suatu nim akan unik atau tunggal jika jumlah nimnya adalah 1. Sedangkan nim yang berduplikasi, apabila jumlah data pada nim tersebut adalah lebih dari 1.

Sebagai contoh, perhatikan data yang tersimpan dalam tabel di atas (sampel saja)  berikut ini:

NIM Nama Mhs
001 si A
002 si B
001 si C
003 si D
002 si E

Dari contoh record di atas, setelah diberikan perintah SQL yang telah saya berikan sebelumnya, akan dihasilkan

NIM jumlah
001 2
002 2
003 1

Dari hasil yang diperoleh tampak bahwa terdapat NIM 001 yang berduplikat (sejumlah 2 data) dan NIM 002 yang juga 2 data. Perintah ORDER BY jumlah digunakan untuk mengurutkan jumlah data tiap kelompok NIM mulai yang terbesar. Harapannya supaya data yang duplikat terletak di paling atas dalam tampilan, sehingga kita enak mencarinya.

Gimana.. mudah kan?

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)

Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?



Beberapa artikel terkait


Share this article on:

Kata kunci:


Ada 18 komentar dalam artikel ini.

  1. [...] Anda membaca artikel saya tentang mencari selisih waktu dan tanggal dengan SQL? Kalau belum, sebaiknya baca artikel tersebut terlebih dahulu karena artikel ini terkait dengan [...]

  2. eko says:

    kpd mas rosihan,
    sy mw tnya da ga fungsi minute atau waktu pada SQL

  3. rosihanari says:

    ada mas eko, gunakan perintah minute().
    Contoh:

    SELECT MINUTE(’10:05:03′);

    Perintah di atas akan menghasilkan ’5′ (menit ke-5)

  4. [...] artikel sebelumnya yang pernah saya tulis dalam topik Mencari Duplikasi Data dengan SQL, di situ sudah disinggung trik mencari data mana yang berduplikasi. Ya… yang namanya manusia, [...]

  5. Nico says:

    Salam buat P. Rosihan.
    Pak, saya mau tanya. bagaimana cara menampilkan data terbesar.
    Contoh kasusnya seperti dibawah ini.
    Tabel:
    idKary Nama Bagian Gaji
    1 A Admin 100
    2 B Admin 250
    3 D Admin 150
    4 C Sales 110
    hasil yang diharapkan dari tabel diatas:
    Nama Bagian Gaji
    B Admin 250
    C Sales 110
    Jadi intinya menampilkan gaji terbesar tiap bagian.
    saya sudah menggunakan script dibawah ini:
    SELECT * FROM bagian WHERE Bagian=’$Bagian’ GROUP BY Bagian ORDER BY Gaji DESC;

    tapi yang muncul malah gaji terkecil.
    Mohon bantuannya. terima kasih.

  6. rosihanari says:

    @nico: coba pakai query ini mas -> SELECT * FROM bagian WHERE gaji = (SELECT MAX(gaji) FROM bagian AS b WHERE b.bagian = bagian.bagian)

  7. Nico says:

    Terima kasih banyak atas bantuannya Pak.
    Salut buat Pak Rosihan. mau membantu kami dengan pencerahan-pencerahannya..
    Sukses selalu buat Pak Rosihan…

  8. rosihanari says:

    @nico: sama2 mas…

  9. tito says:

    mas.. gmn kalau ingin menapilkan hanya 1 data saja di data yang duplikat itu…

    contoh:
    id NIM IDDOSEN
    1 0523 545
    2 0523 856
    3 0524 555

    Saya ingin menampilkan semua, tapi jika ada yang duplikat hanya satu yang ditampilkan..
    hasil :
    NIM
    0523
    0524

    Thax be4…

  10. erik says:

    Mas, mau nanya tp di luar materi di atas.

    Web saya ga mau konek ke database server. pdhal tadinya bisa konek.
    muncul warning :
    Warning: mssql_connect() [function.mssql-connect]: message: Login failed for user ‘bsmi@2013′. Reason: Not associated with a trusted SQL Server connection. (severity 14)

    tp klo saya konek ke SQL server dgn SQL query analyzer mau login.

    kpn ya mas?
    mslhnya di SQL Server atau di Xammp-nya ya?

  11. rosihanari says:

    @erik: kemungkinan besar di mssql nya mas, feeling saya sih.. anda gak ubah apa2 di mssql nya?

  12. erik says:

    Saya ga ubah apa2 mas di SQL server-nya, coz itu server database t’sndiri… Saya ga pnya akses ngrubah settingan SQL Server…

  13. haris says:

    Mas Rosihan,

    untuk keperluan membuat chart, bagaimana cara saya memasukkan data hasil query.. dalam contoh diatas

    NIM jumlah
    001 2
    002 2
    003 1

    kedalam sebuah tabel dummies untuk dibaca program pembuat grafik chart?

    mohon bimbingannya

  14. rosihanari says:

    @haris: kenapa gak langsung pake saja data hasil query tsb mas, kan bisa tanpa harus pake tabel dummy?

  15. ibhel says:

    Salut Banget buat Rosihan Ari….
    Mas, gw mau tanya… gimana cara menampilkan data yg duplikasi… Misalnya sy membuat table dengan struktur sbb:
    ID Tujuan Nama_Kapal
    01 jakarta Lambelu
    02 jakarta Tilongkabila
    03 makassar sinabung
    Mau tanya gimana caranya untuk menampilkan lambelu dan tilongkabila krn sama” tujuan jakarta….. terima kasih Banyak
    Sukses selalu buat bapak yg sangat” membantu!!! ^_^

  16. ahmad says:

    mas.. gmn kalau ingin menapilkan hanya 1 data saja di data yang duplikat itu…

    contoh:
    id NIM IDDOSEN
    1 0523 545
    2 0523 856
    3 0524 555

    Saya ingin menampilkan semua, tapi jika ada yang duplikat hanya satu yang ditampilkan..
    hasil :
    NIM
    0523
    0524

    Thax be4…

  17. rosihanari says:

    @ahmad: gunakan GROUP BY mas, contoh SELECT nim FROM tabel GROUP BY nim

  18. teguh says:

    ass..
    mas,
    mu tanya..
    gimana cara menampilkan data dari pencarian pake combo box..??



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word