2.5. Membuat Laporan dengan Menggunakan Ireport 4.6.0-windows

1. Instalasi Ireport
Ireport dapat didownload pada alamat http://www.softpedia.com/progDownload/iReport-Download-73085.html
Setelah selesai mengdownload langkah selanjutnya adalah menginstal file ireport-4.6.0-windows-installer.exe

2. Membuat Database dengan menggunakan Mysql
TabelKategori (idKategori, nmKategori)
TabelBarang(idBarang,nmBarang,satuan,Stock)
TabelPelanggan(idPelanggan,nmPelanggan,almPelanggan)
TabelTransaksiBeli(idBeli,TglBeli,idPelanggan)
TabelDetailTransaksiBeli(idBeli,IdBarang,Qty,hrgBeli)

3. Membuat Laporan dengan Ireport
Langkah-langkah membuat Laporan dapat dilakukan dengan cara :
a. Aktifkan Ireport dengan cara klik Start, Program File, JasperSoft, Ireport-4.6.0, Ireport-4.6.0
Buatlah New Report dengan cara Klik File, Klik New, Klik Blank A4, lalu klik Launch Report Wizard, maka akan tampil gambar berikut :

Dari gambar diatas buatlah Report name dengan nama DaftarBarang dan klik Browse untuk menentukan lokasi file akan disimpan(buat folder Report pada file project). Selanjutnya Klik Next
b. Pada windows query klik tombol NEW, pada Databasource klik Database JDBC connection, isikan nama koneksi pada Name dengan nama DBConnect, pada JDBC Driver ganti dengan MYSQL (com…..) dan pada JDBC Url ganti DatabaseName dengan nama database yang kita miliki disini diketik dbtrans, lalu pada username ketik root dan klik test untuk menguji apakah koneksi sukses atau enggak… lalu klik Save
c. Dari langkah diatas, akan kembali pada windows query dan ketikkan pada query(SQL) perintah SQL :
Select * from Barang
Lalu klik next.

d. Setelah klik tombol next pada windows query, maka akan masuk ke windows field, disini kita dapat mengklik timbol >> untuk memindahkan field yang akan ditampilkan pada report. Lalu klik next, klik next dan klik Finish
e. Setelah form desain dari report ditampilkan maka selanjutnya adalah mendesain report sesuai dengan yang kita inginkan.

f. Untuk mendesain report yang pertama kali memberi judul laporan yaitu dapat menggunakan static text (label) caranya klik dan drag (geser) kearah Title pada desain.
g. Untuk memasukkan field-field yang akan ditampilkan pada report dapat mengklik Field yang ada pada Report Inspector, lalu klik Field yang kita inginkan dan drag (geser) kerah desain menu pada bagian Detail.
h. Untuk memberi garis dapat menggunakan line atau rectangle yang ada pada pallete langkahnya sama klik drag kearah desain.
i. Jika sudah selesai klik Save, untuk melihat hasilnya dapat diklik tombol Preview

4. Membuat Koding Pada Netbeans
Aktifkan Netbeans dan tambahkan satu buah Form dengan JInternalFrame Form berinama FormDaftarPelanggan seperti gambar berikut :

Setelah itu pada library tambahkan beberapa library yang dibutuhkan yaitu dengan cara klik kanan pada libraries, lalu klik Add Library, Klik Create, Klik New Library, ketikkan Ireport460library pada Library Name, lalu klik OK.
Klik tombol Add Jar/Folder, lalu menuju ke folder ext yang ada pada folder Ireport, selengkapnya ada pada folder berikut :
C:\Program Files\Jaspersoft\iReport-3.7.6\ireport\modules\ext
Pilih satu persatu libarrynya seperti berikut lalu klik tombol Add Jar/Folder
1. commons-beanutils-1.8.2.jar
2. commons-collections-3.2.1.jar
3. commons-logging-1.1.jar
4. commons-digester-1.7.jar
5. groovy-all-1.7.5.jar
6. jasperreports-4.6.0.jar
7. jdt-compiler-3.1.1.jar
Jika sudah selesai atau semuanya sudah diklik langkah selanjutnya adalah lalu klik tombol Ok dan Klik Tombol Add Library.

Kembali ke JinternalFrameForm (FormDaftarPelanggan), lalu lengkapi koding sebagai berikut :

/*
* FormDaftarBarang.java
*
* Created on June 4, 2011, 12:58 AM
*/

package prjtransaksi;
import java.io.File;
import java.sql.*;
import java.util.HashMap;
// Paket JasperReports
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

/**
*
* @author Arya
*/
public class FormDaftarBarang extends javax.swing.JInternalFrame {

/** Creates new form FormDaftarBarang */
public FormDaftarBarang() {
initComponents();

}

5. Tambahkan koding pada tombol Cetak seperti berikut :
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
HashMap parameter=new HashMap();
Class.forName(“com.mysql.jdbc.Driver”);
Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/dbtrans?user=root&password=”);
File report_file=new File(“Report/DaftarBarang.jasper”);
JasperReport jasperReport=(JasperReport)JRLoader.loadObject(report_file.getPath());
JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport, parameter,con);
JasperViewer.viewReport(jasperPrint,false);
JasperViewer.setDefaultLookAndFeelDecorated(true);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, “Data tidak dapat dicetak!”+”\n”+e.getMessage(),”Cetak Data”,JOptionPane.ERROR_MESSAGE);
}
}

6. Buka File Menu jangan lupa JinternalFrame form hanya dapat dijalankan dari menu…

2.4. Membuat Form Anggota dengan Menggunakan NetBeans

1. Membuat Tabel Anggota pada Database Perpustakaan

