Lanjutan (Advance) dari tutorial / artikel tentang Cara Membuat Bilangan Random / Acak Di JAVA Netbeans [Java Dasar Console] yaitu kita akan membuat sebuah aplikasi sederhana untuk membuat team generator menggunakan JFrame (Java GUI), jadi bukan hanya text saja isinya tetapi ada tampilanya, disini membutuhkan pengimplementasian random ini, tetapi dalam aplikasi yang akan kita buat tidak menggunakan kode instance dari Class Random, karena Random ini menghasilkan angka digit yang acak sesuai keinginan.
Jadi dalam aplikasi team generator ini cukup menggunakan sebuah collection dari java.util yang hanya membutuhkan sebuah argument List<?> list yang artinya difungsikan untuk acak apa saja yang ada dalam list tersebut baik itu berbentuk object atau hanya list biasa, jadi tentu lebih mudah menggunakannya.
Cara penggunaanya dengan menyimpan semua data nama-nama yang akan dibuatkan team group generator ke dalam list tersebut kemudian panggil collection.shuffle dan masukan parameternya list tadi yang sudah diisikan nama nama nya, lalu sudah di acak nama-nama list nya tidak sama urutannya pada sebelum di shuffle.
Dalam tutorial kali ini saya akan menshare program aplikasi ini sekaligus memberikan penjelasan pada source code yang terdapat pada aplikasi ini, jadi simak baik baik.
Saya harap anda sudah tau cara membuat projek baru dinetbeans ...
Buat project baru di netbeans (tanpa centang main class) -> jangan lupa untuk menambahkan packagenya dalam project -> klik kanan pada packagenya -> new -> pilih JFrame Form.
Jadi hanya 1 file jframe saja, untuk struktur projeknya seperti ini
Taruh kode diatas setelah code
Sehingga kode nya akan jadi seperti dibawah ini (abaikan nama package dan class, sesuaikan dengan yg anda buat)
Deklarasikan variabel global yang dibutuhkan yaitu disini deklarasi dataNama berupa ArrayList untuk menyimpan data nama-nama nya yang telah disimpan
Sehingga kodenya akan seperti ini :
Selanjutnya membuat function / method untuk acak list nya. Taruh kodenya dibawah contructor saja atau dibawahnya kode ini
Lainnya function /method jmlSatuGrup() untuk meng setting jumlah dalam 1 team / group itu ada berapa orang. Taruh kode nya dibawah function diatas saja tepatnya setelah kurung tutup kurawal.
Selanjutnya membuat function / method addNama() yaitu untuk menambahkan nama-nama yang telah diinputkan dalam textfield ke dalam sebuah list tadi yang sudah dideklarasikan yaitu dataNama, taruh kodenya dibawah function diatas tepatnya setelah kurung tutup kurawal
Kemudian membuat function / method pembagianGrup() yaitu method untuk membagi group nya sesuai jumlah dari 1 group / team.
Anda bisa ke tab design > klik kanan pada button "Tambahkan" > Events > Action > actionPerformed > kemudian akan diarahkan ke source code nya, nah disini pemanggilan function addNama(); letakan di situ saja
Masukan kode berikut
Lainnya pun sama seperti itu, yaitu pada textfiel untuk input nama nama nya. Klik kanan pada textfield "txtf_nama" > Events > Action > actionPerformed
Masukan kode berikut
Klik kanan pada button "Atur" > Events > Action > actionPerformed
Masukan kode berikut
Klik kanan pada textfield "txtf_jmlSatuGrup" > Events > Action > actionPerformed
Masukan kode berikut
Klik kanan pada button "Buat!" > Events > Action > actionPerformed
Masukan kode berikut
Klik kanan pada button "Hapus Data Nama" > Events > Action > actionPerformed
Masukan kode berikut
Klik kanan pada button "Hapus Hasil" > Events > Action > actionPerformed
Masukan kode berikut
Silahkan run aplikasinya hasilnya seperti berikut
Mudah bukan ? atau kesulitan ? jangan sungkan sungkan untuk komentar dibawah mengenai tutorial membuat aplikasi antrian ini, dari aplikasi dekstop team generator (pembuat group) ini kode nya pun tidak banyak simple, jadi untuk anda yang ingin mendonload aplikasi nya bisa lihat di github saya
tag:
bahasa pemrograman java
membuat aplikasi dekstop dengan java
contoh aplikasi berbasis java
contoh aplikasi java
contoh program java dan penjelasannya
download contoh program netbeans
contoh program java sederhana berbasis gui
kumpulan project java netbeans
kumpulan program java sederhana
aplikasi team generator java netbeans
contoh program collection pada java
program gui java netbeans
contoh program java netbenas tanpa database
Jadi dalam aplikasi team generator ini cukup menggunakan sebuah collection dari java.util yang hanya membutuhkan sebuah argument List<?> list yang artinya difungsikan untuk acak apa saja yang ada dalam list tersebut baik itu berbentuk object atau hanya list biasa, jadi tentu lebih mudah menggunakannya.
Cara penggunaanya dengan menyimpan semua data nama-nama yang akan dibuatkan team group generator ke dalam list tersebut kemudian panggil collection.shuffle dan masukan parameternya list tadi yang sudah diisikan nama nama nya, lalu sudah di acak nama-nama list nya tidak sama urutannya pada sebelum di shuffle.
Dalam tutorial kali ini saya akan menshare program aplikasi ini sekaligus memberikan penjelasan pada source code yang terdapat pada aplikasi ini, jadi simak baik baik.
Saya harap anda sudah tau cara membuat projek baru dinetbeans ...
Buat project baru di netbeans (tanpa centang main class) -> jangan lupa untuk menambahkan packagenya dalam project -> klik kanan pada packagenya -> new -> pilih JFrame Form.
Jadi hanya 1 file jframe saja, untuk struktur projeknya seperti ini
Desain Jframe Aplikasi Team Generator Java GUI
Tahap pertama silahkan membuat desain nya terlebih dahulu pada tab design, bisa disesuaikan designnya, contoh punya saya desainya seperti dibawah ini
Kemudian ubah variabel dari tiap tiap komponent yang ada pada jframe nya, untuk menggantinya klik kanan pada salah satu komponen lalu change variabel name, variabel name inilah yang akan digunakan untuk setting komponen yang ada di jframe pada code program java
Lalu untuk nama variabel bisa disesuaikan atau seperti contoh punya saya yaitu sebagai berikut bisa diamati gif nya dibawah
Code Program Aplikasi Team Generator Java GUI
Tahap kedua lets coding, silahkan pilih tab source. Tambahkan library dibawah ini
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.JOptionPane;
Taruh kode diatas setelah code
package namaPackageAnda;
Sehingga kode nya akan jadi seperti dibawah ini (abaikan nama package dan class, sesuaikan dengan yg anda buat)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package random;
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.JOptionPane;
/**
*
* @author ISMYNR
*/
public class randomName extends javax.swing.JFrame {
Deklarasikan variabel global yang dibutuhkan yaitu disini deklarasi dataNama berupa ArrayList untuk menyimpan data nama-nama nya yang telah disimpan
ArrayList<String> dataNama = new ArrayList<>();
Sehingga kodenya akan seperti ini :
public class randomName extends javax.swing.JFrame {
ArrayList<String> dataNama = new ArrayList<>();
/**
* Creates new form randomName
*/
public randomName() {
initComponents();
}
Selanjutnya membuat function / method untuk acak list nya. Taruh kodenya dibawah contructor saja atau dibawahnya kode ini
public randomName() {
lebih tepatnya di bawah tutup kurung kurawal public void acak(){
Collections.shuffle(dataNama); //acak yang ada dalam list dataNama
}
Lainnya function /method jmlSatuGrup() untuk meng setting jumlah dalam 1 team / group itu ada berapa orang. Taruh kode nya dibawah function diatas saja tepatnya setelah kurung tutup kurawal.
public void jmlSatuGrup(){
String ambilJml = txtf_jmlSatuGrup.getText(); //ambil teks dalam textfieldnya
if(txtf_jmlSatuGrup.getText().equals("")){ //masukan nama2 nya dulu sebelum setting jumlah dalam 1 team/group
JOptionPane.showMessageDialog(this, "Masukan jumlah orang dalam grup !");
}else{
lb_jmlSatuGroup.setText(ambilJml); // setting jumlah nya dalam label agar mudah untuk diambil / getText()
txtf_jmlSatuGrup.setText("");
}
}
Selanjutnya membuat function / method addNama() yaitu untuk menambahkan nama-nama yang telah diinputkan dalam textfield ke dalam sebuah list tadi yang sudah dideklarasikan yaitu dataNama, taruh kodenya dibawah function diatas tepatnya setelah kurung tutup kurawal
public void addNama(){
String nama = txtf_nama.getText(); //ambil teks dalam textfield nya
if("".equals(nama)){
JOptionPane.showMessageDialog(this, "Masukan nama !");
}else{
dataNama.add(nama); // tambah nama ke dalam list
txta_dataNama.setText(""); //kosongkan textarea dataNama yg sebelah kanan
dataNama.stream().forEach((a) -> { // tampilkan semua dataNama dalam textarea dataNama yg sebelah kanan
txta_dataNama.append(a + "n");
});
txtf_nama.setText("");
lb_jmlDataNama.setText((dataNama.size()) + ""); // setting jumlah (count) semua dataNama dalam label
}
}
Kemudian membuat function / method pembagianGrup() yaitu method untuk membagi group nya sesuai jumlah dari 1 group / team.
public void pembagianGrup(){
ArrayList<String> dataBagiBaru = new ArrayList<>(); //deklarasikan list baru yang menampung nama dengan jumlah sesuai jumlah satu team/group
int no = 1; //deklarasi untuk nomor group atau team nya
String ambilJml = lb_jmlSatuGroup.getText(); //ambil text jumlah group dalam label lb_jmlSatuGroup
lb_jmlSatuGroup.setText(ambilJml);
txta_hasil.append(no + "). "); //tulis nomor di textarea sesuai urut
for (int i = 0; i < dataNama.size(); i++) {
dataBagiBaru.add(dataNama.get(i)); // copy isi list dataNama ke dataBagiBaru
txta_hasil.append(dataNama.get(i) + " - "); //tulis dataNama di textarea
if(ambilJml.equals("")){ //jika jumlah dalam 1 group itu belum di inputkan
JOptionPane.showMessageDialog(this, "Masukan berapa orang dalam satu grup !");
}else{
if(dataBagiBaru.size() > Integer.valueOf(ambilJml)-1){ // jika jumlah isi list dataBagiBaru melebihi jumlah satu team/group -1
no++; // nomer nya ditambah
txta_hasil.append("\n"); // tambahkan enter/baris baru pada textarea
dataBagiBaru.removeAll(dataBagiBaru); // haus semua isi list dataBagiBaru
txta_hasil.append(no + "). "); // tulis nomor baru yang sudah ditambahkan tadi di no++ di textarea
}
// selanjutnya diulang2 terus prosesnya sampai list dalam dataNama sudah di tulis/print semua di textarea
}
}
Sehingga kode lengkap nya akan seperti berikut/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package random;
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.JOptionPane;
/**
*
* @author ISMYNR
*/
public class randomName extends javax.swing.JFrame {
ArrayList<String> dataNama = new ArrayList<>();
/**
* Creates new form randomName
*/
public randomName() {
initComponents();
}
public void acak(){
Collections.shuffle(dataNama);
}
public void jmlSatuGrup(){
String ambilJml = txtf_jmlSatuGrup.getText();
if(txtf_jmlSatuGrup.getText().equals("")){
JOptionPane.showMessageDialog(this, "Masukan jumlah orang dalam grup !");
}else{
lb_jmlSatuGroup.setText(ambilJml);
txtf_jmlSatuGrup.setText("");
}
}
public void addNama(){
String nama = txtf_nama.getText();
if("".equals(nama)){
JOptionPane.showMessageDialog(this, "Masukan nama !");
}else{
dataNama.add(nama);
txta_dataNama.setText("");
dataNama.stream().forEach((a) -> {
txta_dataNama.append(a + "\n");
});
txtf_nama.setText("");
lb_jmlDataNama.setText((dataNama.size()) + "");
}
}
public void pembagianGrup(){
ArrayList<String> dataBagiBaru = new ArrayList<>();
int no = 1;
String ambilJml = lb_jmlSatuGroup.getText();
lb_jmlSatuGroup.setText(ambilJml);
txta_hasil.append(no + "). ");
for (int i = 0; i < dataNama.size(); i++) {
dataBagiBaru.add(dataNama.get(i));
txta_hasil.append(dataNama.get(i) + " - ");
if(ambilJml.equals("")){
JOptionPane.showMessageDialog(this, "Masukan berapa orang dalam satu grup !");
}else{
if(dataBagiBaru.size() > Integer.valueOf(ambilJml)-1){
no++;
txta_hasil.append("\n");
dataBagiBaru.removeAll(dataBagiBaru);
txta_hasil.append(no + "). ");
}
}
}
}
Action Performed Button dan TextField Aplikasi Team Generator
Untuk action dari tiap tiap button terdapat 5 button yang ditambahkan, serta text input yaitu textfield 2 (digunakan agar ketika klik enter pada textfieldnya actionnya sama seperti button)Anda bisa ke tab design > klik kanan pada button "Tambahkan" > Events > Action > actionPerformed > kemudian akan diarahkan ke source code nya, nah disini pemanggilan function addNama(); letakan di situ saja
Masukan kode berikut
addNama();
Lainnya pun sama seperti itu, yaitu pada textfiel untuk input nama nama nya. Klik kanan pada textfield "txtf_nama" > Events > Action > actionPerformed
Masukan kode berikut
addNama(); //untuk oprasi enter langsung addnama()
Klik kanan pada button "Atur" > Events > Action > actionPerformed
Masukan kode berikut
jmlSatuGrup();
Klik kanan pada textfield "txtf_jmlSatuGrup" > Events > Action > actionPerformed
Masukan kode berikut
jmlSatuGrup();
Klik kanan pada button "Buat!" > Events > Action > actionPerformed
Masukan kode berikut
if(lb_jmlDataNama.getText().equals("Kosong") || lb_jmlSatuGroup.getText().equals("Kosong")){
JOptionPane.showMessageDialog(this, "Masukan data nama dan jumlah nama dalam satu grup !");
}else{
txta_hasil.setText("");
acak();
pembagianGrup();
}
Klik kanan pada button "Hapus Data Nama" > Events > Action > actionPerformed
Masukan kode berikut
txta_dataNama.setText("");
dataNama.removeAll(dataNama);
lb_jmlDataNama.setText("Kosong");
lb_jmlSatuGroup.setText("Kosong");
Klik kanan pada button "Hapus Hasil" > Events > Action > actionPerformed
Masukan kode berikut
if(txta_hasil.getText().isEmpty()){
JOptionPane.showMessageDialog(this, "Belum ada hasil group, Tidak bisa dihapus!");
}else{
txta_hasil.setText("");
}
Silahkan run aplikasinya hasilnya seperti berikut
Mudah bukan ? atau kesulitan ? jangan sungkan sungkan untuk komentar dibawah mengenai tutorial membuat aplikasi antrian ini, dari aplikasi dekstop team generator (pembuat group) ini kode nya pun tidak banyak simple, jadi untuk anda yang ingin mendonload aplikasi nya bisa lihat di github saya
tag:
bahasa pemrograman java
membuat aplikasi dekstop dengan java
contoh aplikasi berbasis java
contoh aplikasi java
contoh program java dan penjelasannya
download contoh program netbeans
contoh program java sederhana berbasis gui
kumpulan project java netbeans
kumpulan program java sederhana
aplikasi team generator java netbeans
contoh program collection pada java
program gui java netbeans
contoh program java netbenas tanpa database
Not bad kk, saranku belajar tata letak lagi sama typography, cari platform buat blog lain (static generator kaya Hugo (Golang) Gatsby (JS)) biar makin lancar ngodingnya kk :v
ReplyDeleteTerima kasih atas sarannya :), untuk pengembangan blog ini sedang dipikirkan bagaimana kedepannya, tentunya untuk kenyamanan pembaca
DeleteKak, ada langkah" pembuatan tab desain biar kayak gitu tidak?
ReplyDeleteiya nih, aku gk paham bagian dsainnya terutama bagian kontol
Deletemaksudku bagian import formnya
Delete