• Tidak ada hasil yang ditemukan

Think Different Materi ASD 2014 pertemuan_7

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Materi ASD 2014 pertemuan_7"

Copied!
17
0
0

Teks penuh

(1)
(2)

PENGANTAR

Bagaimana cara mengatasi masalah

implementasi program dengan komputer?

Pemahaman masalah secara menyeluruh dan

persiapan data

Keputusan operasi-operasi yang dilakukan terhadap

data

Penyimpanan data-data pada memori sehingga

tersimpan dan terstruktur secara logis, operasinya efisien

Pengambilan keputusan terhadap bahasa

(3)

Perbedaan Tipe Data, Obyek Data & Struktur

Data

(1)

Tipe data adalah jenis data yang mampu ditangani oleh

suatu bahasa pemrograman pada komputer.

Tiap-tiap bahasa pemrograman memiliki tipe data yang

memungkinkan:

Deklarasi terhadap variabel tipe data tersebutMenyediakan kumpulan operasi yang mungkin

terhadap variabel bertipe data tersebut

Jenis obyek data yang mungkin

(4)

Perbedaan Tipe Data, Obyek Data & Struktur

Data

(2)

Obyek Data adalah kumpulan elemen yang mungkin

untuk suatu tipe data tertentu.

Mis: integer mengacu pada obyek data -32768 s/d

32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf

Struktur Data adalah cara penyimpanan dan

(5)

Aktivitas Struktur Data

Di dalam struktur data kita berhubungan dengan

2 aktivitas:

Mendeskripsikan kumpulan obyek data yang sah

sesuai dengan tipe data yang ada

Menunjukkan mekanisme kerja operasi-operasinya

Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb.

Struktur data = obyek data + [operasi

(6)

Hubungan SD dan Algoritma

Dengan pemilihan struktur data yang baik, maka

problem yang kompleks dapat diselesaikan sehingga algoritma dapat digunakan secara efisien,

operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat.

Tidak semua struktur data baik dan sesuai. Contoh

(7)

ADT dan UDT atau Tipe Data Bentukan

Bahasa pemrograman bisa memiliki tipe data:

Built-in : sudah tersedia oleh bahasa pemrograman

tersebut

Tidak berorientasi pada persoalan yang dihadapi.

UDT : User Defined Type, dibuat oleh pemrogram.

Mendekati penyelesaian persoalan yang dihadapiContoh: record pada Pascal, struct pada C.

ADT : Abstract Data Type

• memperluas konsep UDT dengan menambahkan

pengkapsulan atau enkapsulasi, berisi sifat-sifat dan operasi-operasi yang bisa dilakukan terhadap kelas tersebut.

(8)

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.

(9)

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

(10)

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

(11)

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();  

Contoh Interface struktur data :

void add(Benda x);

void remove(Benda x); Benda access(Benda x); void makeEmpty();

(12)

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);  

Contoh Interface list :

void insert(int indeks, Benda x); void append(Benda x);

void remove(int indeks); void remove(Benda x);

(13)

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 recen t Most recen t pus h pop,to p

Contoh Interface stack :

void push(Benda x); Benda pop();

Benda top();  

Contoh Interface stack :

void push(Benda x); Benda pop();

(14)

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)).

enqueu e Most recent Least recent dequeue getFront

Contoh Interface queue :

void enqueue(Benda x); Benda dequeue();

Benda getFront(); 

Contoh Interface queue :

void enqueue(Benda x); Benda dequeue();

(15)

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);

Contoh Interface set :

void add(Benda x);

void remove(Benda x);

(16)

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);  

Contoh Interface sebuah Map :

void put(Kunci id, Nilai x);  void remove(Kunci id);  

(17)

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 deleteM

in findMin

Contoh Interface sebuah Priority Queue :

void insert(Benda x); (Menambahkan) void deleteMin(); (menghapus)

Benda findMin(); (meng­akses)

Contoh Interface sebuah Priority Queue :

void insert(Benda x); (Menambahkan) void deleteMin(); (menghapus)

Referensi

Dokumen terkait

Umumnya dipakai untuk menyimpan object data yang terstruktur, misal: data mahasiswa, karyawan, buku, barang, dsb... Array

• Untuk menambah data pada linked list, harus diketahui head pointer (pHead), pointer yang menunjuk node sebelum tempat penyisipan (pPre) data yang akan

Atribut ini menunjukan bahwa fungsi atau method bisa diakses oleh kelas lain dalam satu paket dan hanya kelas lain yang merupakan subclass nya pada paket yang berbeda. •

– Untuk tipe data reference seperti String , nilai dari String tidak akan diinisialisasi ke string kosong “” , sehingga Anda tetap harus membuat array String secara

hapus adalah pointer bantu yang akan mencari node yang dimaksud

Graph dengan 6 node dan 7 edge yang merepresentasikan jaringan pertemanan pada Facebook.. • Setiap sisi berlaku

– Periksa nilai, kemudian pilih kartu dengan nilai terendah – Tukarkan posisi kartu ini dengan kartu pertama pada meja – Cari kartu dengan nilai terendah dari sisa kartu yang ada

(pembentukan obyek array yang memiliki 10 element, dan alamat obyek akan disimpan pada variabel bernama