Buku panduan ini membahas tentang kurikulum mata kuliah Desain dan Pemrograman Berorientasi Obyek yang mencakup tujuan pembelajaran, silabus, metode pembelajaran, dan penugasan-penugasan yang harus dikerjakan mahasiswa. Mata kuliah ini mengajarkan konsep-konsep dasar pemrograman berorientasi obyek menggunakan bahasa pemrograman Java."
1. Buku Rancangan Pengajaran
2008
DISAIN DAN PEMROGRAMAN
BERORIENTASI OBYEK (DPBO)
Kombinasi Interaktif Tatap Muka dan praktikum
Disusun oleh:
Ade Azurat
Fakultas Ilmu Komputer
Universitas Indonesia
2. 2
Buku Rancangan Pengajaran (BRP)
Kuliah: Disain dan Pemrograman Berorientasi Obyek (DPBO)
Buku Rancangan Pengajaran (BRP) ini untuk digunakan dalam proses belajar
mengajar dilingkungan Fakultas Ilmu Komputer Universitas Indonesia
(Fasilkom UI). Penggunaan BRP ini diluar lingkungan Fasilkom UI
diperkenankan dengan persetujuan dari Fasilkom UI atau penyusun BRP.
Versi 1.0 – Agustus 2008 – Fasilkom UI – Ade Azurat
BRP kuliah Disain dan Pemrograman Berorientasi Objek (DPBO) disusun oleh:
Ade Azurat berdasarkan silabus pengajaran kuliah semester genap DPBO
2007 dan DPBO 2008 yang diasuh oleh Ade Azurat (2007,2008), Indra
Budi(2008) dan Yova Ruldeviyani (2007, 2008). Tata letak mengikuti format
yang disusun oleh Anggiearanidipta Suma M bersama tim 3200 Fasilkom UI.
Ilustrasi pada halaman muka disusun oleh Ade Azurat.
Depok, Agustus 2008
Ade Azurat
3. 3
Bab 1
INFORMASI UMUM
Nama mata ajar : Disain dan Pemrograman Berorientasi Obyek
(DPBO)
Kode mata ajar : IKI 10830
Diberikan pada : Tahun Pertama (Semester Kedua)
Jumlah sks : 4 ( setara 4 x 3 x 50 menit)
Jenis sks : 4 x 50 menit pemelajaran
1 x 50 menit membaca/ belajar mandiri
3 x 50 menit tutorial/ praktikum dibimbing
4 x 50 menit latihan/ praktikum mandiri
Prasyarat : Dasar-dasar Pemrograman
Kaitan dgn mata ajar lain : Struktur data dan Algoritma
Rekayasa Perangkat Lunak
Dosen : Ade Azurat <ade@cs.ui.ac.id>
Yova Ruldeviyani <yova@cs.ui.ac.id>
Indra Budi <indra@cs.ui.ac.id>
Deskripsi Umum : This course teaches the fundamental ideas
behind the object-oriented approach to
programming; through the widely-used Java
programming language. The course concentrates
on those aspects of the Java language that best
demonstrate object-oriented principles and good
practice. The course also teaches students to
describe and communicate their object-oriented
design.
Proses belajar
Pemelajaran kuliah ini merupakan kombinasi dari tiga metode:
• Interaktif tatap muka
Interaktif tatap muka akan dilakukan melalui kombinasi kuliah interaktif dan
pemelajaran aktif melalui lembar kerja dan diskusi pemecahan permasalah
dan pencarian dan penyusunan penyelesaian permasalahan dengan program.
4. 4
Aktifitas pemecahan problem dan pencarian dan penyusunan penyelesaian
akan dibantu oleh tutor dan diskusi bersama dilakukan saat tatap muka.
• Tutorial / Praktikum Dibimbing
Pada setiap pekannya, mahasiswa melakukan praktikum terbimbing oleh
tutor. Pada aktifitas ini mahasiswa diharapkan memecahkan permasalahan
dan menuangkan dalam program komputer. Tutor akan membantu
melakukan proses tersebut secara bertahap melalui pemberian contoh
penyelesaian ataupun pemberian pentunjuk langkah-langkah awal
penyelesaian. Pada proses ini juga diharapkan tutor memberikan pengalaman
kepada mahasiswa penggunaan alat bantu programming.
• Latihan / Praktikum Mandiri
Mahasiswa diharapkan melatih ketrampilan dan kemampuan penyelesaian
masalah dalam kegiatan belajar mandiri khususnya dalam hal melakukan
pemrograman secara mandiri.
Mahasiswa menyampaikan dan mendiskusikan permasalahan yang dihadapi
serta saling bertukar pengalaman. Latihan ada yang harus dikerjakan secara
individual ada juga yang perlu dikerjakan secara berkelompok.
5. 5
Bab 2
DESKRIPSI UMUM PEMBELAJARAN
This course teaches the fundamental ideas behind the object-oriented
approach to programming; through the widely-used Java programming
language. The course concentrates on those aspects of the Java language
that best demonstrate object-oriented principles and good practice. The
course also teaches students to describe and communicate their object-
oriented design.
Learning Objectives
Sasaran pemelajaran mata ajar ini dapat dijabarkan dalam sasaran
pemelajaran utama dan penunjang berikut:
General Learning Objectives
1 Mahasiswa memahami motivasi dan latar belakang ide pemrograman
berorientasi obyek. Mahasiswa dapat menunjukkan kelebihan penerapan
konsep berorientasi obyek pada kasus tertentu.
2 Mahasiswa dapat merancang sebuah penyelesaian permasalahan rancangan
pemrograman dengan menerapkan konsep pemrograman berorientasi obyek
menggunakan bahasa yang baku. Mahasiswa dapat mendiskusikan dan
mengkomunikasikan rancangan program berorientasi obyek.
3 Mahasiswa dapat memrogram menggunakan bahasa pemrograman
berorientasi obyek berdasarkan rancangan dengan menerapkan konsep yang
sesuai kebutuhan.
4 Mahasiswa dapat bekerja sama dalam satu tim untuk membangun aplikasi
yang terintegrasi dengan penerapan konsep pemrograman berorientasi
obyek.
Specific Learning Objectives
6. 6
1 Mahasiswa memahami motivasi dan latar belakang ide pemrograman
berorientasi obyek. Mahasiswa dapat menunjukkan kelebihan penerapan
konsep berorientasi obyek pada kasus tertentu.
1.1 Mahasiswa mengetahui motivasi pengembangan konsep berorientasi
obyek.
1.2 Mahasiswa memahami permasalahan yang dihadapi oleh
pemrograman yang tidak berorientasi obyek.
1.3 Mahasiswa memahami karakteristik yang membedakan pemrograman
berorientasi obyek dengan yang tidak.
2 Mahasiswa dapat merancang sebuah penyelesaian permasalahan rancangan
pemrograman dengan menerapkan konsep pemrograman berorientasi obyek
menggunakan bahasa yang baku UML. Mahasiswa dapat mendiskusikan dan
mengkomunikasikan rancangan program berorientasi obyek.
2.1 Mahasiswa mengenal diagram UML khususnya Class Diagram.
2.2 Mahasiswa dapat memetakan kelas-kelas yang terlibat dan dapat
menentukan attribute dan method-method yang dibutuhkan.
2.3 Mahasiswa memahami keterkaitan antar kelas dan bisa membedakan
hubungan inheritance dan asosiasi.
2.4 Mahasiswa dapat memetakan uraian kebutuhan aplikasi yang
dinyatakan dalam bahasa informal dalam class diagram.
3 Mahasiswa dapat memrogram menggunakan bahasa pemrograman
berorientasi obyek berdasarkan rancangan dengan menerapkan konsep yang
sesuai kebutuhan.
3.1 Mahasiswa dapat memetakan rancangan class diagram menjadi
aplikasi berorientasi obyek.
3.2 Mahasiswa dapat memetakan (reverse engineering) dari sebuah
program (source code) menjadi rancangan class diagram.
3.3 Mahasiswa trampil menggunakan bahasa pemrograman berorientasi
obyek. Misalnya JAVA.
3.4 Mahasiswa trampil menggunakan library yang disediakan oleh bahasa
pemrograman.
3.5 Mahasiswa dapat menggunakan fitur yang dimiliki bahasa
pemrograman berorientasi obyek sesuai dengan karakteristik
pemrograman berorientasi obyek.
7. 7
4 Mahasiswa dapat bekerja sama dalam satu tim untuk membangun aplikasi
yang terintegrasi dengan penerapan konsep pemrograman berorientasi
obyek.
4.1 Mahasiswa memahami konsep modularitas, pengantar programming
in the large.
4.2 Mahasiswa memahami konsep interface, mengikuti dan dapat
menyiapkan modul-modul (library) yang siap pakai bagi orang lain.
4.3 Mahasiswa dapat mengextend program yang dibuat sebelumnya
dengan tingkat reusabilitas yang tinggi.
4.4 Mahasiswa dapat mengkoordinasikan pembagian kerja untuk
mengimplementasikan sebuah rancangan aplikasi dengan
menyepakati terlebih dahulu interface antar modul.
Assignments (subject to change)
Four (4) Quizes
Two (2) Individual programming assignments
Two (2) Pair programming assignments
One (1) Group project (programming and presentation) (group of 5-7)
Assignment's Expectation:
1 Assignment 1 – Individual:
Student is expected to be able to program in java including using simple GUI,
specifically:
1.1.1 understand and able to use control flow in java
1.1.2 understand basic structure of java program
1.1.3 be able to create simple GUI
1.1.4 understand how string is used in java
1.1.5 writing well documented program
2 Assigment 2 – Pair
Student is expected to be able to develop an OO program in Java. Student
should :
1.1.1 be able to identify the objects including its attribute and
methods
8. 8
1.1.2 be able to differentiate between OO and non-OO approaches.
1.1.3 understand how those objects combined as one application
1.1.4 be able to use inheritance and polymorphism
1.1.5 be able to use java library and extend it
1.1.6 be able to debug their program using blueJ or JDB.
1.1.7 organize 4-6 classes in their programs.
2 Assigment 3 – Pair
Student is expected to understand more feature of java and OO. Student
should
1.1.1 be able to use exception handler
1.1.2 understand abstract class and multiple inheritance
1.1.3 describe the OO design using diagram
1.1.4 be able to capture and analyse the problem and design an OO
solution
1.1.5 be able to use exception handler appropriately.
1.1.6 organize 6-8 classes in their programs.
2 Assigment 4 – Individual
Student is expected to able to do design and programming in OO and Java.
Student is expected to...
1.1.1 be able to show modularity in their OO design.
1.1.2 understand the weakness and strength of OO and Java.
1.1.3 understand inner class and its uses
1.1.4 understand and use java library for datatype and collection
1.1.5 understand generic programming in java (generic java)
1.1.6 be able to avoid runtime error because of casting
1.1.7 organize 6-8 classes in their programs.
2 Assigment 5 – Group Projects ( group of 5 or 7)
Student is expected to be able to develop a project based on OOP. Student
should
1.1.1 be able to apply OOP methodology and follows the phases
1.1.2 be able to show the advantages of using OO and Java
compare to non-OO approaches.
1.1.3 be able to capture a more complex problem and design an OO
solution of it.
1.1.4 be able to communicate their design.
1.1.5 be able to work in team.
9. 9
1.1.6 organize 10-15 classes in their programs.
Lab Activities and Exercises:
1. Two (2) hours perweek by tutor (see teaching plan)
2. During lab activities, students are expected to do and submit the given
exercises.
Rujukan
Software/Tools:
BlueJ version 2.2, downloadable from www.bluej.org
(old version is currently available in Faculty laboratory)
JDK 6 (including JRE 6), Sun Microsystem, downloadable from java.sun.com
(Latest version is currently avaible in Faculty Laboratory)
Textbook:
Deitel , JAVA How to Program, 7th
ed, Pearson Education, Inc., New Jersey,
USA.
(available in faculty library)
Abbreviation: JHP
Reference Book:
James Gosling, Bill Joy, Guy Steele, Gilad Bracha, The Java Language
Specification 3rd ed, Sun Microsystem 2005.
(free document)
Abbreviation: JLS
Michael Kölling, The BlueJ Tutorial version 2. (free document)
Suggested Texts:
1. Bruce Eckel, Thinking in Java, 3rd ed. Revision 4.0, Prentice Hall /
Pearson Education, 2002. ISBN 0-13-100287-2
10. 10
(free e-book available)
Abbreviation: TIJ
2. Bruce Eckel, Thinking in Java 4th ed, Prentice Hall / Pearson Education.
2006. ISBN 0-13-187248-6
(available in faculty library)
3. David J. Barnes & Michael Kölling, Objects First with Java: A Practical
Introduction using BlueJ Third Edition,
Prentice Hall / Pearson Education, 2006. ISBN 0-13-197-629X
(available in faculty library)
11. 11
Bab 3
SUBPOKOK BAHASAN DAN RUJUKAN
No Pokok Bahasan Subpokok bahasan Rujukan Sasaran
1 Course Overview
Introduction to
Objects
Course rules
Overview
What is object
History of OO
Why OO
OO characteristic
running and compiling java
Introduction to GUI and applet
Introduction to UML
JHP Ch 1,
2
TIJ Ch 1, 2
(lecture)
JLS
TIJ Ch 3
(tutorial)
1.1
1.2
1.3
2.1
2.2
2.3
2.4
2 Basic Java dan OO Introduction to Class
Statement Control in java
Initialization
Object creation and lifetime
Constructor
Instance variable, set and get method
Primitive data type in Java
JHP Ch 3
TIJ Ch 4,5
(lecture)
1.3
2.2
2.3
3 Methods, Access
Specifiers
Method signature
Method overloading
This keyword
class access and access specifiers
(public, private, protected)
static vs non-static field
JHP Ch 3,
8
TIJ Ch 4,5
BlueJ
Tutorial
(tutorial)
1.3
2.2
2.3
2.4
4.1
4 Arrays Declaring and creating arrays
Enhanched for statement
Passing arrays to method
Multidimensional arrays
Using command-line argument
JHP Ch 7 3.3
5 Reusing Class Why reuse
Composition
inheritance
casting
class loading
final keyword
JHP Ch.
8,9
TIJ Ch 6
BlueJ
Tutorial
(tutorial)
1.3
2.3
3.5
4.1
4.3
6 Polymorphism upcasting
covariant return type
constructor and polymorphism
designing with inheritance
abstract class
interface
JHP Ch. 10
TIJ Ch 7
1.3
2.3
3.4
3.5
4.2
4.3
7 GUI and Applet Swing
Applet
JHP Ch.
11,12
3.3
3.4
8 Error Handler with
exception
Basic exception
Catching an exception
Creating your own exception
Java Standard exception
exception restriction
alternative approaches
guidelines and pitfalls
JHP Ch. 13
TIJ Ch. 9
3.3
3.4
4.2
9 Files and Streams Data hierarchy
Class File
Sequential-access text file
Object serialization
JHP Ch 14 3.3
3.4
10 Collection of
Objects
containers & iterator
package
JHP Ch. 19 2.3
2.4
12. 12
container taxonomy
Java dataype library (API)
3.3
3.4
4.1
11 Inner Classes what is inner class and why
creating inner class
upcasting and inner class
anonymous inner class
nested classes
inheritent and overiding in inner class
local inner class
inner class identifier
TIJ Ch 8 1.3
2.3
3.5
4.2
4.3
12 Detecting Type and
Generic Java
Introduction to Generic Programming
Why Generic
Run time information
Reflection
JHP Ch. 18
TIJ Ch 10
3.3
3.4
4.1
4.2
13 Analysis and
Design of OOP
Methodology
UML ( Class and use case diagram)
OOP Guidelines
Management obstacles
TIJ Ch 16 1.2
2.1
2.2
2.4
3.1
3.2
4.4
14. 14
Bab 4
MATRIKS KEGIATAN
Metode pemelajaran:
Orientasi Belajar
Belajar yang dilaksanakan dalam perkuliahan ini akan dilakukan secara blended
(pencampuran antara perkuliahan tatap muka dengan belajar mandiri). Blended
learning yang diterapkan akan menghasilkan rasio pemelajaran antara lain 30%
tatap muka dan 70 % belajar mandiri.
1. Tatap Muka (TM)
Perkuliahan interaktif atau tatap muka dilakukan di kelas secara langsung.
dalam perkuliahan ini metode yang dilakukan antara lain:
a. Ceramah; dosen menjelaskan mengenai materi tertentu. Dan metode ini
dapat dikombinasikan dengan tanya jawab secara langsung.
b. Diskusi kelompok; mahasiswa membahas topik-topik tertentu yang ada
dalam materi.
2. Belajar Mandiri (BM)
Belajar mandiri atau self-learning dilakukan tidak secara langsung bertatap
muka melainkan dengan memanfaatkan SCeLE. Dengan SCeLE, pemelajaran
akan melibatkan kegiatan-kegiatan sebagai berikut:
a. Akses materi (A); mahasiswa dapat mengakses materi langsung yang
telah disediakan di SCeLE.
b. Diskusi (D); mahasiswa dapat melakukan diskusi dalam bentuk aktifitas
forum yang ada di SCeLE.
c. Chat (C); mahasiswa dapat pula berkomunikasi dengan pengajar dan
teman-teman sekelas dalam kurun waktu yang telah ditentukan.
Tugas
1. Tugas Individu (I); dengan feedback langsung yang disesuaikan dengan
kondisi.
2. Tugas Kelompok (K); dengan feedback langsung yang disesuaikan dengan
kondisi.
3. Quiz (Q); dilaksanakan pada topik-topik tertentu. Pada proses belajar tatap
muka maupun belajar mandiri.
16. Matriks Kegiatan Perkuliahan
Week Title Material Covered Reading Material Tutorial (2 hours) Milestone/
Notes
1 Course Overview
Introduction to Objects
Course rules
Overview
What is object
History of OO
Why OO
OO characteristic
running and compiling java
Introduction to GUI and applet
Introduction to UML
JHP Ch 1, 2
TIJ Ch 1, 2 (lecture)
JLS
TIJ Ch 3 (tutorial)
Introduction to JDK
First simple program:
Helloworld
String
Running
Compile
2 Basic Java dan OO Introduction to Class
Statement Control in java
Initialization
Object creation and lifetime
Constructor
Instance variable, set and get method
Primitive data type in Java
JHP Ch 3
TIJ Ch 4,5 (lecture) Simple GUI
Applet
JavaDoc
Announce
Assignment 1
3 Methods, Access
Specifiers
Method signature
Method overloading
This keyword
class access and access specifiers
(public, private, protected)
static vs non-static field
JHP Ch 3, 8
TIJ Ch 4,5
BlueJ Tutorial (tutorial)
Introduction to BlueJ
Running java in BlueJ
Debugging in BlueJ
Worksheet: BlueJ
Quiz 1
Assignment 5
– Group
Project is
announced.
4 Arrays Declaring and creating arrays
Enhanched for statement
Passing arrays to method
Multidimensional arrays
Using command-line argument
JHP Ch 7 Assignment 1 (individual) Assigment 1
submitted and
graded by
assistant during
tutorial
17. 5 Reusing Class Why reuse
Composition
inheritance
casting
class loading
final keyword
JHP Ch. 8,9
TIJ Ch 6
BlueJ Tutorial (tutorial)
Worksheet: Class Diagram Assignment 2
is announced!
6 Polymorphism upcasting
covariant return type
constructor and polymorphism
designing with inheritance
abstract class
interface
JHP Ch. 10
TIJ Ch 7
Worksheet: polymorphism
Quiz 2.
7 GUI and Applet Swing
Applet
JHP Ch. 11,12 Assignment 2 (pair
programming)
Assigment 2
submitted and
graded by
assistant during
tutorial
8 Mid Test
Review Mid Test Tutorial for Midtest
Assignment 3
is announced
9 Error Handler with
exception
Basic exception
Catching an exception
Creating your own exception
Java Standard exception
exception restriction
alternative approaches
guidelines and pitfalls
JHP Ch. 13
TIJ Ch. 9 Worksheet: exception handler
10 Files and Streams Data hierarchy
Class File
Sequential-access text file
Object serialization
JHP Ch 14 Read – Write files
Worksheet : object serialization
11 Collection of Objects containers & iterator
package
container taxonomy
Java dataype library (API)
JHP Ch. 19 Assignment 3 (pair
programming)
Assignment 3
submitted and
graded by
assistant during
tutorial.
18. 12 Inner Classes what is inner class and why
creating inner class
upcasting and inner class
anonymous inner class
nested classes
inheritent and overiding in inner class
local inner class
inner class identifier
TIJ Ch 8 Inner Classes
Worksheet : inner class Assignment 4
is announced.
13 Detecting Type and
Generic Java
Introduction to Generic Programming
Why Generic
Run time information
Reflection
JHP Ch. 18
TIJ Ch 10
Generic Java
Worksheet: Generic Quiz 3
14 Analysis and Design of
OOP
Methodology
UML ( Class and use case diagram)
OOP Guidelines
Management obstacles
TIJ Ch 16 Assignment 4 (individual)
Assignment 4
submitted.
15 Programming Exam
16 Final Exam Assignment 5 (Team) Assignment 5
submitted
before Final
Exam
17 Assignment 5:
presentation and oral
evaluation.
Assignment 5
graded by
lecturer
18 Publishing Final Grade Two weeks
after exam.
20. 12
Bab 6
EVALUASI HASIL PEMELAJARAN
Bentuk/jenis instrumen
1. Tugas Individu (Modul Latihan)
2. Tugas Kelompok (Modul Latihan)
3. Quiz Tertulis
4. Ujian Tertulis (essay, jawaban singkat)
5. Ujian Praktikum (Programming, source code)
Grading Scheme:
20% Mid Exam
10% Programming Exam
25% Final Exam (it covers all materials)
20% Programming Assignment (Assignment 1-4)
10% Group Project (Assignment 5)
15% Quiz (inc. Forum Discussion Activities)
Final grades are based on normal distribution curve.
21. 13
Bab 7
CONTOH SOAL UJIAN
Contoh Soal Ujian Tertulis Tengah Semester
Contoh Soal Ujian Tertulis Akhir Semester
Contoh Soal Ujian Praktikum Akhir Semester