24
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

Silabus disain pemrogramanberorientasiobjek_iki10830

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Silabus disain pemrogramanberorientasiobjek_iki10830

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

Page 3: Silabus disain pemrogramanberorientasiobjek_iki10830

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.

Page 4: Silabus disain pemrogramanberorientasiobjek_iki10830

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.

Page 5: Silabus disain pemrogramanberorientasiobjek_iki10830

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

Page 6: Silabus disain pemrogramanberorientasiobjek_iki10830

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.

Page 7: Silabus disain pemrogramanberorientasiobjek_iki10830

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

Page 8: Silabus disain pemrogramanberorientasiobjek_iki10830

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.

Page 9: Silabus disain pemrogramanberorientasiobjek_iki10830

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

Page 10: Silabus disain pemrogramanberorientasiobjek_iki10830

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)

Page 11: Silabus disain pemrogramanberorientasiobjek_iki10830

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

Page 12: Silabus disain pemrogramanberorientasiobjek_iki10830

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

Page 13: Silabus disain pemrogramanberorientasiobjek_iki10830

13

Diagram alur pokok bahasan

Page 14: Silabus disain pemrogramanberorientasiobjek_iki10830

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.

Page 15: Silabus disain pemrogramanberorientasiobjek_iki10830

15

Media Instruksional

1. Internet (I)

2. Presentasi Multimedia (M)

3. White board, infocus (Wbi)

Page 16: Silabus disain pemrogramanberorientasiobjek_iki10830

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

Page 17: Silabus disain pemrogramanberorientasiobjek_iki10830

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.

Page 18: Silabus disain pemrogramanberorientasiobjek_iki10830

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.

Page 19: Silabus disain pemrogramanberorientasiobjek_iki10830

11

Bab 5

CONTOH-CONTOH PERTANYAAN PENGARAH

Page 20: Silabus disain pemrogramanberorientasiobjek_iki10830

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.

Page 21: Silabus disain pemrogramanberorientasiobjek_iki10830

13

Bab 7

CONTOH SOAL UJIAN Contoh Soal Ujian Tertulis Tengah Semester

Contoh Soal Ujian Tertulis Akhir Semester

Contoh Soal Ujian Praktikum Akhir Semester

Page 22: Silabus disain pemrogramanberorientasiobjek_iki10830

14

Page 23: Silabus disain pemrogramanberorientasiobjek_iki10830

15

Bab 8

CONTOH MODUL LATIHAN/ PRAKTIKUM MANDIRI

Page 24: Silabus disain pemrogramanberorientasiobjek_iki10830

16

Bab 9

CONTOH MODUL TUTORIAL/ PRAKTIKUM DIBIMBING