SlideShare a Scribd company logo
1 of 28
Abstract Data Types
dan
Java Collections API
Abstract Data Type (ADT)
?
 Spesifikasi dari sekumpulan data
termasuk operasi yang dapat
dilakukan pada data tersebut.
(Wikipedia)
 Sekumpulan data dan operasi
terhadap data tersebut yang definisi-
nya tidak bergantung pada
implementasi tertentu.
(/www.nist.gov/dads/)
Interface
 Spesifikasi Abstract Data Type biasa
disebut sebagai interface.
 Interface menyatakan apa yang dapat
dilihat dan digunakan oleh programmer.
 Dalam Java, hal tersebut dinyatakan
sebagai public method.
 Operasi-operasi yang dapat dilakukan
pada abstract data type dituliskan
dalam interface dan dinyatakan public.
Pemisahan interface dengan
implementasi
 Pengguna dari sebuah abstract data type
hanya perlu memikirkan dan mempelajari
interface yang diberikan tanpa perlu
mengetahui banyak bagaimana
implementasi dilakukan (prinsip :
enkapsulasi)
 Implementasi dapat saja berubah namun
interface tetap.
 Dengan kata lain, implementasi dari
sebuah abstract data type dapat saja
berbeda-beda namun selama masih
mengikuti interface yang diberikan maka
program yang menggunakan abstract
data type tersebut tidak akan
terpengaruh.
Struktur data = container
 Sebuah struktur data dapat dipandang
sebagai tempat penyimpanan benda
(container).
 Beberapa hal yang dapat dilakukan:
◦ Menaruh benda
◦ Mengambil benda
◦ Mencari benda tertentu
◦ Mengosongkannya (atau periksa
apakah kosong)
Container
Data
Contoh Interface struktur data :
void add(Benda x);
void remove(Benda x);
Benda access(Benda x);
void makeEmpty();
boolean isEmpty();
ADT: List
 Sebuah List adalah kumpulan benda di mana setiap
benda memiliki posisi.
 Setiap benda dalam List dapat diakses melalui indeks-
nya.
 Contoh paling gampang: array!
1 2 3 4
Indeks
Contoh Interface list :
void insert(int indeks, Benda x);
void append(Benda x);
void remove(int indeks);
void remove(Benda x);
Benda get(int indeks);
ADT: Stack
 Sebuah Stack adalah kumpulan
benda di mana hanya benda yang
most recently inserted dapat
diakses.
 Bayangkan setumpuk koran.
 Benda yang paling terakhir
ditambahkan ditaruh di atas
tumpukan (top).
 Operasi pada Stack membutuhkan
waktu konstan (O(1)).
Least
recent
Most
recent
push pop,top
Contoh Interface stack :
void push(Benda x);
Benda pop();
Benda top();
ADT: Queue
 Sebuah Queue adalah kumpulan benda di mana hanya benda
yang least recently inserted dapat diakses.
 Bayangkan antrian printer job pada jaringan.
 Benda yang paling awal ditambahkan berada di depan antrian
(front).
 Operasi pada Queue membutuhkan waktu konstan (O(1)).
enqueue
Most recent Least recent
dequeue
getFront
Contoh Interface queue :
void enqueue(Benda x);
Benda dequeue();
Benda getFront();
ADT: Set
 Set adalah struktur data yang tidak mengizinkan duplikasi
data.
 Bandingkan dengan struktur data lain yang mengizinkan
kita menyimpan dua data yang sama.
 Bayangkan peserta kuliah ini: Setiap peserta unik, tidak
ada yang terdaftar dua kali!
tambah
Contoh Interface set :
void add(Benda x);
void remove(Benda x);
boolean isMember(Benda x);
ADT: Map
 Map adalah struktur data yang berisi sekumpulan pasangan
nama (keys) dan nilai (values) dari nama tersebut.
 Nama (Keys) harus unik, tapi nilai (values) tidak.
 Bayangkan basis-data yang berisi informasi peserta kuliah. Apa
yang menjadi “nama” (keys)?
Abdul Betty Chairul Dian
Nama:
Nilai:
Contoh Interface sebuah Map :
void put(Kunci id, Nilai x);
void remove(Kunci id);
Nilai get(Kunci id);
ADT: Priority Queue
 Priority Queue adalah struktur data queue yang tiap elemen data dapat
miliki nilai prioritas. Data dengan nilai prioritas tertinggilah yang dapat
diakses terlebih dulu.
 Bayangkan sebuah antrian pada printer jaringan. Misalkan ada sebuah
permintaan cetak untuk 100 halaman hanya beberapa detik lebih awal
dari permintaan cetak selembar halaman.
Highest
priority
insert deleteMin
findMin
Contoh Interface sebuah Priority Queue :
void insert(Benda x); (Menambahkan)
void deleteMin(); (menghapus)
Benda findMin(); (meng-akses)
Java Collection API
What is Collections?
 collection — di sebagian literatur
disebut sebagai: container
 Dalam bahasa pemrograman Java,
collection adalah sebuah object yang
mengelompokkan beberapa element
dalam satu unit.
 Collections digunakan untuk
menyimpan, mengambil,
memanipulasi dan untuk
menghubungkan/menggabungkan
data.
API vs doing it yourself
Jika anda menggunakan Java collections
framework, programmer lain dapat lebih
mudah mengadaptasi program anda.
Jika anda membuat implementasi sendiri,
maka programmer lain belum tentu dapat
dengan mudah mempelajari program
anda.
Namun demikian, sebagai mahasiswa/i
ilmu komputer, perlu memahami
bagaimana data tersusun dalam memory
dan perlu memahami konsep-konsep apa
yang mendasarinya.
Tidak menutup kemungkinan untuk meng-
extend/meng-implement Collections
Interfaces
 Java collections framework didasari
pada sekumpulan interface yang
mendikte metode-metode apa saja
yang harus diimplementasikan dan
membantu standarisasi penggunaan.
 Hubungan antara beberapa interface:
The Collection interface
 Interface Collection adalah interface
utama yang menetapkan operasi-operasi
dasar, antara lain:
int size();
boolean isEmpty();
boolean contains(Object element);
boolean add(E element);
boolean remove(Object element);
Iterator iterator();
.....
 E menyatakan tipe parameter.
Primitive types
 Collections adalah kumpulan dari referensi
terhadap object dan tidak bisa berisi tipe primitif.
 jika membutuhkan kumpulan data bertipe primitif
misalnya characters, kita tidak bisa
memparameterisasi collection dengan tipe char.
kita harus menggunakan kelas: Character
 Namun Java menyediakan fasilitas: boxing and
unboxing
 Jika hendak meletakkan data bertipe char dalam
sebuah collection bertipe Character, maka Java
akan secara otomatis melakukan “boxing”
(membungkus) char dalam kelas Character
 Jika hendak mendapatkan data char tersebut,
Java akan secara automatis melakukan “unbox”
dan memberikan data dalam tipe char.
Collections in use
import java.util.*;
public class Example{
private List<String> list
public List<String> getList(){
return list;
}
Example() {
list = new ArrayList<String>();
list.add(new String("Hello world!"));
list.add(new String("Good bye!"));
}
public void printList() {
for (Object s:list) {
System.out.println(s);
}
}
public static void main(String argv[]) {
Example e = new Example();
e.printList();
Collections.sort(e.getList());
e.printList();
}
}
Generic Collections
Kebutuhan akan generic
programming
 Terjadi run-time error!
Apa yang salah dengan program berikut:
void addStuffToCollection(Collection c){
c.add(new String("Hello world!"));
c.add(new String("Good bye!"));
c.add(new Integer(95));
printCollection(c);
}
void printCollection(Collection c){
Iterator i = c.iterator();
while(i.hasNext()){
String item = (String) i.next();
System.out.println("Item: "+item);
}
}
Pembatasan tipe collection
 Sebelum Java 5.0, tidak ada cara untuk
menetapkan tipe elemen dari sebuah
collection.
 Sehingga, kita harus melakukan variabel
casting di berbagai tempat.
◦ Cumbersome : melakukan casting saat
tidak diperlukan.
◦ Error-prone : dapat mengakibatkan run-
time exception.
 Generics adalah sebuah konsep yang dapat
