IKG2I4 / Software Project I Mahmud Imrona, M.T. Izzatul Ummah, M.T. Kelompok Keahlian Algoritma dan Komputasi
LECTURE NOTE WEEK 8
1
3/11/2015
WEEK 8 Graphical User Interface (GUI) – AWT – Swing
OOP menggunakan C++
2
3/11/2015
IKG2I4 – Software Project I
SIMPLE GUI class Driver { public static void main(String[] args) { // fr1, cont, bOk nama-nama objek jadi bebas JFrame fr = new JFrame("Ini aplikasi Java Swing"); fr.setSize(500,500); Container cont = fr.getContentPane(); JButton bOK = new JButton("Ini tombol OK"); cont.add(bOK); fr.setVisible(true); fr.pack(); } } 3
3/11/2015
IKG2I4 – Software Project I
SIMPLE GUI
4
3/11/2015
IKG2I4 – Software Project I
FLOW LAYOUT class Driver { public static void main(String[] args) { JFrame fr1 = new JFrame("Ini aplikasi Java-ku yang pertama"); fr1.setSize(500,500); Container cont = fr1.getContentPane(); cont.setLayout(new FlowLayout()); JButton bOK = new JButton("Ini tombol OK"); cont.add(bOK); JButton bCancel = new JButton("Ini tombol Cancel"); cont.add(bCancel); fr1.setVisible(true); } } 5
3/11/2015
IKG2I4 – Software Project I
FLOW LAYOUT
6
3/11/2015
IKG2I4 – Software Project I
FLOW LAYOUT Container cont = fr1.getContentPane(); cont.setLayout(new FlowLayout()); JLabel lbNama = new JLabel("Nama : "); cont.add(lbNama); JTextField txNama = new JTextField(10); cont.add(txNama); JLabel lbUmur = new JLabel("Umur : "); cont.add(lbUmur); JTextField txUmur = new JTextField(3); cont.add(txUmur); JButton bOK = new JButton("OK"); cont.add(bOK); JButton bCancel = new JButton("Cancel"); cont.add(bCancel);
7
3/11/2015
IKG2I4 – Software Project I
FLOW LAYOUT
8
3/11/2015
IKG2I4 – Software Project I
GUI UNTUK CLASS SEGIEMPAT Container cont = fr1.getContentPane(); cont.setLayout(new FlowLayout()); JLabel lbPanjang = new JLabel("Panjang : "); cont.add(lbPanjang); JTextField txPanjang = new JTextField(3); cont.add(txPanjang); JLabel lbLebar = new JLabel("Lebar : "); cont.add(lbLebar); JTextField txLebar = new JTextField(3); cont.add(txLebar); JButton bNew = new JButton("New Segiempat"); cont.add(bNew);
9
3/11/2015
IKG2I4 – Software Project I
GUI UNTUK CLASS SEGIEMPAT
10
3/11/2015
IKG2I4 – Software Project I
CLASS SEGIEMPAT + EVENTHANDLER ActionListener actListener = new ActionListener(){ public void actionPerformed(ActionEvent evt){ String strPanjang = txPanjang.getText(); String strLebar = txLebar.getText(); int panjang = Integer.parseInt(strPanjang); int lebar = Integer.parseInt(strLebar); Segiempat se = new Segiempat(panjang,lebar); se.printAttribute(); System.out.println("Luas = "+se.hitungLuas()); System.out.println("Keliling = "+se.hitungKeliling()); lbAttribute.setText("Panjang="+se.getPanjang()+".Lebar="+se.getLebar()); lbLuasKeliling.setText("Luas="+se.hitungLuas()+".Keliling="+se.hitungKelili ng()); } }; bNew.addActionListener(actListener);
11
3/11/2015
IKG2I4 – Software Project I
CLASS SEGIEMPAT + EVENTHANDLER
12
3/11/2015
IKG2I4 – Software Project I
OOP menggunakan C++ using namespace std; class Segiempat{ private: int panjang; int lebar; public: Segiempat(); Segiempat(int p, int l); ~Segiempat(); int getPanjang(); void setPanjang(int p); int getLebar(); void setLebar(int l); void printInfo(); int hitungLuas(); int hitungKeliling(); 13 3/11/2015 };
IKG2I4 – Software Project I
OOP menggunakan C++ Segiempat::Segiempat(){ panjang = 0; lebar = 0; } Segiempat::Segiempat(int p, int l){ panjang = p; lebar = l; } Segiempat::~Segiempat(){ cout << "Ini adalah destructor (lawan dari constructor), yaitu untuk melakukan dealokasi memory (free memory)."; }
14
3/11/2015
IKG2I4 – Software Project I
OOP menggunakan C++ int Segiempat::getPanjang(){ return panjang; } void Segiempat::setPanjang(int p){ panjang = p; } int Segiempat::getLebar(){ return lebar; } void Segiempat::setLebar(int l){ lebar = l; }
15
3/11/2015
IKG2I4 – Software Project I
OOP menggunakan C++ void Segiempat::printInfo(){ cout << "Panjang = " << panjang << "\n"; cout << "Lebar = " << lebar << "\n"; } int Segiempat::hitungLuas(){ return panjang*lebar; } int Segiempat::hitungKeliling(){ return 2*(panjang+lebar); }
16
3/11/2015
IKG2I4 – Software Project I
OOP menggunakan C++ Pemanggilan di dalam main: int main(){ cout << "OBJECT ORIENTED PROGRAMMING DENGAN C++\n"; Segiempat se(7,4); se.printInfo(); cout << "Luas = " << se.hitungLuas() << "\n"; cout << "Keliling = " << se.hitungKeliling() << "\n"; return 0; }
17
3/11/2015
IKG2I4 – Software Project I
INPUT OUTPUT C++: cin, cout int main(){ cout << "PROGRAM C++ UNTUK MENERIMA INPUTAN DARI KEYBOARD.\n"; int x; cout << "Masukkan sebuah angka integer: "; cin >> x; cout << "Angka yang Anda masukkan adalah: " << x << "\n"; cout << "Kuadrat dari angka tersebut adalah: " << x*x << "\n"; float y; cout << "Masukkan sebuah angka float: "; cin >> y; cout << "Angka yang Anda masukkan adalah: " << y << "\n"; cout << "Kuadrat dari angka tersebut adalah: " << y*y << "\n"; 18
3/11/2015
IKG2I4 – Software Project I
INPUT OUTPUT C++: cin, cout char c; cout << "Masukkan sebuah karakter: "; cin >> c; cout << "Karakter yang Anda masukkan adalah: " << c << "\n"; char str[255]; cout << "Masukkan sebuah string (maksimal 255 huruf, tanpa spasi, boleh ada _ atau - ): "; cin >> str; cout << "String yang Anda masukkan adalah: " << str << "\n"; return 0; }
19
3/11/2015
IKG2I4 – Software Project I
INHERITANCE: BALOK-SEGIEMPAT class Balok : public Segiempat{ private: int tinggi; public: Balok(); Balok(int p, int l, int t); ~Balok(); int getTinggi(); void setTinggi(int t); void printInfo(); int hitungVolume(); int hitungLuasPermukaan(); };
20
3/11/2015
IKG2I4 – Software Project I
RELASI ANTAR CLASS: TITIK-GARIS class Garis { private: Titik tAwal; Titik tAkhir; public: Garis(); Garis(Titik t1, Titik t2); ~Garis(); Titik getTAwal(); void setTAwal(Titik t); Titik getTAkhir(); void setTAkhir(Titik t); void printInfo(); int hitungPanjang(); float hitungGradien(); }; 21
3/11/2015
IKG2I4 – Software Project I
AGREGASI DENGAN ARRAY class Poligon { private: Titik arrT[10]; int NEff; public: Poligon(); ~Poligon(); void addTitik(Titik t); void printArrayTitik(); };
22
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU) Kerjakan class diagram yang diberikan pada halaman berikutnya, dengan menggunakan C++ !!
23
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
24
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
25
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
26
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
27
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
28
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
29
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
30
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
31
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
32
3/11/2015
IKG2I4 – Software Project I
THANK YOU