pemrograman berorientasi obyek lanjut (it251) effort dalam membuat program, ... contoh class list...

37
Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Upload: lamkhue

Post on 12-May-2018

246 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Pemrograman Berorientasi Obyek Lanjut (IT251)

Ramos Somya, S.Kom., M.Cs.

Page 2: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Array pada Java adalah objek yang dapat digunakanuntuk menyimpan data-data dengan tipe yangsama.

Tipe dari data yang disimpan pada array dapatberupa tipe data primitive atau objek dari kelastertentu.

Page 3: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Array dapat diibaratkan sebagai sebuah gedungyang memiliki beberapa ruangan dengan bentukdan ukuran yang sama.

Page 4: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Cara mendeklarasikan array: tipe_data nama_array[]; atau tipe_data[] nama_array;

Contoh:

int nim[];

int[] nim;

Page 5: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Cara mengalokasikan ukuran array:

Contoh:

int[] daftarSiswa = new int[100];

char[] huruf = new char[92];

int[][] matriks = new int[3][3];

Page 6: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Cara memberikan nilai pada array:

Contoh:

int[] nim = new int[3];

nim[0]=1;

nim[1]=2;

nim[2]=3;

Page 7: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 8: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 9: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Indeks array yang alamatnya terdiri dari x dan y atau

x, y, dan z, atau lebih dari 3.

Page 10: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 11: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 12: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Collection digunakan untuk menyimpan,mengambil, dan memanipulasi data.

Salah satu collection paling sederhana adalah Array.Namun dalam Collection Framework, Javamenawarkan berbagai bentuk lain dari Collection.

Page 13: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Karena Collection adalah interface, maka harusdibuat class yang mengimplementasikannya.

Dalam Java API, sudah tersedia beberapa class yangsangat berguna untuk memanage object-objectdalam Collection, sesuai sifat dan kebutuhannya.

Page 14: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Mengurangi effort dalam membuat program,karena sudah tersedia struktur data dan algoritmatanpa harus menulis sendiri.

Meningkatkan performa, karena setiapimplementasi dapat berfungsi maksimal sesuaikasus yang ada.

Dapat dikembangkan dan fleksibel terhadap tipeobject yang ada dalam Collection.

Page 15: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Semua class yang berhunbungan dengan Collectiontergabung dalam Java Collection Framework danterdapat dalam package java.util punya 2interface utama : Collection dan Map.

Page 16: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Pada dasarnya ada 3 Interface yang digunakan,yaitu Set, List, dan Map.

Kemudian ada 5 implementasi dasar yangdigunakan pula, yaitu Hash Table, Resizable Array,Balanced Tree, Linked List, dan Hash Table + LinkedList.

Page 17: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 18: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Berdasarkan teknik pengelompokkannya terbagi menjadi 3 : Set, List, dan Queue.

Page 19: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

SetMerupakan cara pengelompokkan mengikuti modelhimpunan setiap anggotanya harus unik.

ListMerupakan pengelompokkan berdasarkan urutan sepertiarray. Isi list tidak harus unik.Contoh class List : Vector, Stack, linkedList & ArrayList.

QueueMerupakan pengelompokkan berdasarkan aturan FIFO.Contoh class : PriorityQueue & LinkedList.

Page 20: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Untuk menambahkan isi dari Map memerlukansepasang objek, satu sebagai key satu lagi nilai yangakan disimpan.

Map juga dikenal sebagai Dictionary : sifatnya miripdengan kamus.

Contoh class Map : HashTable, TreeMap, HashMap,LinkedHashmap.

Page 21: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 22: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Vector merupakan suatu bentuk array dinamis,sehingga kita tidak perlu mengubah ukuran arraysaat melakukan penambahan pada array yangsudah penuh.

Perbedaan vector dengan array adalahpengaksesan elemen pada vector tidak bisadilakukan secara langsung, tetapi harusmenggunakan setter dan getter.

Untuk menggunakan vector kita harus melakukan

import java.util.Vector;

Page 23: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Mendeklarasikan vector caranya: Vector<TipeData> namaVector = new