digunakan untuk membatasi tipe elemen
sebuah collection.
 Pada Java versi > 5.0, Collections adalah
generic classes yang dapat menerima
parameter tipe yang menentukan tipe dari
elemennya.
Instantiasi kelas generic
 Sebuah kelas collection generic dapat
diinstantiasi melalui parameter tipe.
 Kita dapat saja membuat kelas generic
sendiri dan menginstantiasi dengan
berbagai tipe.
List<MyType> myList = new ArrayList<MyType>();
Kebutuhan akan generic
programming
 Dapat terdeteksi ketika compile-time !
Apa yang salah dengan program berikut:
void addStuffToCollection(Collection<String> c){
c.add(new String("Hello world!"));
c.add(new String("Good bye!"));
c.add(new Integer(95));
printCollection(c);
}
void printCollection(Collection<String> c){
Iterator i = c.iterator();
while(i.hasNext()){
String item = i.next();
System.out.println("Item: "+item);
}
}
Iterator
 Perhatikan kedua contoh sebelumnya
menggunakan kelas Iterator :
Iterator i = c.iterator();
 Hal yang umum dilakukan pada collection adalah
membaca seluruh elemen.
 i adalah objek iterator yang mengendalikan
iterasi pembacaan data pada collection c.
 Secara umum Iterator bekerja sebagai berikut:
 Mulai dengan mengatur iterator pada elemen
pertama pada collection.
 Satu-persatu berlanjut pada elemen selanjutnya
 Berakhir ketika tidak ada lagi elemen pada
collection yang belum dibaca.
Ilustrasi : Iterator
Iterator
Collection
User
(program yang
mengakses data)
Contoh lain penggunaan
iterator:
void printCollection(Collection<String> c){
Iterator itr = c.iterator();
for(itr = v.first(); itr.isValid(); itr.advance())
System.out.println(itr.getData());
}

More Related Content

What's hot

Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03KuliahKita
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)Kelinci Coklat
 
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)Kelinci Coklat
 
Pertemuan 6 Penyederhanaan RL-Karnaugh Map
Pertemuan 6   Penyederhanaan RL-Karnaugh MapPertemuan 6   Penyederhanaan RL-Karnaugh Map
Pertemuan 6 Penyederhanaan RL-Karnaugh Mapahmad haidaroh
 
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)difa febri
 
Laporan Praktikum Web dengan PHP
Laporan Praktikum Web dengan PHPLaporan Praktikum Web dengan PHP
Laporan Praktikum Web dengan PHPOkta Riveranda
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)Kelinci Coklat
 
Contoh Soal Huffman Code
Contoh Soal Huffman CodeContoh Soal Huffman Code
Contoh Soal Huffman CodeAlbertus H.
 
Neuron Mc Culloch Pitts dan Hebb
Neuron Mc Culloch Pitts dan HebbNeuron Mc Culloch Pitts dan Hebb
Neuron Mc Culloch Pitts dan HebbSherly Uda
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritriyana fairuz kholisa
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLDejiko Chaem
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automataahmad haidaroh
 
Pengantar metode numerik
Pengantar metode numerikPengantar metode numerik
Pengantar metode numerikputra_andy
 
soal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).pptsoal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).pptAmirahChiCwexNezz
 

What's hot (20)

Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
 
Pertemuan 6 Penyederhanaan RL-Karnaugh Map
Pertemuan 6   Penyederhanaan RL-Karnaugh MapPertemuan 6   Penyederhanaan RL-Karnaugh Map
Pertemuan 6 Penyederhanaan RL-Karnaugh Map
 
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
 
Laporan Praktikum Web dengan PHP
Laporan Praktikum Web dengan PHPLaporan Praktikum Web dengan PHP
Laporan Praktikum Web dengan PHP
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Contoh Soal Huffman Code
Contoh Soal Huffman CodeContoh Soal Huffman Code
Contoh Soal Huffman Code
 
Neuron Mc Culloch Pitts dan Hebb
Neuron Mc Culloch Pitts dan HebbNeuron Mc Culloch Pitts dan Hebb
Neuron Mc Culloch Pitts dan Hebb
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskrit
 
