BAB 2. STRUKTUR DATA

dokumen-dokumen yang mirip
FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Konsep Dasar Struktur Data. Struktur Data

Tree (Struktur Data) Nisa ul Hafidhoh, MT

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Fakultas Teknologi Informasi

STRUCT. TUJUAN UMUM Memahami tipe struct dan implementasi dalam program

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

ARRAY Terurut Homogen

Mata Kuliah : Struktur Data Semester : Genap Kode Mata Kuliah : 307 Waktu : 180 Menit Bobot : 4 sks. Jurusan : MI

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Pendahuluan Struktur Data STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 1 : 20 Juni 2016

Pert 1 Struktur Data (mengajarkomputer.wordpress.com)

STRUKTUR DATA Pertemuan 1 s.d 8

RENCANA PEMBELAJARAN

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

BAB 2 ARRAY. Array adalah suatu himpunan hingga elemen, terurut dan homogen.

ARRAY. Vektor adalah bentuk yang sederhana dari array, yang merupakan array dimensi satu. Array N dapat kita bayangkan :

Struktur dan Organisasi Data 2 STRUKTUR DATA

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB VII POHON BINAR POHON

Algoritma Pemrograman & Struktur Data

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

STRUKTUR DATA. Deskripsi Mata Kuliah

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

BAB 1 TIPE DATA. Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3

BAB 1 TIPE DATA. Struktur Data 1. Sederhana : Array dan Record 2. Majemuk terdiri atas Linier Non Linier

ARRAY DIMENSI 1 & 2. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

Silabus Struktur Data. Bandung 2013

BAB 2 ARRAY & RECORD

STRUKTUR DATA. Literatur

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

Sub Pokok Bahasan dan Sasaran Belajar

GARIS-GARIS BESAR PROGRAM PERKULIAHAN (GBPP)

Pertemuan 2 ARRAY DIMENSI 1 & 2

.::BAB II.::MENGENAL PASCAL

Algoritma dan Struktur data

Brigida Arie Minartiningtyas, M.Kom

Algoritma Dan Struktur Data II

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen

BUANA. Distribusi 01 September 2017

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Pertemuan 7. REVIEW dan QUIS

Pertemuan 2 ARRAY DIMENSI 1 & 2

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

ARRAY. Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Garis-Garis Besar Program Pembelajaran Berbasis Kompetensi

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Program Teknologi Informasi dan Ilmu Komputer. Team Teaching ASD

Catatan Kuliah PAM 282 STRUKTUR DATA

1 Array dan Tipe Data Bentukan

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

POINTER. Tim Alpro Teknik Informatika

Larik/ Array int a1, a2, a3, a4, a5;

ALGORITMA DAN STRUKTUR DATA

SINGLE LINKED LIST (NON CIRCULAR)

ARRAY. Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.

Struktur Data. Pertemuan 2

RENCANA PEMBELAJARAN SEMESTER (RPS)

Konsep tipe data pada bahasa pemrograman mempunyai standar bentuk umum, yaitu :

Struktur Data. PDE - Struktur Data 1

Algoritma dan Struktur Data

Pemrograman Dasar A R R A Y

Tipe Data dan Operator

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto Structure and Pointer

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Random Access

6. TREE / BINARY TREE

MATERI PRAKTIKUM STRUKTUR DATA

Review : Sifat Implementasi Linear List dengan Array

Chapter 3.2 : Tipe, Nama dan Nilai

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

Bab 1 Pengantar Struktur Data

MODUL DUA VARIABEL DAN TIPE VARIABEL

Pohon dan Pohon Biner

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

TIPE, NAMA, DAN NILAI

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Struktur dan Organisasi Data 2 ARRAY

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati

MODUL PRAKTIKUM STRUKTUR DATA

Lab. Teknik Informatika Struktur Data 1

SATUAN ACARA PENGAJARAN

Linked List 6.3 & 7.3 NESTED LOOP

Nama : Damas Fahmi Assena NIM : Prodi : Teknik Informatika R2

Transkripsi:

BAB 2. STRUKTUR DATA Tipe Data Tipe Data Abstrak Tingkatan Abstraksi Tipe Data Jenis-jenis struktur data Array Karakteristik Tipe data Abstrak pada Array Dimensi Array Array Multidimensi Pencapaian (access) Data Pencapaian berdasarkan indeks Array Mapping Functions Parameter Array Fungsi Pemetaan Rumus AMF Rumus perhitungna besarnya memori yang digunakan oleh array 1

STRUCTURE Karakteristik Deklarasi Structure Tipe Data Abstrak pada Struct Struktur Mapping Function Parameter mapping Function Parameter Structure Rumus Umum SMF Memori yang digunakan oleh struct Array of Structure Linked List Tinjau ulang Pointer Struktur Linked List Double Linked List Bentuk Circular Duble Linked List(linked List ganda Melingkar) 2

