STRUKTUR DATA MUSTAKIM, S.T PERTEMUAN 2 Jurusan Sistem Informasi Fakultas Sains dan Teknologi UIN Suska Riau 2012 PENGANTAR STRUKTUR DATA PENGERTIAN STRUKTUR DATA Struktur susunan, bentuk, pola atau bangunan Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien Sedangkan data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol Halaman 3 DATA PADA KOMPUTER Alat pemrosesan dikomputer terdiri atas rangkaian-rangkaian elektronik yang jika rangkaian tersebut dialiri oleh listrik maka akan bekerja. 1 rangkaian yang dialiri listrik 0 rangkaian yang tidak dialiri listrik Atau yang disebut Sistem Digital Halaman 4 PROGRAM KOMPUTER Program yang baik akan memiliki kriteria: 1. 2. 3. 4. Menghasilkan keluaran yang benar dan sesuai Memiliki kompleksitas algoritma yang minimal Kecocokan bahasa pemrograman Memiliki batas akhir penyelesaian Halaman 5 INFORMASI Ilustrasi : Jika saya menuliskan angka 42, apakan ini dinamakan informasi ??? Jawaban: ???? Halaman 6 Jadi, jika suatu fakta yang saya peroleh harus saya proses lebih lanjut, maka disebut dengan data. Hasil proses yang saya hasilkan untuk mengetahui sesuatu, itu adalah informasi. Suatu perbedaan yang tipis yang bersipat subjective Halaman 7 HIERARKI KOMPUTER INPUT PROSES Halaman OUTPUT 8 STRUKTUR DATA DAN PROGRAM MASALAH ALGORITMA PENYELESAIAN INPUT STRUKTUR DATA PROSES Halaman OUTPUT 9 TYPE DATA Secara garis besar type data dapat dikategorikan menjadi : 1. Type data sederhana a. Type data sederhana tunggal, misalnya Integer, real, boolean dan karakter b. Type data sederhana majemuk, misalnya String Halaman 10 TYPE DATA (Cont…) 2. Struktur Data, meliputi a. Struktur data sederhana, misalnya array dan record b. Struktur data majemuk, yang terdiri dari Linier : Stack, Queue, serta List dan Multilist Non Linier : Pohon Biner dan Graph Halaman 11 Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana. Halaman 12 Struktur data yang ″standar″ yang biasanya digunakan dibidang informatika adalah : • List linier (Linked List) dan variasinya • Multilist • Stack (Tumpukan) • Queue (Antrian) • Tree ( Pohon ) • Graph ( Graf ) Struktur data yang sudah dipelajari sebelumnya adalah struktur data statis, yaitu array. Dalam kuliah ini akan dipelajari struktur data dinamis. Halaman 13 ALGORITMA PENGERTIAN • Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. • Kata logis disini berarti benar sesuai dengan logika manusia. • Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar Halaman 15 CONTOH Misalkan saja “algoritma aktifitas pagi hari sebelum berangkat kerja” yang dikerjakan oleh seorang eksekutif junior untuk turun dari tempat tidur dan bekerja: Halaman 16 Mana algoritma yang benar?? A (1) Turun dari tempat tidur; (2) Melepas piyama; (3) Berpakaian; (4) Mandi; (5) Makan pagi; (6) Baca koran; (7) Pergi kerja B (1) Turun dari tempat tidur; (2) Melepas piyama; (3) Mandi; (4) Berpakaian; (5) Makan pagi; (6) Baca koran; (7) Pergi kerja OUTPUT… A Pergi kerja dengan keadaan basah kuyup B Algoritma yang benar Flowchart Asumsi: Jika sempat baca koran tapi jika tidak langsung pergi kerja Turun dari tempat tidur Melepas Piyama Mandi Berpakaian Makan pagi Sempat Baca koran Pergi kerja Halaman Kondisi Tidak Sempat 19 Silahkan dicoba… Representasikan dan buatlah Algoritma dengan menggunakan Flowchart: 1. Algoritma memilih menu pada sebuah restoran 2. Menentukan bilangan Genap atau ganjil 3. Menentukan nilai huruf mahasiswa dengan asumsi, 80-100=A, 70-79=B, 60-69=C, 5059=D, Lebih kecil dari 50=E Halaman 20 CIRI DAN PROPERTI ALGORITMA Ciri-ciri algoritma sebagai berikut: 1. Input, trdapat nol masukan atau lebih yang diberikan 2. Output, sedikitnya satu keluaran yang dihasilkan 3. Definite, jelas – harus secara sempurna menyatakan apa yang dilakukan 4. Efektif, setiap intruksi harus bisa dilaukan secara manual 5. Terminate – berakhir, harus berhenti setelah sejumlah operasi Halaman 21 PERANCANGAN ALGORITMA Strategi perancangan algoritma yang popular adalah: 1. Strategi Greedy 2. Strategi devide and conquer 3. Strategi dinamic programming 4. Strategi backtracking 5. Strategi branch and bound 6. Strategi search and tranversal 7. Strategi linier programming 8. Strategi integer programming 9. Strategi genetic algorithm 10. Strategi neural network Halaman 22 PENGUKURAN KEBAIKAN ALGORITMA 1. Analisis Kualitatif menelusuri algoritma • Penelusuran logis untuk membuktikan algoritma • Kualitas algoritma mengeluarkan hasil boolean (benar atau salah) • Tidak ada kondisi ditengah-tengah Halaman 23 PENGUKURAN KEBAIKAN ALGORITMA 2. Analisis Kuantitatif Kompleksitas Komputasi (waktu) dan Ruang • Seberapa cepat algoritma bekerja • Seberapa ruang yang diperlukan algoritma bekerja 3. Pencarian Algoritma yang paling efisien Halaman 24 EKSPRESI ALGORITMA Tiga alternatif yang sering digunakan: 1. Bahasa Alami seperti bahasa indonesia atau inggris 2. Pseudocode 3. Bahasa pemrograman Halaman 25 Review Alpro Buatlah satu ekspresi algoritma sederhana (yang pernah diajarkan pada alpro) atau pilihan sebagai berikut: 1. Integer dan String (operasi aritmatika) 2. Perulangan (For atau While) mencetak angka 1-20 terurut 3. Logika (If) mencari kelulusan nilai mata kuliah Halaman 26 Abstrak Data Type (ADT) PENGANTAR Abstraksi data memungkinkan memperluas bahasa pemrograman dengan type data baru Disetiap bahasa pemrograman disediakan berbagai type data dan kita dipersilahkan memilihnya. Type data : huruf, angka dan tanda baca ADT kumpulan nilai dan kumpulan operasi yang diizinkan Halaman 28 ADT integer, real, float dsb (type data primitif) ADT Integer menyatakan suatu himpunan nilai yang mempunyai operasi pengurangan, penambahan, perkalian, pembagian dan sebagainya Halaman 29 TUJUAN ADT Tujuan ADT adalah menyembunyikan informasi atau pengapsulan, yaitu 1. Perubahan implementasi ADT tidak mengubah teks program lain bila berbeda interface 2. Pemakaian dan pembuatan ADT dapat terpisah atau sesuai kesepakatan 3. ADT merupakan program modular dan tim pemrograman 4. Merupakan Modul dan konsep yang dijumpai di domain persoalan Halaman 30 PEMBUATAN ADT Tahap pembuatan ADT: 1. Tahap 1 : Spesifikasi 2. Tahap 2 : Implementasi 3. Tahap 3 : Pemrograman Halaman 31 OPERASI TIPE DATA NUMERIK Operator: ^ : perpangkatan */ : perkalian dan pembagian +: penjumlahan dan pengurangan MOD : sisa hasil pembagian DIV : pembagian dgn hasil bil bulat ABS : mempositifkan bil negatif INT : membulatkan bil real VAL : menumerikkan bil yang disimpan dalam string SQR : menghitung akar dari TRUNC: membulatkan keatas bil real Halaman 32 OPERATOR LOGIKA & TIPE DATA LOGIKAL AND adalah operasi yang melakukan pengecekan atas 2 kondisi. Jika kedua kondisi benar maka hasil operasi AND benar dan selain itu salah OR pengecekan 2 kondisi, jika salah satu kondisi bernilai benar, maka hasil operasi OR benar, dan yang lain salah NOT pengecekan atas 1 kondisi, jika kondisi benar, maka hasil NOT adalah salah. Halaman 33 KOMBINASI OPERASI A = 100 B = 70 C = 40 Jika nilai A >= 90 maka A Lulus …. Dst IF-THEN IF-AND-THEN IF-OR-THEN Halaman 34 Review Matematika Diskrit Tentukan nilai kebenaran suatu logika berikut: A B True AND A B True True True True False True False False True False True False False False False A OR NOT True True False False Halaman 35 Review Matematika II/ Diskrit Berikan contoh operasi berikut: ^ : perpangkatan */ : perkalian dan pembagian +: penjumlahan dan pengurangan MOD : sisa hasil pembagian DIV : pembagian dgn hasil bil bulat ABS : mempositifkan bil negatif INT : membulatkan bil real VAL : menumerikkan bil yang disimpan dalam string SQR : menghitung akar dari TRUNC: membulatkan keatas bil real Halaman 36