Turunan numerik
Turunan numerikTurunan numerik
Turunan numerik
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
 
Himpunan matematika diskrit
Himpunan matematika diskritHimpunan matematika diskrit
Himpunan matematika diskrit
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Pengantar metode numerik
Pengantar metode numerikPengantar metode numerik
Pengantar metode numerik
 
Sistem berbasis pengetahuan
Sistem berbasis pengetahuanSistem berbasis pengetahuan
Sistem berbasis pengetahuan
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
soal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).pptsoal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).ppt
 

Similar to 4 Adt

STACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikSTACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikkoamik4
 
Algoritma dan Struktur Data - pengenalan bahasa c++
Algoritma dan Struktur Data - pengenalan bahasa c++Algoritma dan Struktur Data - pengenalan bahasa c++
Algoritma dan Struktur Data - pengenalan bahasa c++Georgius Rinaldo
 
Algoritma dan Struktur Data - Pengenalan Bahasa C++
Algoritma dan Struktur Data - Pengenalan Bahasa C++Algoritma dan Struktur Data - Pengenalan Bahasa C++
Algoritma dan Struktur Data - Pengenalan Bahasa C++KuliahKita
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1zisgoo
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekimam arifin
 
Data structure bab 1
Data structure   bab 1Data structure   bab 1
Data structure bab 1Aviv Barkah
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objekAlvin Setiawan
 
Class dan object
Class dan objectClass dan object
Class dan objectHardini_HD
 
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamisbrada_abil
 
2 file dan directory
2  file dan directory2  file dan directory
2 file dan directoryFajar Baskoro
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriSyarif Fudin
 
Laprak algo (array dan seleksi data)
Laprak algo (array dan seleksi data)Laprak algo (array dan seleksi data)
Laprak algo (array dan seleksi data)Abdurrochman Soewarno
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekWahyu Widodo
 

Similar to 4 Adt (20)

STACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknikSTACK & QUEUE pert 5.pptx , stack program in teknik
STACK & QUEUE pert 5.pptx , stack program in teknik
 
Algoritma dan Struktur Data - pengenalan bahasa c++
Algoritma dan Struktur Data - pengenalan bahasa c++Algoritma dan Struktur Data - pengenalan bahasa c++
Algoritma dan Struktur Data - pengenalan bahasa c++
 
Algoritma dan Struktur Data - Pengenalan Bahasa C++
Algoritma dan Struktur Data - Pengenalan Bahasa C++Algoritma dan Struktur Data - Pengenalan Bahasa C++
Algoritma dan Struktur Data - Pengenalan Bahasa C++
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
Modul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objekModul praktikum java pemrograman berorientasi objek
Modul praktikum java pemrograman berorientasi objek
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
Data structure bab 1
Data structure   bab 1Data structure   bab 1
Data structure bab 1
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 
2 Array
2 Array2 Array
2 Array
 
Class dan object
Class dan objectClass dan object
Class dan object
 
Delphi
DelphiDelphi
Delphi
 
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
 
2 file dan directory
2  file dan directory2  file dan directory
2 file dan directory
 
Materi delphi
Materi delphiMateri delphi
Materi delphi
 
Projek asti(b) revisi
Projek asti(b) revisiProjek asti(b) revisi
Projek asti(b) revisi
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
 
5475 1 review konsep pbo
5475 1 review konsep pbo5475 1 review konsep pbo
5475 1 review konsep pbo
 
Laprak algo (array dan seleksi data)
Laprak algo (array dan seleksi data)Laprak algo (array dan seleksi data)
Laprak algo (array dan seleksi data)
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
 

More from ahmad haidaroh

Materi 7 Context Free Grammar
Materi 7   Context Free Grammar Materi 7   Context Free Grammar
Materi 7 Context Free Grammar ahmad haidaroh
 
Materi 4 Regular Expression
Materi 4   Regular ExpressionMateri 4   Regular Expression
Materi 4 Regular Expressionahmad haidaroh
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automataahmad haidaroh
 
