• Tidak ada hasil yang ditemukan

Algoritma & Struktur Data. Eko Puji Widiyanto, ST

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma & Struktur Data. Eko Puji Widiyanto, ST"

Copied!
46
0
0

Teks penuh

(1)

Algoritma &

Struktur Data

Eko Puji Widiyanto, ST

Email : ekapujiw2002@gmail.com

(2)

Perkenalan

 Dosen : Eko Puji Widiyanto, ST

 S1 Teknik Elektro UGM 2001

 Email : ekapujiw2002@gmail.com, ekapujiw2002@yahoo.com

 Buku Acuan :

 Algoritma & Struktur Data Dengan C++, Indra Yatini B &

Erliansyah Nasution, Graha Ilmu, 2005

 Waktu Konsultasi :  Rabu : 09.00 – 10.30  Kamis : 09.00 – 10.30  Penilaian : 1. Tugas : 20% 2. Kuis : 10% 3. UTS : 30% 4. UAS : 40%

(3)

Aturan main:

1. Pengumpulan tugas yang melebihi batas waktu yang telah ditentukan, akan diberikan nilai nol untuk tugas tersebut.

2. Mahasiswa yang memiliki tingkat kehadiran kurang dari 69%, tidak diperkenankan ikut Ujian Akhir Semester (UAS).

3. Mahasiswa yang melanggar tata tertib dan ketentuan ujian, baik ujian tengah semester maupun ujian akhir semester dianggap gugur dan mendapat nilai E.

(4)

Materi

 Pengantar Algoritma dan Pemrograman  Algoritma, Pseudocode dan Flowchart

 Pengantar Bahasa Pemrograman (dengan Bahasa C)  Input & Output pada Bahasa C

 Struktur Kontrol Percabangan , Perulangan, Perulangan bertingkat  Function & Procedure

 Pointer, Array, & Class  Rekursi

 Daftar Berdampingan (Contiguous List)  Daftar Berangkai (Linked List)

 Pencarian

(5)
(6)

Komputer ???

 Definisi :

 Sebuah alat elektronik yang dapat

memanipulasi data dengan tepat & cepat,

didesain agar dapat menyimpan, memanggil, memproses data dan menghasilkan output

Origination Input Processing Output Storage

Distribution

(7)

Elemen Komputer

 Software : “Piranti lunak berupa program

yg berisi perintah2x guna pengolahan data”

 Hardware :”Piranti keras yg dpt dilihat dan

dijamah”

 Brainware : “Orang yg mengoperasikan/

(8)

Komponen Komputer

Input device :

Alat atau media dimana kita menerima input (data) dan meneruskan kpd CPU utk diproses.

Central Processing Unit :

Otak dr pd komputer,sbg pusat pengolahan dan pengontrolan keseluruhan Data Processing

System.

Output Device :

Alat atau media dmana dpt mengeluarkan dan memberikan hasil proses.

(9)

CPU

 Merupakan otak komputer :

 ALU (Arithmatic Logic Unit) :

• Melakukan proses komputasi matematis ( + - : x)

 CU (Control Unit)

• Mengontrol I/O (input output)

 Memory

• Menyimpan semua data yang akan dan telah diproses oleh komputer

(10)

Hardware

 Input : Alat-alat yang berfungsi memasukkan data ke komputer

 Keyboard, mouse, FDD, scanner, dll

 Output : Alat-alat yang berfungsi mengeluarkan data dari komputer

(11)

Software

 Sekumpulan instruksi yang dieksekusi

oleh komputer sehinggan menyebabkan hardware bekerja

 Macam :

software primer : sistem operasi yang

mengendalikan kerjanya komputer.

software sekunder/aplikasi : software yang

melaksanakan pengolahan data, manajemen database, dll.

(12)

Program

 Merupakan kumpulan instruksi-instruksi

tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat

program)

Program adalah kumpulan instruksi atau

perintah yang disusun sedemikian rupa

