RENCANA PEMBELAJARAN SEMESTER (RPS) CSG2H3 PEMROGRAMAN BERORIENTASI OBJEK
Disusun oleh: Tim Dosen Pemrograman Berorientasi Objek
PROGRAM STUDI S1 TEKNIK INFORMATIKA FAKULTAS INFORMATIKA
TELKOM UNIVERSITY
LEMBAR PENGESAHAN
Rencana Pembelajaran Semester (RPS) ini telah disahkan untuk mata kuliah sbb: Kode Mata Kuliah
:
CSG2H3
Nama Mata Kuliah
:
Pemrograman Berorientasi Objek
Mengetahui Kaprodi S1 Teknik Informatika
Bandung, 2015 Menyetujui Ketua KK
M. Arif Bijaksana, PhD
ii
DAFTAR ISI LEMBAR PENGESAHAN..............................................................................................................................ii DAFTAR ISI ................................................................................................................................................ iii A.
PROFIL MATA KULIAH....................................................................................................................... 1
B.
RENCANA PEMBELAJARAN SEMESTER (RPS) ................................................................................... 2
C.
RANCANGAN INTERAKSI DOSEN–MAHASISWA ............................................................................... 9
D.
RANCANGAN TUGAS ...................................................................................................................... 10
E.
PENILAIAN DENGAN RUBRIK .......................................................................................................... 10
F.
PENENTUAN NILAI AKHIR MATA KULIAH ....................................................................................... 13
iii
A. PROFIL MATA KULIAH IDENTITAS MATA KULIAH Nama Mata Kuliah Kode Mata Kuliah SKS Jenis Jam pelaksanaan
: : : : :
Semester / Tingkat Pre-requisite Co-requisite Bidang Kajian
: : : :
Pemrograman Berorientasi Objek CSG2H3 3 Wajib Tatap muka di kelas = 3 jam per minggu Tutorial / responsi =1 jam per minggu 4 (empat) / 2 (dua) Algoritma & Pemrograman, Struktur Data
DESKRIPSI SINGKAT MATA KULIAH Mata kuliah ini mempelajari konsep-konsep dasar pada object oriented programming (OOP), seperti class – object, encapsulation, inheritance, polymorphism, interface, abstract class. Secara spesifik konsep-konsep tersebut akan dipelajari dengan bantuan bahasa pemrograman Java. Selain konsepkonsep dasar OOP, pada mata kuliah ini juga akan dipelajari konsep exception handling, multithreading, object persistence, berbagai Collection, Java API, database connection, GUI (Graphical User Interface), serta deployment.
DAFTAR PUSTAKA Head First Java, 2nd edition, 2008, Bert Bates and Kathy Sierra, O'Reilly 2. Java™ How to Program, 9th, 2012, Prentice Hall 3. Head First Object Oriented Design and Analysis, 1st edition, 2006, Brett D. McLaughlin, Gary Pollice, David West, O'Reilly Media 1.
1
B. RENCANA PEMBELAJARAN SEMESTER (RPS) Pertemuan ke1
Kemampuan Akhir yang Diharapkan
2,3
Mahasiswa mengetahui sejarah OOP. Mahasiswa memahami perlunya OOP untuk menyelesaikan permasalahan, yang kurang tepat jika procedural oriented diterapkan. Mahasiswa mengetahui bahasa pemrograman Java yang akan digunakan untuk mempelajari OOP. Mahasiswa memahami perbedaan antara kelas dan object. Mahasiswa mampu membuat kelas (sederhana) dan object dalam bahasa Java. Mahasiswa memahami penggunaan serta dapat membuat program sederhana menggunakan tipe primitif, array, keyword, reference variable, deklarasi dan assignment objek, Mahasiswa memahami dan mengimplementasikan dalam prograam tentang siklus objek (penggunaan constructor dan garbage collector)
Bentuk/ Metode/ Strategi Pembelajaran
Bahan Kajian (Materi Ajar)
Course Introduction OOP history compare procedural and oop by giving a simple case study Introduction to java
Ceramah
Classes and object The difference between class and object, by giving some examples making a simple first object (Fokus: first programming with java)
Primitive and reference: Type, keywords, reference variable, object declaration & assignment, objects in garbage collector, arrays
Object cycle: life and death Constructor & Garbage 2
Ceramah Demo
Kriteria Penilaian (Indikator) -
-
Bobot Nilai
Pertemuan ke-
Kemampuan Akhir yang Diharapkan
Bentuk/ Metode/ Strategi Pembelajaran
Bahan Kajian (Materi Ajar)
Kriteria Penilaian (Indikator)
Bobot Nilai
Ketepatan dalam mengimplementasikan class diagram ke dalam kode program
15%
collector 4
5,6
Mahasiswa memahami makna dan perlunya enkapsulasi. Mahasiswa memahami dan dapat mengimplementasikan enkapsulasi dalam suatu program sederhana.
Mahasiswa memahami diagram kelas beserta makna simbol relasi yang terdap at pada diagram kelas.
Encapsulation Why do we need encapsulation? Object state Instance variable vs local variables Methods argument & return type Pass by value Getters and setters Sample class diagram representing encapsulation
Ceramah Demo practice
Ceramah Demo practice
Class relationship (class diagram) association, aggregation, composition Example: simple class diagram & code in java related *) Hanya mengenalkan saja, karena nantinya satu persatu relasi yg ada pada diagram kelas akan dibutuhkan saat 3
Pertemuan ke-
Kemampuan Akhir yang Diharapkan
7,8
Mahasiswa memahami makna dan perlunya inheritance dan 4olymorphism. Mahasiswa memahami dan dapat mengimplementasikan inheritance dan 4olymorphism dalam suatu program sederhana.
9,10
Mahasiswa memahami perlunya dan
Bentuk/ Metode/ Strategi Pembelajaran
Bahan Kajian (Materi Ajar)
menjelaskan materi inheritance, polimorfisme, kelas abstrak, interface Inheritance & polymorphism Why do we need inheritance & polymorphism? How inheritance promotes software reusability Designing for inheritance Superclass and subclass relationship & access modifier Method Overriding Polymorphism: in object declaration & assignment, in method argument & return type Method overloading Constructor overloading (revisited) & superclass constructor Calls to super(), this () Sample class diagram representing inheritance & polymorphism Interface & abstract classes 4
Ceramah Demo Practice
Ceramah
Kriteria Penilaian (Indikator)
Ketepatan dalam
Bobot Nilai
15%
Pertemuan ke-
Kemampuan Akhir yang Diharapkan
mengimplementasikan interface dan abstract classess dalam suatu program sederhana.
11
Mahasiswa memahami perlunya dan mengimplementasikan static & final variabel dan method dalam suatu program sederhana.
Bentuk/ Metode/ Bahan Kajian (Materi Ajar) Strategi Pembelajaran Why do we need abstract Demo classes? Abstract vs Practice concrete class Abstract classess and methods Overloading and overriding (revisited) Casting Why do we need interface? Interface: making & using Sample class diagram representing interface & abstract class
Static & final method & variables Static method Static variable Constants (static final variable) Final method & class Wrapper classes & autoboxing Static imports Example: Math class Instance variable vs static variable
5
Ceramah Demo
Kriteria Penilaian (Indikator) mengimplementasikan class diagram ke dalam kode program
Bobot Nilai
Pertemuan ke-
Kemampuan Akhir yang Diharapkan
UJIAN TENGAH SEMESTER (UTS) 12 Mahasiswa mampu memahami dan menggunakan Exception Handling. Mahasiswa dapat membuat kelas Exception sendiri.
13
14
Mahasiswa mampu memahami dan mengimplementasikan Persistensi Objek dalam file.
Mahasiswa mampu memahami dan mengimplementasikan konsep sinkronisasi menggunakan thread
Bentuk/ Metode/ Strategi Pembelajaran
Bahan Kajian (Materi Ajar)
Kriteria Penilaian (Indikator)
Bobot Nilai 30%
Exception handling Exception as an object try-catch throws Try-catch- finally Multiple exception Polymorphism in exception Making your own exception
Ceramah Demo
Ceramah Demo Practice
Multithreading Launching new thread Runnable interface Thread' state Runnable - running loop Thread scheduler Making and starting two thread Locking object Synchronized method using
Ceramah Demo practice
Object Persistence Saving object state Writing a serialized object to a file Object serialization (serializable interface) Deserializing an object
6
Ketepatan penggambaran dari: - Flowchart aplikasi - Desain class diagram - Desain ER diagram
10%
Pertemuan ke-
Kemampuan Akhir yang Diharapkan
Bahan Kajian (Materi Ajar)
15
Mahasiswa mampu menggunakan Java API untuk membantu membuat aplikasi.
16
Mahasiswa mampu menggunakan struktur data yang telah terdefinisi dalam Collections untuk membuat aplikasi
17
Mahasiswa mampu membuat koneksi dari aplikasi berbasis java ke DBMS
18-20
Mahasiswa mampu membuat aplikasi berbasis GUI/Swing.
Bentuk/ Metode/ Strategi Pembelajaran
Kriteria Penilaian (Indikator)
Bobot Nilai
Ketepatan dalam mengimplementasikan: - Desain class diagram ke dalam kode program - Fungsionalitas utama dari aplikasi
10%
a lock deadlock
Using java library (java API) How to use it Simple example Collections Interface Collection and class Collections Type wrapper classess for primitive types Autoboxing and autounboxing List: ArrayList - Iterator, LinkedList Stack Sets Maps
Ceramah Demo
Ceramah Demo Practice
Making connection with database JDBC Oracle/mysql (?)
Ceramah Demo Practice
GUI & SWING User event
Ceramah Demo
7
Pertemuan ke-
Kemampuan Akhir yang Diharapkan
21
Mahasiswa mampu mengorganisasikan dan men-deploy aplikasi
Bentuk/ Metode/ Bahan Kajian (Materi Ajar) Strategi Pembelajaran Listener interface Practice Action event Inner class Swing component
Deployment Separate source code and class files Making an executable JAR Running an executable JAR Package
UAS
8
Ceramah Demo
Kriteria Penilaian (Indikator)
Hasil akhir proyek aplikasi dapat memenuhi kriteria: - Sesuai antara perancangan dan implementasi kode program - Tidak ada bug/error pada aplikasi - Semua fungsionalitas aplikasi berjalan
Bobot Nilai
20%
C. RANCANGAN INTERAKSI DOSEN–MAHASISWA Kemampuan Akhir yang Diharapkan
Mahasiswa mampu mengidentifikasi dan menjelaskan kembali materi yang diberikan 1. Course Introduction 2. Classes and object 3. Encapsulation 4. Class relationship (class diagram) 5. Inheritance & polymorphism 6. Interface & abstract classes 7. Static & final method & variables 8. Exception handling 9. Object Persistence 10. Multithreading 11. Using java library (java API) 12. Collections 13. Making connection with database 14. GUI & SWING 15. Deployment
Nama Kajian
Nama Strategi Minggu Penggunaan Strategi (Metode) Deskripsi Singkat Strategi (Metode) pembelajaran
Ceramah 1-14 Dosen mengulas materi sebelumnya, menjelaskan tujuan, hasil pembelajaran, materi, dan kesimpulan, serta mendorong mahasiswa untuk aktif bertanya dan mengemukakan pendapat terkait materi yang disampaikan. RANCANGAN INTERAKSI DOSEN–MAHASISWA
Aktivitas Dosen
Aktivitas Mahasiswa
Mengulas materi yang telah diberikan pada pertemuan sebelumnya (untuk pertemuan 2 dst)
Mengungkapkan apa yang telah dipahami dari materi yang telah disampaikan pada pertemuan sebelumnya.
Menjelaskan tentang tujuan pembelajaran dari kegiatan pembelajaran
Menyimak penjelasan dosen.
Mengarahkan mahasiswa untuk melibatkan diri dan aktif dalam kegiatan pembelajaran
Menyiapkan diri menerima materi yang akan disampaikan.
Membahas materi
Menyimak dan mencatat hal-hal penting dari materi yang disampaikan oleh dosen. Bertanya apabila ada materi yang kurang jelas.
Mengajukan sejumlah pertanyaan terkait materi yang telah diberikan
Menjawab pertanyaan yang diberikan.
Menyimpulkan materi
Menyimak kesimpulan.
9
D. RANCANGAN TUGAS Kode mata Kuliah
CSG2H3
Nama Mata Kuliah
Pemrograman Berorientasi Obyek
Kemampuan Akhir yang Diharapkan
Mahasiswa mampu untuk mengimplementasikan konsep yang disampaikan di kelas ke dalam kode program
Minggu/Pertemuan ke
3&5
Tugas ke
1&2
1. Tujuan tugas: Mahasiswa mampu mengimplementasikan konsep yang disampaikan di kelas ke dalam kode program 2. Uraian Tugas: a. Obyek garapan: Desain class diagram b. Yang harus dikerjakan dan batasan-batasan: Mengimplementasikan class diagram yang diberikan c. Metode/ cara pengerjaan, acuan yang digunakan: Membuat kode program berdasarkan class diagram yang diberikan. Referensi pengerjaan: a. Head First Java, 2nd edition, 2008, Bert Bates and Kathy Sierra, O'Reilly b. Java™ How to Program, 9th, 2012, Prentice Hall c. Head First Object Oriented Design and Analysis, 1st edition, 2006, Brett D. McLaughlin, Gary Pollice, David West, O'Reilly Media d. Deskripsi luaran tugas yang dihasilkan/ dikerjakan: Aplikasi sederhana 3. Kriteria penilaian: Kesesuaian implementasi program dengan class diagram Semua fungsionalitas yang disyaratkan dapat berjalan Alur program sesuai dengan persyaratan
Kode mata Kuliah
CSG2H3
Nama Mata Kuliah
Pemrograman Berorientasi Obyek
Kemampuan Akhir yang Diharapkan
Mahasiswa mampu membuat aplikasi menggunakan konsep pemrograman berorientasi obyek
Minggu/Pertemuan ke
7-14
Tugas ke
3
4. Tujuan tugas: a. Mahasiswa mampu merancang aplikasi menggunakan konsep berorientasi obyek b. Mahasiswa mampu mengimplementasikan rancangan class diagram ke dalam kode program c. Mahasiswa mampu mengimplementasikan semua fungsionalitas berdasarkan 10
persyaratan yang diharapkan 5. Uraian Tugas: e. Obyek garapan: Proyek aplikasi f. Yang harus dikerjakan dan batasan-batasan: Merancang class diagram, flowchart aplikasi dan ER diagram (basis data) Mengimplementasikan class diagram ke dalam kode program Mengimplementasikan flowchart ke dalam fungsionalitas aplikasi Membuat aplikasi dengan antarmuka tampilan GUI (Graphical User Interface) g. Metode/ cara pengerjaan, acuan yang digunakan: Merancang aplikasi dan membangun kode program aplikasi berdasarkan class diagram yang dirancang. Referensi pengerjaan: d. Head First Java, 2nd edition, 2008, Bert Bates and Kathy Sierra, O'Reilly e. Java™ How to Program, 9th, 2012, Prentice Hall f. Head First Object Oriented Design and Analysis, 1st edition, 2006, Brett D. McLaughlin, Gary Pollice, David West, O'Reilly Media h. Deskripsi luaran tugas yang dihasilkan/ dikerjakan: - Dokumen laporan akhir aplikasi yang berisi rancangan seluruh aplikasi dan dokumentasi aplikasi - Kode program dan aplikasi akhir 6. Kriteria penilaian: Penilaian tugas dibagi menjadi 3 tahap, dengan detail sebagai berikut. 1. Tahap 1 a. Bisnis proses yang menggambarkan kerja aplikasi secara umum b. Perancangan kelas (termasuk interface dan abstract class jika ada) lengkap dengan atribut dan method sesuai dengan spesifikasi yang diberikan c. Perancangan relasi antar kelas d. Perancangan relasi tabel di database 2. Tahap 2 a. Implementasi dari rancangan kelas dan basis data yang sudah dibuat ke dalam bahasa pemrograman sesuai dengan kaidah-kaidah PBO b. Program sudah mampu menjalankan fungsionalitas utama sesuai spesifikasi yang diberikan c. Program sudah mampu melakukan koneksi ke data base dan melakukan operasi dasar, seperti select, insert, update, dan delete 3. Tahap 3: Fokus pekerjaan: finalisasi program menggunakan GUI dan siap digunakan Persentase penilaian: 40% Waktu penilaian: 3 minggu setelah tahap 2 Parameter penilaian: a. Laporan akhir dari tahap 1 sampai 3 b. Perancangan skenario pengujian program / aplikasi c. Kebenaran implementasi program dengan menggunakan kaidah-kaidah PBO sesuai dengan spesifikasi yang diberikan d. Kesesuaian alur penggunaan program dengan bisnis proses yang telah dibangun e. Bug / error pada program disesuaikan dengan rancangan skenario pengujian program (semakin sedikit semakin bagus, dan sebaliknya) 11
f. Bonus (dengan tambahan sesuai kebijakan dosen masing-masing): - Kualitas tampilan GUI dengan berdasarkan kaidah IMK / HCI - Menggunakan konsep MVC / design pattern yang tidak diajarkan di kelas
E. PENILAIAN DENGAN RUBRIK Jenjang (Grade)
Angka (Skor)
Deskripsi perilaku (Indikator) -
A
80 < NSM
-
AB
70 < NSM ≤ 80
-
B
65 < NSM ≤ 70
-
BC
60 < NSM ≤ 65
-
Mampu merancang aplikasi berdasarkan kasus yang diberikan Mampu mengimplementasikan rancangan aplikasi ke dalam kode program Mampu membangun aplikasi lengkap dengan basis data dan antarmuka GUI menggunakan pendekatan berorientasi obyek Mampu menjelaskan konsep pemrograman berorientasi obyek Mampu merancang aplikasi berdasarkan kasus yang diberikan Mampu mengimplementasikan rancangan aplikasi ke dalam kode program Mampu membangun aplikasi lengkap dengan basis data dan antarmuka GUI menggunakan pendekatan berorientasi obyek Mampu menjelaskan konsep pemrograman berorientasi obyek Mampu merancang aplikasi berdasarkan kasus yang diberikan Mampu mengimplementasikan rancangan aplikasi ke dalam kode program Mampu membangun aplikasi lengkap dengan basis data menggunakan pendekatan berorientasi obyek Mampu menjelaskan konsep pemrograman berorientasi obyek Mampu merancang aplikasi berdasarkan kasus yang diberikan Mampu mengimplementasikan rancangan aplikasi ke dalam kode program Mampu membangun aplikasi lengkap dengan basis data menggunakan pendekatan berorientasi obyek 12
C
-
Mampu menjelaskan konsep pemrograman berorientasi obyek
-
Mampu merancang aplikasi berdasarkan kasus yang diberikan Mampu mengimplementasikan rancangan aplikasi ke dalam kode program Mampu menjelaskan konsep pemrograman berorientasi obyek
-
50 < NSM ≤ 60
-
D
40 < NSM ≤ 50
E
NSM ≤ 40
-
Mampu menjelaskan konsep pemrograman berorientasi obyek
-
F. PERSENTASE KOMPONEN PENILAIAN 1. 2. 3. 4.
Kuis Tugas Besar UTS UAS
: 10% : 20% : 30% : 40%
G. PENENTUAN NILAI AKHIR MATA KULIAH Nilai Skor Matakuliah (NSM)
Nilai Mata Kuliah (NMK)
80 < NSM
A
70 < NSM ≤ 80
AB
65 < NSM ≤ 70
B
60 < NSM ≤ 65
BC
50 < NSM ≤ 60
C
40 < NSM ≤ 50
D
NSM ≤ 40
E
13