C:\Documents and Settings\Toshiba>cd\
C:\>cd wamp\mysql\bin\
C:\wamp\mysql\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.0.21-community-nt

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
Membuat database
mysql> use perpustakaan;
Database changed
Membuat table
mysql> create table anggota(Noang varchar(5), namang varchar(25),
-> tmplhr varchar(15), tgllhr varchar(8), jenisk varchar(10),
-> agama varchar(10), alamat varchar(25), kota varchar(25));
Query OK, 0 rows affected (0.55 sec)

mysql> insert into anggota values (“00001″,”Ahmad”,”Padang”,”12/12/2010″,”Laki-L
aki”,”Islam”,”Pegambiran”,”Padang”);
Query OK, 1 row affected, 1 warning (0.41 sec)
2. Membuat Form Anggota
Nama Class : fromAnggota
Edit sehingga membentuk form berikut ini :

3. Menambah koding pada kelas PrjMhsView, untuk mengatur apabila diklik menu Input dan Klik ANggota maka formAnggota akan ditampilkan.
Caranya :
Masuk pada tab Design , klik Input, Klik kanan pada Anggota, klik Events, klik Action dan klik actionPerformance. Lalu ketikkan koding berikut yang cetak tebal
private void anggotaMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
formAnggota FAng = new formAnggota();
jDesktopPane1.add(FAng, javax.swing.JLayeredPane.DEFAULT_LAYER);
FAng.show();
}

4. Menambah Skrip Program pada FormAnggota
a. Import file
package prjtrans;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

b. Mendefinsikan Variabel
public class LoginForm extends javax.swing.JDialog {
String data[] = new String[4];
Database dbsetting;
//Query DBQ;
String driver, dtbase, user,pass,userLogin;

c. Membuat pemodelan table dan membuat koding untuuk membaca file Database.ini, dibawah iniComponents seperti berikut :
public LoginForm(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
dbsetting = new Database();
driver = dbsetting.SettingPanel(“DBDriver”);
dtbase = dbsetting.SettingPanel(“DBDatabase”);
user = dbsetting.SettingPanel(“DBUsername”);
pass = dbsetting.SettingPanel(“DBPassword”);
this.setSize(600,400);
this.setSize(450,480);

jTable1.setModel(tblModel);
Tabel(jTable1, new int[] {100,130,120});
setDefaultTable();
}
d. Membuat object
private javax.swing.table.DefaultTableModel tblModel= getDefaultTabelModel();

e. Membuat function Tabel
private void Tabel(javax.swing.JTable tb, int lebar[]){
tb.setAutoResizeMode(jTable2.AUTO_RESIZE_OFF);
int kolom = tb.getColumnCount();
for (int i=0; i<kolom; i++){
javax.swing.table.TableColumn tbc = tb.getColumnModel().getColumn(i);
tbc.setPreferredWidth(lebar[i]);
tb.setRowHeight(17);
}
}

f. Membuat method getDefaultTableModel()
private javax.swing.table.DefaultTableModel getDefaultTabelModel(){
return new javax.swing.table.DefaultTableModel(
new Object[][]{},
new String[] {“No Ang”,”Nama”,”Jenis”}
){
boolean[] canEdit = new boolean[]{
false,false,false
};
public boolean isCellEditable(int rowIndext, int columnIndex){
return canEdit[columnIndex];
}
};
}
g. Membuat function setDefaultTable
public void setDefaultTable(){
try{
Class.forName(driver);
Connection kon = DriverManager.getConnection(Databs,user,””);
Statement stt = kon.createStatement();
String SQL = “Select * from Anggota”;
ResultSet res= stt.executeQuery(SQL);
while (res.next()){
data[0] = res.getString(1);
data[1] = res.getString(2);
data[2] = res.getString(3);
tblModel.addRow(data);
}
res.close();
stt.close();
kon.close();
}
catch(Exception exc){
System.err.println(exc.getMessage());
}
}
h. Menampilkan data pada table
private DefaultTableModel tableModel(String[] colNames, ResultSet rs) throws SQLException {
int row = 0;
while (rs.next()) {
row = rs.getRow();
}
rs.beforeFirst();
String[][] data1 = new String[row][colNames.length];
for (int i = 0; i < row; i++) {
rs.next();
for (int j = 0; j < colNames.length; j++) {
data1[i][j] = rs.getString(j + 1);
}
}
return new DefaultTableModel(data1, colNames);
}

i. Jalankan program dengan cara menekan tombol F6.

j. Membuat koding pada table sehingga pada saat di double klik data akan dipindahkan dari table ke form adapun langkah-langkahnya adalah : klik Kanan pada table di form, lalu klik events, mouse, mousecliked dan ketikkan listing berikut :
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if (evt.getClickCount()==1)
Tampil();
}
k. Membuat function Tampil() yang akand igunakan untuk memindahkan data dari table ke form. Adapun kodingnya adalah :
public void Tampil(){
row = jTable1.getSelectedRow();
jTextField1.setText(dataModel.getValueAt(row, 0).toString());
jTextField2.setText(dataModel.getValueAt(row, 1).toString());
jTextField3.setText(dataModel.getValueAt(row, 2).toString());
jFormattedTextField1.setText(dataModel.getValueAt(row, 3).toString());
if (dataModel.getValueAt(row, 4).toString().equals(“Laki-Laki”))
jRadioButton1.setSelected(true);
else
jRadioButton1.setSelected(false);
jComboBox1.setSelectedItem(dataModel.getValueAt(row, 5).toString());
}
l. Membuat koding pada tombol Add untuk menyimpan data
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String jenisk=””;
if (jRadioButton1.isSelected())
jenisk=”Laki-Laki”;
else
jenisk=”Perempuan”;
try{
Class.forName(driver);
Connection kon = DriverManager.getConnection(Databs,user,””);
Statement stt = kon.createStatement();

String SQL = “insert into anggota values(‘”+ jTextField1.getText()+”‘,'”+jTextField2.getText()+”‘,'”+jTextField3.getText()+”‘,'”+jFormattedTextField1.getText()+”‘,'”+ jenisk +”‘,'”+jComboBox1.getSelectedItem().toString() +”‘,'”+jTextField4.getText()+”‘,'” +jTextField5.getText()+”‘)”;
stt.executeUpdate(SQL);
data[0] =jTextField1.getText();
data[1]=jTextField2.getText();
data[2]=jTextField3.getText();
tblModel.insertRow(0,data);
stt.close();
kon.close();
}catch(Exception exc){
System.err.println(exc.getMessage());
}
}
m. Membuat koding pada tombol Edit
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String jenisk=””;
if (jRadioButton1.isSelected())
jenisk=”Laki-Laki”;
else
jenisk=”Perempuan”;
try{
Class.forName(driver);
Connection kon = DriverManager.getConnection(Databs,user,””);
Statement stt = kon.createStatement();

String SQL = “update anggota set namang =’”+ jTextField1.getText() +”’, ….”;
stt.executeUpdate(SQL);

data[0] =jTextField1.getText();
data[1]=jTextField2.getText();
data[2]=jTextField3.getText();
tblModel.removeRow(row);
tblModel.insertRow(0,data);
stt.close();
kon.close();
}catch(Exception exc){
System.err.println(exc.getMessage());
}
}
n. Membuat koding pada tombol hapus

