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
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
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
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
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
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
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
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
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
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
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
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
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
KONSEP DASAR OOP 15 3/11/2015
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
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
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
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
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
CLASS DIAGRAM 21 3/11/2015
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
PERBEDAAN CLASS DAN OBJECT Class adalah nama kelompok/kategori. Object adalahinstance 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
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
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
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
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
PENGENALAN JAVA Contoh membuat helloworld. Buatlah file Helloworld.java, isinya adalah sbb: (ingat nama class harus sama dengan nama file) 28 3/11/2015
PENGENALAN JAVA Buka Command Prompt, pastikan masuk di folder yg benar tempat Anda menaruh file Helloworld.java Cara masuk ke folder: ketik perintah cd <folder> 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
C vs JAVA (procedural vs OOP) 30 3/11/2015
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
REVIEW Pelajari kembali beberapa keyword penting sbb: Class Object Atribut Method Class diagram 32 3/11/2015
THANK YOU