65
LISTING PROGRAM package app.maximumflow;
import java.awt.BorderLayout; import java.awt.EventQueue;
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; import javax.swing.JLabel; import javax.swing.ImageIcon;
import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.Color; import java.awt.Font;
import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.JPasswordField; import javax.swing.JButton;
Universitas Sumatera Utara
66
import net.java.balloontip.BalloonTip;
import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.sql.Blob; import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger;
import javax.swing.JScrollPane; import javax.swing.JTable;
import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.awt.Toolkit; import java.io.File; import java.io.FileInputStream;
public class MaxFlow extends JFrame {
Universitas Sumatera Utara
67
private JPanel contentPane; private JLabel lblBackgrond; private JPanel panel; private JLabel label_1; private JLabel lblVari1; private JButton btnUpdate; private JButton btnKeluar; private JTextField txtVar1; private BalloonTip tooltip; private JTextField txtVar2; private JLabel lblVariabel; private JTextField txtVar3; private JLabel lblVariabel_1; private JLabel lblHasil; private JTextField txtNilaiTerkecil; private JScrollPane scrTabel; private JTable table; DefaultTableModel tabelModel; String data[] = { "U", "V","W","X","Y", "Nilai.Min" }; private JButton btnHit; private JLabel lblNilaiMax; private JTextField txtNilaiMax; private JButton btnUpdateV; private JButton btnUpdateW;
Universitas Sumatera Utara
68
private JButton btnHitung; private JTextField txtVar4; private JLabel lblX; private JButton btnUpdateX; private JTextField txtVar5; private JLabel lblY; private JButton btnUpdateY; private JLabel label; private JLabel label_2; private JFileChooser fc = new JFileChooser(); Blob blob; BufferedImage img; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { MaxFlow frame = new MaxFlow(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); }
Universitas Sumatera Utara
69
} }); }
/** * Create the frame. */ public MaxFlow() {
setIconImage(Toolkit.getDefaultToolkit().getImage(MaxFlow.class.getRes ource("/img/sl.png"))); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 417, 470); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); setLocationRelativeTo(null);
JPanel panel_1 = new JPanel(); panel_1.setBackground(Color.BLACK); panel_1.setBounds(0, 434, 571, 10); contentPane.add(panel_1);
Universitas Sumatera Utara
70
txtVar1 = new JTextField(); txtVar1.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) {
btnHit.setEnabled(false); btnHitung.setEnabled(true); }
}); txtVar1.requestFocus(); txtVar1.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { tooltip = new BalloonTip(txtVar1, "Masukan kapasitas"); } @Override public void focusLost(FocusEvent e) { tooltip.closeBalloon(); } }); txtVar1.setForeground(Color.WHITE);
Universitas Sumatera Utara
71
txtVar1.setBackground(Color.BLACK); txtVar1.setBounds(50, 101, 46, 25); contentPane.add(txtVar1); txtVar1.setColumns(10);
JLabel lblUsername = new JLabel("Proses langkah setiap iterasi pada maximum-flow :"); lblUsername.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblUsername.setForeground(Color.WHITE); lblUsername.setBounds(25, 248, 302, 25); contentPane.add(lblUsername);
lblVari1 = new JLabel("U :"); lblVari1.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblVari1.setForeground(Color.WHITE); lblVari1.setBounds(25, 101, 69, 25); contentPane.add(lblVari1);
btnUpdate = new JButton("Update"); btnUpdate.setEnabled(false); btnUpdate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { int a,b,c;
Universitas Sumatera Utara
72
//mengambil nilai string txt1 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a a = Integer.parseInt(txtVar1.getText()); //mengambil nilai string txt1 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a b = Integer.parseInt(txtNilaiTerkecil.getText()); //menjumlahkan variabel a dan b kemudian menampungnya di variabel c c = a-b; //mengubah data integer ke string di variabel hasil String hasil = String.valueOf(c); //menampilkan string hasil di label Hasil txtVar1.setText(hasil); btnHit.setEnabled(true); btnHitung.setEnabled(false); } }); btnUpdate.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); btnUpdate.setForeground(new Color(255, 255, 255)); btnUpdate.setBackground(new Color(0, 0, 0)); btnUpdate.setBounds(108, 101, 86, 25); contentPane.add(btnUpdate);
btnUpdateV = new JButton("Update");
Universitas Sumatera Utara
73
btnUpdateV.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int a,b,c; //mengambil nilai string txt2 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a a = Integer.parseInt(txtVar2.getText()); //mengambil nilai string txt2 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a b = Integer.parseInt(txtNilaiTerkecil.getText()); //menjumlahkan variabel a dan b kemudian menampungnya di variabel c c = a-b; //mengubah data integer ke string di variabel hasil String hasil = String.valueOf(c); //menampilkan string hasil di label Hasil txtVar2.setText(hasil); } }); btnUpdateV.setEnabled(false); btnUpdateV.setForeground(Color.WHITE); btnUpdateV.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); btnUpdateV.setBackground(Color.BLACK); btnUpdateV.setBounds(108, 138, 86, 25);
Universitas Sumatera Utara
74
contentPane.add(btnUpdateV);
btnUpdateW = new JButton("Update"); btnUpdateW.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int a,b,c; //mengambil nilai string txt3 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a a = Integer.parseInt(txtVar3.getText()); //mengambil nilai string txt3 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a b = Integer.parseInt(txtNilaiTerkecil.getText()); //menjumlahkan variabel a dan b kemudian menampungnya di variabel c c = a-b; //mengubah data integer ke string di variabel hasil String hasil = String.valueOf(c); //menampilkan string hasil di label Hasil txtVar3.setText(hasil); } }); btnUpdateW.setEnabled(false); btnUpdateW.setForeground(Color.WHITE);
Universitas Sumatera Utara
75
btnUpdateW.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); btnUpdateW.setBackground(Color.BLACK); btnUpdateW.setBounds(287, 101, 77, 25); contentPane.add(btnUpdateW);
lblVariabel = new JLabel("V :"); lblVariabel.setForeground(Color.WHITE); lblVariabel.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblVariabel.setBounds(25, 139, 18, 25); contentPane.add(lblVariabel);
txtVar2 = new JTextField(); txtVar2.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { tooltip = new BalloonTip(txtVar2, "Masukan kapasitas"); } @Override public void focusLost(FocusEvent e) { tooltip.closeBalloon(); }
Universitas Sumatera Utara
76
}); txtVar2.setForeground(Color.WHITE); txtVar2.setColumns(10); txtVar2.setBackground(Color.BLACK); txtVar2.setBounds(50, 139, 46, 25); contentPane.add(txtVar2);
lblVariabel_1 = new JLabel("W :"); lblVariabel_1.setForeground(Color.WHITE); lblVariabel_1.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblVariabel_1.setBounds(206, 101, 27, 25); contentPane.add(lblVariabel_1);
txtVar3 = new JTextField(); txtVar3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
} }); txtVar3.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) {
Universitas Sumatera Utara
77
tooltip = new BalloonTip(txtVar3, "Masukan kapasitas"); } @Override public void focusLost(FocusEvent e) { tooltip.closeBalloon(); } }); txtVar3.setForeground(Color.WHITE); txtVar3.setColumns(10); txtVar3.setBackground(Color.BLACK); txtVar3.setBounds(229, 101, 46, 25); contentPane.add(txtVar3);
lblHasil = new JLabel("Mencari Nilai Mininum :"); lblHasil.setForeground(Color.WHITE); lblHasil.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblHasil.setBounds(25, 213, 147, 25); contentPane.add(lblHasil);
txtNilaiTerkecil = new JTextField(); txtNilaiTerkecil.setEnabled(false); txtNilaiTerkecil.setForeground(Color.WHITE); txtNilaiTerkecil.setColumns(10);
Universitas Sumatera Utara
78
txtNilaiTerkecil.setBackground(Color.BLACK); txtNilaiTerkecil.setBounds(175, 213, 69, 25); contentPane.add(txtNilaiTerkecil);
btnHit = new JButton("Iterasi[n]"); btnHit.setEnabled(false); btnHit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Vector
baris=new Vector(6); baris.add(txtVar1.getText()); baris.add(txtVar2.getText()); baris.add(txtVar3.getText()); baris.add(txtVar4.getText()); baris.add(txtVar5.getText()); baris.add(txtNilaiTerkecil.getText()); tabelModel.addRow(baris); // NoIterasi(); hitMax(); bersihkan();
} }); btnHit.setForeground(Color.WHITE); btnHit.setFont(new Font("Comic Sans MS", Font.BOLD, 12));
Universitas Sumatera Utara
79
btnHit.setBackground(Color.BLACK); btnHit.setBounds(259, 213, 105, 25); contentPane.add(btnHit);
lblNilaiMax = new JLabel("Nilai Maximum :"); lblNilaiMax.setForeground(Color.WHITE); lblNilaiMax.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblNilaiMax.setBounds(28, 394, 100, 25); contentPane.add(lblNilaiMax);
txtNilaiMax = new JTextField(); txtNilaiMax.setEnabled(false); txtNilaiMax.setForeground(Color.WHITE); txtNilaiMax.setColumns(10); txtNilaiMax.setBackground(Color.BLACK); txtNilaiMax.setBounds(133, 394, 125, 25); contentPane.add(txtNilaiMax);
btnHitung = new JButton("Hitung"); btnHitung.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
int n1=(Integer.parseInt(txtVar1.getText()));
Universitas Sumatera Utara
80
int n2= (Integer.parseInt(txtVar2.getText())); int n3= (Integer.parseInt(txtVar3.getText())); // int n4= (Integer.parseInt(txtVar4.getText())); //int n5= (Integer.parseInt(txtVar5.getText())); int[] nilai = {n1,n2,n3};
int min=1000;
for (int a = 0; a < nilai.length;a++){ //System.out.println("1."+a); if (nilai[a] < min){ //System.out.println("2."+a); min=nilai[a]; //System.out.println("3."+a); } }
txtNilaiTerkecil.setText("" + min);
aktifkan(); } }); btnHitung.setForeground(Color.WHITE); btnHitung.setFont(new Font("Comic Sans MS", Font.BOLD, 12));
Universitas Sumatera Utara
81
btnHitung.setBackground(Color.BLACK); btnHitung.setBounds(224, 175, 140, 25); contentPane.add(btnHitung);
scrTabel = new JScrollPane(); scrTabel.setBackground(new Color(60, 179, 113)); scrTabel.setBounds(25, 275, 340, 107); contentPane.add(scrTabel);
tabelModel = new DefaultTableModel(null, data); table = new JTable(); table.setBackground(Color.WHITE); table.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent me) { int pilih = table.getSelectedRow(); if (pilih < 0) { return; }
String var1 = (String) tabelModel.getValueAt(pilih, 0); txtVar1.setText(var1);
Universitas Sumatera Utara
82
String var2 = (String) tabelModel.getValueAt(pilih, 1); txtVar2.setText(var2); String var3 = (String) tabelModel.getValueAt(pilih, 2); txtVar3.setText(var3); String var4 = (String) tabelModel.getValueAt(pilih, 3); txtVar4.setText(var4); String var5 = (String) tabelModel.getValueAt(pilih, 4); txtVar5.setText(var5); String hasil = (String) tabelModel.getValueAt(pilih, 5); txtNilaiTerkecil.setText(hasil);
} }); table.setModel(tabelModel); scrTabel.setViewportView(table);
btnKeluar = new JButton("Keluar"); btnKeluar.setBounds(278, 394, 86, 25); contentPane.add(btnKeluar);
Universitas Sumatera Utara
83
btnKeluar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Keluar();
} }); btnKeluar.setForeground(Color.WHITE); btnKeluar.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); btnKeluar.setBackground(Color.BLACK);
lblX = new JLabel("X :"); lblX.setForeground(Color.WHITE); lblX.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblX.setBounds(206, 138, 27, 25); contentPane.add(lblX);
txtVar4 = new JTextField(); txtVar4.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { tooltip = new BalloonTip(txtVar4, "Masukan kapasitas"); } @Override
Universitas Sumatera Utara
84
public void focusLost(FocusEvent e) { tooltip.closeBalloon(); } }); txtVar4.setForeground(Color.WHITE); txtVar4.setColumns(10); txtVar4.setBackground(Color.BLACK); txtVar4.setBounds(229, 138, 46, 25); contentPane.add(txtVar4);
btnUpdateX = new JButton("Update"); btnUpdateX.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int a,b,c; //mengambil nilai string txt4 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a a = Integer.parseInt(txtVar4.getText()); //mengambil nilai string txt4 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a b = Integer.parseInt(txtNilaiTerkecil.getText()); //menjumlahkan variabel a dan b kemudian menampungnya di variabel c c = a-b; //mengubah data integer ke string di variabel hasil
Universitas Sumatera Utara
85
String hasil = String.valueOf(c); //menampilkan string hasil di label Hasil txtVar4.setText(hasil); } }); btnUpdateX.setForeground(Color.WHITE); btnUpdateX.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); btnUpdateX.setEnabled(false); btnUpdateX.setBackground(Color.BLACK); btnUpdateX.setBounds(287, 138, 77, 25); contentPane.add(btnUpdateX);
lblY = new JLabel("Y :"); lblY.setForeground(Color.WHITE); lblY.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblY.setBounds(25, 176, 27, 25); contentPane.add(lblY);
txtVar5 = new JTextField(); txtVar5.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) {
Universitas Sumatera Utara
86
tooltip = new BalloonTip(txtVar5, "Masukan kapasitas"); } @Override public void focusLost(FocusEvent e) { tooltip.closeBalloon(); } }); txtVar5.setForeground(Color.WHITE); txtVar5.setColumns(10); txtVar5.setBackground(Color.BLACK); txtVar5.setBounds(50, 176, 46, 25); contentPane.add(txtVar5);
btnUpdateY = new JButton("Update"); btnUpdateY.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int a,b,c; //mengambil nilai string txt5 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a a = Integer.parseInt(txtVar5.getText()); //mengambil nilai string txt5 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a b = Integer.parseInt(txtNilaiTerkecil.getText());
Universitas Sumatera Utara
87
//menjumlahkan variabel a dan b kemudian menampungnya di variabel c c = a-b; //mengubah data integer ke string di variabel hasil String hasil = String.valueOf(c); //menampilkan string hasil di label Hasil txtVar5.setText(hasil); } }); btnUpdateY.setForeground(Color.WHITE); btnUpdateY.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); btnUpdateY.setEnabled(false); btnUpdateY.setBackground(Color.BLACK); btnUpdateY.setBounds(108, 175, 86, 25); contentPane.add(btnUpdateY);
lblBackgrond = new JLabel(""); lblBackgrond.setIcon(new ImageIcon(Main.class.getResource("/img/wallpaper-blankonaseli212.png"))); lblBackgrond.setBounds(0, 86, 415, 346); contentPane.add(lblBackgrond);
panel = new JPanel();
Universitas Sumatera Utara
88
panel.setBackground(Color.BLACK); panel.setBounds(0, 0, 571, 89); contentPane.add(panel); panel.setLayout(null);
label_1 = new JLabel(""); label_1.setIcon(new ImageIcon(Main.class.getResource("/img/usu.png"))); label_1.setBounds(12, 0, 81, 91); panel.add(label_1);
label = new JLabel("SIMULASI PIPA AIR MENGGUNAKAN \n"); label.setForeground(Color.WHITE); label.setFont(new Font("Comic Sans MS", Font.BOLD, 14)); label.setBounds(105, 12, 288, 37); panel.add(label);
label_2 = new JLabel("ALGORITMA MAXIMUM-FLOW"); label_2.setForeground(Color.WHITE); label_2.setFont(new Font("Comic Sans MS", Font.BOLD, 14)); label_2.setBounds(105, 40, 255, 37); panel.add(label_2);
Universitas Sumatera Utara
89
}
void Keluar(){ try { int reply = JOptionPane.showConfirmDialog (this, "Yakin Mau Logout?", "Sistem - Keluar", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if (reply == JOptionPane.YES_OPTION) { setVisible (false);
//Menyembunyikan
Frame. dispose();
//Membersihkan Resource dari
system memori
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Membebaskan aplikasi dari memori //System.exit (0);
//Keluar dari Aplikasi.
} } catch (Exception ex) { System.out.println(ex); } }
Universitas Sumatera Utara
90
void hitMax(){ int jumlahBaris = tabelModel.getRowCount(); int x = 0; int y; for (int i=0; i<jumlahBaris; i++){ y = Integer.parseInt(tabelModel.getValueAt(i, 5).toString()); x = x + y; } txtNilaiMax.setText(String.valueOf(x)); }
void bersihkan(){ txtVar1.setText(""); txtVar2.setText(""); txtVar3.setText(""); txtVar4.setText(""); txtVar5.setText(""); txtNilaiTerkecil.setText(""); txtVar1.requestFocus(); }
void NoIterasi(){ int brs = tabelModel.getRowCount();
Universitas Sumatera Utara
91
for(int i=0;i
public static Object neighbors(int x, int[][] capacities) { // TODO Auto-generated method stub return null; }
void aktifkan(){ btnUpdate.setEnabled(true); btnUpdateV.setEnabled(true); btnUpdateW.setEnabled(true); btnUpdateX.setEnabled(true); btnUpdateY.setEnabled(true); btnHitung.setEnabled(false); }
}
Universitas Sumatera Utara
92
CURRICULUM VITAE
Nama
: NURUL HIKMAH NASUTION
Alamat Sekarang : Jalan Perjuangan No 18 C, Kec. Setia Budi Kota Medan Alamat Orang Tua : Jalan Printis Kemerdekaan Kec.Lima Puluh
Kel.Empat Negri
Dusun VII No 12. Kab.Batu Bara Telp/ HP
: 087868761654
Email
: [email protected]
Riwayat Pendidikan: 1998 – 2004 MADRASAH IBTIDAIYAH NEGRI(MIN) KUALA GUNUNG 2004 – 2007 MADRASAH TSANAWIYAH(MTS) CIPTA SIMPANG DOLOK 2007 – 2010 MADRASAH ALIYAH NEGRI(MAN) LIMA PULUH
Keahlian/kursus yang diikuti: Keahlian Bahasa Pemrograman: - Berbasis Dekstop: Java, Matlab, - Database: MySQL - Design : Photoshop, Kursus: -Pemrograman, database MySQL, C++, Java, Microsoft Office
Universitas Sumatera Utara
93
Universitas Sumatera Utara