try{
Class.forName(driver);
Connection kon = DriverManager.getConnection(Databs,user,””);
Statement stt = kon.createStatement();

String SQL = “delete from anggota wher noang =’”+ jTextField1.getText() +”’”;
stt.executeUpdate(SQL);

tblModel.removeRow(row);
stt.close();
kon.close();
}catch(Exception exc){
System.err.println(exc.getMessage());
}
}

o. Membuat koding pada tombol Exit.
this.dispose();

p. Uji Program….

2.3. Membuat Menu Utama dan Form login dengan NetBeans dan DBMS MySQL

Membuat Program Aplikasi Akademik dengan Menggunakan NetBeans 6.0
4checks.com-Free Shipping and Handling on All Personal Checks with code DWF008
1. Membuat Database dengan MySQL
Adapun langkah-langkahnya adalah :
Aktifkan database mysql untuk yg menggunakan Wamp, klik Start, Klik All Program, Klik WampServer, klik Start WampServer.
Setelah aktif jalan command DOS, dengan cara klik Start, klik Run lalu ketik CMD dan tekan Enter
Ketiklah perintah dibawah ini yang cetak tebal.

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Toshiba&gt;cd\
C:\cd\wamp\mysql\bin\
C:\wamp\mysql\bin&gt;mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.0.21-community-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Membuat database
mysql> create database akademik;
Query OK, 1 row affected (0.00 sec)
Mengaktifkan database
mysql> use akademik;
Database changed
Membuat table
mysql> create table operator (userid varchar(10), passid varchar(10));
Query OK, 0 rows affected (0.08 sec)
Menginputkan data ke table operator
mysql> insert into operator value ("Ahmad","4hm4d");
Query OK, 1 row affected (0.06 sec)
Melihat isi table
mysql> select * from operator;
+--------+--------+
| userid | passid |
+--------+--------+
| Ahmad  | 4hm4d  |
+--------+--------+
1 row in set (0.00 sec)

Membuat table mahasiswa
mysql> create table mahasiswa (nobp varchar(7), nama varchar (25), tmp_lhr varchar (20),
-&gt; tglLhr varchar(8), alamat varchar(25), jenis_kel varchar(10), agama varchar(8));
Query OK, 0 rows affected (0.41 sec)
Menginputkan data pada table mahasiswa
mysql> insert into mahasiswa value ("0210001","Ahmad","Lampung","12-05-90",
          > "Pegambiran","Laki-Laki","Islam"),
        > ("0210002","Rizal","Padang","12-05-95","Padang","Laki-Laki","Islam");
Query OK, 2 rows affected (0.05 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql>

Apabila ingin menggunakan NetBeans untuk melakukan perintah SQL dapat melihat pada link Mysql dengan NetBeans

2. Membuat Menu Utama :
Langkah-langkahnya adalah pastikan terlebih dahulu bahwa NetBeans sudah aktif dan klik File New Project, pada Categories klik Java dan pada dan pada Project pilih Java Desktop Aplication, klik Next beri nama project, tentukan folder dan klik Finish.

Nama Projectnya : PrjAkademik
Edit PrjAkademikView sehingga membentuk form berikut ini :

3. Membuat Form Login
Klik File, New File dan Pilih Categories, Swing GUI Forms dan JDialog Form
Class Name : FormLogin
Desain form login sehingga membentuk gambar berikut :

4. Jalankan program dengan cara menekan tombol F6

5. Menambah method pada kelas PrjAkademikView, untuk mengatur visibilitas menu supaya tidak bias diakses sebelum seseorang melakukan otentikasi dengan baik.
Caranya :
Masuk pada tab Source kode pada PrjAkademikView, pada baris terakhir sebelum kurung kurawal (})
Tambahkan satu method dengan modifier public void dan namnya setauthentication. seperti berikut : dengan catatan nama variable pada menu harus sama.

…
 private JDialog aboutBox;
public void setAutentication(boolean value){
    fileMenu.setEnabled(value);
    transaksiMenuItem.setEnabled(value);
    if (value == true){
        loginMenuItem.setEnabled(false);
        logoutMenuItem.setEnabled(true);
    }else{
        loginMenuItem.setEnabled(true);
        loginMenuItem.setEnabled(false);
    }
}
}