Pertemuan 4 Aljabar Boole
Pertemuan 4   Aljabar Boole Pertemuan 4   Aljabar Boole
Pertemuan 4 Aljabar Boole ahmad haidaroh
 
Pertemuan 2&3 - Dasar2 Keamanan Encyption
Pertemuan 2&3 - Dasar2 Keamanan EncyptionPertemuan 2&3 - Dasar2 Keamanan Encyption
Pertemuan 2&3 - Dasar2 Keamanan Encyptionahmad haidaroh
 
Multiplekser - Demultiplekser - Pertemuan 7
Multiplekser - Demultiplekser - Pertemuan 7Multiplekser - Demultiplekser - Pertemuan 7
Multiplekser - Demultiplekser - Pertemuan 7ahmad haidaroh
 
Pertemuan 3a Rangkaian Aritmatik-Half n Full Adder
Pertemuan 3a   Rangkaian Aritmatik-Half n Full AdderPertemuan 3a   Rangkaian Aritmatik-Half n Full Adder
Pertemuan 3a Rangkaian Aritmatik-Half n Full Adderahmad haidaroh
 
Pertemuan 5a gerbang kombinasi-maxtem-minterm
Pertemuan 5a   gerbang kombinasi-maxtem-mintermPertemuan 5a   gerbang kombinasi-maxtem-minterm
Pertemuan 5a gerbang kombinasi-maxtem-mintermahmad haidaroh
 
Pertemuan 5 gerbang logika dasar n bentukan
Pertemuan 5   gerbang logika dasar n bentukanPertemuan 5   gerbang logika dasar n bentukan
Pertemuan 5 gerbang logika dasar n bentukanahmad haidaroh
 
Aritmatika Biner - Pertemuan 3
Aritmatika Biner - Pertemuan 3Aritmatika Biner - Pertemuan 3
Aritmatika Biner - Pertemuan 3ahmad haidaroh
 
Pertemuan 2 - Sistem Bilangan
Pertemuan 2 - Sistem BilanganPertemuan 2 - Sistem Bilangan
Pertemuan 2 - Sistem Bilanganahmad haidaroh
 
Pertemuan 2 - Sistem Bilangan - Ahmad
Pertemuan 2 - Sistem Bilangan - AhmadPertemuan 2 - Sistem Bilangan - Ahmad
Pertemuan 2 - Sistem Bilangan - Ahmadahmad haidaroh
 
Pertemuan 1 - Pendahuluan
Pertemuan 1 -  PendahuluanPertemuan 1 -  Pendahuluan
Pertemuan 1 - Pendahuluanahmad haidaroh
 

More from ahmad haidaroh (20)

Materi 7 Context Free Grammar
Materi 7   Context Free Grammar Materi 7   Context Free Grammar
Materi 7 Context Free Grammar
 
8 Rekursif
8 Rekursif8 Rekursif
8 Rekursif
 
6 ANTRIAN - QUEUE
6 ANTRIAN - QUEUE6 ANTRIAN - QUEUE
6 ANTRIAN - QUEUE
 
5 STACK
5 STACK5 STACK
5 STACK
 
3 Linked List
3   Linked List3   Linked List
3 Linked List
 
Materi 4 Regular Expression
Materi 4   Regular ExpressionMateri 4   Regular Expression
Materi 4 Regular Expression
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Presentasi OSPEK 2018
Presentasi OSPEK 2018Presentasi OSPEK 2018
Presentasi OSPEK 2018
 
Pertemuan 4 Dioda1
Pertemuan 4   Dioda1Pertemuan 4   Dioda1
Pertemuan 4 Dioda1
 
Pertemuan 4 Aljabar Boole
Pertemuan 4   Aljabar Boole Pertemuan 4   Aljabar Boole
Pertemuan 4 Aljabar Boole
 
Pertemuan 2&3 - Dasar2 Keamanan Encyption
Pertemuan 2&3 - Dasar2 Keamanan EncyptionPertemuan 2&3 - Dasar2 Keamanan Encyption
Pertemuan 2&3 - Dasar2 Keamanan Encyption
 
