Showing posts with label Netbeans. Show all posts
Showing posts with label Netbeans. Show all posts

Tuesday, 13 December 2016

Membuat Pembagian Kelas Dengan Memperhitungkan Sisa Data Menggunakan Tabel Java Netbeans (Final)

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.




Masukkan kode berikut didalam fungsi tombol tersebut.


          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!!

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.



Read more

Saturday, 19 November 2016

Membuat Kolom Inputan Wajib Diisi Menggunakan Nomor/Angka (Java Netbeans)

Membuat Kolom Textfield Hanya Dapat Diinput Menggunakan Angka Atau Nomor Dalam Java Netbeans

Dettline
Selamat datang sobat Dettline! Kali ini tidak terasa secara 3x berturut turut dalam waktu yang berdekatan, Dettline telah berhasil memposting 3 artikel dan 2 video dalam akun youtube yang membahas fokus mengenai Java Netbeans. Pada pertemuan kali ini Dettline akan membahas mengenai source yang sederhana namun begitu penting rasanya untuk diterapkan dalam situasi yang tepat! Tema kali ini adalah pembahasan tentang "bagaimana caranya agar membuat kolom input/textfield tidak dapat di-input menggunakan karakter selain nomor atau-pun angka".

Langsung saja, seperti biasa. Siapkan sebuah JFrame lalu sisipkan sebuah kolom atau textfield yang akan diberi fungsi untuk dapat di-input bila karakter yang diketik adalah nomor dan angka. Misal, tampilan Dettline seperti ini. Maka kolom yang hanya dapat di-input dengan karakter nomor dan angka adalah kolom input nilai.

Dettline

Untuk kolom input nilai, Dettline memberi nama variabel "inputN", lalu kolom output diberi nama "outputN" (Jangan lupa pada kolom outputN, ceklist editable pada properties di-uncheck agar kolom sama sekali tidak dapat di-input atau di-edit). Sedangkan variabel tombol proses masih menggunakan nama variabel default, dikarnakan nama variabel pada sebuah tombol dalam tutorial kali ini tidak berperan penting.

Bila langkah pemberian nama variabel sudah dilakukan, sobat dapat lanjut kelangkah berikutnya, yaitu memberikan source pada kolom inputN. Letakkan sebuah kode kedalam kolom inputN, dengan cara klik kanan pada kolom lalu pilih Events > Key > KeyTyped. (Atau perhatikan gambar berikut)

Dettline


Setelah sobat masuk kedalam source KeyTyped, sobat dapat memasukkan kode berikut, fungsinya untuk membatasi inputan karakter hanya dapat di-input menggunakan nomor dan angka.

        char enter=evt.getKeyChar();

        if(!(Character.isDigit(enter)))

        {

            evt.consume();
        }

Selanjutnya kembali menuju design, lalu kali ini pilih tombol proses dan masukkan kode didalamnya dengan cara klik 2x tombol tersebut atau klik kanan pada tombol, pilih Events > Action > ActionPerformed. Masukkan kode berikut:


        int hasil=Integer.parseInt(inputN.getText());

        String tampil=String.valueOf(hasil);

        outputN.setText(tampil);



Setelah semua langkah diatas selesai sobat lakukan tanpa adanya masalah. Maka dapat dinyatakan sobat telah berhasil membuatnya. Sekarang tinggal hanya sobat buktikan dengan cara menjalankan program tersebut. klik ctrl+shift+f5. Lalu ketikkan sebuah karakter pada kolom inputN, saksikanlah apa yang akan terjadi?! Mantab bukan?! Selamat, sobat berhasil melakukannya. Semoga tutorial ini dapat membantu sobat untuk mengisi kebutuhan project sobat. Trimakasih atas kunjungannya, jangan lupa untuk datang lagi. Hehe ..

Salam dari Detective Online!


Tambahan! Untuk mengikuti tutorial ini, sobat Dettline juga dapat melihat tutorial melalui video DettlineTube dibawah ini.




Read more

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



Read more

Thursday, 17 November 2016

Membuat Validasi Alert Kolom Kosong (Java Netbeans)

Membuat Kolom Validasi/Alert Dengan Netbeans (Java)

Membuat Kolom Validasi/Alert 
Lama Tidak Berjumpa Sobat! Saat ini Dettline membuat menu baru yaitu Netbeans. Menu ini akan berisi mengenai source-source yang berkaitan dengan pemrograman "Java". Untuk awalan Dettline memberikan tutor mengenai "Kolom Validasi Atau Alert". Fungsinya adalah memberikan pemberitahuan bila ada syarat-syarat dalam program yang belum terpenuhi.
Langkah awal sobat boleh membuat sebuah package baru atau silahkan sobat buka file netbeans yang pernah sobat buat! Yang terpenting ada tombol button di dalam project sobat. Karena dalam tutor kali ini, penggunaan validasi atau alert akan disisipkan kedalam source button.

Nah, tampilan project dalam tutor Dettline kali ini adalah seperti ini.


Dettline


Pada tampilan diatas, beri nama pada texfield berwana merah dengan nama "nama", lalu textfield berwana biru dengan nama "nim", setelah itu beri nama pada textfield hijau dengan nama "kelas". Selanjutnya ada 3 kolom lagi yang perlu diberikan nama variabel. Ke 3 kolom ini berfungsi sebagai kolom yang akan menampilkan data bila data berhasil diproses. Kolom berwana hitam beri nama "hasilnama", lalu kolom ungu "hasilnim", dan kolom kuning "hasilkelas".

*Untuk NIM sudah pasti karakter yang harus dimasukkan adalah angka, bagaimana caranya agar memang hanya angka yang dapat diinput pada kolom tersebut. Caranya dapat sobat lihat disini > Membuat Kolom Hanya Dapat Diinput Menggunakan Nomer Dan Angka

Terakhir adalah pemberian nama terhadap button Simpan dengan nama "proses". Bila sudah diberi nama variabel masing-masing, sobat bisa klik kanan pada button simpan lalu pilih events > action > actionPerformed.
(Atau lihat gambar dibawah)


Dettline

(Klik gambar untuk perbesar, dan tekan esc untuk menutup gambar)


Setelah itu masukkan kode berikut:
if(nama.getText().equals("")||nim.getText().equals("")||kelas.getText().equals(""))
{
JOptionPane.showMessageDialog(null, "Masukkan data dengan benar !","Kesalahan", JOptionPane.ERROR_MESSAGE);
    return;
} else
{
hasilnim.setText(nim.getText());
hasilnama.setText(nama.getText());
hasilkelas.setText(kelas.getText());
}


Bila terjadi kesalahan pada JOptionPane Sobat bisa tekan alt+enter pada tulisan tersebut. Lalu pilih "add import javax.swing.JOptionPane". Gunanya untuk memanggil package javax.swing. JOptionPane tidak bisa berjalan tanpa adanya package tersebut.

Atau sobat Dettline dapat menulisnya secara manual di baris awal pada source project.
Dettline

Selesai sampai disini, sobat dapat menjalankan programnya dan lihat bagaimana hasilnya. "Saat kolom ada yang tidak di isi, maka program tidak akan memproses data". Jangan lupa untuk 3 kolom paling bawah fungsi editablenya dimatikan agar data tidak dapat diubah secara manual.

Sekian dari Dettline, Terimakasih telah berkunjung. Semoga tutorial ini dapat membantu permasalahan sobat saat ini.
Read more