Friday 18 November 2016

Membuat Pembagian Kelas Dengan Memperhitungkan Sisa Data Menggunakan Tabel Java Netbeans

Algoritma Untuk Membuat Pembagian Tabel Dengan Memperhitungkan Sisa Data Menggunakan Java Netbeans

Yosh! Kali ini Dettline akan membagikan tutorial pemrograman yang berkaitan dengan tabel pada aplikasi Netbeans. Yaitu tentang bagaimana caranya agar pembagian kelas atau kelompok dibuat secara akurat dengan memperhitungkan nilai sisa dari pembagian masing-masing kelas. Mungkin bila dibaca secara sekilas sobat Dettline masih ada yang bingung? Oke akan segera dijelaskan.

Misal, ada sebuah SMK yang-mana salah satu jurusannya ada yang memiliki 90 murid. Sedangkan masing-masing ruang kelas rata-rata hanya menampung sebanyak 30 murid. Kira-kira dari 90 murid dapat dipecah menjadi berapa kelas?
...
That's Right! Jawabannya dapat dipecah menjadi 3 kelas. Lalu bagaimana bila murid yang ada sebanyak 92 murid? Apakah perlu dibuat kelas baru? Jika jawabannya iya, maka siswa yang mengisi ruang baru tersebut hanya berjumlah 2 orang saja? Tentu hal ini tidak efektif. Lalu bagaimana solusinya? Yaitu, dengan menambahkan 2 ruangan dengan 1 murid. Jadi masing-masing kelas ada yang menerima murid sebanyak 31, 31 dan 30. Tentu cara seperti ini jauh lebih efektif. Kurang lebih program yang akan Dettline bahas pada saat ini mengenai hal tersebut.

Ini merupakan artikel ke 2 mengenai Netbeans! Sebelumnya kurang dari 24 jam yang lalu Dettline baru saja membahas mengenai "Pembuatan validasi alert kolom yang kosong menggunakan java netbeans", semoga artikel-artikel yang Dettline sajikan dapat membatu Sobat Dettline semuanya.

Dettline
Hasil Tujuan

Oke langsung saja, seperti ini caranya :

Buat Package Baru Dengan Nama "tabeldata"

Untuk pemberian nama package ini Dettline hanya memberikan rekomondasi saja, namun bila sobat ingin memberi nama lain ataupun membuka project lama sobat tidak maslah, yang terpenting sobat paham tata letak dan source kodenya. Selanjutnya untuk JFrame, Dettline memberi nama tabelutama.


Buat Tampilan Seperti Dibawah Ini

dettline

Untuk Textfiel berwara merah beri nama variabel "siswa", lalu textfield berwana biru "kelas", selanjutnya ada tombol proses beri nama "proses" dan yang terakhir yaitu tabel, beri nama "tabel". (Untuk susunan tabel tidak perlu ada yang diotak-atik, kita akan mengubahnya melalui source).

*Kedua kolom siswa dan kelas merupakan sebuah kolom yang wajib diinput menggunakan angka. Bila sobat penasaran, Dettline telah merilis artikel lanjutan mengenai source kode agar kolom hanya dapat diinput menggunakan angka


Masuk Ke Dalam Source Code

Lihat kode paling atas, lalu sisipkan kode berikut di dalam kode public class tabelutama extends javax.swing.JFrame.

DefaultTableModel bebas=new DefaultTableModel();

Untuk source DefaultTableModel, biasanya akan tampil sebuah peringatan errors, untuk mengatasinya dapat sobat arahkan kursor kedalam bagian DefaultTableModel lalu klik alt+enter. Gunanya untuk menambah package kedalam file. Karena DefaultTableModel tidak akan berjalan tanpa adanya package seperti ini. (Atau sobat dapat mengetiknya secara manual).

dettline


Setelah itu cari kode yang bertuliskan initComponents();
Ketik kode berikut ini dibawah tulisan tersebut.


bebas.addColumn("Banyak Kelas");

bebas.addColumn("Murid Dalam 1 Kelas");

tabel.setModel(bebas);

Fungsi bebas tersebut adalah untuk memberi inisial atau variabel baru yang berkaitan sebagai perwakilan variabel tabel. Sedangkan addcolumn untuk menambah jumlah kolom dan diberi nama sesuai tulisan yang ada didalam kurung. Berdasarkan source code diatas, sobat akan memiliki 2 buah kolom dengan masing-masing nama Banyak Murid dan Murid Dalam 1 Kelas.

Proses Terakhir Yaitu Masuk Ke Dalam Source Button "Proses"

Dettline


Sobat dapat klik 2x tombol tersebut atau dengan cara klik kanan tombol proses lalu pilih events > action > actionPerformed. Bila sudah silahkan masukan kode berikut didalamnya.

        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++;
            }
        }
        
        for(int i=0; i<c; i++)
        {
            Object [] info={i+1, a+data[i]};
            bebas.addRow(info);
        }

Penjelasan singkatnya seperti ini:
int a dan b mengambil data yang ada pada kolom siswa dan kelas. Setelah itu int c menghitung hasil pembagian antara siswa dan kelas. Masalahnya adalah pembagian tersebut sifatnya bilangan bulat, sehingga sisa angka yang ada akan diabaikan. Maka dari itu sobat memerlukan variabel tambahan yaitu int d, array data[], dan int j. Masing-masing memiliki peranan yang penting.

Setelah itu looping sebanyak data yang ada pada sisa modulus (%) pembagian atau sebanyak nilai yang ada pada variabel "d". Lalu dicek apakah "j" nilainya lebih besar dari "c" atau jumlah kelas? Bila iya, maka "j" akan di-reset dari awal. Gunanya agar array yang dipakai tidak berlebihan! Cukup mengulang array sebanyak jumlah kelas yang dibutuhkan.

Intinya for atau looping yang pertama itu gunanya untuk menghitung sisa pembagian yang tidak bisa dihitung oleh variabel "c". Nah, sedangkan for yang kedua atau terakhir, adalah for untuk menampilkan data! Dan menjumlah data atau sisa tambahan siswa kedalam masing-masing kelas.

Hasil akhir dapat sobat Dettline cek sendiri, namun kurang lebihnya seperti ini.

Dettline


Dettline


Alright! Keren kan? Untuk lebih jelasnya, dapat sobat liat video di akhir baris artikel ini. Bagi sobat yang penasaran mengenai postingan selanjutnya, mampir terus ya di situs ini! Semoga saja admin juga bisa konsisten hehe ..
Okey, bila ada yang kurang jelas maupun bagian yang belum sobat paham. Sobat boleh tulis pada kolom komentar dibawah atau hubungi contact langsung admin Dettline. Terimakasih atas kunjungan sobat!

~ Release
Versi final! => Pembagian kelas yang memiliki sistem pembuatan kelas baru, (bila jumlah sisa yang dimiliki memenuhi syarat dengan jumlah yang ditentukan). Misalnya sobat telah tentukan, bila sisa terdapat 10 orang atau lebih, maka program secara otomatis akan membuat kelas yang baru.
+ Dilengkapi fitur hapus data lama, sehingga data yang ditampilkan tidak tertumpuk oleh data yang lama.



Tambahan! Tutorial Melalui Youtube DettlineTube



Load disqus comments

11 komentar