6. Masih pada PrjAkademikView, masuk ke tab Design Form, pilih menu Logout. Klik kanan mouse, events, action dan actionperformed ketik :

private void logoutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
        setAutentication(false)
    }

7. Lanjutkan dengan menu login, lalu ketik :

    private void loginMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        logoutMenuItemActionPerformed(evt);
        new LoginForm(new javax.swing.JFrame(), true).setVisible(true);
    }

8. Mengedit Method pada kelas PrjAkademikApp, sehingga pada saat aplikasi dijalankan maka yang akan tampil lebih dahulu adalah FromMenu.
Adapun kodingnya adalah :

package prjAkademik;
import java.sql.*;

import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;

public class PrjAkademikApp extends SingleFrameApplication {
private static Connection conn;
private static PrjAkademikView mainMenu;

    @Override protected void startup() {
        //show(new PrjAkademikView(this));
        mainMenu = new PrjAkademikView(this);
    }
    @Override protected void configureWindow(java.awt.Window root) {
    }
    public static PrjAkademikApp getApplication() {
        return Application.getInstance(PrjAkademikApp.class);
    }
    public static void main(String[] args) {
        launch(PrjAkademikApp.class, args);
        InitConnection();
        new LoginForm(new javax.swing.JFrame(), true).setVisible(true);
    }
public void ShowMainMenu(){
    show(mainMenu);
}
public static PrjAkademikView getInstanceMainMenu(){
    return mainMenu;
}
public static Connection getConnection(){
    return conn;
}
private static void InitConnection(){
}
}

9. Membuat Koneksi Database MySQL dengan Netbeans
a. Membuat File Database.ini pada folder lib.
Caranya aktifkan notepade ketik program berikut ini :

# Stting JDBC
# getDriver JDBC
DBDriver=com.mysql.jdbc.Driver

#getDatabase
DBDatabase=jdbc:mysql://localhost:3306/Akademik

#Setting username
DBUsername=root

#setting password
DBPassword=""

Simpan dengan nama Database.ini pada folder lib (buat terlebih dahulu foldernya)
b. Membuat class pada netbeans dengan nama Database.java yang akan digunakan untuk merelasikan file Database ini. Caranya klik File, new file, java dan java class, beri nama Database.
Adapun kodingnya adalah :

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package prjAkademik;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import javax.swing.JOptionPane;
/**
 *
 * @author Toshiba
 */
public class Database {
   public Properties mypanel, myLanguage;
    private String strNamaPanel;
    public Database(){

}
    public String SettingPanel(String nmPanel){
        try{
            mypanel = new Properties();
            mypanel.load(new FileInputStream("lib/database.ini"));
            strNamaPanel = mypanel.getProperty(nmPanel);
        }
        catch(IOException e){
            JOptionPane.showMessageDialog(null,"Tidak ada Koneksi","Error",JOptionPane.INFORMATION_MESSAGE);
            System.err.println(e.getMessage());
            System.exit(0);
        }
        return strNamaPanel;
        }
}

10. Menambah Skrip Program pada Form Login
a. Import file

package prjAkademik;

import javax.swing.table.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.JOptionPane;

b. Mendefinsikan Variabel

public class LoginForm extends javax.swing.JDialog {
String data[] = new String[4];
 Database dbsetting;
String driver, dtbase, user,pass,userLogin;

c. Membuat pemodelan table dan membuat koding untuuk membaca file Database.ini, dibawah iniComponents seperti berikut :

    public LoginForm(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        dbsetting = new Database();
        driver = dbsetting.SettingPanel("DBDriver");
        dtbase = dbsetting.SettingPanel("DBDatabase");
        user = dbsetting.SettingPanel("DBUsername");
        pass = dbsetting.SettingPanel("DBPassword");
        this.setSize(600,400);
    }

d. Membuat koding pada tombol ok, dengan cara double klik tombol OK pada form login, lalu ketikkan listing berikut :

try{
            Class.forName(driver);
            Connection kon = DriverManager.getConnection(dtbase,user,"");
            Statement stt = kon.createStatement();
            String SQL = "select * from operator where user_id='"+ jTextField1.getText() +"'";
            ResultSet hasil = stt.executeQuery(SQL);
            try {
            for (int I = 0; hasil.next(); I++) {
                    PrjAkademikApp.getInstanceMainMenu().setAutentication(true);
                    PrjAkademikApp.getApplication().ShowMainMenu();
                    this.dispose();
            }
            } catch (SQLException se) {
            }
            stt.close();
            kon.close();
            }
       catch(Exception exc){
     }
    }

e. Tambahkan MYSQL JDBC Driver dengan cara klik Kanan Pada Libraries, Klik Add Library, Klik MYSQL JDBC DRiver, dan Klik Add Library

f. Membuat koding pada tombol Cancel.

this.dispose();.
g. Uji Program…

Catatan :
Hati-hati… Java CaseSensitive…

Modul 2.1 Pengolahan Data Akademik dengan menggunakan NetBeans

Latihan 2. Pengolahan Data Akademik (Input Data Mahasiswa)
Program dibawah ini dibuat dengan menggunakan NetBeans IDE 6.0 yaitu untuk mengolah data Mahasiswa.
A. Membuat Form
Karena program aplikasi Pengolahan data pada latihan 1 sudah dibuat sebelumnya maka pada saat kita membuat program untuk mengolah data Mahasiswa maka yang harus dilakukan adalah langsung pada pembuatan Form. Adapun langkah-langkahnya adalah:
1. Pastikan Project PrjMhs sudah aktif pada Netbeans. Selanjutnya Klik File pada NetBeans, lalu klik New File, dengan demikian akan ditampilkan dialog box New File.
2. Pastikan nama projectnya adalah PrjMhs, lalu klik Swing GUI Form pada Categories dan pada File Type klik JFrame Form dan selanjutnya klik tombol Next.
Gambar 2. New JFrame Form

