Algoritma Pembagian Kelas Dengan Memperhitungkan Sisa Data Menggunakan Java Netbeans (Final)
Pada
artikel kali ini berkaitan erat dengan artikel sebelumnya yaitu “Membuat pembagian kelas dengan memperhitungkan sisa data menggunakan tabel javanetbeans”. Dan seperti yang dijelaskan pada artikel sebelumnya, artikel ini
berisi mengenai pembuatan aplikasi yang akan menghitung pembagian kelas dengan
memperhitungkan sisa dari hasil pembagian.
Misalnya terdapat 93 murid,
sedangkan per-kelas rata-rata menampung sebanyak 30 murid. Maka akan
dihasilkan 3 buah kelas dengan sisa murid sebanyak 3 orang. Aplikasi
ini secara otomatis akan menambahkan sisa murid tersebut kedalam beberapa kelas
yang tersedia. Jadi akan tercipta sebuah
kelas yang masing-masing memiliki 31 murid per-kelas.
Lalu bagaimana
jika jumlah murid terdapat 94 orang? Maka akan tercatat 32, 31, dan
31 dalam masing-masing kelas. Namun permasalahan yang ada apabila sisa
murid terdapat 29 orang, maka akan terbagi menjadi 40, 40 dan 39.
Bukankah lebih efektif bila menambah sebuah kelas yang baru? (agar sistem
belajar juga tidak terganggu? Hehe) Jadi akan ada 4 kelas dengan
masing-masing kelas berisi 30,30,30 dan 29 (murid). Berdasarkan hal ini aplikasi dibuat dengan menggunakan sistem algoritma tersebut. Bila ada
jumlah sisa 20 orang atau lebih, makan akan dibuat sebuah kelas baru.
Okey, mungkin
sobat Dettline ada yang sudah tidak sabar untuk melihatnya bagaimana caranya?!
Langsung saja, Dettline akan mencoba untuk membahasnya secara detail.
Pertama-tama, silakan sobat Dettline membuat sebuah project.
Lalu buat tampilan
tabel seperti berikut.
Tampilan
tersebut terdapat 2 textfield, textfield (kotak berwarna merah) diberi nama
variabel “siswa”,
lalu texfield (kotak berwarna biru) bernama “kelas”,
sedangkan tombol proses (kotak berwarna hijau) diberi nama “proses” dan terakhir adalah pemberian nama
variabel tabel (kotak berwarna coklat) dengan nama “tabel”. Tabel tersebut tidak perlu di-edit, karena kita akan melakukan edit table melalui source code.
Langkah ke dua yaitu merubah struktur tabel secara manual melalui source.
Masuk ke dalam source lalu scroll ke bagian paling atas. Sisipkan kode seperti tampilan dibawah ini.
Pada tampilan diatas, beberapa kode disisipkan pada baris ke 8, 15 dan baris ke 21 sampai 23.
Ket : bila ada garis merah atau error pada tulisan
DefaultTableModel, sobat dapat tekan ALT+ENTER dengan keadaan kursor terletak
pada tulisan tersebut. Hal itu dapat disebabkan karena salah penulisan “import javax.swing.table.DefaultTableModel;”
atau “import
javax.swing.table.DefaultTableModel;” belum dicatat diatas.
Struktur kode diatas adalah membuat variabel baru atas
nama “bebas”, lalu membuat 2 buah
kolom dengan judul ”Banyak Kelas” dan
“Murid Dalam 1 Kelas”, lalu kode
tersebut diterapkan ke dalam table yang sebelumnya diberi nama variabel “tabel”.
Masuk Ke Dalam Source Tombol Proses
Setelah itu semua dilakukan, silakan sobat masuk kedalam source kode pada tombol proses, dapat juga dilakukan melalui cara seperti dibawah ini.
int a=Integer.parseInt(kelas.getText());
int
b=Integer.parseInt(siswa.getText());
int c=b/a;
int d=b%a;
int []
data=new int[c];
int j=0;
for(int
i=0; i<d; i++)
{
if(j>=c)
{
j=0;
data[j]=data[j]+1;
j++;
} else
{
data[j]=data[j]+1;
j++;
}
}
bebas.setRowCount(0);
if(d>=20)
{
int[]dataf=new int[c+1];
for(int
i=0; i<c+1; i++)
{
dataf[i]=0;
dataf[c]=d;
String kels="TI-";
String tampil=String.valueOf(i+1);
String hasil=kels+tampil;
if(i==c)
{
Object[]info={hasil,dataf[i]};
bebas.addRow(info);
}
else
{
Object[]info={hasil,a+dataf[i]};
bebas.addRow(info);
}
}
} else
{
for(int
i=0; i<c; i++)
{
String kels="TI-";
String tampil=String.valueOf(i+1);
String hasil=kels+tampil;
Object[]info={hasil,a+data[i]};
bebas.addRow(info);
}
}Finish!
Nah, sampai disini sobat dapat menjalankan program sobat.
Lihat hasilnya dan TAA DAAA!!
Lihat hasilnya dan TAA DAAA!!
Berjalan sesuai rencana bukan?
Dari algoritma diatas dapat diketahui, variabel “int a” merupakan konversi
integer dari variabel “kelas”
dan variabel “int b” adalah
konversi integer dari variabel “siswa”.
Lalu variabel “c” dan “d” masing-masing memiliki fungsi
sebagai hasil bagi bilangan bulat (tanpa koma) dan hasil modulus (sisa bagi)
dari variabel “b” dan “a”.
Sedangkan “int
data” merupakan wadah array untuk menampung jumlah sisa pembagian.
Contoh: bila kelas terbentuk sebanyak 3 kelas, sedangkan sisa murid sebanyak 4
orang. Maka array dari variabel “data”
tersebut akan mengolah sisanya melalui looping for yang ada dibawahnya dengan
cara:
(+1 untuk array0)
(+1 untuk array1)
(+1 untuk array2)
Nah sampai sini variabel “j” memiliki peran penting untuk kembali ke array awal bila array
telah melampaui jumlah kelas. Sehingga akan kembali ke array0.
(+1 untuk array0)
Hasilnya
Array0=2
Array1=1
Array2=1
Jadi, nantinya array tersebut akan dijumlah dengan “int a”.
Misal “int a” berisi
nilai 30. Otomatis akan tersusun sebanyak 3 kelas dengan masing-masing memiliki
murid 32,31,31 (per-kelas).
Ket : looping for yang digunakan paling awal, berfungsi
untuk menyiapkan sisa untuk dijumlahkan menggunakan array yang akan berlaku
untuk menjumlahnya dengan variabel “kelas”
atau dapat juga disebut sebagai variabel “int a”
Lalu fungsi if(d>=20)
digunakan untuk membuat kelas baru dengan ketentuan bila sisa murid yang dimiliki lebih besar atau sama dengan 20, maka
akan dibuat kelas yang baru. (jadi, sobat bebas menentukan disini, besarnya
nilai sisa yang menentukan untuk membuat kelas baru)
Dalam koding tersebut dapat dilihat bahwa array kali ini
sudah ditambah dengan angka 1.
int []dataf=new int[c+1];
Jelas bahwa array yang digunakan akan ada tambahan 1
kelas yg baru.
Bila keadaan true maka perhitungan sisa yang ada
dalam looping atau for diatas akan
diabaikan, namun bila keadaan false maka looping atau for diatas akan digunakan.
Masing masing for yang ada didalam if dan else digunakan untuk menginput data dan akan ditampilkan
kedalam tabel.
YAPS, mungkin penjelasan dari Dettline mengenai algoritma
diatas seperti ini. Bila ada kekurangan atau hal yang sobat kurang pahami atau
keterangan yang kurang jelas, sobat Dettline boleh berkomentar atau langsung
hubungi akun Admin Dettline.
Semoga artikel ini dapat menjadi solusi tepat bagi sobat
Dettline!
Untuk penjelasan langkah-langkah pembuatan secara
langsung, sobat dapat melihat video yang ada dibawah ini.
0 komentar