Cari artikel di situs ini

Kesamaan dan Perbandingan

Versi ramah cetakVersi ramah cetak

Diskusi kita tentang metode pada interface Collection sebelumnya mengasumsikan bahwa dua objek dianggap "sama". Misalnya metode kol.contains(objek) dan kol.remove(objek) mencari item dalam koleksi yang sama dengan objek. Akan tetapi, kesamaan bukan sesuatu yang mudah.

Teknik yang paling umum untuk menguji kesamaan (yaitu menggunakan operator ==) sering kali tidak bisa digunakan untuk objek. Operator == yang digunakan pada objek hanya membandingkan apakah objek tersebut memiliki alamat memori yang sama. Biasanya, kita ingin supaya kesamaan berarti isi objeknya sama (bukan alamat memorinya).

Dua nilai String dianggap sama jika keduanya memiliki urutan karakter yang sama. Persoalan di mana karakter tersebut disimpan di dalam memori tentunya tidak relevan. Dua nilai bertipe Date dianggap sama jika isinya adalah waktu yang sama.

Kelas Object memiliki metode bernilai boolean yaitu equals(Object) untuk menguji apakah satu objek berisi sama dengan objek lain.

Di dalam koleksi, dua objek obj1 dan obj2 dianggap sama jika keduanya bernilai null atau jika keduanya bernilai tidak nul dan obj1.equals(obj2) bernilai true.

Dalam kelas Object, obj1.equals(obj2) didefinisikan sebagai obj1 == obj2. Akan tetapi pada hampir semua kelas turunan Object, definisi ini tidak masuk akal, dan biasanya dibebanlebihkan (overload).

Kelas String misalnya, membebanlebihkan equals() sehingga untuk str.equals(obj) bernilai sama jika urutan karakter obj sama dengan urutan karakter str.

Jika kita menulis kelas sendiri, kita mungkin ingin mendefinisikan metode equals() sendiri pada kelas tersebut, sehingga metode kesamaan bisa berjalan sesuai dengan yang kita inginkan. Misalnya kelas Kartu akan bekerja dengan benar jika digunakan dalam koleksi bisa dibuat seperti :

public class Kartu {  // Kelas untuk kartu mainan
    int lambang;  // Nomor 0 hingga 3 untuk lambangnya :
                       // wajik, diamon, keriting atau hati.
    int angka; // Angka 1 hingga 13
 
    public boolean equals(Object obj) {
        if (obj == null || ! (obj instanceof  Kartu) ) {
            // obj tidak sama dengan Kartu ini jika obj
            // tidak bertipe Kartu, atau isinya null
            return false;
        }
        else {
            Kartu lain = (Kartu)obj;  // Type-cast obj ke Kartu
            if (lambang == lain.lambang && angka == lain.angka) {
                // Kartu lain berlambang dan berangka sama dengan
                // kartu ini, artinya kedua kartu sama
                return true;
            }
            else
                return false;
        }
    }
    ... // metode dan konstruktor lain
}

Tanpa metode equals() dalam kelas ini, metode contains() dan remove() dalam interface Collection tidak akan bekerja dengan baik untuk kelas Kartu.

Masalah yang sama akan muncul ketika item dalam koleksi akan diurutkan. Pengurutan artinya mengatur urutan item dalam aturan tertentu. Masalahnya, tidak ada aturan "menaik" dalam objek. Sebelum objek bisa diurutkan, metode tertentu harus dibuat untuk membandingkan objek. Objek yang akan dibandingkan harus mengimplementasikan interface java.lang.Comparable. Interface ini mendefinisikan satu metode, yaitu :

public int compareTo(Object obj)

Nilai yang dikembalikan obj1.compareTo(obj2) bernilai nol jika kedua objek berisi sama (atau jika obj1.equals(obj2) bernilai benar). Keluarannya bernilai negatif jika obj1 lebih kecil dari obj2, atau jika diurutkan dalam urutan menaik obj1 akan muncul sebelum obj2. Keluarannya bernilai positif jika obj1 lebih besar dari obj2 atau jika diurutkan dalam urutan menaik obj1 muncul setelah obj2.