3. Pada gambar di atas ketik nama Form pada Class Name dengan nama FrmMhs, lalu klik Finish
4. Setelah selesai membuat Form selanjutnya adalah melengkapi form dengan object-object yang ada pada Palette seperti gambar berikut :
Gambar3. Form Input Data Mahasiswa

B. Membuat Koding Program
Setelah selesai membuat form diatas selanjutnya adalah membuat koding program dengan cara klik Tombol Source.
1. Membuat pemodelan table pada konstruktor dengan cara ketik listing koding jTable1.setModel(dataModel) dibawah initComponents sehingga membentuk koding seperti di bawah ini:

public Frmmhs() {
        initComponents();
        jTable1.setModel(dataModel);
    }

2. Membuat object dengan nama dataModel, yang diketikkan tepat di bawah kurung kurawal diatas. Kodingnya adalah sebagai berikut :

private javax.swing.table.DefaultTableModel dataModel = getDefaultTabel ();

3. Membuat fungsi dengan nama getDefaultTabel adapun kodingnya adalah :

    private javax.swing.table.DefaultTableModel dataModel = getModel();
    private javax.swing.table.DefaultTableModel getModel(){
        return new javax.swing.table.DefaultTableModel(
                new Object[][]{},
                new Object[]{"NO BP","Nama","Tempat","Tanggal Lahir",
                "Jenis Kelamin","Agama","Alamat"}
        ){
            boolean canEdit[] = new boolean[]{false,false,false,
            false,false,false,false,false};
            public boolean isCellEditTable(int rowInd, int colInd){
                return canEdit[colInd];
            }
        };
    }

4. Setelah selesai membuat pemodelan table seperti diatas dan alangkah baiknya kalau koding yang diketik tidak terjadi kesalahan.
5. Selanjutnya adalah membuat koding pada tombol Tambah, yaitu dengan cara klik Design untuk kembali ke form dan dauble klik pada tombol Tambah. Setelah masuk ke koding langkah selanjutnya adalah mendefinisikan variable array yang akan digunakan untuk menampung data dari jTextField dan tambahkan satu buah variable untuk baris. Adapun bentuk koding lengkapnya adalah :

    String Data[] = new String[7];
    int row =0;
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        Data[0]=jTextField1.getText();
        Data[1]=jTextField2.getText();
        Data[2]=jTextField3.getText();
        Data[3]=jFormattedTextField1.getText();
        if (jRadioButton1.isSelected())
            Data[4]="Laki-Laki";
        else
            Data[4]="Perempuan";
        Data[4]=jComboBox1.getSelectedItem().toString();
        Data[5]=jTextField4.getText();
        dataModel.insertRow(row, Data);
    }    

6. Membuat koding pada tombol edit, Karena untuk mengedit data dari table yang harus dilakukan adalah mendouble klik data yang ada di table dan kemudian data tersebut akan pindah ke jTextField, selanjutnya proses perbaikan dilakukan, setelah selesai klik tombol edit dan data akan kembali pada table, sehingga langkah pertama yang harus dilakukan adalah klik design untuk kembalil ke Form dan klik kanan pada table, lalu klik Events, Klik Mouse dan mouseClicked, selanjutnya ketikkan listing berikut :

    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
        if (evt.getClickCount()==1){
            Tampil();
        }
    }
      public void Tampil(){
        row = jTable1.getSelectedRow();
        jTextField1.setText(dataModel.getValueAt(row, 0).toString());
        jTextField2.setText(dataModel.getValueAt(row, 1).toString());
        jTextField3.setText(dataModel.getValueAt(row, 2).toString());
        jFormattedTextField1.setText(dataModel.getValueAt(row, 3).toString());
        if (dataModel.getValueAt(row, 4).toString().equals("Laki-Laki"))
            jRadioButton1.setSelected(true);
        else
            jRadioButton1.setSelected(false);
        jComboBox1.setSelectedItem(dataModel.getValueAt(row, 5).toString());
    }

7. Kembali ke form dengan cara klik Design dan double klik tombol edit dan ketikkan listing berikut :

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        Data[0]=jTextField1.getText();
        Data[1]=jTextField2.getText();
        Data[2]=jTextField3.getText();
        Data[3]=jFormattedTextField1.getText();
        if (jRadioButton1.isSelected())
            Data[4]="Laki-Laki";
        else
            Data[4]="Perempuan";
        Data[4]=jComboBox1.getSelectedItem().toString();
        Data[5]=jTextField4.getText();
        dataModel.removeRow(row);
        dataModel.insertRow(row, Data);
    }

8. Kembali ke form dengan cara klik Design dan double klik tombol Hapus dan ketikkan listing berikut :

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        dataModel.removeRow(Row);
}

9. Dan terkahir adalah membuat koding tombol Exit dengan perintah :

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        this.dispose();
    }

Latihan 1. Membuat Input Indeks Prestasi

Modul 2.1. Pengolahan Data Akademik dengan Menggunakan NetBeans

Latihan 1. Pengolahan Data IPK Mahasiswa
Program dibawah ini dibuat dengan menggunakan NetBeans IDE 6.0 yaitu untuk mengolah data perthitungan Indeks Prestasi.
Adapun langkah-langkah pembuatannya adalah
A. Membuat Project
1. Mengaktifkan Editor Netbeans dengan cara klik, Start, All Program, Netbeans, lalu klik Netbeans 6.0 (Pastikan Netbeans sudah terinstal didalam Komputer)
2. Buatlah project baru dengan cara, klik File, New Project, pada kolom Categories pilih Java. Dan pada kolom projects pilih Java Aplication. Dan klik tombol next
3. Pada halaman Name dan Location, ketikkan nama project yang akan dibuat pada kotak Project name dengan nama PrjMhs.
4. Tentukanlah lokasi project pada kotak Project location dan folder penyimpananya pada project Folder, dengan cara klik Browse sehingga membentuk gambar berikut :

