Silabus disain pemrogramanberorientasiobjek_iki10830
-
Upload
jamil-jamil -
Category
Documents
-
view
57 -
download
3
Transcript of Silabus disain pemrogramanberorientasiobjek_iki10830
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
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
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 <[email protected]>
Yova Ruldeviyani <[email protected]>
Indra Budi <[email protected]>
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
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
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
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
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
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
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
(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
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
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
13
Diagram alur pokok bahasan
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.
15
Media Instruksional
1. Internet (I)
2. Presentasi Multimedia (M)
3. White board, infocus (Wbi)
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
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.
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.
11
Bab 5
CONTOH-CONTOH PERTANYAAN PENGARAH
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.
13
Bab 7
CONTOH SOAL UJIAN Contoh Soal Ujian Tertulis Tengah Semester
Contoh Soal Ujian Tertulis Akhir Semester
Contoh Soal Ujian Praktikum Akhir Semester
14
15
Bab 8
CONTOH MODUL LATIHAN/ PRAKTIKUM MANDIRI
16
Bab 9
CONTOH MODUL TUTORIAL/ PRAKTIKUM DIBIMBING