Membuat Aplikasi Dekstop Team Generator Sederhana Java GUI Menggunakan Collection Shuffle (membuat group) ~ Coding IsmyNR - Cara Dan Contoh Pemrograman

Membuat Aplikasi Dekstop Team Generator Sederhana Java GUI Menggunakan Collection Shuffle (membuat group)

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.
Aplikasi Dekstop Team Generator Sederhana Java GUI

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
Aplikasi Dekstop Team Generator Sederhana Java GUI


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
Aplikasi Dekstop Team Generator Sederhana Java GUI

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

Aplikasi Dekstop Team Generator Sederhana Java GUI

Lalu untuk nama variabel bisa disesuaikan atau seperti contoh punya saya yaitu sebagai berikut bisa diamati gif nya dibawah

Aplikasi Dekstop Team Generator Sederhana Java GUI


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
Aplikasi Dekstop Team Generator Sederhana Java GUI
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 > actionPerformedAplikasi Dekstop Team Generator Sederhana Java GUI
Masukan kode berikut
addNama(); //untuk oprasi enter langsung addnama()

Klik kanan pada button "Atur" > Events > Action > actionPerformed
Aplikasi Dekstop Team Generator Sederhana Java GUI
Masukan kode berikut
jmlSatuGrup();

Klik kanan pada textfield "txtf_jmlSatuGrup" > Events > Action > actionPerformed
Aplikasi Dekstop Team Generator Sederhana Java GUI
Masukan kode berikut
jmlSatuGrup();

Klik kanan pada button "Buat!" > Events > Action > actionPerformed
Aplikasi Dekstop Team Generator Sederhana Java GUI
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
Aplikasi Dekstop Team Generator Sederhana Java GUI
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
Aplikasi Dekstop Team Generator Sederhana Java GUI
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
Aplikasi Dekstop Team Generator Sederhana Java GUI

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
logoblog

Share :

5 comments:

  1. 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

    ReplyDelete
    Replies
    1. Terima kasih atas sarannya :), untuk pengembangan blog ini sedang dipikirkan bagaimana kedepannya, tentunya untuk kenyamanan pembaca

      Delete
  2. Kak, ada langkah" pembuatan tab desain biar kayak gitu tidak?

    ReplyDelete
    Replies
    1. iya nih, aku gk paham bagian dsainnya terutama bagian kontol

      Delete
    2. maksudku bagian import formnya

      Delete

Berkomentarlah jika ada pertanyaan, Kesan pembaca atau saran yang membangun blog ini.
> Gunakan akun google dan ceklis kolom (Notify Me) agar mendapat notifikasi balasan komentar

 
Back to Top