Multiplekser - Demultiplekser - Pertemuan 7
Multiplekser - Demultiplekser - Pertemuan 7Multiplekser - Demultiplekser - Pertemuan 7
Multiplekser - Demultiplekser - Pertemuan 7
 
Pertemuan 3a Rangkaian Aritmatik-Half n Full Adder
Pertemuan 3a   Rangkaian Aritmatik-Half n Full AdderPertemuan 3a   Rangkaian Aritmatik-Half n Full Adder
Pertemuan 3a Rangkaian Aritmatik-Half n Full Adder
 
Pertemuan 5a gerbang kombinasi-maxtem-minterm
Pertemuan 5a   gerbang kombinasi-maxtem-mintermPertemuan 5a   gerbang kombinasi-maxtem-minterm
Pertemuan 5a gerbang kombinasi-maxtem-minterm
 
Pertemuan 5 gerbang logika dasar n bentukan
Pertemuan 5   gerbang logika dasar n bentukanPertemuan 5   gerbang logika dasar n bentukan
Pertemuan 5 gerbang logika dasar n bentukan
 
Aritmatika Biner - Pertemuan 3
Aritmatika Biner - Pertemuan 3Aritmatika Biner - Pertemuan 3
Aritmatika Biner - Pertemuan 3
 
Pertemuan 2 - Sistem Bilangan
Pertemuan 2 - Sistem BilanganPertemuan 2 - Sistem Bilangan
Pertemuan 2 - Sistem Bilangan
 
Pertemuan 2 - Sistem Bilangan - Ahmad
Pertemuan 2 - Sistem Bilangan - AhmadPertemuan 2 - Sistem Bilangan - Ahmad
Pertemuan 2 - Sistem Bilangan - Ahmad
 
Presentasi Ordik 2016
Presentasi  Ordik   2016Presentasi  Ordik   2016
Presentasi Ordik 2016
 
Pertemuan 1 - Pendahuluan
Pertemuan 1 -  PendahuluanPertemuan 1 -  Pendahuluan
Pertemuan 1 - Pendahuluan
 

Recently uploaded

aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASreskosatrio1
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023DodiSetiawan46
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKDEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKirwan461475
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdftsaniasalftn18
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)3HerisaSintia
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDmawan5982
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxJamhuriIshak
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxadap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxmtsmampunbarub4
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxDwiYuniarti14
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfkustiyantidew94
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdfvebronialite32
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...MarwanAnugrah
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxFuzaAnggriana
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisNazla aulia
 

Recently uploaded (20)

aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKDEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdf
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SD
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptxadap penggunaan media sosial dalam kehidupan sehari-hari.pptx
adap penggunaan media sosial dalam kehidupan sehari-hari.pptx
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdf
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara Inggris
 