Kelas String mengimplementasikan interface Comparable dan memiliki metode compareTo dengan cara seperti di atas. Jika kita ingin membuat kelas sendiri dan ingin mengurut objek pada kelas itu, kita juga harus mengimplementasikan objek itu dengan cara yang sama. Misalnya :

class NamaLengkap implements Comparable {
    // Melambangkan nama lengkap yang terdiri dari
    // nama depan dan nama belakang
    String namaDepan, namaBelakang;
 
    public boolean equals(Object obj) {
        if (obj == null || ! (obj instanceof NamaLengkap)) {
            return false;
        }
        else {
            NamaLengkap lain = (NamaLengkap)obj;
            return namaDepan.equals(lain.namaDepan)
                && namaBelakang.equals(lain.namaBelakang);
        }
    }
 
    public void compareTo(Object obj) {
        NamaLengkap lain = (NamaLengkap)obj;
        // Menyebabkan error jika obj tidak bertipe NamaLengkap
        if ( namaBelakang.compareTo(lain.namaBelakang) < 0 ) {
            // Jika namaBelakang lebih kecil dari namaBelakang objek lain
            // maka NamaLengkap ini muncul sebelum yang lain
            // Kembalikan nilai negatif
            return -1;
        }
        if ( namaBelakang.compareTo(lain.namaBelakang) > 0 ) {
            // Jika namaBelakang lebih besar dari namaBelakang objek lain
            // maka NamaLengkap ini muncul setelah yang lain
            // Kembalikan nilai positif
            return 1;
        }
        else {
            // Nama belakangnya sama, sekarang bandingkan
            // nama depannya
            return namaDepan.compareTo(lain.namaDepan);
        }
    }
    ... // metode dan konstruktor lain
}

Ada cara lain untuk membandingkan objek pada Java, yaitu dengan membuat objek lain untuk melakukan perbandingan. Objek tersebut harus mengimplementasikan java.util.Comparator yang memiliki metode :

public int compare(Object obj1, Object obj2)

Metode ini membandingkan dua objek dan mengembalikan nilai negatif, nol, atau positif, tergantung apakah obj1 muncul lebih dulu, sama, atau setelah obj2. Komparator ini berfungsi untuk membandingkan objek yang tidak memiliki interface Comparable atau untuk melakukan metode pembanding yang berbeda untuk objek yang bertipe sama.

Kita akan lihat bagaimana Comparable dan Comparator digunakan dalam koleksi dan map.

Komentar

error di perbandingan or

ka saya mo tanya sayakan lagi buat program penghitungan yah..

trus saya ketikkin coding

