MATEMATIKA DISKRIT

advertisement
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
Download