4 Adt

  • 2.
  • 3. Abstract Data Type (ADT) ?  Spesifikasi dari sekumpulan data termasuk operasi yang dapat dilakukan pada data tersebut. (Wikipedia)  Sekumpulan data dan operasi terhadap data tersebut yang definisi- nya tidak bergantung pada implementasi tertentu. (/www.nist.gov/dads/)
  • 4. Interface  Spesifikasi Abstract Data Type biasa disebut sebagai interface.  Interface menyatakan apa yang dapat dilihat dan digunakan oleh programmer.  Dalam Java, hal tersebut dinyatakan sebagai public method.  Operasi-operasi yang dapat dilakukan pada abstract data type dituliskan dalam interface dan dinyatakan public.
  • 5. Pemisahan interface dengan implementasi  Pengguna dari sebuah abstract data type hanya perlu memikirkan dan mempelajari interface yang diberikan tanpa perlu mengetahui banyak bagaimana implementasi dilakukan (prinsip : enkapsulasi)  Implementasi dapat saja berubah namun interface tetap.  Dengan kata lain, implementasi dari sebuah abstract data type dapat saja berbeda-beda namun selama masih mengikuti interface yang diberikan maka program yang menggunakan abstract data type tersebut tidak akan terpengaruh.
  • 6. Struktur data = container  Sebuah struktur data dapat dipandang sebagai tempat penyimpanan benda (container).  Beberapa hal yang dapat dilakukan: ◦ Menaruh benda ◦ Mengambil benda ◦ Mencari benda tertentu ◦ Mengosongkannya (atau periksa apakah kosong) Container Data Contoh Interface struktur data : void add(Benda x); void remove(Benda x); Benda access(Benda x); void makeEmpty(); boolean isEmpty();
  • 7. ADT: List  Sebuah List adalah kumpulan benda di mana setiap benda memiliki posisi.  Setiap benda dalam List dapat diakses melalui indeks- nya.  Contoh paling gampang: array! 1 2 3 4 Indeks Contoh Interface list : void insert(int indeks, Benda x); void append(Benda x); void remove(int indeks); void remove(Benda x); Benda get(int indeks);
  • 8. ADT: Stack  Sebuah Stack adalah kumpulan benda di mana hanya benda yang most recently inserted dapat diakses.  Bayangkan setumpuk koran.  Benda yang paling terakhir ditambahkan ditaruh di atas tumpukan (top).  Operasi pada Stack membutuhkan waktu konstan (O(1)). Least recent Most recent push pop,top Contoh Interface stack : void push(Benda x); Benda pop(); Benda top();
  • 9. ADT: Queue  Sebuah Queue adalah kumpulan benda di mana hanya benda yang least recently inserted dapat diakses.  Bayangkan antrian printer job pada jaringan.  Benda yang paling awal ditambahkan berada di depan antrian (front).  Operasi pada Queue membutuhkan waktu konstan (O(1)). enqueue Most recent Least recent dequeue getFront Contoh Interface queue : void enqueue(Benda x); Benda dequeue(); Benda getFront();
  • 10. ADT: Set  Set adalah struktur data yang tidak mengizinkan duplikasi data.  Bandingkan dengan struktur data lain yang mengizinkan kita menyimpan dua data yang sama.  Bayangkan peserta kuliah ini: Setiap peserta unik, tidak ada yang terdaftar dua kali! tambah Contoh Interface set : void add(Benda x); void remove(Benda x); boolean isMember(Benda x);
  • 11. ADT: Map  Map adalah struktur data yang berisi sekumpulan pasangan nama (keys) dan nilai (values) dari nama tersebut.  Nama (Keys) harus unik, tapi nilai (values) tidak.  Bayangkan basis-data yang berisi informasi peserta kuliah. Apa yang menjadi “nama” (keys)? Abdul Betty Chairul Dian Nama: Nilai: Contoh Interface sebuah Map : void put(Kunci id, Nilai x); void remove(Kunci id); Nilai get(Kunci id);
  • 12. ADT: Priority Queue  Priority Queue adalah struktur data queue yang tiap elemen data dapat miliki nilai prioritas. Data dengan nilai prioritas tertinggilah yang dapat diakses terlebih dulu.  Bayangkan sebuah antrian pada printer jaringan. Misalkan ada sebuah permintaan cetak untuk 100 halaman hanya beberapa detik lebih awal dari permintaan cetak selembar halaman. Highest priority insert deleteMin findMin Contoh Interface sebuah Priority Queue : void insert(Benda x); (Menambahkan) void deleteMin(); (menghapus) Benda findMin(); (meng-akses)
  • 14. What is Collections?  collection — di sebagian literatur disebut sebagai: container  Dalam bahasa pemrograman Java, collection adalah sebuah object yang mengelompokkan beberapa element dalam satu unit.  Collections digunakan untuk menyimpan, mengambil, memanipulasi dan untuk menghubungkan/menggabungkan data.
  • 15. API vs doing it yourself Jika anda menggunakan Java collections framework, programmer lain dapat lebih mudah mengadaptasi program anda. Jika anda membuat implementasi sendiri, maka programmer lain belum tentu dapat dengan mudah mempelajari program anda. Namun demikian, sebagai mahasiswa/i ilmu komputer, perlu memahami bagaimana data tersusun dalam memory dan perlu memahami konsep-konsep apa yang mendasarinya. Tidak menutup kemungkinan untuk meng- extend/meng-implement Collections
  • 16. Interfaces  Java collections framework didasari pada sekumpulan interface yang mendikte metode-metode apa saja yang harus diimplementasikan dan membantu standarisasi penggunaan.  Hubungan antara beberapa interface:
  • 17. The Collection interface  Interface Collection adalah interface utama yang menetapkan operasi-operasi dasar, antara lain: int size(); boolean isEmpty(); boolean contains(Object element); boolean add(E element); boolean remove(Object element); Iterator iterator(); .....  E menyatakan tipe parameter.
  • 18. Primitive types  Collections adalah kumpulan dari referensi terhadap object dan tidak bisa berisi tipe primitif.  jika membutuhkan kumpulan data bertipe primitif misalnya characters, kita tidak bisa memparameterisasi collection dengan tipe char. kita harus menggunakan kelas: Character  Namun Java menyediakan fasilitas: boxing and unboxing  Jika hendak meletakkan data bertipe char dalam sebuah collection bertipe Character, maka Java akan secara otomatis melakukan “boxing” (membungkus) char dalam kelas Character  Jika hendak mendapatkan data char tersebut, Java akan secara automatis melakukan “unbox” dan memberikan data dalam tipe char.
  • 19. Collections in use import java.util.*; public class Example{ private List<String> list public List<String> getList(){ return list; } Example() { list = new ArrayList<String>(); list.add(new String("Hello world!")); list.add(new String("Good bye!")); }
  • 20. public void printList() { for (Object s:list) { System.out.println(s); } } public static void main(String argv[]) { Example e = new Example(); e.printList(); Collections.sort(e.getList()); e.printList(); } }
  • 22. Kebutuhan akan generic programming  Terjadi run-time error! Apa yang salah dengan program berikut: void addStuffToCollection(Collection c){ c.add(new String("Hello world!")); c.add(new String("Good bye!")); c.add(new Integer(95)); printCollection(c); } void printCollection(Collection c){ Iterator i = c.iterator(); while(i.hasNext()){ String item = (String) i.next(); System.out.println("Item: "+item); } }
  • 23. Pembatasan tipe collection  Sebelum Java 5.0, tidak ada cara untuk menetapkan tipe elemen dari sebuah collection.  Sehingga, kita harus melakukan variabel casting di berbagai tempat. ◦ Cumbersome : melakukan casting saat tidak diperlukan. ◦ Error-prone : dapat mengakibatkan run- time exception.  Generics adalah sebuah konsep yang dapat digunakan untuk membatasi tipe elemen sebuah collection.  Pada Java versi > 5.0, Collections adalah generic classes yang dapat menerima parameter tipe yang menentukan tipe dari elemennya.
  • 24. Instantiasi kelas generic  Sebuah kelas collection generic dapat diinstantiasi melalui parameter tipe.  Kita dapat saja membuat kelas generic sendiri dan menginstantiasi dengan berbagai tipe. List<MyType> myList = new ArrayList<MyType>();
  • 25. Kebutuhan akan generic programming  Dapat terdeteksi ketika compile-time ! Apa yang salah dengan program berikut: void addStuffToCollection(Collection<String> c){ c.add(new String("Hello world!")); c.add(new String("Good bye!")); c.add(new Integer(95)); printCollection(c); } void printCollection(Collection<String> c){ Iterator i = c.iterator(); while(i.hasNext()){ String item = i.next(); System.out.println("Item: "+item); } }
  • 26. Iterator  Perhatikan kedua contoh sebelumnya menggunakan kelas Iterator : Iterator i = c.iterator();  Hal yang umum dilakukan pada collection adalah membaca seluruh elemen.  i adalah objek iterator yang mengendalikan iterasi pembacaan data pada collection c.  Secara umum Iterator bekerja sebagai berikut:  Mulai dengan mengatur iterator pada elemen pertama pada collection.  Satu-persatu berlanjut pada elemen selanjutnya  Berakhir ketika tidak ada lagi elemen pada collection yang belum dibaca.
  • 28. Contoh lain penggunaan iterator: void printCollection(Collection<String> c){ Iterator itr = c.iterator(); for(itr = v.first(); itr.isValid(); itr.advance()) System.out.println(itr.getData()); }