Mat 1

37
STRUKTUR DATA & ALGORITMA

description

matematika komputasi

Transcript of Mat 1

STRUKTUR DATA &

ALGORITMA

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.

PERTEMUAN I

PENGENALAN STRUKTUR DATA &

ALGORITMA

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

KONSEP DASAR STRUKTUR DATA

Struktur Data Program Bahasa

Pemrograman

Algoritma

• 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

MENGGUNAKAN IPO CHART

MENGGUNAKAN PROGRAM FLOWCHART

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

KONSTANTA & VARIABEL

KONSTANTA & VARIABEL

KONSTANTA & VARIABEL

KONSTANTA & VARIABEL

TERIMA KASIH