410 likes | 758 Views
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
E N D
PENGANTAR • Bagaimana 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 Data • Tipe data adalahjenis data yang mampuditanganiolehsuatubahasapemrogramanpadakomputer. • Tiap-tiapbahasapemrogramanmemilikitipe data yang memungkinkan: • Deklarasiterhadapvariabeltipe data tersebut • Menyediakankumpulanoperasi yang mungkinterhadapvariabelbertipe data tersebut • Jenisobyek data yang mungkin • Contohtipe data di C? Pascal? • Tipe data sederhanatunggal interger, real, booleandan character • Tipe data sederhanamajemuk string
Obyek Data • Obyek Data adalahkumpulanelemen yang mungkinuntuksuatutipe data tertentu. • Mis: integer mengacupadaobyek data -32768 s/d 32767, byte 0 s/d 255, string adalahkumpulankaraktermaks 255 huruf
Struktur Data • StrukturData adalahcarapenyimpanandanpengorganisasian data-data padamemorikomputermaupun file secaraefektifsehinggadapatdigunakansecaraefisien, termasukoperasi-operasididalamnya.
Aktivitas Struktur Data • Di 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]
BentukStruktur Data • Struktur data sederhana • Array (larik) • Record • Struktur data majemuk • Linier • Stack, Queue, dan Linked List • Non Linier • Pohon (Tree) • Pohon Binary (Binary Tree) • Binary Search Tree • General Tree • Graph
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.
TIPE DATA SEDERHANA (SIMPLE - DATA TYPE) • STANDARD DATA TYPE • INTEGER • REAL • CHAR • STRING • BOOLEAN • USER-DEFINED DATA TYPE • ENUMERATED OR SCALAR TYPE • SUBRANGE TYPE
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.
TIPE DATA BOOLEAN • Adalahtipe data yang hanyabernilaibenar (true) atausalah (false). • Jangkauan (nilai yang mungkin) hanya 2 yaitu true atau false.
String • Rangkaiankarakter yang ditanganisebagai unit data tunggal • Contoh (string literal) : • “ABC, 32fl2. 3h” • “Kucingdalamkarung” • Contoh (variabel string) : • A = “Universitas” • B = “Gunadarma” • Beradadalambentuk array karakter1 dimensi
Jenis String • Fixed-length string (String yang panjangnyatetap) • Mempunyaijumlahtempatkarakter yang tetap yang tersedia (bisadigunakan) untukpenyimpanan data • Variable-length string (String yang panjangnyaberubah-ubah) • Memberi data sejumlahspasi (ruang) sesuai yang iaperlukan
Fixed-length string • Variable-length string
Operasi pada String • Concatenation • Penggabungan dua atau lebih string • Contoh : A = “Universitas” B = “Gunadarma” C = A + B maka C = “UniversitasGunadarma”
OperasipadaString • Substring • Mengambil bagian dari suatu string • Contoh A = “Universitas” B = “Gunadarma” C = Left(A, 3) D = Right(B, 5) E = Substr(A, 4, 5) maka C = “Uni” D = “darma” E = “versi”
USER - DEFINED DATA TYPESUB JANGKAUAN • Tipe sub jangkauanmerupakantipe data yang jangkauannyamerupakansebagiandaritipe data yang lain. • Misalnyauntuktipe byte memilikijangkauandari 0..255, sementarakitahanyamemerlukanangka 1..12 untukmenampung data bulan. Makabisadiciptakansatutipebaru yang merupakan sub jangkauantersebut. • Contoh Type Bulan : 1 .. 12 ;
Array (Larik) • Set item data yang disusunsecarabaikmenjadirangkaiandandiacuatauditunjukolehsatuidentifier • Contoh : Nilai = (56 42 89 65 48) • Item data individual dalam array bisaditunjuksecaraterpisahdenganmenyatakanposisinyadalam array itu • Nilai(1) menunjuk 56 • Nilai(2) menunjuk 42 • Bilangan yang ditulisdalamtandakurungmenandakanposisi item individual dalam array (disebutjugasubscript / indeks)
Array (Larik) • Variabelbisadigunakansebagai subscript, misalnyaNilai(i). • Jikai = 2 makamenunjukkeNilai(2) yaitu 42 • Jikai = 4 makamenunjukkeNilai(4) yaitu 65 • Item data individual dalamsuatu array seringdisebutelemen • Matriks • Array yang hanyaberisibilangandantidakada data alfabetisnya • Klasifikasi Array • Array 1 dimensi • Array multi dimensi
Array Multi Dimensi • Mempunyai 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 • 44 • 73 • 36 • 86 • 48 51 A =
Penanganan Array • Metodedasarpenanganan array : • Mencarinilaiterbesar • Mencarinilaiterkecil • Menghitungnilai rata-rata • Menghitungnilai total • Menghitungjumlahnilaidibawah rata-rata • Menyortir Array (Sort) • Buble sort • Straight selection sort • Mencari/Meneliti Array (Search) • Linear search
PenangananArray • Contoh : Nilaiujianmahasiswaakandibacadalam array. Kemudianakanditampilkannilaiterbesar, nilaiterkecil, nilai rata-rata, nilai total, danjumlahnilaidibawah rata-rata. • Tahapanpenanganan array • Input nilai data kedalam array • Mengkalkulasinilaiterbesar, terkecil, total, dan rata-rata • Mengkalkulasijumlahnilaidibawah rata-rata • Menampilkanhasilnya (output)
Record • Seperti array 1 dimensi • Terdiridariserangkaian item data yang terkait • Item data berurutan yang adadalam record bisamempunyaijenis yang berbeda • Contoh : Mengorganisasikan 3 item data yang berbedakedalamstruktur data tunggal • NIP : string(8) • Nilai : real • Lulus : boolean
Deklarasi Record mahasiswa : record NIM : string(8) Nilai : real Lulus : boolean end record • Setiapelemenmemilikiidentifier sendiri • Elemendarisuatu record disebutfield
Penunjukankesetiap field darisuatu record bisadilakukandengan : • Notasi “dot” (titik) • Notasi “with” Begin mahasiswa.NIM := ‘51292215’ mahasiswa.Nilai := 90.5 mahasiswa.Lulus := True End Begin with mahasiswa do NIM := ‘51292215’ Nilai := 90.5 Lulus := True end with End
Array Record (Tabel) • Kumpulan duaataulebih record • Deklarasi Array Record Variable Mahasiswa : Array [1..5] of record NIM : string(8) Nilai : real Lulus : boolean End record
Linked List Ahmad does not like cake • Memberikancara yang fleksibeluntukpenanganan item data secaraurut • Perubahanterhadapurutantersebutdapatdicapai (dilakukan) denganperpindahan data yang minimal dankehilanganruangpenyimpanan yang sedikit • Contoh : Kalimat "Ahmad does not like cake" dituliskansebagaisuatu list, sepertiberikut :
Beberapaistilah • Datum : item data dalam list • Pointer : penunjuk yang menyambungkan item data satudengan yang lain • Node / elemen : elemendarisuatu list yang terbentukdari datum dan pointer • Terminator : pointer terakhirdari list • Start pointer : menyatakantempat datum pertama • Free storage pointer : menyatakandimana datum berikutnyabisamengarahataumenuju
Start Pointer Free storage Pointer
Operasi pada List • Deletion : penghapusanelemensuatu list • Ketikaelemensuatu list dihapus, tempatpenyimpanan yang telahdikosongkandapatdigunakanlagi • Insertion : penyisipanelemenkedalamsuatu list • Search : pencarianelemendalamsuatu list
Tree • Struktur data hirarki • Dikonstruksimenggunakanaturanpresedenuntuk item data, • misal: menggunakanrangkaianalfabetataunumerik • BeberapaIstilah : • Node : elemendarisuatu tree • Setiapnodememiliki (sedikitnya) dua pointer yaituleft pointer danright pointer • Root node : datum pertama yang ditempatkandalam tree • Parent node : node yang memilikinode dibawahnya (sub-node) • Child node : node yang beradadibawahparent • Leaf node : node yang tidakmempunyaichild
Contoh : bilangan-bilanganini (56 42 89 65 48) ditempatkankedalam tree • Catatan : • Node paling kiriberisibilanganterkecil • Node paling kananberisibilanganterbesar
Mengapa perlu SD • Mengenal 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