"T-SQL SELECT DML"

Nama    : Rangga Hazirathul Qudsiah

NPM    : 24781052

Kelas    : Manajemen Informatika 4B 

Pendahuluan

Bahasa SQL memiliki peran penting dalam pengolahan data pada database, khususnya dalam proses pengambilan dan analisis data. Salah satu perintah yang paling sering digunakan adalah SELECT, yang termasuk dalam kategori Data Manipulation Language (DML).

Topik yang dibahas dalam tulisan ini adalah penggunaan perintah SELECT beserta berbagai klausa pendukungnya, seperti DISTINCT, WHERE, ORDER BY, GROUP BY, HAVING, dan LIKE. Setiap klausa memiliki fungsi khusus yang membantu dalam menampilkan data secara lebih spesifik, terstruktur, dan informatif.

Pembahasan

·       DISTINCT Satu Kolom (mahasiswa)

Query yang diuji menggunakan klausa SELECT DISTINCT pada kolom JENJANG di tabel MAHASISWA. Tujuan pengujian ini adalah untuk mengidentifikasi kategori jenjang pendidikan apa saja yang tersedia pada data mahasiswa tanpa ada duplikasi. Hasil output menampilkan 2 baris data dengan 1 kolom, yaitu 'D3' dan 'D4'. Tidak ditemukan kendala dalam eksekusi ini karena kolom jenjang sudah terisi pada tahap input data awal.

·       DISTINCT Dua Kolom (mahasiswa)

Query yang dijalankan melibatkan klausa ALTER TABLE ADD, UPDATE SET, dan SELECT DISTINCT. Tujuannya adalah menambah kolom baru kd_prodi, melakukan sinkronisasi data dari kolom idprodi, serta memverifikasi hasilnya berdasarkan tahun masuk. Hasil output menunjukkan 5 baris dan 2 kolom (thn_masuk, kd_prodi), yang memverifikasi bahwa seluruh mahasiswa angkatan 2017 tersebar di kode prodi 1 hingga 5.

·      DISTINCT pada Tabel Dosen

Query menggunakan klausa SELECT DISTINCT pada kolom kd_prodi di tabel dosen. Tujuan pengujian adalah memastikan keberadaan data prodi pada tabel dosen setelah proses penambahan kolom dan pembaruan data dilakukan. Output menghasilkan 5 baris dengan 1 kolom (kd_prodi), memverifikasi bahwa setiap prodi (1-5) sudah memiliki keterwakilan data dosen di dalamnya.

WHERE Kondisi Tunggal

Query menggunakan klausa SELECT * dengan filter WHERE thn_masuk = 2023. Pengujian ini bertujuan untuk mencari data mahasiswa angkatan terbaru (2023). Hasil output menampilkan 0 baris (kosong) namun struktur kolom tetap muncul, hal ini memverifikasi bahwa dalam database saat ini tidak ada mahasiswa yang terdaftar pada tahun masuk tersebut.

WHERE dengan AND

Query menggunakan klausa SELECT * dengan filter kondisi ganda WHERE jenjang = 'D4' AND status_akadmik = 'Aktif'. Tujuannya adalah menyaring spesifik mahasiswa jenjang D4 yang masih berstatus aktif. Output menghasilkan 4 baris data lengkap dengan semua kolom, yang menunjukkan bahwa revisi pengisian kolom status_akademik melalui proses JOIN telah berhasil dilakukan.

WHERE dengan OR

Query menggunakan klausa SELECT * dengan klausa WHERE yang mengandung operator logika OR untuk kolom kd_prodi. Pengujian bertujuan menampilkan mahasiswa yang berasal dari prodi 'D4TI' atau 'D4MB'. Hasil output menampilkan 2 baris data, hal ini merupakan hasil verifikasi setelah dilakukan revisi tipe data kolom kd_prodi dari INT menjadi VARCHAR untuk menampung kode berupa string.

ORDER BY ASC

Query menggunakan klausa SELECT * diikuti ORDER BY thn_masuk ASC. Pengujian bertujuan untuk menampilkan seluruh data mahasiswa dengan urutan tahun masuk dari yang paling lama ke yang terbaru. Output menampilkan 10 baris data secara lengkap; karena semua data memiliki tahun masuk yang sama (2017), maka urutan data secara otomatis mengikuti urutan Primary Key atau urutan input.