if (txtjumlah.getText()!=""||txtjumlah.getText()!="0"){

masa dia warning katanya disuruh pake string == or !=

emang operator perbandingan yang saya pake itu salah ya ka...

tolong bimbingannya

Kalau string gunakan metode

Kalau string gunakan metode equals untuk membandingkan.

Jadi kode di atas seharusnya

if (txtjumlah.getText().equals("") || txtjumlah.getText().equals("0")){ ... }

Tanya Eror

Dear All just share aja , gw udh install java , trus udh gitu gw baru belajar java yg sangat sederhana bgt
ini code nya :

public class Test {

public static void main(String[] args) {
System.out.println("Hello World!");
}

}

kira2 ada yg salah ga yah coding nya , coz gw udh bolak balik salah , trus ada keterangan eror nya syntak eror di
System.out.println

Gimana yah cara nya bisa ngebetulin , padahal ini coding sederhana bgt

Tx yah buat perhatian nya ^_^

kayanya ga da yang salah deh

kayanya ga da yang salah deh ma codingnya

bahkan 100% Sip ...

mungkin coding ini yang banyak Errornya :


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.Timer;
import java.util.*;
import java.text.*;

public class menu extends JFrame implements ActionListener{
    private JDesktopPane desktop=new JDesktopPane(); //@deklarasi JDesktop
    private JMenuBar mBar=new JMenuBar(); //@deklarasi MenuBar
    private JLabel lbJam=new JLabel(); //@deklarasi Label untuk Jam pada JMenuBar
    private JMenu mMaster=new JMenu("File_Master"), //@deklarasi JMenu
            mPemesanan=new JMenu("Pemesanan_Barang"),
            mPenerimaan=new JMenu("Penerimaan_Barang"),
            mRetur=new JMenu("Retur_Pembelian"),
            mLaporan=new JMenu("Laporan"),
            mHelp=new JMenu("Help_?");
    private JMenuItem miBarang=new JMenuItem("Entry_Master_Barang"), //@deklarasi JMenuItem
            miSuplier=new JMenuItem("Entry_Master_Suplier"),
            miPrice=new JMenuItem("Entry_Price_List"),
            miEPO=new JMenuItem("Entry_Purchase_Order"),
            miCPO=new JMenuItem("Cetak_Purchase_Order"),
            miETP=new JMenuItem("Entry_Tanda_Penerimaan"),
            miCTP=new JMenuItem("Cetak_Tanda_Penerimaan"),
            miERP=new JMenuItem("Entry_Retur_Pembelian"),
            miCRP=new JMenuItem("Cetak_Retur_Pembelian"),
            miDS=new JMenuItem("Daftar_Suplier"),
            miDPH=new JMenuItem("Daftar_Perbandingan_Harga"),
            miLPO=new JMenuItem("Laporan_Purchase_Order_(PO)"),
            miLPnB=new JMenuItem("Laporan_Penerimaan_Barang"),
            miLRP=new JMenuItem("Laporan_Retur_Pembelian"),
            miLPmB=new JMenuItem("Laporan_Pembelian_Barang"),
            miLAP=new JMenuItem("Laporan_Analisa_Pembelian"),
            miAbout=new JMenuItem("About"),
            miExit=new JMenuItem("Exit_Aplikasi");
           
    /** @jika ingin menambahkan ImageIcon pada JMenuItem=new JMenuItem("Data Obat",new ImageIcon("path/image"));
     *
     * @mengambil tanggal aktif dari komputer & mengatur format tanggal
     */
    private Date tgl=new Date();
    private SimpleDateFormat sdf=new SimpleDateFormat("dd MMM yyyy",Locale.getDefault());
    private String tanggal=sdf.format(tgl); //@untuk format tanggal
    //@deklarasi komponen panel & objek label untuk statusbar
    private JPanel stBar=new JPanel();
    private JLabel lb1=new JLabel(" "+"By.RadenMas RamaHandi",JLabel.LEFT),lb2=new JLabel(" "+tanggal+" ",JLabel.RIGHT);
   
    /**
     * method menu() menggunakan constructor
     * String data ....
     */
    public menu(String data){
        super("Menu @Example");
        setSize(1020,650);
        setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-getWidth())/2,(Toolkit.getDefaultToolkit().getScreenSize().height-getHeight())/2);
        //@memberikan listener & mengeksekusi fungsi keluar saat toombol di klck
        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent we){
                exit();
            }
        });
        //@mengatur tbl Alt pada menu fulldown
        mMaster.setMnemonic('F');
        mPemesanan.setMnemonic('P');
        mPenerimaan.setMnemonic('P');
        mRetur.setMnemonic('R');
        mLaporan.setMnemonic('L');
        mHelp.setMnemonic('H');
        //@mengatur penggunaan shortcut pada menu fulldown
        miBarang.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,Event.CTRL_MASK));
        miSuplier.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK));
        miPrice.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,Event.CTRL_MASK));
        miAbout.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,Event.CTRL_MASK));
        miExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,Event.CTRL_MASK));
        //@mengatur menu fulldown agar dapat di click
        miBarang.addActionListener(this);
        miSuplier.addActionListener(this);
        miPrice.addActionListener(this);
        miEPO.addActionListener(this);
        miCPO.addActionListener(this);
        miETP.addActionListener(this);
        miCTP.addActionListener(this);
        miERP.addActionListener(this);
        miCRP.addActionListener(this);
        miDS.addActionListener(this);
        miDPH.addActionListener(this);
        miLPO.addActionListener(this);
        miLPnB.addActionListener(this);
        miLRP.addActionListener(this);
        miLPmB.addActionListener(this);
        miLAP.addActionListener(this);
        miAbout.addActionListener(this);
        miExit.addActionListener(this);
        //@menambahkan sub menu ke masing2 menu baris
        mMaster.add(miBarang);
        mMaster.add(miSuplier);
        mMaster.add(miPrice);
        mMaster.addSeparator();
        mMaster.add(miExit);
        mPemesanan.add(miEPO);
        mPemesanan.add(miCPO);
        mPenerimaan.add(miETP);
        mPenerimaan.add(miCTP);
        mRetur.add(miERP);
        mRetur.add(miCRP);
        mLaporan.add(miDS);
        mLaporan.add(miDPH);
        mLaporan.add(miLPO);
        mLaporan.add(miLPnB);
        mLaporan.add(miLRP);
        mLaporan.add(miLPmB);
        mLaporan.add(miLAP);
        mHelp.add(miAbout);
        //@mengatur object barmenu
        setJMenuBar(mBar);
        //@menambahkan object menu baris ke menubar
        mBar.add(mMaster);
        mBar.add(mPemesanan);
        mBar.add(mPenerimaan);
        mBar.add(mRetur);
        mBar.add(mLaporan);
        mBar.add(mHelp);
        lbJam.setForeground(Color.pink);
        mBar.add(lbJam);       
        //@mengatur objek baris status
        stBar.setLayout(new BorderLayout());
        stBar.setBackground(Color.darkGray);
        stBar.setFont(new Font("Arial",Font.BOLD,9));
        //@menambahkan objek label ke dalam baris status
        lb1.setForeground(Color.red);
        stBar.add(lb1, BorderLayout.WEST);
        lb2.setForeground(Color.yellow);
        stBar.add(lb2, BorderLayout.EAST);
        //@mengatur warna latar objek desktop
        desktop.setBackground(Color.black);
        //@menambahkan isi kontainer dengan objek toolbar, desktop dan statusbar dengan layout border
        getContentPane().add(desktop, BorderLayout.CENTER);
        getContentPane().add(stBar, BorderLayout.SOUTH);
        if(data.equals("a")){
            miBarang.setEnabled(true);
        }
        else
            if(data.equals("b")){
            miExit.setEnabled(false);
            miBarang.setEnabled(false);
            miSuplier.setEnabled(false);
            miPrice.setEnabled(false);
            miEPO.setEnabled(false);
            miCPO.setEnabled(false);
            miETP.setEnabled(false);
            miCTP.setEnabled(false);
            miERP.setEnabled(false);
            miCRP.setEnabled(false);
            miAbout.setEnabled(false);
            }
        //@set jam agar dapat tampil pada form menu
        setJam();
        //@menampilkan menu utama kelayar monitor.
        show();       
    }
   
    /**
     * method @meriksa objeck(menupopup atau menupop) yang
     * sebelumnya mendapat Listener"addActionListener" ............
     */
    public void actionPerformed(ActionEvent ae){
        Object obj = ae.getSource();
        if(obj==miBarang){
            barang barang=new barang();
            desktop.add(barang);
            barang.show();
        }
        if(obj==miSuplier){
            suplier suplier=new suplier();
            desktop.add(suplier);
            suplier.show();
        }
        if(obj==miPrice){
            price price=new price();
            desktop.add(price);
            price.show();
        }
        if(obj==miEPO){
            purchase purchase=new purchase();
            desktop.add(purchase);
            purchase.show();
        }
        if(obj==miCPO){
            CPO cpo=new CPO();
            desktop.add(cpo);
            cpo.show();
        }
        if(obj==miETP){
            penerimaan penerimaan=new penerimaan();
            desktop.add(penerimaan);
            penerimaan.show();
        }
        if(obj==miCTP){
            CTP ctp=new CTP();
            desktop.add(ctp);
            ctp.show();
        }
        if(obj==miERP){
            retur retur=new retur();
            desktop.add(retur);
            retur.show();
        }
        if(obj==miCRP){
            CRP crp=new CRP();
            desktop.add(crp);
            crp.show();
        }
        if(obj==miDS){
            dafsup dafsup=new dafsup();
            desktop.add(dafsup);
            dafsup.show();
        }
        if(obj==miDPH){
            dafperha dafperha=new dafperha();
            desktop.add(dafperha);
            dafperha.show();
        }
        if(obj==miLPO){
            lapuro lapuro=new lapuro();
            desktop.add(lapuro);
            lapuro.show();
        }
        if(obj==miLPnB){
            lapenba lapenba=new lapenba();
            desktop.add(lapenba);
            lapenba.show();
        }
        if(obj==miLRP){
            larepem larepem=new larepem();
            desktop.add(larepem);
            larepem.show();
        }
        if(obj==miLPmB){
            lapemba lapemba=new lapemba();
            desktop.add(lapemba);
            lapemba.show();
        }
        if(obj==miLAP){
            lapanpem lapanpem=new lapanpem();
            desktop.add(lapanpem);
            lapanpem.show();
        }
        if(obj == miAbout){
            about miAbout=new about();
            desktop.add(miAbout);
            miAbout.show();
        }
        if(obj==miExit){
            exit();
        }
    }
   
    /**
     * method @keluar dari System
     */
    private void exit(){
        try{
            int rep=JOptionPane.showConfirmDialog(this,"By.RadenMas RamaHandi\nMoo Keluar dari Aplikasi ini Y/N ?","kadalistn", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE);
            if(rep==JOptionPane.YES_OPTION){
                setVisible(false);  //@Menyembunyikan Frame.
                dispose();             //@Membersihkan Resource dari system memori
                System.out.println("\n\nThanks For All ... \n\nBy kadalistn@yahoo.com\n   jl.caringin1no.44@gmail.com\n   mas.handi@yahoo.co.id\n\n\n   Bey bey ...\n\n");
                System.exit(0);
            }
            else{
            }
            setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);   //Membebaskan aplikasi dari memori
        }
        catch(Exception e){
        }
    }
   
    /**
     * method atau fungsi @mengatur waktu dari System ...
     */
    public void setJam(){
        ActionListener taskPerformer = new ActionListener(){
            public void actionPerformed(ActionEvent evt){
                String nol_jam = "", nol_menit = "", nol_detik = "";
                Date dateTime = new Date();
                int nilai_jam = dateTime.getHours();
                int nilai_menit = dateTime.getMinutes();
                int nilai_detik = dateTime.getSeconds();
                if(nilai_jam <= 9) nol_jam = "0";
                if(nilai_menit <= 9) nol_menit = "0";
                if(nilai_detik <= 9) nol_detik = "0";
                String jam = nol_jam + Integer.toString(nilai_jam);
                String menit = nol_menit + Integer.toString(nilai_menit);
                String detik = nol_detik + Integer.toString(nilai_detik);
                lbJam.setText("  "+"  ---@Time:( "+jam + ":" + menit + ":" + detik + " ):emiT@---");
            }
        };
        new Timer(1000, taskPerformer).start();
    }
   
}

