• 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

Demikian, Berita Acara Pelaksanaan Ujian Skripsi ini dibuat dengan sebenar-benarnya. Malang, XXXXXX (diisi

Utilising as raw material only the fibrous frac- tion of miscanthus plants, the objectives of the present study were: (a) to investigate the feasibil- ity of obtaining papermaking

Fine chopping of stalk materials significantly influence compacting density and is more prefer- able to heating, because energy requirement for chopping − 25 kJ / kg is one order

Apabila dalam jangka waktu tersebut saya tidak dapat menyelesaikan revisi, maka saya bersedia menempuh Ujian Ulang Skripsi atau Nilai diturunkan satu

The lactide ring opening polymerisation reaction reaches the state of equilibrium within the resi- dence time of the reactive material inside the extrusion system and can thus be

Dinyatakan LULUS / TIDAK LULUS dengan perbaikan skripsi seperti tercantum dalam tabel berikut dan dengan jangka waktu perbaikan 1 (satu)

Several rheological parameters (e.g. fracture stress and energy) were calculated from stress – strain curves and compared to those of citrus pectin and algal alginate gel

Yang bertanda tangan di bawah ini menyatakan dengan sebenarnya, bahwa mahasiswa : Nama : NIM : Jurusan : ..4. Telah bebas dari tanggungan pinjaman selama tahun akademik