Categories
Pengumuman

SQL Tips: Pembagian Kelompok KKN

Pembagian kelompok Kuliah Kerja Nyata (KKN) seringkali menjadi tantangan tersendiri bagi admin perguruan tinggi, terutama saat harus mengelola data mahasiswa dalam jumlah besar. Dengan memanfaatkan kekuatan SQL, dalam artikel ini menggunakan MySQL, proses ini dapat dilakukan secara efisien dan terstruktur. Pada artikel ini, kami akan membagikan tips praktis dan query SQL yang bisa membantu kamu mengelompokkan mahasiswa KKN secara otomatis, adil, dan fleksibel sesuai kriteria yang ditentukan.

Daftar Isi

Pembagian Kelompok KKN

Pembagian kelompok KKN sering membuat pusing, apalagi kalau mahasiswa yang mengikuti program tersebut sangat banyak . Tapi dengan beberapa trik sederhana SQL, semuanya bisa jadi lebih mudah, otomatis, dan teratur sesuai kriteria yang diinginkan.

— SQL Tips: Pembagian Kelompok KKN
https://bptsi.unisayogya.ac.id/sql-tips-pembagian-kelompok-kkn/ 2025-06-02 14:33:41

Lembaga Penelitian dan Pengabdian kepada Masyarakat sering menghadapi tantangan besar saat harus mengelola pembagian kelompok KKN. Proses pengacakan kelompok yang seimbang bukan hanya soal membagi jumlah mahasiswa secara rata, tetapi juga mempertimbangkan berbagai faktor seperti latar belakang jurusan, jenis kelamin, dan pencegahan kelompok program studi. Jika dilakukan secara manual, risiko ketidakseimbangan dan ketidakadilan dalam pembagian kelompok pun semakin tinggi.

Selain itu, volume data yang besar dan beragam membuat pengelolaan kelompok menjadi lebih kompleks. Data mahasiswa yang terus bertambah dan berubah harus diolah dengan cepat dan tepat agar pembagian kelompok tetap akurat. Tanpa sistem yang terotomasi dan algoritma yang efektif, lembaga ini sering kali harus menghabiskan banyak waktu dan sumber daya hanya untuk memastikan setiap kelompok mendapatkan komposisi yang ideal dan sesuai aturan yang berlaku.

Penyelesaian Masalah

Proses pembentukan kelompok KKN dimulai dengan pengurutan data, di mana seluruh data mahasiswa disusun berdasarkan kriteria tertentu agar pembagian menjadi lebih terstruktur. Setelah itu, dilakukan pelabelan kelompok, yaitu memberi tanda atau nomor pada setiap mahasiswa sesuai kelompoknya agar mudah diidentifikasi. Terakhir, tahap penyajian data memastikan hasil pembagian kelompok tersaji dengan jelas dan rapi, sehingga dapat langsung digunakan oleh pihak terkait.

Langkah 1: Pengurutan Data

Data diurutkan berdasarkan spesifikasi tertentu, misalnya diurutkan berdasarkan jenis kelamin dan nama program studi

#tabel_data
select idregistrasi, nim, namalengkap, jeniskelamin, namaprodi from registrasi_kkn kr join mahasiswa m on m.nim=kr.nim join person p on p.idperson=m.idperson join prodi ps on ps.idprodi=m.idprodi where idperioderegistrasi=3 order by jeniskelamin, namaprodi

Contoh hasil dalam tabel

NIMJKProgram Studi
1003LA
1005LA
2001LB
2006LB
3002LC
1001PA
1002PA
1004PA
1006PA
1007PA
2002PB
2003PB
2004PB
2005PB
2007PB
3001PC
3003PC
urut 1urut 2
Contoh pengurutan data berdasarkan jenis kelamin dan program studi

Langkah 2: Pelabelan Kelompok

Baris pertama diberi label kelompok 1, baris kedua diberi label kelompok 2, …, jika sudah mencapai jumlah kelompok, maka baris berikutnya diberi label kelompok mulai dari 1 lagi

#tabel_pembagiankelompok
select *, if(@counter_=@jmlkelompok_, @counter_ := 1, @counter_ := @counter_+1) AS kelompok from tabel_data

Contoh hasil dalam tabel

NIMJKProgram StudiKelompok
1003LA1
1005LA2
2001LB3
2006LB1
3002LC2
1001PA3
1002PA1
1004PA2
1006PA3
1007PA1
2002PB2
2003PB3
2004PB1
2005PB2
2007PB3
3001PC1
3003PC2
Contoh pelabelan kelompok

Langkah 3: Penyajian Data

Data diurutkan berdasarkan kelompok dan NIM

select idregistrasi, nim, namalengkap, jeniskelamin, namaprodi, kelompok from tabel_pembagiankelompok order by kelompok, nim

Versi Pengurutan Data

1.1. Urutan Acak Mahasiswa di Dalam Program Studi

Urutan acak mahasiswa di dalam program studi berarti mengacak posisi atau NIM secara random namun tetap dilakukan secara terpisah untuk setiap program studi atau jurusan. NIM dalam satu program studi tidak disusun sesuai urutan presensi. Tujuannya agar pembagian kelompok KKN lebih adil dan merata.

Pengacakan urutan mahasiswa di dalam program studi dapat dilakukan dengan memberikan nilai acak menggunakan fungsi RAND() pada SQL. Fungsi ini menghasilkan angka desimal acak antara 0 dan 1 untuk setiap baris data. Dengan menggabungkan ORDER BY RAND() dalam query yang telah difilter berdasarkan program studi, sistem akan mengurutkan mahasiswa secara acak namun tetap dalam ruang lingkup program studi masing-masing.

#tabel_data
select idregistrasi, nim, namalengkap, jeniskelamin, namaprodi, rand() as rands from registrasi_kkn kr join mahasiswa m on m.nim=kr.nim join person p on p.idperson=m.idperson join prodi ps on ps.idprodi=m.idprodi where idperioderegistrasi=3 order by jeniskelamin, namaprodi, rands

Contoh hasil dalam tabel

NIMJKRandsProgram Studi
1005L0.133064A
1003L0.726198A
2001L0.399401B
2006L0.408283B
3002L0.392394C
1002P0.079107A
1007P0.333695A
1006P0.376642A
1004P0.394879A
1001P0.888713A
2004P0.455081B
2007P0.643330B
2002P0.675387B
2005P0.811695B
2003P0.976927B
3003P0.255790C
3001P0.474213C
urut 1urut 3urut 2
Contoh pengurutan data berdasarkan jenis kelamin, program studi, dan rands

1.2. Urutan Acak Program Studi

Untuk menghasilkan pengacakan yang lebih tidak berpola dan menghindari pola tertentu berdasarkan jenis kelamin atau program studi, salah satu pendekatan yang lebih kuat adalah dengan menggabungkan data jenis kelamin dan program studi dengan satu nilai yang dihasilkan dari fungsi RAND(), lalu menghasilkan nilai hash dari kombinasi tersebut.

Dalam praktik SQL, ini dapat dilakukan dengan menggabungkan kolom seperti jeniskelamin, idprodi, dan satu nilai acak dari RAND(), lalu menggunakan fungsi hash seperti MD5() atau SHA1() untuk menghasilkan nilai unik yang acak. Hasil hash ini kemudian digunakan dalam perintah ORDER BY, sehingga urutan mahasiswa menjadi lebih sulit ditebak dan benar-benar tersebar secara merata tanpa mengikuti pola tertentu berdasarkan atribut data.

Teknik ini sangat berguna dalam konteks pembagian kelompok KKN agar setiap kelompok berisi kombinasi mahasiswa yang benar-benar acak namun tetap terkendali.

#tabel_data
set @randprodi_  = rand();
select idregistrasi, nim, namalengkap, jeniskelamin, namaprodi, rand() as rands from registrasi_kkn kr join mahasiswa m on m.nim=kr.nim join person p on p.idperson=m.idperson join prodi ps on ps.idprodi=m.idprodi where idperioderegistrasi=@idperiode_ order by jeniskelamin, md5(concat(jeniskelamin, @randprodi_, namaprodi)), rands

Contoh hasil dalam tabel

NIMJKRandsProgram Studi
3002L0.39239456d296c67df0a2aa2e221a25a89b52eb
1005L0.133064c3288a83b53f3b7ff2809910c90f0383
1003L0.726198c3288a83b53f3b7ff2809910c90f0383
2001L0.399401cc6d11030826a5ce7ae9e5d7893c9162
2006L0.408283cc6d11030826a5ce7ae9e5d7893c9162
3003P0.25579029a5d343589e368479a0cfc29687b90e
3001P0.47421329a5d343589e368479a0cfc29687b90e
2004P0.4550812fcddc32db23a67fc35b5d3454ce0400
2007P0.6433302fcddc32db23a67fc35b5d3454ce0400
2002P0.6753872fcddc32db23a67fc35b5d3454ce0400
2005P0.8116952fcddc32db23a67fc35b5d3454ce0400
2003P0.9769272fcddc32db23a67fc35b5d3454ce0400
1002P0.0791078fd3c7583f07f2b3ec9cdd6e8312fadc
1007P0.3336958fd3c7583f07f2b3ec9cdd6e8312fadc
1006P0.3766428fd3c7583f07f2b3ec9cdd6e8312fadc
1004P0.3948798fd3c7583f07f2b3ec9cdd6e8312fadc
1001P0.8887138fd3c7583f07f2b3ec9cdd6e8312fadc
urut 1urut 3urut 2
Contoh pengurutan data berdasarkan jenis kelamin, hash program studi, dan rands

dimana:

JKProgram SudiStringmd5
LCL0.951014C56d296c67df0a2aa2e221a25a89b52eb
LAL0.951014Ac3288a83b53f3b7ff2809910c90f0383
LBL0.951014Bcc6d11030826a5ce7ae9e5d7893c9162
PCP0.951014C29a5d343589e368479a0cfc29687b90e
PBP0.951014B2fcddc32db23a67fc35b5d3454ce0400
PAP0.951014A8fd3c7583f07f2b3ec9cdd6e8312fadc
Contoh hash program studi

Hasil Akhir

Sebagai penutup, pendekatan pengacakan data mahasiswa untuk pembagian kelompok KKN tidak hanya bertujuan agar proses pembagian menjadi efisien, tetapi juga untuk memastikan keadilan dan keberagaman dalam setiap kelompok. Dengan memanfaatkan SQL secara cerdas—termasuk penggunaan fungsi acak, hash, dan penyusunan berdasarkan program studi maupun jenis kelamin—proses ini dapat diotomatisasi dengan hasil yang lebih objektif dan tidak berpola.

Berikut adalah contoh query lengkap yang dapat digunakan untuk menghasilkan urutan acak mahasiswa berdasarkan kombinasi program studi dan jenis kelamin dengan pendekatan hash:

set @idperiode_  = 1;
set @jmlkelompok = 80;
set @counter_    = 0;
set @randprodi_  = rand();

select idregistrasi, nim, namalengkap, jeniskelamin, namaprodi, kelompok from 

(select *, if(@counter_=80, @counter_ := 1, @counter_ := @counter_+1) AS kelompok from 

(select idregistrasi, nim, namalengkap, jeniskelamin, namaprodi, rand() as rands from registrasi_kkn kr join mahasiswa m on m.nim=kr.nim join person p on p.idperson=m.idperson join prodi ps on ps.idprodi=m.idprodi where idperioderegistrasi=@idperiode_ order by jeniskelamin, md5(concat(jeniskelamin, @randprodi_, namaprodi)), rands
) data

) pembagiankelompok

order by kelompok, nim;

Dengan query ini, setiap eksekusi akan menghasilkan urutan yang berbeda-beda, namun tetap mempertimbangkan atribut penting seperti jenis kelamin dan program studi untuk menjaga distribusi yang adil.

Demikian, semoga bermanfaat. [bst]

By basit

Biro Pengembangan Teknologi Dan Sistem Informasi

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.