5. Apabila sudah selesai klik Tombol Finish.

B. Membuat Form
Setelah selesai membuat project seperti langkah di atas, langkah selanjutnya adalah membuat form yaitu dengan langkah-langkah :
1. Klik File pada NetBeans, lalu klik New File, dengan demikian akan ditampilkan dialog box New File.
2. Pastikan nama projectnya adalah PrjMhs, lalu klik Swing GUI Form pada Categories dan pada File Type klik JFrame Form dan selanjutnya klik tombol Next.
Gambar 2. New JFrame Form

3. Pada gambar di atas ketik nama Form pada Class Name dengan nama FrmIPK, lalu klik Finish
4. Setelah selesai membuat Form selanjutnya adalah melengkapi form dengan object-object yang ada pada Palette seperti gambar berikut :
Gambar3. Form Indeks Prestasi Komulatif

C. Membuat Koding Program
Setelah selesai membuat form diatas selanjutnya adalah membuat koding program dengan cara klik Tombol Source.
1. Membuat pemodelan table pada konstruktor dengan cara ketik listing koding jTable1.setModel(dataModel) dibawah initComponents sehingga membentuk koding seperti di bawah ini:

public Frmkhs() {
        initComponents();
        jTable1.setModel(dataModel);
    }

2. Membuat object dengan nama dataModel, yang diketikkan tepat di bawah kurung kurawal diatas. Kodingnya adalah sebagai berikut :

private javax.swing.table.DefaultTableModel dataModel = getDefaultTabel ();

3. Membuat fungsi dengan nama getDefaultTabel adapun kodingnya adalah :

    private javax.swing.table.DefaultTableModel getDefaultTabel(){
        return new javax.swing.table.DefaultTableModel(
                new Object[][]{},
                new String[]{"No BP","Nama","Kode MK",
                "Nama MK","SKS","Nilai Angka","Nilai Huruf",
                "Mutu","Jumlah Mutu"}
        ){
            boolean[] canEdit = new boolean[]{
                false,false,false,false,false,false,false,false,false};
            public boolean isCellEditTable(int rowIndex, int columnIndex){
                return canEdit[columnIndex];
            }
        };
    }

4. Setelah selesai membuat pemodelan table seperti diatas dan alangkah baiknya kalau koding yang diketik tidak terjadi kesalahan.
5. Selanjutnya adalah membuat koding pada tombol Tambah, yaitu dengan cara klik Design untuk kembali ke form dan dauble klik pada tombol Tambah. Setelah masuk ke koding langkah selanjutnya adalah mendefinisikan variable array yang akan digunakan untuk menampung data dari jTextField dan tambahkan satu buah variable untuk baris. Adapun bentuk koding lengkapnya adalah :

String Data[] = new String[9];
    int row =0;
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        Data[0]= jTextField1.getText();
        Data[1]= jTextField2.getText();
        Data[2]= jTextField3.getText();
        Data[3]= jTextField4.getText();
        Data[4]= jTextField5.getText();
        Data[5]= jTextField5.getText();
        Data[6]= jTextField5.getText();
        Data[7]= jTextField5.getText();
        Data[8]= jTextField5.getText();
        dataModel.insertRow(row, Data);
    }                                        
    

6. Membuat koding pada tombol edit, Karena untuk mengedit data dari table yang harus dilakukan adalah mendouble klik data yang ada di table dan kemudian data tersebut akan pindah ke jTextField, selanjutnya proses perbaikan dilakukan, setelah selesai klik tombol edit dan data akan kembali pada table, sehingga langkah pertama yang harus dilakukan adalah klik design untuk kembalil ke Form dan klik kanan pada table, lalu klik Events, Klik Mouse dan mouseClicked, selanjutnya ketikkan listing berikut :

    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
        // TODO add your handling code here:
        if (evt.getClickCount()==1){
            Tampil();
        }
    }
        public void Tampil(){
        row = jTable1.getSelectedRow();
        jTextField1.setText(dataModel.getValueAt(row, 0).toString());
        jTextField2.setText(dataModel.getValueAt(row, 1).toString());
        jTextField3.setText(dataModel.getValueAt(row, 2).toString());
        jTextField4.setText(dataModel.getValueAt(row, 3).toString());
        jTextField5.setText(dataModel.getValueAt(row, 4).toString());
        jTextField6.setText(dataModel.getValueAt(row, 5).toString());
        jTextField7.setText(dataModel.getValueAt(row, 6).toString());
        jTextField8.setText(dataModel.getValueAt(row, 7).toString());
        jTextField9.setText(dataModel.getValueAt(row, 8).toString());
    }

7. Kembali ke form dengan cara klik Design dan double klik tombol edit dan ketikkan listing berikut :

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        Data[0]= jTextField1.getText();
        Data[1]= jTextField2.getText();
        Data[2]= jTextField3.getText();
        Data[3]= jTextField4.getText();
        Data[4]= jTextField5.getText();
        Data[5]= jTextField5.getText();
        Data[6]= jTextField5.getText();
        Data[7]= jTextField5.getText();
        Data[8]= jTextField5.getText();
        dataModel.removeRow(row);
        dataModel.insertRow(row, Data);
    }

8. Kembali ke form dengan cara klik Design dan double klik tombol Hapus dan ketikkan listing berikut :

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        dataModel.removeRow(Row);
}

