• Tidak ada hasil yang ditemukan

BAB 2. STRUKTUR DATA

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2. STRUKTUR DATA"

Copied!
21
0
0

Teks penuh

(1)

BAB 2.

STRUKTUR DATA

Tipe Data

Tipe Data Abstrak

Tingkatan Abstraksi Tipe Data

Jenis-jenis struktur data

z

Array

z

Karakteristik

z

Tipe data Abstrak pada Array

z

Dimensi Array

z

Array Multidimensi

z

Pencapaian (access) Data

z

Pencapaian berdasarkan indeks

z

Array Mapping Functions

z

Parameter Array

z

Fungsi Pemetaan

z

Rumus AMF

z

Rumus perhitungna besarnya

(2)

z

STRUCTURE

z

Karakteristik

z

Deklarasi Structure

z

Tipe Data Abstrak pada Struct

z

Struktur Mapping Function

z

Parameter mapping Function

z

Parameter Structure

z

Rumus Umum SMF

z

Memori yang digunakan oleh struct

z

Array of Structure

z

Linked List

z

Tinjau ulang Pointer

z

Struktur Linked List

z

Double Linked List

z

Bentuk Circular Duble Linked

List(linked List ganda Melingkar)

(3)

z

STACK

z

Operasi dalam Stack

z

Implementasi stack dengan linked list

z

Aplikasi Stack

z

Konfersi Infix ke Postfix

z

Algoritma Evaluasi Postfix

z

QUEUE

z

Operasi dalam Queue

z

Proses Enqueu

z

Proses Dequeu

z

Circular Queue

z

Implementasi Queu dalam linked list

z

Priority Queue

z

Representasi Priority Queue

z

Binary Tree

z

Bentuk umum Binary Tree

z

Karakteristik Binary Tree

z

Hubungan Parent-Child

z

Hubungan Ancestor-Descendant

z

Tree Path Lenght

(4)

z

Binary Search Tree

z

Bentuk Khusus Binary Tree

z

Rekursive pada Binary Tree

z

Tree Traversal

z

Operasi pada Binary Tree

z

Implementasi Binary Tree pada

Array

z

Implementasi dengan double

Linked List

z

Implementasi dengan Multi Linked

List

z

Expression Tree

z

AVL TREE

z

Pivot

z

Rotasi Ganda

z

HEAP

z

Membangun Heap

z

Rotasi Ganda

z

B-Tree

z

Perbandingan Struktur data

z

Karakteristik B-Tree

(5)

z

HASHING

z

Practical Hashing Function

z

Penempatan elemen ke dalam tabel

hashing

z

Collision

z

GRAPH

(6)

TUJUAN UMUM

z

Memperkenalkan mahasiswa

tentang tipe data

TUJUAN KHUSUS

z

Memperkenalkan mahasiswa

tentang DATA ATOMIK

z

Memperkenalkan mahasiswa

tentang DATA komposit

z

Penerapan array

(7)

Struktur Data

z Metode untuk mengorganisasikan data di dalam

memori komputer, sehingga data dapat diolah secara efisien, yaitu:

1. Menggunakan tempat yang sehemat mungkin di

memori

2. Menggunakan waktu yang secepat mungkin untuk menyimpan dan mengambil data

z Seringkali dua keadaan di atas tidak bisa

dicapai sekaligus, tetapi harus dicapai suatu kompromi dari dua keadaan di atas dan untuk itulah Struktur Data dipelajari.

TIPE DATA

z Mendeklarasikan tipe data adalah suatu cara

untuk menetapkan:

1. Informasi apa yang terkait dengan data 2. Ukuran memori yang digunakan oleh data 3. Operasi apa yang dapat dilakukan terhadap

(8)

z

CONTOH:

int x; char c; float y;

Var x: menempati 2-byte memori, informasi yang terkait adalah data integer(bilangan bulat), operasi yang dapat dilakukan: kali, bagi, tambah, kurang dan sisa hasil bagi. Rentang nilai bilangan: -3278 s/d 32767 Var c: menempati 1-byte memori informasi

yang terkait adalah kata karakter (tabel ASCII), operasi yang dilakukan:

menyambung, menyalin karakter (concatenation, copy, etc)

Var y: menempati 4-byte memori informasi yang terkait adalah data float (bilangan pecahan), operasi yang dapat dilakukan: kali, bagi, tambah, kurang.

Rentang nilai bilangan bulat: -3.4x10-38 s/d

3.4x10-38

Kelas Tipe Data

(9)

TIPE DATA ABSTRAK (TDA)

z Abstraksi:

Suatu proses yang sengaja mengurangi rincian dari suatu objek, dengan harapan dapat memahami objek tersebut dengan baik atau lebih nudah.

Tingkatan abstraksi sesuai dengan seberapa besar rincian-rincian dihilangkan.