ORDER BY DESC

Query menggunakan klausa SELECT * diikuti ORDER BY nama DESC. Tujuan pengujian adalah mengurutkan daftar mahasiswa berdasarkan alfabet nama secara menurun (Z ke A). Hasil output menampilkan 10 baris data dengan posisi teratas dimulai oleh nama 'Santi' dan diakhiri oleh 'Agus', menunjukkan fungsi pengurutan string berjalan dengan benar.

ORDER BY Multi-Kolom

Query menggunakan klausa SELECT * dengan pengurutan bertingkat ORDER BY jenjang ASC, thn_masuk DESC. Tujuan pengujian adalah mengelompokkan mahasiswa berdasarkan jenjang terlebih dahulu, kemudian di dalam jenjang yang sama diurutkan berdasarkan tahun masuk terbaru. Output menampilkan 10 baris data yang tersusun rapi mulai dari kelompok jenjang D3 hingga D4, memudahkan proses verifikasi distribusi mahasiswa per jenjang.

GROUP BY dengan COUNT

Query yang diuji menggunakan klausa SELECT dengan fungsi agregat COUNT(*) dan klausa GROUP BY kd_prodi. Tujuan pengujian ini adalah untuk menghitung jumlah mahasiswa yang terdaftar di setiap kode program studi guna melihat distribusi sebaran mahasiswa. Hasil output menampilkan 7 baris data dengan 2 kolom (kd_prodi dan jumlah_mahasiswa), yang mengonfirmasi adanya variasi jumlah mahasiswa mulai dari 1 hingga 2 orang per prodi, termasuk kode prodi baru hasil revisi seperti 'D4MB' dan 'D4TI'.

GROUP BY dengan HAVING

Query menggunakan klausa SELECT, GROUP BY, dan klausa filter agregat HAVING COUNT(*) > 2. Tujuan pengujian adalah untuk menyaring dan menampilkan hanya kode prodi yang memiliki jumlah mahasiswa lebih dari 2 orang. Hasil output menampilkan 0 baris (kosong) hanya berupa header kolom, yang memberikan verifikasi bahwa saat ini belum ada satu pun program studi di database yang memiliki lebih dari 2 mahasiswa.

GROUP BY Multi-Kolom

Query dijalankan dengan klausa SELECT menggunakan fungsi COUNT(*) yang dikelompokkan melalui klausa GROUP BY jenjang, status_akademik. Tujuan pengujian adalah melakukan agregasi ganda untuk melihat jumlah mahasiswa aktif berdasarkan tiap jenjang pendidikan. Hasil output menampilkan 2 baris data yang menunjukkan terdapat 6 mahasiswa aktif di jenjang D3 dan 4 mahasiswa aktif di jenjang D4, sehingga total data tetap konsisten sebanyak 10 mahasiswa.

LIKE Awalan (Prefix %)

Query menggunakan klausa SELECT * dengan klausa WHERE dan operator LIKE 'B%' pada kolom tempat_lhr. Tujuan pengujian adalah mencari data mahasiswa yang lahir di daerah dengan awalan huruf 'B'. Hasil output menampilkan 2 baris data (Riana dari Bandung dan Budi dari Bengkulu) dengan total kolom lengkap, yang memverifikasi bahwa fungsi wildcard persen (%) bekerja efektif untuk mencari pola di awal kata.

LIKE Mengandung (%...%)

Query diuji menggunakan klausa SELECT * dengan operator logika OR dan LIKE '%Putra%' atau '%Putri%' pada kolom nama. Tujuan pengujian adalah untuk memverifikasi apakah ada mahasiswa yang memiliki unsur nama tersebut di posisi mana pun. Hasil output menunjukkan 0 baris, yang mengonfirmasi bahwa dalam data 10 mahasiswa yang ada, tidak terdapat nama yang mengandung kata 'Putra' maupun 'Putri'

LIKE Pola Underscore (_)