penambahan

maaf cuma mau nambahin....kalo koding dari buku...sebaiknya harus teliti pelajari algoritma (alur logika) kode program tersebut, yang penting deklarasi variable nya harus jelas dan kemana arahnya, kemudian konsep pemanggilan class harus sesuai prosedur dengan pemograman java. kalo terdapat error sebaiknya pelajari dulu dasar-dasar pemograman java yang berhubungan dengan koding yang error tersebut...makacih..salam kenal (i am newbie). maaf kalo pendapat  saya salah...

...

kaya nye sich codingnye ga da yang salah tuh

bahkan 100% ga da Error ; mungki klo coding ini bayak yang Error :

/*
 * @RadenMas
 * source code untuk form Menu
 * dengan menggunakan JDesktopPane, JMenuBar, JMenu, JMenuItem & JPanel
 *
 * contact :
 * kadalistn@yahoo.com
 * jl.caringin1no.44@gmail.com
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.Timer;
import java.util.*;
import java.text.*;

public class menu extends JFrame implements ActionListener{
    private JDesktopPane desktop=new JDesktopPane(); //@deklarasi JDesktop
    private JMenuBar mBar=new JMenuBar(); //@deklarasi MenuBar
    private JLabel lbJam=new JLabel(); //@deklarasi Label untuk Jam pada JMenuBar
    private JMenu mMaster=new JMenu("File_Master"), //@deklarasi JMenu
            mPemesanan=new JMenu("Pemesanan_Barang"),
            mPenerimaan=new JMenu("Penerimaan_Barang"),
            mRetur=new JMenu("Retur_Pembelian"),
            mLaporan=new JMenu("Laporan"),
            mHelp=new JMenu("Help_?");
    private JMenuItem miBarang=new JMenuItem("Entry_Master_Barang"), //@deklarasi JMenuItem
            miSuplier=new JMenuItem("Entry_Master_Suplier"),
            miPrice=new JMenuItem("Entry_Price_List"),
            miEPO=new JMenuItem("Entry_Purchase_Order"),
            miCPO=new JMenuItem("Cetak_Purchase_Order"),
            miETP=new JMenuItem("Entry_Tanda_Penerimaan"),
            miCTP=new JMenuItem("Cetak_Tanda_Penerimaan"),
            miERP=new JMenuItem("Entry_Retur_Pembelian"),
            miCRP=new JMenuItem("Cetak_Retur_Pembelian"),
            miDS=new JMenuItem("Daftar_Suplier"),
            miDPH=new JMenuItem("Daftar_Perbandingan_Harga"),
            miLPO=new JMenuItem("Laporan_Purchase_Order_(PO)"),
            miLPnB=new JMenuItem("Laporan_Penerimaan_Barang"),
            miLRP=new JMenuItem("Laporan_Retur_Pembelian"),
            miLPmB=new JMenuItem("Laporan_Pembelian_Barang"),
            miLAP=new JMenuItem("Laporan_Analisa_Pembelian"),
            miAbout=new JMenuItem("About"),
            miExit=new JMenuItem("Exit_Aplikasi");
           
    /** @jika ingin menambahkan ImageIcon pada JMenuItem=new JMenuItem("Data Obat",new ImageIcon("path/image"));
     *
     * @mengambil tanggal aktif dari komputer & mengatur format tanggal
     */
    private Date tgl=new Date();
    private SimpleDateFormat sdf=new SimpleDateFormat("dd MMM yyyy",Locale.getDefault());
    private String tanggal=sdf.format(tgl); //@untuk format tanggal
    //@deklarasi komponen panel & objek label untuk statusbar
    private JPanel stBar=new JPanel();
    private JLabel lb1=new JLabel(" "+"By.RadenMas RamaHandi",JLabel.LEFT),lb2=new JLabel(" "+tanggal+" ",JLabel.RIGHT);
   
    /**
     * method menu() menggunakan constructor
     * String data ....
     */
    public menu(String data){
        super("Menu @Example");
        setSize(1020,650);
        setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-getWidth())/2,(Toolkit.getDefaultToolkit().getScreenSize().height-getHeight())/2);
        //@memberikan listener & mengeksekusi fungsi keluar saat toombol di klck
        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent we){
                exit();
            }
        });
        //@mengatur tbl Alt pada menu fulldown
        mMaster.setMnemonic('F');
        mPemesanan.setMnemonic('P');
        mPenerimaan.setMnemonic('P');
        mRetur.setMnemonic('R');
        mLaporan.setMnemonic('L');
        mHelp.setMnemonic('H');
        //@mengatur penggunaan shortcut pada menu fulldown
        miBarang.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,Event.CTRL_MASK));
        miSuplier.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK));
        miPrice.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,Event.CTRL_MASK));
        miAbout.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,Event.CTRL_MASK));
        miExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,Event.CTRL_MASK));
        //@mengatur menu fulldown agar dapat di click
        miBarang.addActionListener(this);
        miSuplier.addActionListener(this);
        miPrice.addActionListener(this);
        miEPO.addActionListener(this);
        miCPO.addActionListener(this);
        miETP.addActionListener(this);
        miCTP.addActionListener(this);
        miERP.addActionListener(this);
        miCRP.addActionListener(this);
        miDS.addActionListener(this);
        miDPH.addActionListener(this);
        miLPO.addActionListener(this);
        miLPnB.addActionListener(this);
        miLRP.addActionListener(this);
        miLPmB.addActionListener(this);
        miLAP.addActionListener(this);
        miAbout.addActionListener(this);
        miExit.addActionListener(this);
        //@menambahkan sub menu ke masing2 menu baris
        mMaster.add(miBarang);
        mMaster.add(miSuplier);
        mMaster.add(miPrice);
        mMaster.addSeparator();
        mMaster.add(miExit);
        mPemesanan.add(miEPO);
        mPemesanan.add(miCPO);
        mPenerimaan.add(miETP);
        mPenerimaan.add(miCTP);
        mRetur.add(miERP);
        mRetur.add(miCRP);
        mLaporan.add(miDS);
        mLaporan.add(miDPH);
        mLaporan.add(miLPO);
        mLaporan.add(miLPnB);
        mLaporan.add(miLRP);
        mLaporan.add(miLPmB);
        mLaporan.add(miLAP);
        mHelp.add(miAbout);
        //@mengatur object barmenu
        setJMenuBar(mBar);
        //@menambahkan object menu baris ke menubar
        mBar.add(mMaster);
        mBar.add(mPemesanan);
        mBar.add(mPenerimaan);
        mBar.add(mRetur);
        mBar.add(mLaporan);
        mBar.add(mHelp);
        lbJam.setForeground(Color.pink);
        mBar.add(lbJam);       
        //@mengatur objek baris status
        stBar.setLayout(new BorderLayout());
        stBar.setBackground(Color.darkGray);
        stBar.setFont(new Font("Arial",Font.BOLD,9));
        //@menambahkan objek label ke dalam baris status
        lb1.setForeground(Color.red);
        stBar.add(lb1, BorderLayout.WEST);
        lb2.setForeground(Color.yellow);
        stBar.add(lb2, BorderLayout.EAST);
        //@mengatur warna latar objek desktop
        desktop.setBackground(Color.black);
        //@menambahkan isi kontainer dengan objek toolbar, desktop dan statusbar dengan layout border
        getContentPane().add(desktop, BorderLayout.CENTER);
        getContentPane().add(stBar, BorderLayout.SOUTH);
        if(data.equals("a")){
            miBarang.setEnabled(true);
        }
        else
            if(data.equals("b")){
            miExit.setEnabled(false);
            miBarang.setEnabled(false);
            miSuplier.setEnabled(false);
            miPrice.setEnabled(false);
            miEPO.setEnabled(false);
            miCPO.setEnabled(false);
            miETP.setEnabled(false);
            miCTP.setEnabled(false);
            miERP.setEnabled(false);
            miCRP.setEnabled(false);
            miAbout.setEnabled(false);
            }
        //@set jam agar dapat tampil pada form menu
        setJam();
        //@menampilkan menu utama kelayar monitor.
        show();       
    }
   
    /**
     * method @meriksa objeck(menupopup atau menupop) yang
     * sebelumnya mendapat Listener"addActionListener" ............
     */
    public void actionPerformed(ActionEvent ae){
        Object obj = ae.getSource();
        if(obj==miBarang){
            barang barang=new barang();
            desktop.add(barang);
            barang.show();
        }
        if(obj==miSuplier){
            suplier suplier=new suplier();
            desktop.add(suplier);
            suplier.show();
        }
        if(obj==miPrice){
            price price=new price();
            desktop.add(price);
            price.show();
        }
        if(obj==miEPO){
            purchase purchase=new purchase();
            desktop.add(purchase);
            purchase.show();
        }
        if(obj==miCPO){
            CPO cpo=new CPO();
            desktop.add(cpo);
            cpo.show();
        }
        if(obj==miETP){
            penerimaan penerimaan=new penerimaan();
            desktop.add(penerimaan);
            penerimaan.show();
        }
        if(obj==miCTP){
            CTP ctp=new CTP();
            desktop.add(ctp);
            ctp.show();
        }
        if(obj==miERP){
            retur retur=new retur();
            desktop.add(retur);
            retur.show();
        }
        if(obj==miCRP){
            CRP crp=new CRP();
            desktop.add(crp);
            crp.show();
        }
        if(obj==miDS){
            dafsup dafsup=new dafsup();
            desktop.add(dafsup);
            dafsup.show();
        }
        if(obj==miDPH){
            dafperha dafperha=new dafperha();
            desktop.add(dafperha);
            dafperha.show();
        }
        if(obj==miLPO){
            lapuro lapuro=new lapuro();
            desktop.add(lapuro);
            lapuro.show();
        }
        if(obj==miLPnB){
            lapenba lapenba=new lapenba();
            desktop.add(lapenba);
            lapenba.show();
        }
        if(obj==miLRP){
            larepem larepem=new larepem();
            desktop.add(larepem);
            larepem.show();
        }
        if(obj==miLPmB){
            lapemba lapemba=new lapemba();
            desktop.add(lapemba);
            lapemba.show();
        }
        if(obj==miLAP){
            lapanpem lapanpem=new lapanpem();
            desktop.add(lapanpem);
            lapanpem.show();
        }
        if(obj == miAbout){
            about miAbout=new about();
            desktop.add(miAbout);
            miAbout.show();
        }
        if(obj==miExit){
            exit();
        }
    }
   
    /**
     * method @keluar dari System
     */
    private void exit(){
        try{
            int rep=JOptionPane.showConfirmDialog(this,"By.RadenMas RamaHandi\nMoo Keluar dari Aplikasi ini Y/N ?","kadalistn", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE);
            if(rep==JOptionPane.YES_OPTION){
                setVisible(false);  //@Menyembunyikan Frame.
                dispose();             //@Membersihkan Resource dari system memori
                System.out.println("\n\nThanks For All ... \n\nBy kadalistn@yahoo.com\n   jl.caringin1no.44@gmail.com\n   mas.handi@yahoo.co.id\n\n\n   Bey bey ...\n\n");
                System.exit(0);
            }
            else{
            }
            setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);   //Membebaskan aplikasi dari memori
        }
        catch(Exception e){
        }
    }
   
    /**
     * method atau fungsi @mengatur waktu dari System ...
     */
    public void setJam(){
        ActionListener taskPerformer = new ActionListener(){
            public void actionPerformed(ActionEvent evt){
                String nol_jam = "", nol_menit = "", nol_detik = "";
                Date dateTime = new Date();
                int nilai_jam = dateTime.getHours();
                int nilai_menit = dateTime.getMinutes();
                int nilai_detik = dateTime.getSeconds();
                if(nilai_jam <= 9) nol_jam = "0";
                if(nilai_menit <= 9) nol_menit = "0";
                if(nilai_detik <= 9) nol_detik = "0";
                String jam = nol_jam + Integer.toString(nilai_jam);
                String menit = nol_menit + Integer.toString(nilai_menit);
                String detik = nol_detik + Integer.toString(nilai_detik);
                lbJam.setText("  "+"  ---@Time:( "+jam + ":" + menit + ":" + detik + " ):emiT@---");
            }
        };
        new Timer(1000, taskPerformer).start();
    }
   
}