Tingkatan abstraksi dapat berbeda,

tergantung dari sudut pandang seseorang terhadap suatu objek.

Contoh:

Abstraksi terhadap objek mobil: 1. Bagi pemilik, mobil adalah:

- Merk/tipe/tahun mobil - Warna

2. Bagi Sopir, mobil adalah: - Stir (kemudi)

- Pedal gas, kompling dan rem 3. Bagi montir, mobil adalah:

- Mesin, karburator, pengapian, distributor, dsb.

(10)

Tingkatan Abstrasi Tipe Data

1. Tipe Data Abstrak: Timbul dari hasil Imajinasi

2. Tipe Data Virtual: Terdapat dalam suatu bahasa

pemrograman (virtual prosesor)

3. Tipe data Fisik: Secara fisik dalam memori

komputer Contoh:

Tipe Data Atomik Terstruktur

Abstrak Jml mahasiswa Tabel Suhu Virtual Integer Array

(11)

z Keuntungan menggunakan TDA: 1. Modularitas 2. Penyembunyian Informasi 3. Kebebasan Pelaksanaan 4. Integritas Data 5. Penyederhanaan Masalah

z Langkah-langkah menterjemahkan TDA ke

Virtual:

1. Pilih bahasa pemrograman yang akan

digunakan: C/C++, Pascal

2. Pilih cara untuk merepresentasikan data

dalam bentuk: Array, struct, record, set, dsb.

3. Tulis program untuk implementasi

JENIS-JENIS STRUKTUR DATA:

1. Linier: Struktur yang setiap elemen

mempunyai hubungan satu-satu (one to one) dengan elemen lainnya

(12)

2. Tree/Hirarki:Struktur yang setiap

elemennya mempunyai hubungan satu-banyak (one to many) dengan elemen lainnya.

1

6

9

2

4

7

5

3. Graph/Jaringan

Struktur yang setiap elemen mempunyai

hubungan banyak-banyak (many to many)

dengan elemen lainnya.

A

F

G

E

C

B

(13)

z SET: Struktur yang elem-elemennya hanya

mempunyai hubungan keangotaan, tidak ada elemen pertama, kedua…,

terakhir.Urutan elemen di dalam set tidak penting

Contoh:

S1 = {a,b,c} S2={b,a,c} S3={c,b,a} maka S1=S2=S3

Latihan

1. Sebutkan tingkatan abstraksi untuk objek: Komputer, Radio

2. Berikan contoh struktur linier, hirarki,

jaringan dan set dalam kehidupan sehari-hari

(14)

ARRAY

KARAKTERISTIK

- Hubungan antara elemen linier

- Penempatan di memori secara fisik maupun

logik sama

- Hubungan antara indeks dengan komponen

adalah one-to-one

- Tipe data homogen - Cara access Random

TIPE DATA ABSTRAK ARRAY

- Retrieve(s, k, i);

Mengambil data sari array s pada indeks i untuk disimpan di variabel k.

Implementasi: k = s[i];

- Update(s, k, i);

Mengubah nilai data dari array s pada indeks i, dengan nilai dari variabel k. Implementasi:

(15)

z

CONTOH:

Buat suatu algoritma dengan menggunakan kedua operator Retrieve( ) dan update( ) untuk:

1. Menyalin isi array A ke array B

2. Menjumlakah array A dengan array B,

hasilnya disimpan di array C. DIMINSI ARRAY Array 1-Dimensi z List z Vektor Array 2-Dimensi z Tabel z Matriks ARRAY MULTIDIMENSI

Secara teoritis jumlah dimensi array tidak

terbatas, tetapi secara praktis array digunakan hanya sampai dimensi 3.

(16)

PENCAPAIAN (ACCESS) DATA

Positional Access

Pencapaian data berdasarkan nilai indeks

Assocoative Access

Pencapaian data berdasarkan nilai/isi komponen

Pencapaian berdasarkan indeks

a. Alamat (address) komponen di memori

dapat dihitung berdasarkan nilai indeks.

b. Array dengan d-dimensi, memerlukan d

penjumlahan dan d perkalian.

c. Kecepatan perhitungan tidak tergantung

kepada banyaknya komponen, tetapi tergantung kepada besarnya dimensi. Contoh: 1. Int A[10000]; Banyaknya komponen = 10000 2. Int B[10][10] Banyaknya komponen = 100 3. Int C[2][2][2]

(17)

z ARRAY MAPPING FUNCTION

Fungsi untuk memetakan komponen array pada indeks i ke alamat di memori

Perhitungan AMF memerlukan parameter array

z

Parameter Array

1.

Alamat awal (b)

Alamat komponen pertama array di memori. Pada dasarnya alamat ini tidak diketahui oleh pemrogram, sehingga nilai b selalu dimisalkan