Vector<TipeData>(); Contoh:

Vector<Integer> vec = new Vector<Integer>();

Page 24: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Contoh: misal nama vector-nya ‘vec’ vec.size() adalah fungsi untuk mengembalikan

jumlah elemen di dalam vektor. vec.addElement(obj) akan menambahkan Object

obj di akhir vektor. vec.removeElement(obj) menghapus obj dari dalam

vektor, kalau ada. Hanya objek pertama yangditemui akan dihapus.

Page 25: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

vec.removeElementAt(N) menghapus elemen ke-N.N harus berada pada rentang 0 hingga vec.size() - 1.

vec.setSize(N) akan mengubah ukuran vektormenjadi N. Jika di dalam vektor terdapat elemenyang jumlahnya lebih banyak dari N, maka elemenlainnya akan dihapus.

vec.setElementAt(Object, index) akan mengubahelemen pada index yang diset dengan nilai baru

Page 26: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 27: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

ArrayList digunakan untuk membuat array yangukurannya dinamis. Berbeda dengan array biasayang ukurannya harus ditentukan di awal deklarasiarray, dengan ArrayList, ukurannya akan fleksibeltergantung banyaknya elemen yang dimasukkan.

Page 28: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 29: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Kelebihan lain collection framework ini adalahkemampuannya untuk membuat perulangan dirinyasendiri, sebab Collection frameworkmengimplementasikan interface Iterable. Sehinggauntuk membuat perulangan “for” sebenarnya cukupdengan:

Page 30: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Stack merupakan sebuah collection sederhana yangmenerapkan aturan LIFO (Last in First out). Artinya, elemenyang masuk terakhir akan dikeluarkan terlebih dahulu.

Meskipun terdapat method add, get, dan remove karenaStack tetap inherit ke interface collection, namun methodyang umum dipakai dalam Stack adalah push() untukmemasukkan elemen, pop() untuk mengeluarkan elemen,empy() untuk mengecek apakah stack kosong, dan peek()untuk melihat elemen teratas. Semua dilakukan sesuaiurutan LIFO.

Page 31: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan
Page 32: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Linked List adalah salah satu bentuk struktur data,berisi kumpulan data (node) yang tersusun secarasekuensial, saling sambung-menyambung dandinamis. Linked List sering disebut juga SenaraiBerantai.

Page 33: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

public class SenaraiBerkaitTunggal {private static LinkedList<Integer> l;public static void main(String[] args) {

System.out.println("Program dengan LINKEDLIST default Java.");l = new LinkedList<Integer>();Integer j = null;int i;System.out.println("starting...");for (i = 0; i < 5; i++) {

j = new Integer((int) (Math.random() * 100));l.addFirst(j);System.out.println("add : " + j);

}

Page 34: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

for (; i < 10; i++) {j = new Integer((int) (Math.random() * 100));l.addLast(j);System.out.println("addLast : " + j);

}for (i = 0; i < l.size(); i++) {

System.out.println("get " + i + " : " + l.get(i));}for (i = 0; i < 5; i++) {

System.out.println("remove : " + ((Integer) l.remove()));}while (!l.isEmpty()) {

System.out.println("removeLast : " + ((Integer) l.removeLast()));}

}}

Page 35: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

addFirst(E), menambahkan elemen di depan list addLast(E), menambahkan elemen di akhir list get(int), mendapatkan list berdasarkan indeks remove(), menghapus head/elemen pertama pada

list removeLast(), menghapus elemen terakhir pada list

Page 36: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan

Implementasi ketiga adalah dari Interface Map. Mapberfungsi sebagai collection yang memetakansetiap value dengan key tertentu. Jika mencobamenambahkan elemen dengan key yang sama,maka elemen sebelumnya pada key tersebut akanditindih sehingga hilang.

Deklarasi HashMaps juga harus diikuti nama classyang akan menjadi key dan value-nya.

Page 37: Pemrograman Berorientasi Obyek Lanjut (IT251) effort dalam membuat program, ... Contoh class List :Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan