Mat 1
-
Upload
ganti-nama -
Category
Documents
-
view
222 -
download
3
description
Transcript of Mat 1
MATERI PERKULIAHAN
1 Pengenalan
Struktur Data
2Rekursi
3 Stack
4Queue
5Link List
6Tree
7 Sorting
8 Searching
BAHAN REFERENSI……..Santosa Insap, 2001, Struktur Data Menggunakan Turbo
Pascal 6.0., Penerbit Andi, Yogyakarta.Sitorus L., dan Sembiring D., 2012, Konsep Dan
Implementasi Struktur Data Dengan C++, Penerbit Andi, Yogyakarta.
Sianipar R. H., Wiryajati I. K., Mangiri H. S., 2013, Pemrograman C & Struktur Data, Penerbit Informatika, Bandung.
Hasbi M., 2002, Belajar Sendiri Pemrograman Pascal Turbo Pascal 7.0., Penerbit Graha Ilmu, Yogyakarta.
Modul Kuliah Matrikulasi MSI Undip , 2011, Algoritma Dan Struktur Data, Semarang.
DEFENISI STRUKTUR DATA
• Apa yang dimaksud dengan Struktur Data
Cara menyimpan atau merepresentasikan data didalam komputer agar bisa dipakai secara efesien
• Apa yang dimaksud dengan Data
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
KONSEP DASAR STRUKTUR DATA
Struktur Data
Nilai Data yang berhubungan dengan tipe
data
Hubungan antara data (Data Relationship)
Operasi pada data
KONSEP DASAR STRUKTUR DATA
Tahapan – tahapan dalam pemrograman terdiri atas :
Analisa Masalah
Memilih algoritma dan struktur data
Coding
• Algoritma memberikan langkah-langkah yang dilakukan untuk menyelesaikan suatu masalah
• Struktur data mengatur data-data yang dibutuhkan dalam memori
• Bahasa pemrograman menterjemahkan algoritma yang sebelumnya telah disusun dalam bahasa tersebut
• Hasilnya adalah sebuah program
Pemakaian struktur data yang tepat didalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan akan lebih efesien dan sederhana
Jadi……..
HUBUNGAN ANTARA ALGORITMA & STRUKTUR DATA Bagaimana data harus direpresentasikan saat
membuat program
Algoritma yang baik + struktur data yang tepat = program yang baik- Pemilihan algoritma yang baik dan struktur data
yang tepat harus memperhatikan skala data, CPU, memori
- Perlu mengetahui algoritma dan struktur data apa saja yang ada dan mungkin dipakai
DEFENISI ALGORITMA
• Algoritma adalah urutan langkah-langkah logis untuk memecahkan suatu masalah yang disusun secara sistematis
• Yang ditekankan adalah urutan langkah logis, yang berarti bahwa algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat
SIFAT – SIFAT ALGORITMA
• Tidak menggunakan simbol atau sintaks dari bahasa pemrograman manapun
• Tidak bergantung pada suatu bahasa pemrograman tertentu
• Notasi – notasinya dapat digunakan untuk bahasa pemrograman manapun
CONTOH ALGORITMA
Jika seseorang ingin mengirim surat ke kenalannya di tempat lain, langkah yang harus dilakukan adalah : Menulis surat Surat dimasukkan ke dalam amplop tertutup Alamat yang dituju ditulis pada amplop tersebut Amplop diberi perangko secukupnya Pergi ke kantor pos terdekat untuk mengirimkan surat
tersebut
CONTOH ALGORITMA
Masukkan panjang (P)
Masukkan lebar (L)
Luas = P * L Cetak Luas
• Algoritma untuk menghitung luas persegi panjang
CONTOH ALGORITMA
Algoritma Tukar Isi Bejana• Diberikan dua buah bejana A dan B, bejana A
berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukarkan isi kedua bejana tersebut sedemikian sehingga bejana A berisi larutan biru dan bejana B berisi larutan berwarna merah
• Deskripsi :• Tuangkan larutan dari bejana A kedalam
bejana B• Tuangkan larutan dari bejana B kedalam
bejana A
CONTOH ALGORITMA
Algoritma Tukar Isi Bejana• Algoritma Tukar Isi Bejana tersebut tidak akan
menghasilkan pertukaran yang benar. Langkah diatas tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua larutan tersebut
• Untuk mempertukarkan isi dua bejana tersebut, diperlukan sebuah bejana tambahan sebagai tempat penampungan sementara, misalnya bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah sebagai berikut :
CONTOH ALGORITMA
Algoritma Tukar Isi Bejana• Diberikan dua buah bejana A dan B, bejana A berisi
larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukarkan isi kedua bejana tersebut sedemikian sehingga bejana A berisi larutan biru dan bejana B berisi larutan berwarna merah
• Deskripsi :• Tuangkan larutan dari bejana A kedalam bejana C• Tuangkan larutan dari bejana B kedalam bejana A• Tuangkan larutan dari bejana C kedalam bejana B
CIRI PENTING ALGORITMA
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas
• Setiap langkah harus didefenisikan dengan tepat dan tidak berarti – dua (ambiguitas)
• Algoritma memiliki nol atau lebih masukan
• Algoritma memiliki nol atau lebih keluaran
• Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang tepat
ALGORITMA
• Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris
• Tanpa algoritma yang dirancang dengan baik, maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien
• Pelaksana algoritma adalah komputerManusia dan komputer berkomunikasi dengan cara : manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program
ALGORITMA
Cara yang dapat digunakan untuk menggambarkan
suatu proses
Algoritma
IPO Chart
Flowchart Program
MENGGUNAKAN ALGORITMA
C = A + B
Urutan Algoritmanya sbb :
Tentukan nilai A dan B
Proses nilai A ditambah dengan nilai B
Tampilkan nilai C
NOTASI ALGORITMA
• Penulisan algoritma tidak bergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya.
• Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat diterjemahkan kedalam berbagai bahasa pemrograman
NOTASI ALGORITMA : URAIAN KALIMAT DESKRIPTIF (NARASI)
Contoh :Algoritma Kelulusan_Mahasiswa• Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih
besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus
• Deskripsibaca nama dan nilai mahasiswajika nilai >= 60 maka
keterangan = lulustetapi jika
keterangan = tidak lulusTulis nama dan keterangan
NOTASI ALGORITMA : PSEUDOCODE
Contoh :Algoritma Kelulusan_Mahasiswa{diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus}• Deklarasi :
Nama : stringNilai : integerKeterangan : string
• Deskripsi :read (nama, nilai)if nilai >= 60 then
keterangan = ‘lulus’else
keterangan = ‘tidak lulus’write (nama, keterangan)
NOTASI ALGORITMA : FLOWCHART
d
Digunakan untuk menunjukkan awal dan akhir suatu program
Digunakan untuk memberikan nilai awal (inisial) pada suatu variabel atau counter
Digunakan untuk proses, pengolahan arithmatik dan pemindahan data
Digunakan untuk mewakili operasi perbandingan logika yang dibutuhkan pada Selection dan Looping
Digunakan untuk menyatakan operasi masukan data/input dan menampilkan data/output
Digunakan untuk proses yang detailnya dijelaskan terpisah, misalkan untuk menyatakan prosedur atau sub program
Digunakan untuk hubungan arus proses yang terputus, masih dihalaman yang sama
Digunakan untuk hubungan arus proses yang terputus, dihalaman yang berbeda
Digunakan untuk menghubungkan antar simbol / elemen yang lain dan sekaligus menyatakan arah aliran
SUSUN :DIAGRAM ALIR KELULUSAN MAHASISWA
start
Input nama, nilai
If nilai >= 60
lulus
end
tidak lulusN
Y
nama, ket
ATURAN PENULISAN ALGORITMA
• Judul algoritmaBagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh algoritma tersebut
• DeklarasiBagian untuk mendefenisikan semua nama yang digunakan didalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedur dan fungsi
• DeskripsiBagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya
STRUKTUR DATA
STRUKTUR DATA SEDERHANA
STRUKTUR DATA MAJEMUK
Array & Record Linier : Stack, Queue, Linked List
Non Linier : Pohon Biner & Graph
KONSTANTA & VARIABEL
Jika dalam membuat suatu program, tentu akan sering menggunakan bilangan numerik atau suatu kalimat string yang sama yang akan digunakan berkali-kali, ada baiknya bilangan atau kalimat tersebut dijadikan sebagai suatu konstanta.
•Manfaat Konstanta : Penggunaan konstanta akan membuat program
menjadi lebih mudah dimengerti dan diperbaiki. Penggunaan konstanta akan dapat memberikan
nama yang mudah dipahami untuk suatu bilangan numerik yang kompleks.
Contoh : phi = 3.141592