9. Membuat Rumus untuk menghitung nilai huruf, mutu dan Jumlah mutu. Untuk membuat koding tersebut yang harus dilakukan adalah kembali ke form dan double klik pada jTextField6 atau pada Nilai angka, karena untuk nilai huruf, mutu dan jumlah mutu akan diproses secara otomatis, setelah hasil didapat akan ditampilkan pada jTextField7,8,9. Adapun kodingnya adalah :

    private void jTextField6ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        String Nil="";
        int Mutu =0;
        int NilAngka = Integer.parseInt(jTextField6.getText());
        if (NilAngka > 80)    { Nil="A"; Mutu =4; }
        else if (NilAngka > 65) {   Nil="B"; Mutu =3; }
        else if (NilAngka > 55) { Nil ="C"; Mutu =2; }
        else if (NilAngka > 45) {Nil ="D";Mutu=1; }
        else
        {
            Nil="E";
            Mutu = 0;
        }
        jTextField7.setText(Nil);
        jTextField8.setText(String.valueOf(Mutu));
        int Jummut =0;
        Jummut = Integer.parseInt(jTextField5.getText())*Mutu;
        jTextField9.setText(String.valueOf(Jummut));
    }

10. Setelah selesai membuat koding diatas langkah selanjutnya adalah membuat koding untuk menghitung Nilai IPK, yaitu dengan cara kembali ke form, dan logika yang diingkan adalah pada saat kita mengklik tombol tambah maka IPK akan ditampilkan hasilnya dengan alasan tersebut, maka yang harus dilakukan adalah double klik pada tombol tambah, dan pada baris paling bawah tambahkan hitungIPK() dan dilanjutkan dengan membuat fungsi hitungIPK() adapun kodingnya adalah :

   …
   Data[7]= jTextField8.getText();
        Data[8]= jTextField9.getText();
        dataModel.insertRow(row, Data);
       hitungIPK(); 
    }                                        
public void hitungIPK(){
    double TotSKS = 0;
    double TotMut =0;
    double IPK =0;
    int totRec = jTable1.getRowCount();
    for (int i =0; i< totRec;i++){
        TotSKS = TotSKS + Double.parseDouble(
                dataModel.getValueAt(i, 4).toString());
        TotMut = TotMut + Double.parseDouble(
                dataModel.getValueAt(i, 8).toString()); 
    IPK = TotMut / TotSKS;
    jTextField10.setText(String.valueOf(IPK));
    }
}

11. Selanjutnya adalah bagaimana menampilkan maksimum SKS yang dapat diambil dengan ketentuan apabila IPK >= 3 maka maksimum SKS yang diambil adalah 24 dan untuk IPK diatas 2,5 maka SKS yang diambil adalah 22 SKS dan untuk IPK diatas 2,0 maka SKS yang dapat diambil pada semester selanjutnya adalah 20 SKS, dan dimana koding tersebut dibuat?

12. Dan terkahir adalah membuat koding tombol Exit dengan perintah :

[/sourcecode]
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.dispose();
}
[/sourcode]

Latihan 2. Membuat Input Data Mahasiswa

Modul 1. lat4

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package perpustakaan;