Tanpa keterangan errornya,

Tanpa keterangan errornya, kita ngga tahu apa yang terjadi.

Mungkin lebih baik jika menggunakan IDE seperti Eclipse atau Netbeans. Untuk Eclipse, program seperti di atas bisa dibuat dengan mudah. Lihat di sini untuk langkah demi langkah silakan dilihat di sini

http://java.lyracc.com/artikel/java-untuk-pemula/menjalankan-eclipse-unt...

collection

salam kenal. :D

misalnya kasusnya seperti ini gimana mas? :D

public static void main(String as[]) {
        List<Integer> peserta = new ArrayList<Integer>();
        for (int i = 0; i < 5; i++) {
            peserta.add(i);
        }

        List<Integer> log = new ArrayList<Integer>();
        for (int i = 0; i < 10; i++) {
            log.add(i);
        }

        Set set = new HashSet();

        for (Iterator<Integer> it = peserta.iterator(); it.hasNext();)
{
            for (Iterator<Integer> it1 = log.iterator();
it1.hasNext();) {
                int object1 = (int) it1.next();
                if(!peserta.contains(object1)){
                    System.out.println("tidak ada: "+object1);
                    set.add(object1);
                }
            }
        }

} sebenarnya permintaan dari output di atas simpel sich mas, cuma menamilkan angka 5-9. tapi kenyataannya loopingnya ndak berhenti2 e? gimana yach caranya biar loopingnya berhenti? terima kasih, :D