sehingga mempunyai urutan logika yang tepat untuk menyelesaikan suatu persoalan.

Instruksi (statement) yang dimaksud adalah

syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan yang mempunyai komponen-komponen : Input, Output, Proses,

(13)

Bahasa Pemrograman

Adalah alat untuk membuat program

 Contoh: C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll.

 Perbedaan: cara memberikan instruksi

(sintaks)

 Persamaan: bertujuan menghasilkan

(14)

Paradigma Pemrograman

Pemrograman Prosedural / Terstruktur

 Berdasarkan urutan-urutan, sekuensial

 Program adalah suatu rangkaian prosedur untuk memanipulasi data.

Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan.

 Harus mengingat prosedur mana yang sudah dipanggil dan apa yang

sudah diubah.

 Program dapat dibagai-bagi menjadi prosedur dan fungsi.  Contoh: PASCAL dan C

Pemrograman Fungsional

 Berdasarkan teori fungsi matematika

 Fungsi merupakan dasar utama program.

Pemrograman Modular

 Pemrograman ini membentuk banyak modul.

 Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri

sendiri

 Sebuah program dapat merupakan kumpulan modul-modul.  Contoh: MODULA-2 atau ADA

(15)

Paradigma Pemrograman

Pemrograman Berorientasi Obyek

 Pemrograman berdasarkan prinsip obyek, dimana obyek

memiliki data/variabel/property dan method/event/prosedur yang dapat dimanipulasi

 Contoh: C++, Object Pascal, dan Java.

Pemrograman Berorientasi Fungsi

 Pemrograman ini berfokus pada suatu fungsi tertentu saja.

Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.

 Contoh: SQL (Structured Query Language), HTML, XML dan

lain-lain.

Pemrograman Deklaratif

 Pemrograman ini mendeskripsikan suatu masalah dengan

pernyataan daripada memecahkan masalah dengan implementasi algoritma.

(16)

Siklus Software

Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman menempati posisi dibagian implementasi karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses coding (pembuatan program).

(17)

Algoritma

 Asal kata Algoritma (algorism - algorithm) berasal dari nama Abu Ja’far Muhammad ibn Musa Al-Khuwarizmi

 Ilmuan Persia yang menulis kitab “al jabar

w’al-muqabala” ( rules of restoration and reduction – aturan pemugaran dan

pengurangan)

 Tahun 825 M

 Berasal dari Iran

(18)

Definisi Algoritma

 Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah.

 Urutan langkah logis, yang berarti algoritma harus

mengikuti suatu urutan tertentu, tidak boleh

melompat-lompat.(Dari Microsoft Press Computer

and Internet Dictionaary 1997,1998)

 Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.

 Alur pikiran, sehingga algoritma seseorang dapat juga

berbeda dari algoritma orang lain.

 Tertulis, yang artinya dapat berupa kalimat, gambar,