/**
 *
 * @author LABOR MAT
 */
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        BufferedReader InputData = new BufferedReader (new InputStreamReader(System.in));
        String NoPinjam="";
        String NamaAng="";
        String TglP ="";
        String TglT ="";
        String TglK ="";
        String Denda="";
        int JumDenda =0;
                        
        System.out.println("Inputkan No Pinjam =");
        try{
            NoPinjam = InputData.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        if (NoPinjam.equals("AAA"))
            System.out.println("Benar");
        else
            System.out.println("Salah");
        System.out.println("Input Nama Anggota =");
        try{
            NamaAng = InputData.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        System.out.println("Tanggal Pinjam =");
        try{
            TglP = InputData.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        System.out.println("Tanggal Kembali =");
        try{
            TglK = InputData.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        
        System.out.println("Denda =");
        try{
            Denda = InputData.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        String TglPP = TglP.substring(0,2);
        String TglKK = TglK.substring(0,2);
        System.out.println(TglPP);
        System.out.println(TglKK);
        int TglK1 = Integer.valueOf(TglKK).intValue();
        int TglP1 = Integer.valueOf(TglPP).intValue();
        int TglT1 =  TglP1 + 5;
        String TglT2 = String.valueOf(TglT1);
        String TglT3 = TglT2 + TglP.substring(2,8);
        int Denda1 = Integer.valueOf(Denda).intValue();
        if (TglK1 > TglT1)
            JumDenda = (TglK1 - TglT1) * Denda1;
        else
            JumDenda =0;
        System.out.println("Tanggal Tempo: "+TglT3);
        System.out.println("Denda adalah : "+JumDenda);   
    }
}

Modul 1. lat3


package prjmhsb;

/**
 *
 * @author LABOR MAT
 */
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
    public static void main(String[] args) {
        // TODO code application logic here
        BufferedReader InputData = new BufferedReader (new
                InputStreamReader(System.in));
        String Nama="";
        System.out.println("Input Nama : ");
        try{
            Nama =InputData.readLine();
        }catch(IOException e){System.out.println("error");
        }
        String Bp="";
        System.out.println("Input BP :");
        try{
            Bp = InputData.readLine();
        }catch(IOException e){System.out.println("Error");}
        
        String JuMat ="";
        System.out.println("Jumlah Matakuliah : ");
        try{
            JuMat = InputData.readLine();
        }catch(IOException e){System.out.println("Error");
        }
        //konversi string ke integer
        int Jum = Integer.valueOf(JuMat).intValue();
        // mendefinisikan variabel array
        String []MK = new String[Jum];
        String []SKS=new String[Jum];
        String []Nilai =new String[Jum];
        String []Nilhuruf = new String[Jum];
        int []mutu = new int[Jum];
        int jumMutu=0;
        int totMutu=0;
        int jumSks=0;
        int IP=0;
        
        for (int i = 0; i < Jum ; i++) 
        {
            System.out.println("Input MK :");
            try {
                MK[i]=InputData.readLine();
            }catch(IOException e){System.out.println("Error");
            }
            System.out.println("Input SKS :");
            try {
                SKS[i]=InputData.readLine();
            }catch(IOException e){System.out.println("Error");
            }
            System.out.println("Input Nilai : ");
            try{
                Nilai[i]=InputData.readLine();
            }catch(IOException e){System.out.println("error");
            }
        //Mengkondisikan Nilai angka menjadi nilai huruf
        //Konversi Nilai ke integer
            int Nilang = Integer.valueOf(Nilai[i]).intValue();
        //Logika if
                    if(Nilang > 80)
                    {Nilhuruf[i]="A";
                     mutu[i] =4;
                    }
                    else if(Nilang > 65)
                    {
                        Nilhuruf[i]="B";
                        mutu[i]=3;
                    }
                    else if(Nilang >55)
                    {
                        Nilhuruf[i]="C";
                        mutu[i]=2;
                    }
                    else if(Nilang >45)
                    {
                        Nilhuruf[i]="D";
                        mutu[i]=1;
                    }
                    else
                    {
                        Nilhuruf[i]="E";
                        mutu[i]=0;
                    }
            //Jumlah mutu
            int sks = Integer.valueOf(SKS[i]).intValue();
            
        jumMutu  = sks * mutu[i];
        //total JumMutu
        totMutu = totMutu + jumMutu;
                //total SKS
        jumSks = jumSks + sks;
        }
        IP = totMutu/jumSks;
                
        // menampilkan data
        System.out.println("Nama :" + Nama);
        System.out.println("BP   :" + Bp);
        System.out.println("Jumlah MK "+Jum);
        System.out.println("-------------------------------------------");
        System.out.println("No.  Nama MK   SKS    Nilai Angka Nilai Huruf Mutu");
        System.out.println("-------------------------------------------");
        for (int i = 0;i<Jum;i++) 
        {
            System.out.println((i+1)+" "+ MK[i] +" "+ SKS[i]+" "+ Nilai[i] +" "+mutu[i]);
        }
        System.out.println("Indeks Prestasi : " +IP);

}}

Modul 1. lat2

package latihan2;

/**
 *
 * @author Ahmad Rizal Abidin, M.Kom
 */
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

class variabel{
    String Nofak ="";
    String Tgl ="";
    String Nm ="";
    String Alm ="";
    String jum ="";
}
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        BufferedReader InputD = new BufferedReader (new InputStreamReader(System.in));
        variabel Faktur=new variabel();
        System.out.println("Input Nofak : ");
        try{
            Faktur.Nofak = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        System.out.println("Input Tanggal : ");
        try{
            Faktur.Tgl = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        System.out.println("Input Nama : ");
        try{
            Faktur.Nm = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        System.out.println("Alamat : ");
        try{
            Faktur.Alm = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        System.out.println("Jumlah : ");
        try{
            Faktur.jum = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        int Jumlah =Integer.valueOf(Faktur.jum).intValue();
        //mendefinisikan Variabel Array
        String []kdBrg = new String[Jumlah];
        String []nmBrg = new String[Jumlah];
        String []hrgBrg = new String[Jumlah];
        String []jumBrg = new String[Jumlah];
        String []jumHrg = new String[Jumlah];
        

        for (int i = 0;i < Jumlah;i++)
        {
        System.out.println("Input Kode Barang : ");
        try{
            kdBrg[i] = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        
        System.out.println("Input Nama Barang :");
        try{
            nmBrg[i] = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
     
        System.out.println("Input Harga :");
        try{
            hrgBrg[i] = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }

        System.out.println("Jumlah Barang :");
        try{
            jumBrg[i] = InputD.readLine();
        }catch(IOException e){
            System.out.println("Error");
        }
        
                
        }
        System.out.println("Faktur Pembelian Barang");
        System.out.println("Nomor Faktur   :"+Faktur.Nofak);
        System.out.println("Tanggal        :"+Faktur.Tgl);
        System.out.println("Nama Pembeli   :"+Faktur.Nm);
        System.out.println("Alamat Pembeli :"+Faktur.Alm);
        for (int i=0;i<Jumlah;i++)
        {
        int hargaBarang = Integer.valueOf(hrgBrg[i]).intValue(); 
        int jumlahBarang = Integer.valueOf(jumBrg[i]).intValue();
        //int jumlahHarga = Integer.valueOf(jumHrg[i]).intValue();
        int jumlahHarga = hargaBarang * jumlahBarang;    
            System.out.println(kdBrg[i]+" "+nmBrg[i]+" "+hrgBrg[i]+"  "+jumBrg[i]+" "+jumlahHarga);
            
        }
    }
}

Modul 1. Lat1

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package latihan1;
class Mahasiswa{
    //variabel instan
    String nama;
    //metode
    void isiData(String nama){
        this.nama =nama;
    }
    String ambilNama(){
        return this.nama;
    }
}
/**
 *
 * @author Arya danu
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Mahasiswa mhs = new Mahasiswa();
        //Mengisi variabel instan
        mhs.isiData("Ahmad Rizal Abidin");
        
        //menamp;ilkan nama siswa via metode
        System.out.println("Nama : " + mhs.ambilNama());
        
        //menampilkan nama siswa via variabel
        System.out.println("nama : " + mhs.nama);
    }
}

Membuat Menu Utama dengan NetBeans