Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma & Struktur Data Eko Puji Widiyanto, ST

Presentasi serupa


Presentasi berjudul: "Algoritma & Struktur Data Eko Puji Widiyanto, ST"— Transcript presentasi:

1 Algoritma & Struktur Data Eko Puji Widiyanto, ST

2 Perkenalan  Dosen : Eko Puji Widiyanto, ST S1 Teknik Elektro UGM 2001 S1 Teknik Elektro UGM  Buku Acuan : Algoritma & Struktur Data Dengan C++, Indra Yatini B & Erliansyah Nasution, Graha Ilmu, 2005 Algoritma & Struktur Data Dengan C++, Indra Yatini B & Erliansyah Nasution, Graha Ilmu, 2005  Waktu Konsultasi : Rabu: – Rabu: – Kamis: – Kamis: –  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  Pengurutan (Sorting) & Pencarian (Searching)

5 Pengantar Algoritma Pemrograman

6 Komputer ???  Definisi : Sebuah alat elektronik yang dapat memanipulasi data dengan tepat & cepat, didesain agar dapat menyimpan, memanggil, memproses data dan menghasilkan output Sebuah alat elektronik yang dapat memanipulasi data dengan tepat & cepat, didesain agar dapat menyimpan, memanggil, memproses data dan menghasilkan output OriginationInput Output Processing Storage Distribution Siklus Pengolahan Data

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/ mengatur sistem komputer”

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) : ALU (Arithmatic Logic Unit) : Melakukan proses komputasi matematis ( + - : x)Melakukan proses komputasi matematis ( + - : x) CU (Control Unit) CU (Control Unit) Mengontrol I/O (input output)Mengontrol I/O (input output) Memory Memory Menyimpan semua data yang akan dan telah diproses oleh komputerMenyimpan 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 Keyboard, mouse, FDD, scanner, dll  Output : Alat-alat yang berfungsi mengeluarkan data dari komputer Monitor, printer, modem, dll Monitor, printer, modem, dll

11 Software  Sekumpulan instruksi yang dieksekusi oleh komputer sehinggan menyebabkan hardware bekerja  Macam : software primer : sistem operasi yang mengendalikan kerjanya komputer. software primer : sistem operasi yang mengendalikan kerjanya komputer. software sekunder/aplikasi : software yang melaksanakan pengolahan data, manajemen database, dll. 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, Percabangan dan Perulangan.

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 output yang sama

14 Paradigma Pemrograman  Pemrograman Prosedural / Terstruktur Berdasarkan urutan-urutan, sekuensial Berdasarkan urutan-urutan, sekuensial Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan. 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. Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah. Program dapat dibagai-bagi menjadi prosedur dan fungsi. Program dapat dibagai-bagi menjadi prosedur dan fungsi. Contoh: PASCAL dan C Contoh: PASCAL dan C  Pemrograman Fungsional Berdasarkan teori fungsi matematika Berdasarkan teori fungsi matematika Fungsi merupakan dasar utama program. Fungsi merupakan dasar utama program.  Pemrograman Modular Pemrograman ini membentuk banyak modul. Pemrograman ini membentuk banyak modul. Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri Sebuah program dapat merupakan kumpulan modul-modul. Sebuah program dapat merupakan kumpulan modul-modul. Contoh: MODULA-2 atau ADA 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 Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan method/event/prosedur yang dapat dimanipulasi Contoh: C++, Object Pascal, dan Java. 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. 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. 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. Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma. Contoh: PROLOG Contoh: PROLOG

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   Masuk Indonesia tahun 1980-an

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 dengan C, C++, dan Java oleh Moh Sjukani hal 1)

19 Contoh Algoritma  Langkah menggoreng ayam untuk makan malam Ibu Wati mengambil ayam beku dari almari es Ibu Wati mengambil ayam beku dari almari es Ibu Wati mengambil penggorengan dari rak Ibu Wati mengambil penggorengan dari rak Ibu Wati menggoreng ayam Ibu Wati menggoreng ayam Ibu Wati menyajikannya di meja makan Ibu Wati menyajikannya di meja makan  Ada aksi yang tergantung pada sesuatu Ibu Wati mengambil ayam beku dari almari es Ibu Wati mengambil ayam beku dari almari es Ibu Wati mengambil penggorengan dari rak Ibu Wati mengambil penggorengan dari rak Ibu Wati memakai celemek tergantung pada hari(Sabtu atau Minggu) Ibu Wati memakai celemek tergantung pada hari(Sabtu atau Minggu) Ibu Wati menggoreng ayam Ibu Wati menggoreng ayam Ibu Wati menyajikannya di meja makan Ibu Wati menyajikannya di meja makan

