IKG2I4 / Software Project I Mahmud Imrona, M.T. Izzatul Ummah, M.T. Kelompok Keahlian Algoritma dan Komputasi
LECTURE NOTE WEEK 1
1
3/11/2015
WEEK 1 Aturan/Deskripsi Perkuliahan. Konsep dasar OOP. Class diagram. Pengenalan Java.
2
3/11/2015
IKG2I4 – Software Project I
ATURAN/DESKRIPSI PERKULIAHAN Software Project adalah matakuliah yang “unik”, karena kuliah ini pada dasarnya bersifat praktis, mahasiswa disarankan untuk mengeksplorasi teknologi pengembangan perangkat lunak secara mandiri. Proses pengerjaan tugas besar akan lebih cepat bila mahasiswa mau belajar sendiri materi-materi yang dibutuhkan, tanpa perlu menunggu diajarkan oleh dosen.
3
3/11/2015
IKG2I4 – Software Project I
SKEMA PENILAIAN Weekly Assignment, Quiz, Keaktifan: 20% Ujian Tengah Semester: 30% – Materi: Inheritance, Agregasi-Array, Abstract & Interface. – Mekanisme UTS: Ujian berupa praktek implementasi coding menggunakan laptop masing-masing (tidak ada ujian teori). Soal diberikan berupa class diagram. – Sifat UTS: open book, open all resources (boleh buka ebook/slide/Internet dsb, tapi tidak boleh chatting).
Project (kelompok): 50%
4
3/11/2015
IKG2I4 – Software Project I
ATURAN/DESKRIPSI PERKULIAHAN Mencontek atau copy-paste dari teman saat UTS mengakibatkan nilai E. Ketidakhadiran ketika presentasi tugas besar mengakibatkan nilai nol untuk Project. Pada kuliah ini, mahasiswa diharapkan mencari real user/client untuk pengerjaan tugas besar. Dosen selain berperan sebagai pengajar juga bertindak sebagai user/client, di mana dosen dapat menambah requirement baru, perubahan, atau perbaikan pada software tugas besar.
5
3/11/2015
IKG2I4 – Software Project I
RENCANA PERKULIAHAN Week 1: konsep OOP, class diagram, Java Week 2: class Driver, private/public, get/set Week 3: inheritance, overriding, overloading Week 4: relasi antarkelas Week 5: relasi antarkelas menggunakan array Week 6: abstract class, interface, exception Week 7: JAVA API DOCS, Java Library, IO Stream 6
3/11/2015
IKG2I4 – Software Project I
RENCANA PERKULIAHAN Week 8: Graphical User Interface, OOP with C++ Week 9: ER Model, Query sederhana Week 10: Query SQL (menggunakan Oracle) Week 11: Query SQL (menggunakan Oracle) Week 12: JDBC, GUI dan IDE Week 13: presentasi project Week 14: presentasi project 7
3/11/2015
IKG2I4 – Software Project I
REFERENSI Jacquie Barker. Beginning Java Object: From Concept to Code. Apress Publisher. Deitel & Deitel. Java™ How to Program, 6th, Prentice Hall. Head First Java by Bert Bates and Kathy Sierra, O'Reilly Manual dan tutorial: JDK 7 API DOCS Oracle documentation MySQL documentation GOOGLE, YOUTUBE, programmer forums, etc. – http://www.tutorialspoint.com/computer_programming_tutorials.htm
8
3/11/2015
IKG2I4 – Software Project I
WHY WE STUDY OOP? OOP is the most emerging technique in the world’s of programming Important for large/economic scale of software development: – Works with large group of team (programmer)
Nature OOP: easy to learn, easy to use (high reusability), minimalize coding error
9
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Paradigma pemrograman yang berusaha mendekati dunia nyata. Berorientasi pada aktor/pelaku, di mana masingmasing dapat memiliki sifat (atribut/properties) dan dapat melakukan hal-hal spesifik yang sudah ditentukan (methods) Everything in OOP is object.
10
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Object Oriented Programming adalah paradigma pemrograman modern di mana setiap entitas di dalam sistem diidentifikasi sebagai object yang memiliki data (atribut/state) dan fungsi yang bisa dikerjakan (method/behavior). Identifikasi ini digambarkan terlebih dahulu dalam sebuah class. Class adalah abstraksi atau blueprint (bentuk dasar) dari sekumpulan entitas-entitas yang memiliki kesamaan. Class bisa juga dipahami sebagai kelompok, atau hasil pengelompokan (kategori). 11
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Langkah-langkah pemodelan object oriented: – Langkah pertama: Identifikasi entitas apa saja yang harus ada, siapa aktor/pelaku (role)? (Subjek) Ini jadi Class Berupa kata benda
– Apa sifat/elemen masing2 benda/aktor? Ini jadi Property Berupa kata benda atau kata sifat
– Benda/aktor itu bisa melakukan apa saja? (Predikat) Ini jadi Methods (kalau di C/C++ ini adalah prosedur/fungsi) Biasanya berupa kata kerja 12
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Contoh 1: – Class: Manusia – Property/Attribute: nama, umur, gender, kebangsaan, warnakulit, warna rambut, warna iris mata – Method: lahir, berjalan, berlari, berdiri, tidur, makan, berpikir, berbicara, tertawa, menangis, tersenyum, marah, berbohong, mati.
Contoh 2: – Class: Hewan – Property/Attribute: umur, gender – Method: lahir, makan, tidur, berlari, mati. 13
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Contoh 3: – Class: Makhluk Hidup – Property/Attribute: umur, jumlah sel – Method: lahir, mati.
Class Manusia dan Hewan pasti termasuk di dalam kelompok Class Makhluk Hidup – Dibahas lebih jauh di Inheritance – Ingat konsep Phyllum/Divisio (pembagian divisio,class,ordo, family,genus,species) pada Biologi, maka kelas juga bisa dibuat bertingkat-tingkat dalam superclass-subclass. 14
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP
15
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Perhatikan ruang kelas tempat kita belajar. Ada banyak entitas di dalam ruang kelas itu, baik benda mati ataupun makhluk hidup. Bila kita identifikasi, terdapat: – Kursi – Meja – Papantulis – Kapur – Dosen – Mahasiswa, dan sebagainya 16
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Kursi, Meja, Papantulis, Kapur, Dosen, Mahasiswa; masing-masing itu bisa dimodelkan sebagai class. Lalu apa yang dimaksud dengan object? – Object adalah instansiasi atau perwujudan individual dari class tersebut. – Contoh, untuk class Dosen, objectnya adalah Izza, Mahmud, Yuliant, Erliansyah, dsb. – Untuk class Mahasiswa, objectnya adalah si X, si Y, si Z, serta semua mahasiswa lainnya. – Untuk class Kursi, objectnya adalah tiap-tiap kursi di ruangan tersebut. 17
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Mari kita tinjau sebuah “dunia” poligon yang terdiri dari bentuk-bentuk bangun datar dan bangun ruang. Beberapa class sederhana yang bisa kita identifikasi: – Segiempat – Lingkaran – Segitiga Siku-siku – Balok
18
3/11/2015
IKG2I4 – Software Project I
KONSEP DASAR OOP Tiap class dapat memiliki atribut masing-masing, misalnya Segiempat memiliki atribut panjang dan lebar, Lingkaran memiliki 1 atribut yaitu radius, SegitigaSiku memiliki atribut alas dan tinggi, Balok memiliki 3 atribut (panjang, lebar, tinggi). Tiap class dapat memiliki fungsi misalnya hitungLuas, hitungKeliling, hitungVolume, dsb., yang rumus atau algoritmanya berbeda-beda antara class yang satu dengan class yang lain.
19
3/11/2015
IKG2I4 – Software Project I
CLASS DIAGRAM Class diagram menggambarkan class-class dan hubungan antar class. Class diagram termasuk dalam notasi UML (Unified Modeling Language). Di dalam class diagram biasanya ada: – Nama class – Atribut class – Method (fungsi/prosedur)
Contoh tools untuk membuat class diagram: StarUML, Poseidon, Rational Rose. – Microsoft Visio bukan tools untuk membuat class diagram! 20
3/11/2015
IKG2I4 – Software Project I
CLASS DIAGRAM
21
3/11/2015
IKG2I4 – Software Project I
PERBEDAAN CLASS DAN OBJECT Segiempat, Lingkaran, SegitigaSiku, dan Balok tersebut adalah nama class. Lalu yang mana objectnya? – Pertanyaan ini penting, untuk membedakan class dan object. – Object baru muncul jika kita “menginstansiasi” atau “memunculkan” atau “melahirkan” sebuah entitas individu dari class tersebut. Misalnya jika kita menggambar dua buah segiempat dan tiga buah lingkaran, yang masingmasing memiliki ukuran berbeda-beda (boleh juga sama), maka kita telah menginstansiasi lima buah object. 22
3/11/2015
IKG2I4 – Software Project I
PERBEDAAN CLASS DAN OBJECT Class adalah nama kelompok/kategori. Object adalah instance atau perwujudan individual dari class tersebut. Tiap object harus “lahir” dari sebuah class. Tidak ada object yang tidak berasal dari class tertentu. Pada object oriented programming, semua adalah object yang berasal dari suatu class. Semua atribut dan method harus berada di dalam suatu class. Tidak boleh ada yang “mengambang” 23
3/11/2015
IKG2I4 – Software Project I
SEKILAS TENTANG JAVA Java adalah: – Bahasa pemrograman yang dibuat oleh James Gosling – Nama software yang menjalankan program Java – Diambil dari nama kopi Jawa yg terkenal di kalangan programmer (C/C++, yg melahirkan Java) Oak (diganti karena udah ada yang memakai nama ini)
Kelebihan OOP/Java: – Pemodelan lebih mudah dan akurat (mirip dunia nyata) – Membuat program/software lebih cepat – Write once, run everywhere (bisa di Windows, Linux, Mac) 31
3/11/2015
IKG2I4 – Software Project I
PENGENALAN JAVA Untuk weekly assignment dan homework, diharuskan menggunakan compiler berbasis Command-Prompt atau Terminal (javac, java). Dari pekan 1 sampai pekan 8 semua tugas mingguan yang diberikan berbasis Terminal. Penggunaan IDE seperti Netbeans dan Eclipse hanya untuk tugas besar saja.
25
3/11/2015
IKG2I4 – Software Project I
PENGENALAN JAVA Download dan instal compiler Java: – http://www.oracle.com/technetwork/java/javase/downloa ds/jdk8-downloads-2133151.html
Set environment variable (agar javac dikenali): Di ControlPanel->System->Advanced->Environment Variables: –SystemVariables->Path, tambahkan C:\Program Files\Java\ jdk1.8xxx\bin –UserVariables: klik New ClassPath, ketikkan .;C:\Program Files\Java\jdk1.8xxx\lib 26
3/11/2015
IKG2I4 – Software Project I
PENGENALAN JAVA Nama class harus sama dengan nama file. Nama file/class harus diawali huruf besar. Contoh: – Nama file: Segiempat.java – Nama class: class Segiempat {….}
Cara compile: – javac nama_file.java
Cara run: – java nama_class
27
3/11/2015
IKG2I4 – Software Project I
PENGENALAN JAVA Contoh membuat helloworld. Buatlah file Helloworld.java, isinya adalah sbb: (ingat nama class harus sama dengan nama file)
28
3/11/2015
IKG2I4 – Software Project I
PENGENALAN JAVA Buka Command Prompt, pastikan masuk di folder yg benar tempat Anda menaruh file Helloworld.java – Cara masuk ke folder: ketik perintah cd
Cara mengcompile: javac Helloworld.java – Bila tidak ada tulisan error, maka program sudah tercompile dan muncul file Helloworld.class
Cara merun: java Helloworld (ngga pake .class) – Bila sudah benar, akan muncul tulisan Helloworld!!
29
3/11/2015
IKG2I4 – Software Project I
C vs JAVA (procedural vs OOP)
30
3/11/2015
IKG2I4 – Software Project I
C vs JAVA (procedural vs OOP) Ingat kembali typedef struct di C. – Contoh ADT Point, yang di Java kita namai class Titik.
31
3/11/2015
IKG2I4 – Software Project I
REVIEW Pelajari kembali beberapa keyword penting sbb: – Class – Object – Atribut – Method – Class diagram
32
3/11/2015
IKG2I4 – Software Project I
THANK YOU