STRUKTUR DATA

38
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 Presentation

Transcript of STRUKTUR DATA

Page 1: STRUKTUR  DATA

STRUKTUR DATA

Page 2: 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

Page 3: STRUKTUR  DATA

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

Page 4: STRUKTUR  DATA

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

Page 5: STRUKTUR  DATA

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.

Page 6: STRUKTUR  DATA

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]

Page 7: STRUKTUR  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

Page 8: STRUKTUR  DATA

TIPE DATA SEDERHANA

Page 9: STRUKTUR  DATA

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.

Page 10: STRUKTUR  DATA

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

Page 11: STRUKTUR  DATA

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

Page 12: STRUKTUR  DATA

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

Page 13: STRUKTUR  DATA

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.

Page 14: STRUKTUR  DATA

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 (‘ ‘)

Page 15: STRUKTUR  DATA

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

Page 16: STRUKTUR  DATA

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

Page 17: STRUKTUR  DATA

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

Page 18: STRUKTUR  DATA

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

Page 19: STRUKTUR  DATA

19

Operasi pada StringConcatenation

◦Penggabungan dua atau lebih string◦Contoh :

A = “Universitas”B = “Gunadarma”C = A + B

makaC = “UniversitasGunadarma”

Page 20: STRUKTUR  DATA

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”

Page 21: STRUKTUR  DATA

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 ;

Page 22: STRUKTUR  DATA

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)

Page 23: STRUKTUR  DATA

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

Page 24: STRUKTUR  DATA

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 =

Page 25: STRUKTUR  DATA

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

Page 26: STRUKTUR  DATA

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)

Page 27: STRUKTUR  DATA

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

Page 28: STRUKTUR  DATA

28

Deklarasi Recordmahasiswa : record

NIM : string(8)Nilai : realLulus : boolean

end record

Setiap elemen memiliki identifier sendiri

Elemen dari suatu record disebut field

Page 29: STRUKTUR  DATA

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

Page 30: STRUKTUR  DATA

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

Page 31: STRUKTUR  DATA

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

Page 32: STRUKTUR  DATA

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

Page 33: STRUKTUR  DATA

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

Page 34: STRUKTUR  DATA

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

Page 35: STRUKTUR  DATA

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

Page 36: STRUKTUR  DATA

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

Page 37: STRUKTUR  DATA

37

Page 38: STRUKTUR  DATA

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