20 Kondisi  Hari Sabtu : Karena Ibu Wati memakai baju berwarna cerah maka Ibu Wati memakai celemek 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 Karena Ibu Wati tidak memakai baju berwarna cerah maka Ibu Wati tidak memakai celemek  Algoritmanya : Ambil ayam beku dari almari es Ambil ayam beku dari almari es Ambil penggorengan dari rak Ambil penggorengan dari rak Cek warna baju : Cek warna baju : Cerah: memakai celemekCerah: memakai celemek Tidak cerah: tidak memakai celemekTidak cerah: tidak memakai celemek Menggoreng ayam Menggoreng ayam Menyajikan di meja makan Menyajikan di meja makan

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 Jika jumlah pesanan belum cukup maka goreng 1 ayam, jika sudah cukup maka berhenti Atau : selama jumlah ayam yang digoreng belum cukup maka goreng 1 ayam Atau : selama jumlah ayam yang digoreng belum cukup maka goreng 1 ayam

22 Kriteria Algoritma  Menurut Donald E Knuth : Input: Input: algoritma dapat memiliki nol atau lebih inputan dari luar.algoritma dapat memiliki nol atau lebih inputan dari luar. Output: Output: algoritma harus memiliki minimal satu buah output keluaran.algoritma harus memiliki minimal satu buah output keluaran. Definiteness (pasti): Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu. Finiteness (ada batas): Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).algoritma harus memiliki titik berhenti (stopping role). Effectiveness (tepat dan efisien): Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1algoritma 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. instruksi dikerjakan secara sekuensial, berurutan.  Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu instruksi dikerjakan jika memenuhi kriteria tertentu  Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu. instruksi dikerjakan selama memenuhi suatu kondisi tertentu.  Concurrent Process: beberapa instruksi dikerjakan secara bersama. beberapa instruksi dikerjakan secara bersama.

24 Contoh Algoritma  Algoritma menghitung volume tabung Masukkan tinggi tabung h Masukkan tinggi tabung h Masukkan jari-jari tabung r Masukkan jari-jari tabung r Hitung volume tabung (V = phi x r x r x h) Hitung volume tabung (V = phi x r x r x h) Tulis volume tabung Tulis volume tabung  Sifat : Umum Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman Tidak tergantung pada suatu bahasa pemrograman Tidak tergantung pada suatu bahasa pemrograman Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun

25 Pseudo Code  Kode atau tanda yang menyerupai (pseudo) program atau merupakan penjelasan cara menyelesaikan suatu masalah.  Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma

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 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 5. Print b

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 Input: optional Proses: vital Proses: vital Output: minimal 1 Output: minimal 1

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” “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 Meminta input matrik dari user Mencari invers matrik input Mencari invers matrik input Menampilkan matrik hasil invers Menampilkan matrik hasil invers

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 opsi terakhir

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  Eror minimal -> program layak digunakan

35 Menulis Dokumentasi  Dokumentasi -> memudahkan back tracking dan modifikasi/revisi  Komentar : Judul dan sekilas info program Judul dan sekilas info program Fungsi-fungsi dan prosedur Fungsi-fungsi dan prosedur Variabel dan konstanta Variabel dan konstanta

36 Merawat Program  Mencegah munculnya bug/error yang tidak terdeteksi sebelumnya  Penambahan fitur baru  Modifikasi fitur yang sudah ada

37 Debugging/Pengujian Program  Syntax error : Kesalahan penulisan program Kesalahan penulisan program  Run time error : Kesalahan saat program dijalankan Kesalahan saat program dijalankan  Logic error : Kesalahan tata urut dan logika pemrograman Kesalahan tata urut dan logika pemrograman Program berjalan normal tapi output salah 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 Mempermudah programmer dalam menentukan alur logika pemrograman  Setelah pemrograman : Menjelaskan alur program yang dibuat kepada orang lain Menjelaskan alur program yang dibuat kepada orang lain

40 Simbol Flowchart

41 Simbol Flowchart(2)

42 Simbol Flowchart(3)

43 Simbol Flowchart(4)

44 Contoh Flowchart  Problem : Menghitung luas persegi panjang 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)

45 Contoh Flowchart  Problem : Menentukan suatu bilangan termasuk bilangan ganjil atau genap Menentukan suatu bilangan termasuk bilangan ganjil atau genap  Algoritma : Masukkan bilangan a Masukkan bilangan a Hitung sisa pembagian a dengan 2 Hitung sisa pembagian a dengan 2 Cek sisa bagi : Cek sisa bagi : 0 maka a termasuk bilangan genap0 maka a termasuk bilangan genap 1 maka a termasuk bilangan ganjil1 maka a termasuk bilangan ganjil Cetak hasil Cetak hasil

46 TERIMAKASIH


Download ppt "Algoritma & Struktur Data Eko Puji Widiyanto, ST"

Presentasi serupa


Iklan oleh Google