atau tabel tertentu.(Dari Algoritma dan Struktur Data

(19)

Contoh Algoritma

 Langkah menggoreng ayam untuk makan malam

 Ibu Wati mengambil ayam beku dari almari es  Ibu Wati mengambil penggorengan dari rak  Ibu Wati menggoreng ayam

 Ibu Wati menyajikannya di meja makan

Ada aksi yang tergantung pada sesuatu

 Ibu Wati mengambil ayam beku dari almari es  Ibu Wati mengambil penggorengan dari rak  Ibu Wati memakai celemek tergantung pada

hari(Sabtu atau Minggu)

 Ibu Wati menggoreng ayam

(20)

Kondisi

 Hari Sabtu :

 Karena Ibu Wati memakai baju berwarna cerah maka

Ibu Wati memakai celemek

 Hari Minggu :

 Karena Ibu Wati tidak memakai baju berwarna cerah

maka Ibu Wati tidak memakai celemek

 Algoritmanya :

 Ambil ayam beku dari almari es  Ambil penggorengan dari rak  Cek warna baju :

• Cerah : memakai celemek

• Tidak cerah : tidak memakai celemek

 Menggoreng ayam

(21)

Perulangan

 Karena ada pesanan, maka jumlah ayam

yang digoreng 500 ekor

 Jika jumlah pesanan belum cukup maka

goreng 1 ayam, jika sudah cukup maka berhenti

 Atau : selama jumlah ayam yang digoreng

(22)

Kriteria Algoritma

 Menurut Donald E Knuth :

 Input:

• algoritma dapat memiliki nol atau lebih inputan dari luar.

 Output:

• algoritma harus memiliki minimal satu buah output keluaran.

Definiteness (pasti):

• algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.

Finiteness (ada batas):

• algoritma harus memiliki titik berhenti (stopping role).

Effectiveness (tepat dan efisien):

• algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1

(23)

Jenis Proses Algoritma

 Sequence Process:

instruksi dikerjakan secara sekuensial, berurutan.

Selection Process:

instruksi dikerjakan jika memenuhi kriteria tertentu

 Iteration Process:

instruksi dikerjakan selama memenuhi suatu

kondisi tertentu.

 Concurrent Process:

(24)

Contoh Algoritma

 Algoritma menghitung volume tabung

 Masukkan tinggi tabung h  Masukkan jari-jari tabung r

 Hitung volume tabung (V = phi x r x r x h)  Tulis volume tabung

 Sifat : Umum

 Tidak menggunakan simbol atau sintaks dari suatu

bahasa pemrograman

 Tidak tergantung pada suatu bahasa pemrograman  Notasi-notasinya dapat digunakan untuk seluruh

(25)

Pseudo Code

 Kode atau tanda yang menyerupai

(pseudo) program atau merupakan

penjelasan cara menyelesaikan suatu masalah.

 Pseudo-code sering digunakan oleh

(26)

 Problem : mencari bilangan terkecil di antara 2 bilangan

 Algoritma :

1. Masukkan bilangan pertama 2. Masukkan bilangan kedua

3. Jika bilangan pertama < bilangan kedua

4. maka kerjakan langkah 4, jika tidak,kerjakan 5. langkah 5.

6. Tampilkan bilangan pertama 7. Tampilkan bilangan kedua  Pseudo Code :

1. Input a 2. Input b

3. If a < b then kerjakan langkah 4 4. Print a

(27)

Komparasi

Algoritma Pseudo Code

Nilai X ditambah 7 X X + 7 Tampilkan nilai X jika

lebih kecil dari 19

If X < 19 then Print X

Dari X dan Y, cari bilangan terkecilnya

If X < Y then Print X Else Print Y

(28)

Bagian Program

 3 bagian :

 Input : optional  Proses : vital

(29)

Langkah Pembuatan Program

1. Mendefinisikan masalah 2. Menemukan solusi 3. Memilih algoritma 4. Menulis program 5. Menguji program 6. Menulis dokumentasi 7. Merawat program

(30)

Mendefinisikan Masalah

 Langkah penting yang sering dilupakan

 Pendefinisian masalah secara rinci -> pemrograman lebih terarah dan terfokus

 Hukum Murphy (Henry Ledgard) :

“Semakin cepat menulis program, maka

semakin lama kita dapat menyelesaikannya”

 Berlaku untuk problem yang kompleks

 Definisikan problem -> apa yang harus dicarikan solusi -> tentukan input dan outputnya

(31)

Menemukan Solusi

 Problem jelas -> tentukan solusi yang dipergunakan

 Problem kompleks -> bagi menjadi modul-modul kecil -> solusi mudah

 Modul program -> program lebih simpel, mudah dilihat, singkat

 Contoh invers matrik :

 Meminta input matrik dari user  Mencari invers matrik input

(32)

Memilih Algoritma

 Pilihlah algoritma yang benar-benar sesuai dengan problem yang akan dipecahkan

 Pertimbangkan input dan output, serta

efisiensi & efektivitas program

 Penggunaan algoritma lain merupakan

(33)

Menulis Program

 Pilihlah bahasa pemrograman yang

mudah

 Sesuaikan dengan kebutuhan program

 Memiliki interoperabilitas yang tinggi

terhadap perangkat keras dan platform lainnya

(34)

Menguji Program

 Uji program dengan intensif

 Handling error yang muncul

 Black box & white box testing

(35)

Menulis Dokumentasi

 Dokumentasi -> memudahkan back

tracking dan modifikasi/revisi

 Komentar :

 Judul dan sekilas info program  Fungsi-fungsi dan prosedur

(36)

Merawat Program

 Mencegah munculnya bug/error yang tidak

terdeteksi sebelumnya

 Penambahan fitur baru

(37)

Debugging/Pengujian Program

 Syntax error :

 Kesalahan penulisan program

 Run time error :

 Kesalahan saat program dijalankan

 Logic error :

 Kesalahan tata urut dan logika pemrograman  Program berjalan normal tapi output salah

(38)

Flowchart

 Merupakan kumpulan gambar/tanda yang

mempunyai aliran satu atau dua arah secara sekuensial untuk memecahkan suatu masalah

 Berguna untuk mendesain dan

merepresentasikan program

 Flowchart didesain agar dapat

merepresentasikan berbagai komponen dalam bahasa pemrograman

(39)

Fungsi Flowchart

 Sebelum pemrograman :

 Mempermudah programmer dalam

menentukan alur logika pemrograman

 Setelah pemrograman :

 Menjelaskan alur program yang dibuat

(40)
(41)
(42)
(43)
(44)

Contoh Flowchart

 Problem :  Menghitung luas persegi panjang  Algoritma : 1. Masukkan panjang (p) 2. Masukkan lebar (l) 3. Hitung luas (L), yaitu

panjang kali lebar

4. Cetak luas (L) Mulai Selesai Masukkan p Masukkan l Hitung luas L = p x l Tulis L

(45)

Contoh Flowchart

 Problem :

 Menentukan suatu

bilangan termasuk bilangan ganjil atau genap

 Algoritma :

 Masukkan bilangan a

 Hitung sisa pembagian a

dengan 2

 Cek sisa bagi :

• 0 maka a termasuk bilangan genap • 1 maka a termasuk bilangan ganjil  Cetak hasil Mulai Selesai Masukkan a Hitung sisa pembagian a (a mod 2) Sisa bagi = 0? Cetak Genap Y Cetak Ganjil T

(46)

Referensi

Dokumen terkait

Penyertaan saham Perseroan dengan persentase pemilikan paling sedikit 20% tetapi tidak lebih dari 50% dicatat dengan metode ekuitas dimana penyertaan saham

5.5.7 Keputusan SPSS maklum balas responden bahawa keadah 62 pembelajaran CD kejuruteraan awam terdapat kuiz yang membantu pelajar berfikir secara kreatif dan mengimbas

Dalam pengumpulan informasi atau data, siswa diposisikan sebagai peneliti sosial yang akan melakukan inquiry secara alami (naturalistic inquiry) melalui kegiatan

Karena lensa spheris dibentuk dari dua prisma yang Karena lensa spheris dibentuk dari dua prisma yang berhimpitan maka lensa spheris mempunyai kekuatan berhimpitan maka lensa

Hasil analisis beberapa penelitian menyatakan bahwa rhodamin B dapat membahayakan kesehatan manusia yaitu tidak dapat dicerna oleh tubuh dan akan mengendap secara

Dari paparan tersebut disimpulkan bahwa ilmu pengetahuan yang berorientasi positivistik, telah digunakan manusia untuk mencari kebenaran mengenai alam semesta,

tauhidullah, berman6aat, tidak mubadir, dan mempermudah manusia beribadah kepada Allah, bukan ilmu pengetahuan teknologi dan seni yang membawa kepada kehan!uran umat#. 

Dalam penerapan image design layout dan publishing pada media harian DISWAY, ada beberapa teori-teori dasar terkait yang dapat digunakan untuk membantu penelitian serta