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
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
SIMPLE GUI 4 3/11/2015
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
FLOW LAYOUT 6 3/11/2015
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
FLOW LAYOUT 8 3/11/2015
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
GUI UNTUK CLASS SEGIEMPAT 10 3/11/2015
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
CLASS SEGIEMPAT + EVENTHANDLER 12 3/11/2015
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
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
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
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
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
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
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
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
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
AGREGASI DENGAN ARRAY class Poligon { private: Titik arrt[10]; int NEff; public: Poligon(); ~Poligon(); void addtitik(titik t); void printarraytitik(); ; 22 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) Kerjakan class diagram yang diberikan pada halaman berikutnya, dengan menggunakan C++!! 23 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 24 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 25 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 26 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 27 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 28 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 29 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 30 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 31 3/11/2015
TUGAS PEKAN INI (TUGAS INDIVIDU) 32 3/11/2015
THANK YOU