Query menggunakan klausa SELECT * dengan operator LIKE '177_____' (menggunakan 5 karakter underscore) pada kolom npm. Tujuan pengujian adalah memfilter mahasiswa yang memiliki format NPM dengan awalan '177' dan diikuti oleh tepat lima karakter apa pun di belakangnya. Hasil output menampilkan seluruh 10 baris data mahasiswa, yang membuktikan bahwa seluruh NPM mahasiswa saat ini memenuhi standar format 8 digit dengan awalan tersebut.

Tugas Mandiri 1 – Semua Data Mahasiswa

Query yang digunakan adalah SELECT * FROM mahasiswa tanpa klausa filter tambahan. Tujuan pengujian adalah untuk melakukan verifikasi hasil akhir terhadap seluruh struktur tabel MAHASISWA setelah melalui berbagai tahap modifikasi (seperti penambahan kolom jenjang, kd_prodi, dan status_akademik). Hasil output menampilkan 10 baris data dengan 11 kolom yang telah terisi lengkap, menunjukkan bahwa database telah berada pada kondisi yang konsisten dan siap digunakan.

Tugas Mandiri 2 – Semua Data Dosen

Query menggunakan klausa SELECT * pada tabel dosen. Tujuan pengujian adalah melakukan pengecekan akhir terhadap data dosen untuk memastikan kolom kd_prodi yang ditambahkan sebelumnya telah terisi dengan benar. Hasil output menampilkan 5 baris data dosen dengan informasi gelar, prodi, dan pendidikan yang sudah lengkap, memverifikasi bahwa tabel dosen telah tersinkronisasi dengan baik sesuai relasi yang diharapkan.

Tugas Mandiri 3 – Mahasiswa Jenjang D3

Query terakhir menggunakan klausa SELECT * dengan filter WHERE jenjang = 'D3'. Tujuan pengujian ini adalah sebagai verifikasi akhir untuk memisahkan data mahasiswa berdasarkan kelompok jenjang tertentu setelah seluruh proses update data selesai. Hasil output menampilkan 6 baris data mahasiswa jenjang D3 secara akurat, yang menandakan bahwa proses klasifikasi data dalam database akademik ini telah berhasil dilakukan secara menyeluruh.

Tugas Mandiri 4 – Dosen Jenjang D3

Query yang diuji melibatkan klausa ALTER TABLE ADD, UPDATE SET, dan filter WHERE jenjang = 'D3' pada tabel DOSEN. Tujuan pengujian ini adalah untuk menambahkan atribut jenjang pada data dosen dan menyeragamkan seluruh isinya menjadi 'D3' sebagai bagian dari validasi struktur data dosen yang baru. Hasil output menampilkan 5 baris data dosen dengan tambahan kolom jenjang yang semuanya berisi nilai 'D3', yang memberikan verifikasi bahwa proses modifikasi skema dan pembaruan massal pada tabel dosen telah berhasil dijalankan tanpa kendala.

Tugas Mandiri 5 – Kota Lahir Unik Mahasiswa

Query menggunakan klausa SELECT DISTINCT pada kolom tempat_lhr di tabel mahasiswa. Tujuan pengujian adalah untuk menginventarisasi daftar kota asal mahasiswa tanpa ada duplikasi nama kota. Hasil output menampilkan 8 baris data kota yang berbeda (Bandung, Bengkulu, Jakarta, Kalianda, Kotabumi, Mesuji, Metro, Natar), yang memverifikasi sebaran geografis mahasiswa dalam database tersebut.

Tugas Mandiri 6 – Mahasiswa Aktif Diurutkan Nama

Query diuji menggunakan klausa SELECT * dengan filter WHERE status_akademik = 'Aktif' dan pengurutan ORDER BY nama ASC. Tujuan pengujian ini adalah untuk menghasilkan daftar mahasiswa aktif yang tersusun rapi berdasarkan urutan alfabet nama. Hasil output menampilkan 10 baris data yang terurut mulai dari 'Agus' hingga 'Santi', memberikan verifikasi bahwa seluruh mahasiswa saat ini memiliki status akademik aktif dan fungsi pengurutan string bekerja secara akurat.

Tugas Mandiri 7 – Jumlah Mahasiswa per Prodi

