struktur data
DESCRIPTION
STRUKTUR DATA. PENGANTAR. Bagaimana cara mengatasi masalah implementasi program dengan komputer? Pemahaman masalah secara menyeluruh dan persiapan data Keputusan operasi-operasi yang dilakukan terhadap data - PowerPoint PPT PresentationTRANSCRIPT
STRUKTUR DATA
PENGANTARBagaimana 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 pemrograman mana yang paling cocok untuk jenis data yang ada
Tipe DataTipe 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 tersebut◦ Menyediakan kumpulan operasi yang mungkin
terhadap variabel bertipe data tersebut◦ Jenis obyek data yang mungkin◦ Contoh tipe data di C? Pascal?
Tipe data sederhana tunggal interger, real, boolean dan character
Tipe data sederhana majemuk string
Obyek DataObyek 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 DataStruktur Data adalah cara
penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.
Aktivitas Struktur DataDi 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 manipulasi data]
Bentuk Struktur DataStruktur data sederhana
Array (larik)Record
Struktur data majemukLinier
Stack, Queue, dan Linked ListNon Linier
Pohon (Tree) Pohon Binary (Binary Tree) Binary Search Tree General Tree Graph
TIPE DATA SEDERHANA
9
TIPE DATA SEDERHANA (SIMPLE - DATA TYPE)
Adalah tipe data yang sudah ada dan dijadikan standar dalam bahasa pemrograman tertentu.
Isi dari tipe data sederhana ini adalah data-data tunggal.
10
TIPE DATA SEDERHANA (SIMPLE - DATA TYPE)
1. STANDARD DATA TYPE◦ INTEGER◦ REAL◦ CHAR◦ STRING◦ BOOLEAN
2. USER-DEFINED DATA TYPE◦ ENUMERATED OR SCALAR TYPE◦ SUBRANGE TYPE
11
INTEGERTIPE BILANGAN BULAT
Nama Tipe
Jangkauan Ukuran Memori
Shortint -128 … 127 1 byte
Byte 0 … 255 1 byte
Integer -32768 … 32767
2 byte
Word 0 … 65535 2 byte
Longint -2147483648 … 2147483647
4 byte
12
R E A LTIPE BILANGAN PECAHAN
Tipe Jangkauan Digit Ukuran
Single 1,5E-45 .. 3,4E+38 7-8 4 byte
Real 2,9E-39 .. 1,7E+38 11-12
6 byte
Double 5,0E-324..1,7E+308 15-16
8 byte
Extended
1,9E-4951..1,1E+4932
19-20
10 byte
Comp 9,2E-18 .. 9,2E+18 19-20
8 byte
13
TIPE BILANGAN REAL
Data yang termasuk bilangan real adalah data angka yang mengandung pecahan.
Data yang seperti ini akan memiliki keterangan jangkauan, jumlah digit penting (berarti) dan ukuran.
Digit berarti ini penting diperhatikan karena ini berhubungan dengan tingkat ketelitian data yang disajikan.
14
TIPE DATA KARAKTER
Tipe Keterangan
Char Berisi hanya 1 karakter diapit tanda petik (‘ ‘)
String Terdiri dari beberapa karakter (maksimal 255) diapit tanda petik (‘ ‘)
String[x]
Terdiri dari maksimal x karakter diapit tanda petik (‘ ‘)
15
TIPE DATA BOOLEAN
Adalah tipe data yang hanya bernilai benar (true) atau salah (false).
Jangkauan (nilai yang mungkin) hanya 2 yaitu true atau false.
Tipe Ukuran
Boolean 1 byte
Bool 1 byte
Wordbool 2 byte
LongBool 4 byte
16
StringRangkaian karakter yang ditangani
sebagai unit data tunggalContoh (string literal) :
◦ “ABC, 32fl2. 3h”◦ “Kucing dalam karung”
Contoh (variabel string) :◦ A = “Universitas”◦ B = “Gunadarma”
Berada dalam bentuk array karakter 1 dimensi
17
Jenis String Fixed-length string (String yang
panjangnya tetap)◦Mempunyai jumlah tempat karakter
yang tetap yang tersedia (bisa digunakan) untuk penyimpanan data
Variable-length string (String yang panjangnya berubah-ubah)◦Memberi data sejumlah spasi (ruang)
sesuai yang ia perlukan
18
Fixed-length string
Variable-length string
posisi karakter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25isi A N D R I A M R I I N A J O K O D E D Ikomentar string ke 5string ke 1 string ke 2 string ke 3 string ke 4
posisi karakter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25isi A N D R I * A M R I * I N A * J O K O * A L *komentar tempat sisastring ke 4string ke 1 string ke 2 string ke 3 string ke 5
19
Operasi pada StringConcatenation
◦Penggabungan dua atau lebih string◦Contoh :
A = “Universitas”B = “Gunadarma”C = A + B
makaC = “UniversitasGunadarma”
20
Operasi pada String
Substring◦Mengambil bagian dari suatu string◦Contoh A = “Universitas”
B = “Gunadarma”C = Left(A, 3)D = Right(B, 5)E = Substr(A, 4, 5)
makaC = “Uni”D = “darma”E = “versi”
21
USER - DEFINED DATA TYPESUB JANGKAUAN Tipe sub jangkauan merupakan tipe
data yang jangkauannya merupakan sebagian dari tipe data yang lain.
Misalnya untuk tipe byte memiliki jangkauan dari 0..255, sementara kita hanya memerlukan angka 1..12 untuk menampung data bulan. Maka bisa diciptakan satu tipe baru yang merupakan sub jangkauan tersebut.
ContohType
Bulan : 1 .. 12 ;
22
Array (Larik)Set item data yang disusun secara baik
menjadi rangkaian dan diacu atau ditunjuk oleh satu identifier
Contoh : Nilai = (56 42 89 65 48)Item data individual dalam array bisa ditunjuk
secara terpisah dengan menyatakan posisinya dalam array itu◦ Nilai(1) menunjuk 56◦ Nilai(2) menunjuk 42
Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)
23
Array (Larik)Variabel bisa digunakan sebagai
subscript, misalnya Nilai(i). ◦ Jika i = 2 maka menunjuk ke Nilai(2) yaitu
42◦ Jika i = 4 maka menunjuk ke Nilai(4) yaitu
65Item data individual dalam suatu array
sering disebut elemenMatriks
◦ Array yang hanya berisi bilangan dan tidak ada data alfabetisnya
Klasifikasi Array◦ Array 1 dimensi◦ Array multi dimensi
24
Array Multi DimensiMempunyai elemen-elemen yang disusun ke dalam
baris dan kolom dan digunakan sebagai tabel data Contoh : Nilai ujian dari mahasiswa satu kelas
untuk beberapa mata kuliah bisa ditempatkan dalam array 2 dimensi
Siswa ke (no. baris)
B. Inggris (kolom 1)
Matematika (kolom 2)
12345
A(1,1) = 56A(2,1) = 89A(3,1) = 42A(4,1) = 65A(5,1) = 48
A(1,2) = 44A(2,2) = 73A(3,2) = 36A(4,2) = 86A(5,2) = 51
56 4489 7390 3665 8648 51
A =
25
Penanganan ArrayMetode dasar penanganan array :
◦ Mencari nilai terbesar◦ Mencari nilai terkecil ◦ Menghitung nilai rata-rata◦ Menghitung nilai total◦ Menghitung jumlah nilai di bawah rata-rata
Menyortir Array (Sort)◦ Buble sort◦ Straight selection sort
Mencari/Meneliti Array (Search)◦ Linear search
26
Penanganan ArrayContoh : Nilai ujian mahasiswa akan
dibaca dalam array. Kemudian akan ditampilkan nilai terbesar, nilai terkecil, nilai rata-rata, nilai total, dan jumlah nilai di bawah rata-rata.
Tahapan penanganan array◦ Input nilai data ke dalam array◦ Mengkalkulasi nilai terbesar, terkecil, total,
dan rata-rata◦ Mengkalkulasi jumlah nilai di bawah rata-
rata◦ Menampilkan hasilnya (output)
27
RecordSeperti array 1 dimensiTerdiri dari serangkaian item data
yang terkaitItem data berurutan yang ada dalam
record bisa mempunyai jenis yang berbeda
Contoh : Mengorganisasikan 3 item data yang berbeda ke dalam struktur data tunggal◦ NIP : string(8)◦ Nilai : real◦ Lulus : boolean
28
Deklarasi Recordmahasiswa : record
NIM : string(8)Nilai : realLulus : boolean
end record
Setiap elemen memiliki identifier sendiri
Elemen dari suatu record disebut field
29
Penunjukan ke setiap field dari suatu record bisa dilakukan dengan :◦Notasi “dot” (titik)
◦Notasi “with”
Begin mahasiswa.NIM := ‘51292215’mahasiswa.Nilai := 90.5mahasiswa.Lulus := True
End
Begin with mahasiswado NIM := ‘51292215’ Nilai := 90.5 Lulus := Trueend with
End
30
Array Record (Tabel)Kumpulan dua atau lebih recordDeklarasi Array Record
Variable Mahasiswa : Array [1..5] of record
NIM : string(8) Nilai : real Lulus : boolean
End record
31
Linked ListMemberikan cara yang fleksibel untuk
penanganan item data secara urutPerubahan terhadap urutan tersebut
dapat dicapai (dilakukan) dengan perpindahan data yang minimal dan kehilangan ruang penyimpanan yang sedikit
Contoh : Kalimat "Ahmad does not like cake" dituliskan sebagai suatu list, seperti berikut : Ahmad does not like cake
32
Beberapa istilah◦ Datum : item data dalam list◦ Pointer : penunjuk yang menyambungkan
item data satu dengan yang lain◦ Node / elemen : elemen dari suatu list yang
terbentuk dari datum dan pointer◦ Terminator : pointer terakhir dari list◦ Start pointer : menyatakan tempat datum
pertama ◦ Free storage pointer : menyatakan di mana
datum berikutnya bisa mengarah atau menuju
33
Row Number
Datum Pointer to Next
Datum
Comment
1 “Ahmad” 2 Next datum is in row 2
2 “does” 3 Next datum is in row 3
3 “not” 4 Next datum is in row 4
4 “like” 5 Next datum is in row 5
5 “cake” -1 Last datum; -1 is a terminator
6 7
7 8
Start Pointer
Free storage Pointer
34
Operasi pada ListDeletion : penghapusan elemen suatu
list◦ Ketika elemen suatu list dihapus, tempat
penyimpanan yang telah dikosongkan dapat digunakan lagi
Insertion : penyisipan elemen ke dalam suatu list
Search : pencarian elemen dalam suatu list
35
TreeStruktur data hirarkiDikonstruksi menggunakan aturan
preseden untuk item data, ◦ misal : menggunakan rangkaian alfabet atau
numerikBeberapa Istilah :
◦ Node : elemen dari suatu tree Setiap node memiliki (sedikitnya) dua pointer yaitu left
pointer dan right pointer
◦ Root node : datum pertama yang ditempatkan dalam tree
◦ Parent node : node yang memiliki node di bawahnya (sub-node)
◦ Child node : node yang berada di bawah parent◦ Leaf node : node yang tidak mempunyai child
36
Contoh : bilangan-bilangan ini (56 42 89 65 48) ditempatkan ke dalam tree
Catatan :◦ Node paling kiri berisi bilangan terkecil◦ Node paling kanan berisi bilangan terbesar
37
Mengapa perlu SDMengenal bentuk organisasi penyimpanan
data dan pengoperasiannya.Menentukan kualitas informasi : akurat,
tepat pada waktunya dan relevan. Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkannya.
Mengurangi duplikasi data (data redudancy)Hubungan data dapat ditingkatkan (data
relatability)Mengurangi pemborosan tempat simpanan
luar