Slide minggu 2 pertemuan 2 (struktur data1)
-
Upload
setia-jul-ismail -
Category
Education
-
view
643 -
download
2
Transcript of Slide minggu 2 pertemuan 2 (struktur data1)
![Page 1: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/1.jpg)
STRUKTUR DATA (1)
RECORD, ARRAY, LINKED LIST, STACK, QUEUE
Hanya digunakan untuk pengajaran di Telkom Applied Science School
Tel-U
![Page 2: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/2.jpg)
Definisi Struktur Data
cara menyimpan dan merepresentasikan data dalam
komputer agar dapat dipergunakan dengan efisien.
Struktur data memiliki fungsionalitas : Mengurangi bertumpuknya data (data redudancy)
Penyimpanan data lebih efisien
Penyimpanan data tersusun lebih terurut
![Page 3: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/3.jpg)
Struktur Data
Struktur Data
Sederhana
Record
Array
Majemuk
Linier
Stack
Queue
List
Non linier
Tree
Graph
![Page 4: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/4.jpg)
Struktur Data Sederhana
Record
Disusun oleh satu atau lebih field. Tiap field menyimpan
data dari tipe dasar tertentu atau dari tipe bentukan lain
yang sudah didefinisikan sebelumnya.
Array
struktur data statik yang menyimpan sekumpulan elemen
yang bertipe sama. Setiap elemen diakses langsung
melalui indeksnya.
![Page 5: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/5.jpg)
ARRAY
Array
1 Dimensi
Multidimensi
![Page 6: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/6.jpg)
ARRAY
Array
1 Dimensi
Multidimensi
Array 1 DimensiA=(10, 5, 7, 9, 3, 7, 6)Beberapa bahasa pemrograman memulai array dari 0, dan yang lain mulai dari satuA[0]=10 A[1]=10Kita memulai indeks array mulai dari 1
![Page 7: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/7.jpg)
ARRAY
Array
1 Dimensi
Multidimensi
Array MultidimensiMempunyai elemen-elemenyang disusun ke dalam barisdan kolom dan digunakansebagai tabel data Contoh : Nilai ujian darimahasiswa satu kelas untukbeberapa mata kuliah bisaditempatkan dalam array 2 dimensi
Siswa ke
(no. baris)
B. Inggris
(kolom 1)
Matematika
(kolom 2)
1
2
3
4
5
A(1,1) = 56
A(2,1) = 42
A(3,1) = 89
A(4,1) = 65
A(5,1) = 48
A(1,2) = 44
A(2,2) = 36
A(3,2) = 73
A(4,2) = 86
A(5,2) = 51
![Page 8: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/8.jpg)
Record
Jenis-jenis record
1. type Titik : record <x : real, y : real>
2. Tipe terstruktur yang mewakili Jam , dinyatakan
sebagai jam (hh), menit (mm) dan detik (ss)
![Page 9: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/9.jpg)
Struktur Data Majemuk
Struktur Data Majemuk
Linier
Linked List
Stack
Queue
Non Linier
Tree
Graph
![Page 10: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/10.jpg)
Linked ListLINKED LIST
struktur data yang terdiri dari rantaian elemen sejenis yang saling berhubungan. Setiap elemen memiliki pendahulu danpenerusnya (kecuali elemen terakhir)
Contoh:Struktur ini mirip kereta api, dimana kepalanya sepertilokomotif, elemennya seperti gerbong kereta dan datanyaseperti penumpang/barang
Beberapa simpul/node yang saling terhubung dengan bantuanpointer.Setiap simpul berisi :
• Field Data / informasi
• Field Pointer untuk menunjuk simpul berikutnya
![Page 11: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/11.jpg)
Linked List (2)Berdasarkan banyaknya POINTER, LINKED LIST dibedakan menjadi :
• Single Linked List
• Double Linked List
• Multiple Linked List
Data Ptr
Data Ptr2Ptr1
Data Ptr2Ptr1
Ptr3
![Page 12: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/12.jpg)
Single Linked list dapat dibangun dengan 3 cara:
• Insert depan, node baru selalu berada didepan ( menjadi Head baru).
• Insert belakang, node baru selalu berada di belakang (menjadi Tail).
• Insert setelah posisi current pointer.
12
Single Linked List
ARI 460
400
HEAD
RIA 520
460
CURRENT
IDA520
TAIL
NULL
Single Linked List
![Page 13: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/13.jpg)
MODEL LINKED LIST
X1 X2 X3 X4S
Item /
Data
Penunjuk
Kepala
NIL
p q r s
![Page 14: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/14.jpg)
KAMUS DATA LINK LIST
Info Next
Elemen Senarai
Kamus Data :
Info : array [1..4] of String
Next : array [1..4] of Integer
A
C
B
D
3
4
2
Nil
Info Next
1
2
3
4
![Page 15: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/15.jpg)
REPRESENTASI LINK LIST DENGAN
ARRAY
Link List / List Berkait
A
C
B
D
3
4
2
Nil
Info Next
1
2
3
4
A B C DS
1 3 2 4
S
![Page 16: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/16.jpg)
NOTASI Info dan Next
Dua Notasi :
INFO (x) : Data yang ada di alamat X
NEXT (x) : Alamat elemen berikut setelah X
A B C DS
1 3 2 4
Contoh : Next (1) = 3 Info (1) = A
![Page 17: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/17.jpg)
17
DoubleLinked List
Elemen pertama disimpan pada node satu
Elemen terakhir pada node terakhir
akhirpertama
elemen
Double Linked list dapat dibangun dengan 2 cara:
• InsertBefore, insert sebelum posisi Current.
• InsertAfter, insert setelah posisi Current.
![Page 18: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/18.jpg)
Create();
Untuk menciptakan Linked List yang baru dan kosong.
Insert(type e)
Untuk menambahkan 1 elemen/data ke dalam Linked List.
int Empty()
Untuk memeriksa apakah Linked List masih kosong atau
sudah berisi data.
Retrieve (type *e)
Untuk mengubah isi elemen yang ditunjuk oleh pointer
current dengan isi dari variable yang dikirim (variable e).
Find_First()
Untuk mencari elemen pertama : yaitu dengan memposisikanpointer Current ke posisi HEAD.
Find_Next()
Untuk mencari elemen berikut yang ditunjuk oleh Pointer Current.
Delete()
Untuk menghapus elemen yang ditunjuk oleh Pointer Current.18
Operasi Dalam Linked List
![Page 19: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/19.jpg)
STACK
![Page 20: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/20.jpg)
Stack merupakan bentuk khusus dari suatu struktur
data, dimana node yang ditambahkan ke dalam list
dan diambil dari list hanya pada 'kepala'nya, atau
dengan kata lain prinsip pengolahannya adalah last-
in first-out (LIFO).
Mekanisme pada Stack :
- Push : adalah mekanisme menambah elemen pada
bagian atas
- Pop : mekanisme mengambil dan mengembalikan
elemen yang terakhir masuk
20
STACK
![Page 21: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/21.jpg)
Ilustrasi LIFO
Contohnya kita menumpuk Compo di posisi terakhir, makaCompo akan menjadielemen teratas dalamtumpukan. Sebaliknya,karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika kitamengambil elemen daritumpukan, maka secaraotomatis akan terambilelemen teratas, yaituCompo juga.
![Page 22: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/22.jpg)
Operasi PUSH pada Stack
![Page 23: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/23.jpg)
Operasi PUSH : Menambahkan elemen pada sebuah stack
1
PUSH
top== bottom
Operasi PUSH pada Stack
![Page 24: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/24.jpg)
Operasi PUSH : Menambahkan elemen pada sebuah stack
PUSH
Operasi PUSH pada Stack
1
2 top
bottom
![Page 25: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/25.jpg)
Operasi PUSH : Menambahkan elemen pada sebuah stack
PUSH
Operasi PUSH pada Stack
1
2
3
bottom
top
![Page 26: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/26.jpg)
Operasi PUSH : Menambahkan elemen pada sebuah stack
PUSH
Operasi PUSH pada Stack
1
2
3
4
bottom
top
![Page 27: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/27.jpg)
Operasi POP pada Stack
![Page 28: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/28.jpg)
Operasi POP : Menghapus sebuah elemen dari sebuah stack
POP
Operasi POP pada Stack
1
2
3
4
5
6
bottom
top
![Page 29: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/29.jpg)
Operasi POP : Menghapus sebuah elemen dari sebuah stack
POP
1
2
3
4
5
bottom
top
Operasi POP pada Stack
![Page 30: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/30.jpg)
Operasi POP : Menghapus sebuah elemen dari sebuah stack
POP
Operasi POP pada Stack
1
2
3
bottom
top4
![Page 31: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/31.jpg)
Contoh Lengkap Push dan Pop
![Page 32: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/32.jpg)
Studi Kasus Stack
Pembuatan Kalkulator SCIENTIFIC Misalkan operasi: 3 + 2 * 5
Operasi di atas disebut notasi infiks, notasi infiks tersebut harus diubah lebih dahulu menjadi notas postfix
3 + 2 * 5 notasi postfiksnya adalah 3 2 5 * +
![Page 33: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/33.jpg)
Studi Kasus Stack (2) – Infix to Postfix
Baca soal dari depan ke belakang
Jika berupa operand, maka masukkan ke posftix
Jika berupa operator, maka: Jika stack masih kosong, push ke stack Jika derajat operator soal > derajat operator top of stack
Push operator soal ke stack
Selama derajat operator soal <= derajat operator top of stack Pop top of stack dan masukkan ke dalam posfix
Setelah semua dilakukan, push operator soal ke stack
Jika sudah semua soal dibaca, pop semua isi stack dan push ke postfix sesuai dengan urutannya
3 + 2 * 5
stack
posftix
![Page 34: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/34.jpg)
Studi Kasus Stack (3)
![Page 35: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/35.jpg)
Contoh lain
a+b*c-d Stack (kosong) dan Postfik (kosong)
Scan a Postfik: a
Scan + Stack: +
Scan b Postfik: ab
Scan *, karena ToS (+) < *, maka add ke Stack Stack: +*
![Page 36: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/36.jpg)
Contoh
Scan c Postfik: abc
Scan –, karena * > -, maka pop Stack, dan add ke Postfik Stack: +
Postfik: abc*
Karena + >= -, maka pop Stack, dan add ke Postfik, karena Stack kosong, maka push – ke stack
Stack: -
Postfik: abc*+
Scan d Postfik: abc*+d
Karena sudah habis, push ToS stack ke Posfix Postfix: abc*+d-
![Page 37: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/37.jpg)
Postfix Evaluator
Scan Postfix string dari kiri kekanan.
Siapkan sebuah stack kosong.
Jika soal adalah operand, tambahkan ke stack. Jika operator, maka pasti akan ada minimal 2 operand pada stack
Pop dua kali stack, pop pertama disimpan dalam y, dan pop kedua ke dalam x. Lalu evaluasi x <operator> y. Simpan hasilnya dan push ke dalam stack lagi.
Ulangi hingga seluruh soal discan.
Jika sudah semua, elemen terakhir pada stack adalah hasilnya.
Jika lebih dari satu elemen, berarti error!
![Page 38: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/38.jpg)
Contoh 325*+
![Page 39: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/39.jpg)
Contoh pemanfaatan Stack
Pemanfaatan stack antara lain untuk menulis ungkapandengan
menggunakan notasi tertentu.
Contoh :
( A + B ) * ( C – D )
Tanda kurung selalu digunakan dalam penulisan ungkapannumeris untuk
mengelompokkan bagian mana yang akan dikerjakan terlebihdahulu.
Dari contoh ( A + B ) akan dikerjakan terlebih dahulu, kemudianbaru (C– D ) dan terakhir hasilnya akan dikalikan
A + B * C – D
B * C akan dikerjakan terlebih dahulu, hasil yang didapat akanberbeda
dengan hasil notasi dengan tanda kurung
![Page 40: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/40.jpg)
QUEUE
![Page 41: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/41.jpg)
Queue (Antrian)
Definisi : struktur data (mirip stack) yang memperbolehkan
penyisipan di belakang (rear) dan penghapusan elemen didepan (front)
Bersifat FIFO (First In First Out)
Elemen yang pertama masuk ke antrian akan keluar pertama kalinya
Contoh : Penjualan karcis kereta, bioskop
Penjadwalan pencetakan (spooling system)
Penjadualan pemakaian CPU
Pemakaian I/O pada sistem komputer
Penyimpan barang di Apotek
![Page 42: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/42.jpg)
MODEL ANTRIAN / QUEUEStruktur Data
Kosong 1 Elemen
0
Depan
4 Elemen
A A
B
C
D0
Belakang
1
Depan
1
Belakang
1
Depan
4
Belakang
![Page 43: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/43.jpg)
OPERASI DASARA n t r I a n
Dua operasi dasar ANTRIAN :
TAMBAH (enqueue)
AMBIL (dequeue)
TAMBAHAMBIL
![Page 44: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/44.jpg)
TAMBAH ELEMENStruktur Data Antrian
A B C DDepan = 0
Belakang = 0
Depan = 1
Belakang = 1
Depan = 1
Belakang = 2
Depan = 1
Belakang = 3
Depan = 1
Belakang = 4
![Page 45: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/45.jpg)
AMBIL ELEMEN (DEQUEUE)Struktur Data Antrian
A B C D
Ambil 1 elemen
Depan = 1
Belakang = 3
Geser antrian
![Page 46: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/46.jpg)
AMBIL ELEMEN (DEQUEUE)Struktur Data Antrian
A B C D
Ambil 1 elemen
Depan = 1
Belakang = 3
Geser antrian
![Page 47: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/47.jpg)
AMBIL ELEMEN (DEQUEUE)Struktur Data Antrian
B C D
Ambil 1 elemen
Depan = 1
Belakang = 2
Geser antrian
![Page 48: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/48.jpg)
AMBIL ELEMEN (DEQUEUE)Struktur Data Antrian
C D
Ambil 1 elemen
Depan = 1
Belakang = 1
Geser antrian
![Page 49: Slide minggu 2 pertemuan 2 (struktur data1)](https://reader030.fdocuments.net/reader030/viewer/2022020204/5885fa101a28ab864f8b78fb/html5/thumbnails/49.jpg)
AMBIL ELEMEN (DEQUEUE)Struktur Data Antrian
D
Ambil 1 elemen
Depan = 0
Belakang = 0