Query menggunakan fungsi agregat COUNT(*) dengan klausa GROUP BY kd_prodi. Tujuan pengujian adalah menghitung kembali densitas atau jumlah mahasiswa per kode program studi setelah adanya revisi kode prodi sebelumnya. Hasil output menampilkan 7 kelompok baris data, di mana terlihat sebaran yang seimbang antara prodi berkode angka (1-5) dan prodi berkode teks ('D4MB', 'D4TI') dengan rata-rata 1 sampai 2 mahasiswa per kelompok.

Tugas Mandiri 8 – Mahasiswa Nama Mengandung 'a'

Query menggunakan klausa SELECT * dengan operator LIKE '%a%' pada kolom nama. Tujuan pengujian adalah untuk menyaring dan menampilkan mahasiswa yang memiliki karakter huruf 'a' di dalam namanya (baik di awal, tengah, maupun akhir). Hasil output menampilkan 6 baris data mahasiswa (Ria, Agus, Maya, Santi, Hardi, Riana), yang memverifikasi efektivitas penggunaan wildcard persen untuk pencarian parsial pada data teks.

Tugas Mandiri 9 – Dosen Pendidikan S2 atau S3

Query yang diuji menggunakan klausa SELECT * dengan filter logika OR pada kolom baru jenjang_pend untuk nilai 'S2' atau 'S3'. Tujuan pengujian adalah mengidentifikasi dosen yang memiliki kualifikasi pendidikan pascasarjana. Hasil output menampilkan 4 baris data dosen (Subarjo, Wendi, Heni, Hendro) yang memenuhi kriteria tersebut, memberikan verifikasi bahwa kolom kualifikasi pendidikan dosen telah terisi dan dapat difilter dengan benar.

Tugas Mandiri 10 – Prodi dengan Lebih dari 2 Mahasiswa

Query terakhir menggunakan agregasi COUNT(*) dan klausa HAVING COUNT(*) > 2 pada pengelompokan kd_prodi. Tujuan pengujian ini adalah sebagai verifikasi akhir untuk mencari prodi yang memiliki jumlah mahasiswa di atas ambang batas tertentu (dalam hal ini lebih dari dua). Hasil output menunjukkan 0 baris (kosong), yang mengonfirmasi validitas data terakhir bahwa saat ini tidak ada prodi yang memiliki mahasiswa melebihi kapasitas dua orang, sehingga sebaran data dianggap masih sangat terbatas.

Kesimpulan

Penggunaan perintah SELECT dalam T-SQL merupakan bagian penting dalam pengolahan data pada database. Melalui berbagai pengujian yang telah dilakukan, dapat disimpulkan bahwa setiap klausa dalam SELECT memiliki fungsi yang berbeda namun saling melengkapi dalam menampilkan data secara efektif.

Klausa DISTINCT digunakan untuk menghilangkan duplikasi data, sedangkan WHERE dengan operator AND dan OR berfungsi untuk menyaring data sesuai kondisi tertentu. Selain itu, ORDER BY membantu dalam mengurutkan data, sehingga lebih mudah dibaca dan dianalisis.

Penggunaan GROUP BY dan fungsi agregat seperti COUNT memungkinkan proses pengelompokan dan perhitungan data secara terstruktur. Klausa HAVING digunakan untuk menyaring hasil dari pengelompokan tersebut. Sementara itu, LIKE dengan wildcard (%) dan (_) mempermudah pencarian data berdasarkan pola tertentu.

Secara keseluruhan, seluruh proses pengolahan data yang dilakukan menunjukkan bahwa data dalam database telah tersusun dengan baik dan dapat diolah sesuai kebutuhan. Pemahaman terhadap perintah SELECT dan klausa pendukungnya sangat membantu dalam melakukan analisis data secara lebih cepat, tepat, dan efisien.

Daftar Pustaka

Microsoft. SQL Server Documentation – SELECT (Transact-SQL).https://learn.microsoft.com

W3Schools. SQL SELECT Statement.https://www.w3schools.com/sql

Silberschatz, A., Korth, H. F., & Sudarshan, S. (2019). Database System Concepts. McGraw-Hill.

Materi Praktikum Pemrograman SQL II. 


Komentar

Postingan populer dari blog ini