1. Buku ini membahas konsep-konsep utama pemrograman berorientasi objek seperti class, objek, enkapsulasi, pewarisan, dan polimorfisme serta penjelasan mengenai UML.
2. Buku ini terdiri dari 286 halaman dan membahas topik-topik seperti class diagram, hubungan antara OOAD dan OOP, konsep objek dan kelas, simulasi enkapsulasi dan pewarisan, serta penjelasan abstraksi dan generik dalam OOP.
3. Buk
Similar to Baiklah, berikut programnya:class Karyawan{ private int gajiPokok; private String statusNikah; public Karyawan(int gajiPokok, String statusNikah){ this.gajiPokok = gajiPokok; this.statusNikah = statusNikah; } public int hitungGaji(){ int tunjangan, totalGaji; if(this.statusNikah.equals("Menikah")){ tunjangan = (int)(this.gajiPokok * 0.35); totalGaji = this
Similar to Baiklah, berikut programnya:class Karyawan{ private int gajiPokok; private String statusNikah; public Karyawan(int gajiPokok, String statusNikah){ this.gajiPokok = gajiPokok; this.statusNikah = statusNikah; } public int hitungGaji(){ int tunjangan, totalGaji; if(this.statusNikah.equals("Menikah")){ tunjangan = (int)(this.gajiPokok * 0.35); totalGaji = this (20)
3. 1. Pengenalan Konsep Class Diagram
2. Hubungan OOAD dengan OOP
3. Konsep Objek dan Kelas
4. Konsep dan Simulasi Enkapsulasi
5. Konsep dan Simulasi Pewarisan
6. Konsep dan Simulasi Polimorphisme
7. Penjelasan Konsep Abstraksi Pada OOAD dan OOP
8. Penjelasan Konsep Generic
4. • Class merupakan jantungnya object oriented programming
• Struktur sistem terdari dari kumpulan objek
• Class menjelaskan berbagai jenis objek yang dimiliki
sistem, dan diagram class menunjukkan relasi antar class
tersebut.
• Usecase menggambarkan perilaku sistem,
• Class menggambarkan berbagai jenis objek yang
diperlukan dalam sistem untuk memenuhi usecase.
• Class merupakan bagian dari logical view model
5.
6.
7. INDIKATOR TERSTRUKTUR OBJEK ORIENTED
Definisi Pemrograman terstruktur adalah suatu proses untuk
mengimplementasikan urutan langkah untuk
menyelesaikan suatu masalah dalam bentuk program
Pemrograman berbasis obyek (OOP)
berdasarkan pada konsep object dan
interaksinya. Program diselesaikan
oleh obyek-obyek yang bekerjasama
untuk menyelesaikan masalah
Fokus Proses (Urutan) Objek
Bahasa
Pemodelan
SAD (Structured Analysis & Design) OOAD (Object Oriented Analysis &
Design)
Model Data Kurang Fleksibel Fleksibel
Reusable Tidak bisa Bisa
8.
9.
10.
11.
12.
13.
14. Contoh :
Pengembangan SIA (Sistem Informasi Akademik)
Berorientasi Prosedur
SIA
mhs_registrasi
mhs_krs
dosen_insertNilai
admin_setJadwal
Prosedur / fungsi
18. • Analogi dengan bass fender
• Fender membuat ratusan bass dengan berbagai macam
karakteristik.
• Class ada sesuatu sejenis blueprint dari objek sesuatu yang
bisa dikonstruksikan.
Instansiasi / Object dari class
CLASS
22. • Kumpuulan objek-objek yang memiliki atribut dan method yang sama.
• Template untuk membentuk sebuah objek didalam PBO
• Dari sebuah kelas bisa dibentuk banyak objek dengan nama yang berbeda.
Pada PBO, kita harus memastikan sebuah kelas sudah terdefinisi sebelum bisa
membuat objek dari kelas tersebut.
• Objek adalah hasil instansiasi dari sebuah kelas
• Contoh Konkrit : Objek kucing persia
• Objek kucing itu bisa melakukan : berjalan maju , melompat, berlari , tidur ,
makan dll
• Objek kucing memiliki sifat : kulit belang , ekor pendek, kuku tajam dll.
• Objek dibuat dari sebuah Class , jadi semua code program
(data/properties dan fungsi/method) objek ada di class. Dengan kata lain
class adalah blue print (cetakan) dari objek.
• Suatu objek bisa juga spesialisasikan menjadi objek yang lebih rendah
tingkatnya (spesialisasi/specialization) atau bisa digeneralisasikan menjadi
objek yang lebih tinggi tingkatnya (generalisasi/generalization).
23. Untuk membuat objek kue1 , kue2 , kue3 dari class kue :
kue1 = new kue
kue2 = new kue
kue3 = new kue
24.
25. IN DESIGN A CLASS, THINK ABOUT 2 THINGS:
1. Things the object knows
2. Things the object does
DEFINISI
1. Kumpulan objek-objek yang memiliki atribut yang sama
2. Template untuk membuat objek
3. Prototipe atau blue pront yang mendefinisikan variabel-
variabel & method-method secara umum
26.
27. DEFINISI
1. Abstraksi dari sesuatu yang mewakili sesuatu yang ada
didunia nyata dan harus dapat dibedakan dengan objek lain
2. Objek merupakan hasil instansiasi dari class
3. Proses pembentukan objek dari suatu class
4. Objek disebut juga instance
5. Semua benda di dunia nyata bisa dianggap sebagai objek.
Contoh : kursi, meja, buku sepeda, komputer
6. Penggambaran pemrograman berorientasi objek =
penggambaran di dunia nyata DEKLARASI OBJEK
33. Kucing
- jenis : String
- berat : int
+ setJenis(j : String) : void
+ getJenis() : String
+ setBerat(b : int) : void
+ getBerat() : int
Modifier:
+ : public
- : private
# : protected
~ : package/default
34.
35.
36. Perbedaan pemrograman berorientasi objek dibandingkan
dengan pemrograman prosedural juga terletak pada SIFAT yang
dimiliki oleh pemrograman berorientasi objek :
1.Abstraksi (Abstraction)
2.Enkapsulasi (Pembungkusan)
3.Pewarisan (Inheritance)
4.Polimorfisme (Polymorphism)
39. 1. Sebuah proses penggabungan atribut dan method ke dalam
sebuah kelas.
2. Biasanya atribut dan methd dideskripsikan terpisah pada
pemrograman prosedural.
3. Enkapsulasi juga dihubungakan dengan pemberian hak
akses pad akelas ataupun anggota dari sebuah kelas (atribut
dan method)
4. Variabel dan method yang dipunyai sebuah object bisa
ditentukan hak aksesnya.
40. 1. Data yang membedakan antara objek yang satu dengan
yang lain
2. Contoh : manusia
3. Atributnya : status, berat badan & tinggi badan
4. Didalam class atribut disebut sebagai variabel
41. • Ditandai dengan garis bawah
• Kapan atribut statis dan operasi digunakan ? adalah
saat Anda ingin menerapkan pola desain Singleton.
• Singkatnya, pola desain Singleton memastikan
bahwa satu dan hanya satu objek dari kelas tertentu
yang pernah dibangun selama masa pakai sistem
Anda.
• Untuk memastikan bahwa hanya satu objek yang
pernah dikonstruksikan, implementasi khas pola
Singleton menyimpan referensi statis internal ke
instance objek tunggal yang diizinkan, dan akses ke
instance tersebut dikontrol menggunakan operasi
statis.
42. 1. Serangkaian statement dalam suatu class yang menghandle
suatu task
2. Cara objek berkomunikasi dengan objek lain adalah dengan
menggunakan method
43.
44. • Enkapsulasi membuat atribut dan method menjadi lebih terorganisir dan jelas
kepemilikannya.
• Pemberian hak akses juga merupakan bagian terpenting dari proses
enkapsulasi. Hak akses diberikan pada tiga hal, yaitu kelas, atribut dan
method.
45. • UML's four different visibility classifications
46. • Dimulai dengan karakteristik visibilitas yang paling mudah diakses, visibilitas publik ditentukan
menggunakan simbol plus (+) sebelum atribut atau operasi yang terkait. Deklarasikan atribut atau operasi
publik jika Anda ingin dapat diakses langsung oleh kelas lain.
• Hal yang terbaik adalah menghindari atribut publik, tetapi
selalu ada pengecualian untuk aturan tersebut. Salah satu
contoh di mana secara umum diterima untuk menggunakan
atribut publik adalah ketika atribut adalah konstanta yang
dapat digunakan oleh sejumlah kelas yang berbeda.
• Atribut yang bertindak sebagai konstanta, yaitu, untuk
diberi nilai awal yang tidak dapat diubah diberi properti
readOnly.
• Dalam situasi ini, mengekspos atribut ke seluruh sistem
Anda tidak begitu berbahaya karena nilainya tidak dapat
diubah.
Using public visibility, any class within
the model can access the publicURL
attribute
47. • Atribut dan operasi yang dilindungi
ditentukan menggunakan simbol hash (#).
• Hanya berlaku di kelas turunannya
• Elemen yang PROTECTED tidak dapat
diakses oleh kelas yang tidak mewarisi dari
kelas Anda apakah itu dalam paket yang
sama atau tidak,
Any methods in the BlogAccount
class or classes that inherit from
the BlogAccount class can access
the protected creationDate
attribute
48. • Visibilitas paket, ditentukan dengan tilde (~), ketika
diterapkan pada atribut dan operasi, berada di antara
protected dan private.
• Aturannya cukup sederhana: jika Anda menambahkan
atribut atau operasi yang dideklarasikan dengan
visibilitas paket ke kelas Anda, maka setiap kelas
dalam paket yang sama dapat langsung mengakses
atribut atau operasi itu,
• Kelas di luar paket tidak dapat mengakses atribut
atau operasi yang dilindungi bahkan jika itu adalah
kelas turunan.
• alam praktiknya, visibilitas paket paling berguna
ketika Anda ingin mendeklarasikan kumpulan metode
dan atribut di seluruh kelas Anda yang hanya dapat
digunakan dalam paket Anda.
•
The countEntries operation can be called
by any class in the same package as the
BlogAccount class or by methods within
the BlogAccount class itself
49. • Visibilitas PRIVATE adalah jenis klasifikasi visibilitas yang
paling ketat, dan ditunjukkan dengan menambahkan simbol
minus (-) sebelum atribut atau operasi.
• Hanya kelas yang berisi elemen pribadi yang dapat melihat
atau bekerja dengan data yang disimpan dalam atribut
pribadi atau melakukan panggilan ke operasi pribadi
• Ini adalah aturan umum bahwa atribut harus selalu PRIVATE
dan hanya dalam kasus ekstrim dibuka untuk mengarahkan
akses dengan menggunakan sesuatu yang lebih terlihat.
Pengecualian untuk aturan ini adalah ketika Anda perlu
membagikan atribut kelas Anda dengan kelas yang mewarisi
dari kelas Anda. Dalam hal ini, sudah umum untuk
menggunakan protected. Dalam sistem OO yang dirancang
dengan baik, atribut biasanya PRIVATE atau PROTECTED,
tetapi sangat jarang PUBLIK
aMethod is part of the BlogAccount class, so it
can access the private name attribute; no
other class's methods can see the name
attribute
50.
51. Buatlah program sesuai dengan gambar class diagram disamping kanan dan
implementasi coding nya dengan konsep pendekatan berbasis objek sehingga
menghasilkan output seperti berikut:
52. Disebuah perusahaan software terdapat sebuah aturan
penggajian dimana jika seorang karyawan sudah menikah,
maka karyawan tersebut akan mendapatkan tunjangan
sebesar 35% dari gaji pokok nya.
Jika Younglex ingin mengetahui berapa total gaji &
tunjangan nya dikarenakan dia sudah menikah dan memiliki
gaji pokok sebesar Rp 6.000.000 /bulan,
maka Bantulah younglex dengan cara buat program
tunjangan agar younglex dapat mengetahui hal tersebut
dengan cara menginputkan nominal gaji pokok & status
menikah atau belumnya sendiri?
53. • Prinsip didalam pemrograman berorientasi objek yaitu ketika kita membuat
atribut, maka jangan berikan hak akses public pada atribut tersebut. (kecuali
pada kasus pewarisan).
• Berikan lah hak akses berupa private
• Hak akses private tidak bisa diakses oleh selain kelas pemilik atribut tersebut
• Tujuannya adalah
1. Membatasi hak akses. Ini dilakukan agar sebuah member tidak sembarangan
dibaca atau di isi
2. Menyembunyikan informasi. Pengguna class tidak harus tahu apa yang
ada/terjadi di dalam class (Information Hiding)
3. Security coding
4. Memudahkan tracing bugs
5. Memungkinkan agar kemungkinan error tidak terjadi secara menyeluruh jika
kita menggunakan hak akses public
54.
55. • Agar atribut nama yang bersifat private tersebut dapat diakses di kelas lain,
maka kita dapat menggunakan konsep getter setter.
• Getter dan setter adalah dua buah method yang dibuat untuk masing-
masing atribut agar kelas lain bisa melakukan modifikas dan pengaksesan
nilai yang ada pada suatu atribut.
• Getter setter memiliki hak akses public sehingga bisa diakses oleh kelas lain.
• Getter merupakan method yang dibuat untuk mengambil/mengembalikan
nilai sebuah atribut kepada pemanggilnya
• Setter merupakan method yang dibuat untuk memodifikasi nilai dari suatu
atribut berdasarkan nilai yang dikirim oleh pemanggilnya menggunakan
parameter input
56. • Format getter
Public <tipedataatribut> getNamaAtribut(){
Return <namaatribut>;
}
• Format setter
Public void setNamaAtribut(<paramaterInputAtribut>){
This.<namaatribut> = <parameterInputAtribut>;
}
57.
58. • Kata kunci this terdapat pada setter yang digunakan untuk
membedakan antara atribut internal kelas dengan nama parameter
input apabila keduanya bernama sama.
• Kita bisa memberikan nama yang berbeda dan tidak menggunakan kata
kunci this. This mengacu pada nama atribut internal kelas.
59.
60.
61. 1. Fungsi khusus yang namanya harus sama dengan nama class
2. Konstruktor digunakan untuk inisialisasi dan pemberian default value
3. Dipanggil otomatis ketika instansiasi objek
4. Tidak mengembalikan nilai
5. Konstruktor dapat di overloading
6. Konstruktor dibuat untuk menandakan bahwa objek dari suatu kelas sedang
diinstansiasi
7. Desktruktor menandakan bahwa objek dihancurkan dari memori
8. Java menganut konsep garbage collector sehingga JDK akan secara otomatis akan
menghancurkan objek yang dianggap sudah tidak dipakai. Kita cukup membuat
konstruktor secara eksplisit sementara destruktor bersifat optional
62.
63.
64. 1. Konstruktor dapat digunakan untuk memberikan nilai awal pada
suatu atribut pada class tersebut
2. Proses inisialisasi ini mirip seperti setter.
65. 1. Membuat fungsi dengan nama yang sama tetapi memiliki parameter yang
berbeda, baik secara jumlah maupun penamaan parameternya
2. Pemanggilan konstruktor tergantung pada instansiasi objek
66. 1. Digunakan sebagai penanda ketika objek dihapus dari memori
2. Dipanggil otomatis ketika objek dihancurkan
3. Tidak mengembalikan nilai dan tidak berparameter
4. Tidak dapat di overloading
5. Java memiliki fasilitas garbage collector sehingga tidak perlu membuat
destruktor secara eksplisit
6. Garbage Collector adalah mekanisme JVM untuk menghapus object dari
memory kalau sudah tidak dibutuhkan. Garbage collector adalah fitur JVM yang
sangat penting karena programmer tidak perlu lagi menulis code secara
eksplisit untuk menghapus object seperti pada C/C++. Tugas utama Garbage
Collector adalah memastikan heap mempunyai cukup ruang selama eksekusi
aplikasi dengan menghapus object dalam heap yang sudah tidak digunakan lagi.
Garbage Collector sepenuhnya dikontrol oleh JVM kapan berjalan, ada cara
untuk menganjurkan Garbage Collector berjalan, tapi anjuran ini bisa dijalankan
oleh JVM bisa juga tidak dijalankan oleh JVM.
68. Buatlah program sesuaidengan gambar class diagram dibawah ini
dan implementasi coding nya dengan konsep pendekatan
berbasis objek sehingga menghasilkan output seperti berikut:
69.
70. • Inheritance adalah proses dimana sebuah class
mendapatkan properti (atribut + method) dari class
lain.
• Dengan inheritance, sebuah class dapat dikembangkan
menjadi class baru yang lebih lengkap/baik.
• Class yang diturunkan disebut sebagai SUPERCLASS
(base class atau parent class)
• Class yang menjadi turunan disebut sebagai SUBCLASS
(derived class, extended class, atau child class).
• Inheritance dilakukan dengan keyword extends.
• Menggunakan relasi IS A
• Contoh : Burung (mempunyai sayap, bertelur dan
berparuh). Salah satu contoh burung adalah
elang.
• Pengujian : Elang IS A burung
71. • SPESIALISASI : membuat kelas baru yang lebih spesifik
• REUSABILITY : Penggunaan kembali kode dari super class
1. Bisa memanfaatkan atribut dan method kelas super
2. Bisa membuat atribut dan method baru pada kelas anak
3. Bisa memanfaatkan konstruktor pada kelas super
72.
73.
74.
75.
76.
77.
78. • Tanda tidak dapat berubah/diganti
• Berlaku untuk atribut, metode dan kelas
• Atribut Final berarti : isi atribut tersebut tidak dapat
diganti (konstanta)
• Metode Final berarti : metode tersebut tidak bisa di
override oleh sub classnya
• Kelas Final berarti : kelas tersebut tidak bisa menjadi
kelas orang tua (tidak bisa diturunkan.)
79.
80.
81.
82.
83.
84.
Question :
There is a surgeon & family doctor. Surgeon has no special identity on him. However,
surgeon can do treatPatient and makeIncision. Family doctor has an identity that
makeshousecalls and family doctor can do give advice.
Surgeon & family doctor is part of the doctor where the doctor has a worksAtHospital
identity and can do treatPatient as well.
Asked:
Describe the Relation of its Class Diagram?
Create Coding?
Answer the Question?
85.
86.
87. • Berarti kemampuan objek untuk mempunyai
banyak bentuk
• Suatu aksi yang memungkinkan programmer
menyampaikan pesan tertentu keluar dari hierarki
objeknya.
• Objek yang berbeda memberikan
tanggapan/respon terhadap pesan yang sama
sesuai dengan sifat masng-masing objek
• Proses polimorphism : overloading method &
overriding method
• Jenis polymorph : Ad hoc & Subtyping
88. • Adalah keadaan dimana beberapa method yang
terdapat pada suatu class memiliki nama yang sama
dengan fungsionalitas yang sama
89.
90.
91. • Adalah keadaan dimana suatu method di subclass
mengingkari method yang ada pada superclassnya.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105. • Konsep reusable
• Dalam java dikenal istilah template kode yang diwakili
oleh abstrak / interface
• Contoh dibawah ini, terlihat konsep yang mirip.
Terdapat method yang sama. Perbedaannya adalah
hanya rumus yang digunakan di masing-masing method.
• Kita coba buatkan konsep abstrak nya.
106. • Buatkan kelas BangunDatar sebagai kelas
abstrak.
• Kenapa bangun datar? Karena tidak ada
rumus yang dapat digunakan untuk
menghitung keliling dan luas dari bangun
datar.
• Kita baru bisa definisikan keliling dan luas
dari bentuk yang konkrit yaitu persegi
dan lingkaran.
• Kelas abstrak = template, memudahkan
kita dalam melakukan pembuatan kelas
baru yang masih anggota dari kelas
abstrak tersebut tanpa harus
menganalisis terlalu dalam tentang
method yang perlu disediakan.
• Manfaat : waktu analisis menjadi lebih
singkat.
107. • Class abstract adalah class yang tidak dapat diinstansiasikan.
• Semua member dari class tetap ada tetapi tidak bisa diinstansikan.
• Jika class abstract ingin diinstansiasikan, maka harus diturunkan terlebih
dahulu kesubclassnya.
• Abstract dapat digunakan pada level Class atau Method.
• Untuk menyatakan sebuah class adalah class abstract, tambahkah keyword
abstract ketika mendefinisikan class.
• Class abstract dikembangkan dengan keyword extends.
• Abstract terjadi ketika seorang pendesain sistem baru memikirkan rencana
method yang ada tetapi belum terlalu memperdulikan bagaimana
implementasinya
108.
109.
110.
111.
112.
113.
114.
115. • Method abstract adalah suatu metode di dalam class
abstract yang belum ditentukan isinya (hanya nama
method dan parameternya saja).
• Method abstract harus diimplementasikan (ditulis isi
methodnya) di subclassnya.
116.
117.
118.
119.
120.
121.
122.
123. • Konsep lain dari abstraksi
• Interface adalah sekumpulan method abstract.
• Sebuah blok program yang hanya berisi method-method
untuk diimplementasi dikelas yang lain.
• Class dapat mengembangkan sebuah interface dengan cara
mengimplementasikannya.
• Cara menuliskan interface mirip dengan cara menuliskan
class, tetapi interface bukanlah class.
• Class implementasi bisa mengimplementasi lebih dari satu
interface. Interface diimplementasi, bukan di extend
124. • Interface dikembangkan dengan keyword implements
• Class dikembangkan/diturunkan dengan keyword
extends
• Semua method yang ada di interface WAJIB
diimplementasikan di class yang
mengimplementasikannya.
• Setiap method yang ada di interface harus
diimplementasikan, sedangkan pada class tidak
semua method harus di override.
125.
126.
127.
128. • Bukan menggunakan relasi inheritance
• Tetapi menggunakan realization
• Di java realization menggunakan kata kunci implements
129.
130.
131.
132.
133.
134.
135. • Di Java, sebuah kelas hanya boleh menjadi turunan dari 1
superclass. Tidak ada multiple-inheritance di java. Tapi
Java memperbolehkan sebuah class
mengimplementasikan lebih dari interface.
• Contoh:
1. Class Mobil mempunyai method berjalan();
2. Class Helikopter mempunyai method Terbang();
3. Class Mobikopter(gabungan mobil dan helikopter)
seharusnya memiliki kedua method tersebut.
136.
137.
138. • Cara pandang pemrograman yang memungkinkan seorang pembuat kelas menunda
pemberian tipe pada atribut & method
• Nama lain dari konsep “types-to-be-specified-later”
• Kelas yang dibuat bisa digunakan untuk tipe data yang berbeda
• Contoh :
Kedua jenis sample code ini adalah ilustrasi program untuk tipe data berbeda. Untuk setiap
tipe data yang berbeda kita harus membuat satu kelas tersendiri padahal kegunaannya sama.
• Untuk efisiensi desain kelas tersebut, kita dapat menggunakan konsep generic programming.
• Dapat diimplementasikan menjadi 2 konsep, yaitu :
1. Konsep tipe Object
2. Konsep tag generic <T>
139. • Object adalah kelas bawaan di Java sehingga bisa digunakan sebagai tipe dari atribut
maupun method tertentu.
• Kelas Object bisa dideklarasikan kembali menjadi kelas lain dimana didalam java sendiri
setiap tipe data itu dideskripsikan didalam sebuah kelas. (Cth : tipe data double adalah
objek dari kelas Double)
• Ide dasar nya adalah atribut dan method dideklarasikan menggunakan tipe object
sehingga nanti ketika ada objek yang ingin menggunakan atribut dan method di kelas
tersebut, objek tersebut tinggal mendeskripsikan ulang kelas tipe data yang diinginkan.
140. • Contoh Menukar nilai dua variabel :
• Terlihat tipe object
digantikan oleh tipe
String dan integer.
141. • Contoh Menukar nilai dua variabel :
• Terlihat dapat
mendeskripsikan nilai
dalam sebuah
variabel
142. • Tipe Object bisa didefinsikan dengan kelas tipe data, cth : Integer, String, Double
• Tipe ini tidak bisa didefinsikan dengan instance dari kelas tipe data, cth: int, double
• Kelemahan tipe object : kita bisa memasukkan nilai sembarang dengan tipe data yang
berbeda dan nilai tersebut dapat diganti dengan nilai lain yang memiliki tipe data yang
berbeda dengan sangat mudah.
• Objek dari kelas yang mengandung konsep object, tidak spesifik terhadap suatu jenis data
sehingga bisa menyebabkan kebingungan ketika menggunakannya.
• Untuk mengatasi hal tersebut kita dapat menggunakan konsep TAG GENERIC <E>.
Penggunaan Template (generic) :
"I know this class will have to work with other classes, but I
don't know or necessarily care what those classes actually end
up being."
143. • Tag ini diwakili oleh simbol <E> . Kita bisa mengganti huruf yang diapit oleh kedua kurung
siku tersebut.
• Konsep ini mengharuskan kita memilih satu dari sekian banyak tipe kelas data ketika
mendeklarasikann objek pada kelas yang mengandung tag generic.
• Perbedaan dari konsep sebelumnya adalah pada tipe dari atribut maupun method harus
disesuaikan dengan huruf yang diapit oleh kedua kurung siku tersebut.
• Contoh desain kelas dengan konsep tag generic :
E
144. • Pada kelas pertukaranNilai terdapat kotak putus-putus dengan hurup E didalmnya
• Simbol tersebut menunjukkan template parameter yang digunakan untuk
menggambarkan tag generic.
• Berikut adalah implementasi desain kelas tersebut kedalam coding
E
145. • Dari file Tester.Java tersebut dapat dilihat bahwa untuk setiap kelas tipe data terdapat satu
objek yang didedikasikan untuk mewakili kelas tipe data tersebut.
• Objek “tukarInteger” didedikasikan untuk mengurusi pertukaran nilai untuke kelas tipe data
“Integer”.
• Tag <T> ditimpa menjadi <Integer> sehingga kelas “PertukaranNilai” bisa digunakan untuk kelas
tipe data “Integer”
• Kedua konsep baik object maupun tag generic samasama bisa digunakan untuk memprogram
secara generic akan tetapi masing-masing mempunyai resiko tersendiri yang harus dipahami
ketika kita menggunakannnya.
• Penggunaan tag generic lebih disarankan karena pertukaran antar kelas tipe data dilakukan
secara eksplisit per objeknya
• Berikutnya dibahas salah satu contoh penerapan generic programming didalam library
Collection.
146. • Collection adalah sebuah ad hoc class yang disediakan oleh java (Java Collection)
• Tujuannya untuk membantu pengguna bahasa java dalam melakukan penyimpanan data
atau objek serta memanipulasinya.
• Kelas ini mempermudah kita dalam operasi struktur data seperti linked list, stack &
struktur data lain.
• Berikut struktur data sederhana yang dibahas pada bahasan kali ini adalah :
1. ArrayList
2. Linked List
3. Stack
4. Priority Queue
5. HashMap
• Ada konsep yang bisa mempermudah proses traversal pada kelas Collection yaitu Iterator
147. • Iterator memungkinkan kita untuk operasi traversal dalam sebuah elemen collection
• Sebagai contoh, kita ingin mengakses semua nilai yang disimpan pada suatu collection.
• Format perintah iterator di java adalah
• Ada 2 buah metode pada kelas ini yang sering digunakan, yaitu :
1. Method hasNext(), method ini digunakan untuk memeriksa apakah iterator masih
mempunyai elemen data berikutnya atau tidak. Method ini akan mengembalikan
nilai true apabla iterator masih mempunyai elemen data berikutnya yang akan di
proses dan mengembalikan nilai false apabila iterator sudah tidak mempunyai
elemen data berikutnya.
2. Method Next, method ini digunakan untuk mengambil elemen berikutnya di iterator
148. • Implementasi Iterator dalam coding
• Iterator dapat digunakan untuk proses traversal elemen-
elemen yang ada pada arraylist bilanganBulat. Method
hasNext() digunakan pada pengulangan while untuk
memeriksa apakah masih ada elemen yang terdapat pada
arraylist bilanganBulat.
• Method next() digunakan untuk mengambil elemen yang
sedang ditunuk oleh iterator kemudian menyimpannya
dalam variabel elemen
149. • Merupakan struktur data array yang bersifat dinamis.
• Kita tidak perlu menginisialisasi ukuran array di awal.
• Format dasar penggunaannya adalah :
• Operasi yang sering digunakan pada kelas ArrayList
No Method Tipe Method Kegunaan
1 add(Object o) boolean Menambahkan data yang sudah dispesifikasikan ke akhir dari
ArrayList
2 add(int indeks, Object
elements)
void Menambahkan data yang sudah dispesifikasikan ke posisi
tertentu di ArrayList
3 clear() Void Menghapus seluruh elemen dari ArrayList
4 get(int indeks) Object Mengembalikan nilai dari elemen arraylist pada posisi sesuai
indeks yang diinginkan
5 Remove(int indeks) Object Menghapus elemen Arraylist pada di posisi sesuai indeks yang
diinginkan
6 size Int Mengembalikan nilai berupa jumlah elemen yang ada pada
arraylist
152. • Linked list menggunakan pointer untuk mengakses data yang ada didalamnya.
• Berbeda dengan array list yang menekankan penggunaan indeks untuk mengakses datanya, linked list
menggunakan konsep penunjuk ke data setelahnya atau sebelumnya.
• Linked list menggunakan dua penunjuk yang wajib ada yaitu pointer first yang selalu menunjuk data yang ada di
posisi paling awal dan pointer last yang selalu menunjuk data yang ada di posisi terakhir.
• Format dasar penggunaannya adalah :
• Operasi yang sering digunakan pada kelas ArrayListNo Method Tipe Method Kegunaan
1 add(Object o) Boolean Menambahkan data yang sudah di spesifikasikan ke akhir
2 add(int indeks, Object
elements)
Void Menambahkan data yang sudah di spesifikasikan ke posisi
tertentu
3 addFirst(Object o) Void Menambahkan data di posisi paling awal
4 addLast(Object o) Void Menambahkan data di posisi paling akhir
5 removeFirst() Object Menghapus data paling awal
6 removeLast() Object Menghapus data paling akhir
7 getFirst() Object Mendapatkan data paling awal
8 getLast() Object Mendapatkan data paling akhir
154. • Cara kerjanya adalah seperti tumpukkan barang didunia nyata
• Konsep penyimpanan dan pengaksesan datanya menggunakan konsep LIFO (Last In First Out)
• Data yang dimasukkan terakhir akan diakses pertama kali ketika pada proses permintaan data.
• Format Dasar penggunaan :
• Implementasi coding
No Method Tipe Method Kegunaan
1 Push(Object o) Object Menambahkan data pada bagian atas stack
2 Pop() Object Mengambil data pada bagian atas stack
155. • PriorityQueue menggunakan konsep antrian didunia nyata
• Konsepnya adalah FIFO (First In First Out)
• Data yang disimpan pertama kali akan dikemablikan pertama apabila ada proses pengaksesan
No Method Tipe Method Kegunaan
1 Offer(Object o) Boolean Menyisipkan data ke dalam queue
2 Peek() Object Mengambil data dari bagian depan Queue tanpa menghapusnya
dari bagian depan antrian
3 Poll() Object Mengambil data dari bagian depan Queue dan menghapusnya
dari bagian depan antrian/Queue
157. • Hashmap menggunakan kunci untuk mengakses nilai yang disimpan didalamnya
• Setiap nilai yang akan disimpan akan dipetakan berdasarkan kuncinya masing-masing
• Kunci harus bersifat Unique.
• Format dasar hashmap:
No Method Tipe Method Kegunaan
1 put(Object K, Object V) Object Menambahkan pasangan key dan value ke dalam Hashmap
2 get(Object K) Object Mengambil value yang memiliki key seperti yang disebutkan
3 containsKey(Object K) Boolean Mengembalikan nilai true apabila didalam HashMap terdapat
key yang disebutkan
4 containValue(Object v) Boolean Mengembalikan nilai true apabila didalam HashMap terdapat
value yang disebutkan.
159. 1. Penjelasan Umum Relasi Kelas
2. Penjelasan Derajat Relasi Kelas
3. Konsep dan Simulasi Relasi Kelas Association
4. Konsep dan Simulasi Relasi Kelas Aggregation
5. Konsep dan Simulasi Relasi Kelas Composition
6. Konsep dan Simulasi Relasi Kelas Dependency
7. Penjelasan Konsep MVC
160.
161. • Kanban adalah istilah dalam Bahasa Jepang yang berarti
‘Visual record or signal’ atau ‘kartu’.
• Kebanyakan Industri manufaktur menganggap proses
pembuatan produk sebagai sesuatu yang mengalir tanpa
putus (kontinu) mulai dari desain, produksi, distribusi,
penjualan, dan pemasaran hingga layanan konsumen.
• Pekerja lini produksi di perusahaan Toyota menggunakan
Kanban untuk memberi tanda pada proses
manufakturing mereka. Kanban mula mula digunakan
oleh Toyota pada 1950-an
162. • Flexibel : Dengan memvisualisasikan perkerjaan yang dilakukan, kita
dapat mengetahui bottleneck dan kesalahan yang dapat dengan mudah
diubah.
• Memperlihatkan WIP : Dengan mengetahui WIP (Work In Progress)
team dapat menentukan kapan dan seberapa cepat suatu tugas harus
diselesaikan.
• Memudahkan dalam menjaga flow perkerjaan : Dengan sistem ini Agile
Coach dapat menjaga agar setiap tugas dapat diselesaikan dan release
produk berjalan lancar.
• Mempromosi kebersamaan : Dengan menggunakan Kanban, tim harus
belajar memiliki kebiasaan yang baik dan pola kerja yang baik seperti
saat ada masalah, masalah tersebut harus diselesaikan secara cepat hari
itu juga dengan tatap muka.
164. Peserta :
Hanya DT
Penyelenggara (EO) :
Dev Team
Alur :
1. Masing-masing DT bergantian, tanpa diinterupsi harus lanjut, bercerita
1. Aktifitas kemarin (melakukan apa saja)
2. Kendala kemarin (internal, eksternal)
3. Rencana aktifitas hari ini apa saja. Ke 3 hal ini untuk membantu tim capai sprint goal.
Penting untuk menyebarkan informasi pengembangan
2. Setelah daily scrum meeting ditutup, baru boleh rapat adhoc (terpisah)
3. Waktu maksimum 10-15 menit