2. Panjang komponen(L)

Ukuran tipe data(dalam byte) yang

digunakan, seperti integer: L = 2, Char: L=1 dan float: L= 4

3. Batas bawah (lk) dan batas atas (uk) Untuk deklarasi array: int x[12]; maka :

l1 = 0 (selalu dimulai dari 0) U1 = 11

4. Dimensi Array (d)

Untuk deklarasi array: float H[6][2][6] maka :

(18)

Fungsi Pemetaan

z Row major order

Cara penyimpanan data dalam suatu bahasa pemrograman bahasa C/C++ dan Pascal menggunakan roe major order, sedangkan bahasa Fortran menggunakan column major order

z Virtual Origin /Virtual Base

Nilai kontanta C0 (lokasi komponen dengan

indeks 0).

Di dalam bahasa C/C++ nilai C0 = b, di dalam

bahasa Pascal nilai C0 dapat berbeda dengan

nilai b.

Rumus umum AMF

Addr(S[i1][i2]… [id] = c0 + c1 x i1 + …. + cd x id

Dengan :

cd = L

ct-1 = ( Ut – it + 1) x ct = (Ut + 1 ) x ct 1 < t < = d

(19)

Rumus perhitungan besarnya memori

yang digunakan oleh array

M = L x ( u1 + 1) x ( u2 + 1) x ….. X ( ud + 1)

Contoh perhitungan AMF:

1. Array 1- dimensi

Diketahui deklarasi array: floatq[6]; maka:

L = 4, karena tipe data float u1 = 5;

b = 500; dimisalkan komponen awal dimulai dari alamat 500.

Perhitungan : c1 = L = 4 c0 = b = 500 Addr(Q[i]) = c0 + c1 x i1 Addr(Q[3]) = c0 + c1 x i1 = 500 + 4 x 3 = 512 Addr(Q[5]) = c0 + c1 x i1 = 500 + 4 x 5 = 520

(20)

Mapping Tabel Array Q Indeks Address 0 500 1 504 2 508 3 512 4 516 5 520

Besarnya memori yang dibutuhkan oleh array Q

M = L x ( u1 + 1) = 4 x (5+1) = 24 byte

2.

Array 2-dimensi

Diketahui deklarasi array:int R[4][5]; maka:

L = 2; karena tipe data = integer u1 = 3; u2 = 4

(21)

Perhitungan: c2 = L = 2 c1 = (U1 + 1 ) x c2 = (4 + 1 ) + 2 = 10 c0 = b = 300 Addr(P[i][j]) = c0 + c1 x i + c2 x j = 300 +10 x 40 +2 x 5

Bersama memori yang dibitukan oleh array P

M = L x ( u1 + 1) x ( u2 + 1) Latihan

1. Bila dideklarasikan :

int A[4][6];

Dimisalkan b =100, cari alamat dari A[0][0], A[2][3] dan A[3][5], kemudian hitung besarnya memori yang diperlukan oleh array A.

2. Bila dideklarasikan: Int B[4][6][5];

Dimisalkan b = 200, cari alamat dari B[0][0][0], B[2][3][2], B[1][5][4], kemudian hitung

besarnya memori yang diperlukan oleh array B

Referensi

Dokumen terkait

Menentukan sifat-sifat operasi hitung, faktor, kelipatan, bilangan bulat dan pecahan serta menggunakannya dalam pemecahan sehari-hari1. Kompetensi

Dalam proses pembelajaran siswa diharapkan mampu menerapkan operasi hitung bilangan bulat dan pecahan dengan memanfaatkan berbagai sifat operasi1.

Penjumlahan dan pengurangan bilangan bulat adalah operasi hitung yang. menggunakan tanda tambah (+) dan kurang (-) pada bilangan

2 3.1 Menjelaskan dan melakukan operasi hitung bilangan bulat dan pecahan dengan mengaitkannya pada garis bilangan dan memanfaatkan berbagai sifat operasi.. Bilangan

Hal ini dikarenakan sebagian materi dasar dari turunan fungsi, yaitu operasi hitung bilangan bulat, operasi hitung pada bilangan pecahan, operasi hitung pada bilangan

Membandingkan dan mengurutkan berbagai jenis bilangan seta menrapkan operasi hitung bilanagn bulat dan bilangan pecahan dengan memanfaatkan berbagai

Peserta didik dapat mengaplikasikan pengetahuan tentang: - operasi bilangan bulat - operasi bilangan pecahan - perbandingan. - operasi bilangan berpangkat - aritmetika sosial

Bilangan berpangkat dan Bentuk Akar 4 JP 5.2 Melakukan operasi aljabar yang melibatkan bilangan berpangkat bulat dan bentuk akar • Menyelesaikan operasi tambah,