STACK Operasi dalam Stack Implementasi stack dengan linked list Aplikasi Stack Konfersi Infix ke Postfix Algoritma Evaluasi Postfix QUEUE Operasi dalam Queue Proses Enqueu Proses Dequeu Circular Queue Implementasi Queu dalam linked list Priority Queue Representasi Priority Queue Binary Tree Bentuk umum Binary Tree Karakteristik Binary Tree Hubungan Parent-Child Hubungan Ancestor-Descendant Tree Path Lenght 3

Binary Search Tree Bentuk Khusus Binary Tree Rekursive pada Binary Tree Tree Traversal Operasi pada Binary Tree Implementasi Binary Tree pada Array Implementasi dengan double Linked List Implementasi dengan Multi Linked List Expression Tree AVL TREE Pivot Rotasi Ganda HEAP Membangun Heap Rotasi Ganda B-Tree Perbandingan Struktur data Karakteristik B-Tree Operasi dalam B-Tree 4

HASHING Practical Hashing Function Penempatan elemen ke dalam tabel hashing Collision GRAPH Aplikasi Graph 5

TUJUAN UMUM Memperkenalkan mahasiswa tentang tipe data TUJUAN KHUSUS Memperkenalkan mahasiswa tentang DATA ATOMIK Memperkenalkan mahasiswa tentang DATA komposit Penerapan array Penyimpanan array dalam memori 6

Struktur Data 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 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 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 data 7

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 1. Tipe Data Atomik(int, char, float) 2. Tipe Data Terstruktur(array, struct) 8

TIPE DATA ABSTRAK (TDA) 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. 9

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 10

Keuntungan menggunakan TDA: 1. Modularitas 2. Penyembunyian Informasi 3. Kebebasan Pelaksanaan 4. Integritas Data 5. Penyederhanaan Masalah 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 1 6 5 3 2 11

2. Tree/Hirarki:Struktur yang setiap elemennya mempunyai hubungan satubanyak (one to many) dengan elemen lainnya. 9 6 1 5 7 4 2 3. Graph/Jaringan Struktur yang setiap elemen mempunyai hubungan banyak-banyak (many to many) dengan elemen lainnya. B E A C F G D F 12

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 seharihari 13

KARAKTERISTIK ARRAY - 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: s[i] = k; 14

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 List Vektor Array 2-Dimensi Tabel Matriks ARRAY MULTIDIMENSI Secara teoritis jumlah dimensi array tidak terbatas, tetapi secara praktis array digunakan hanya sampai dimensi 3. 15

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] Banyaknya komponen = 8 16

ARRAY MAPPING FUNCTION Fungsi untuk memetakan komponen array pada indeks i ke alamat di memori Perhitungan AMF memerlukan parameter array 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 (l k ) dan batas atas (u k ) Untuk deklarasi array: int x[12]; maka : l 1 = 0 (selalu dimulai dari 0) U 1 = 11 4. Dimensi Array (d) Untuk deklarasi array: float H[6][2][6] maka : d =3, l 1 = l 2 = l 3 0 dan U 1 = 5, U 2 = 1, U 3 = 5 17

Fungsi Pemetaan 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 Virtual Origin /Virtual Base Nilai kontanta C 0 (lokasi komponen dengan indeks 0). Di dalam bahasa C/C++ nilai C 0 = b, di dalam bahasa Pascal nilai C 0 dapat berbeda dengan nilai b. Rumus umum AMF Addr(S[i 1 ][i 2 ] [i d ] = c 0 + c 1 x i 1 +. + c d x i d Dengan : c d = L c t-1 = ( U t i t + 1) x c t = (U t + 1 ) x c t 1 < t < = d = b c o 18

Rumus perhitungan besarnya memori yang digunakan oleh array M = L x ( u 1 + 1) x ( u 2 + 1) x.. X ( u d + 1) Contoh perhitungan AMF: 1. Array 1- dimensi Diketahui deklarasi array: floatq[6]; maka: L = 4, karena tipe data float u 1 = 5; b = 500; dimisalkan komponen awal dimulai dari alamat 500. Perhitungan : c 1 = L = 4 c 0 = b = 500 Addr(Q[i]) = c 0 + c 1 x i 1 Addr(Q[3]) = c 0 + c 1 x i 1 = 500 + 4 x 3 = 512 Addr(Q[5]) = c 0 + c 1 x i 1 = 500 + 4 x 5 = 520 19

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 ( u 1 + 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 u 1 = 3; u 2 = 4 b = 300; dimisalkan komponen awal dimulai dari alamat 300 20

Perhitungan: c 2 = L = 2 c 1 = (U 1 + 1 ) x c 2 = (4 + 1 ) + 2 = 10 c 0 = b = 300 Addr(P[i][j]) = c 0 + c 1 x i + c 2 x j = 300 +10 x 40 +2 x 5 Bersama memori yang dibitukan oleh array P Latihan M = L x ( u 1 + 1) x ( u 2 + 1) 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 21