Bab1 algoritma

Post on 03-Jul-2015

2.589 views 2 download

description

Slide yang saya gunakan untuk mengajar algoritma dan pemrogramman di kelas ppst nurul fikri :)

Transcript of Bab1 algoritma

Slide ke:1

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Bab 1: Pengenalan Algoritma

Slide ke:2

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Review Minggu Lalu

• Program komputer merupakan serangkaian perintah yang dibuat oleh programmer

• Program komputer dibuat dengan menggunakan bahasa pemrograman berisi syntaks tertentu yang dapat dimengerti oleh compiler / interpreter

• Setiap program komputer berisikan instruksi yang direpresentasikan dalam bentuk kode biner (binary code) agar dapat dimengerti oleh mesin / komputer

• Dibutuhkan adanya compiler atau interpreter untuk mengubah bahasa pemrograman menjadi bahasa mesin (binary code)

Slide ke:3

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Review Minggu Lalu

• Jenis bahasa pemrograman menurut modelnya:

– Procedural Languages

– Functional Languages

– Declarative, non-algorithmic Language

– Scripting Languages

– Object-oriented Languages

• Jenis Bahasa Pemrograman menurut tingkatannya:

– High Level Languages

– Low Level Languages

Slide ke:4

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Review Minggu Lalu

• Compiler : Alat yang digunakan untuk membaca seluruh isi program dan menerjemahkan program yang dibuat agar menjadi satu set instruksi utuh yang dimengerti oleh komputer (permanen)

• Interpreter: Alat yang digunakan untuk menerjemahkan secara langsung setiap baris instruksi yang dibuat agar dapat langsung dieksekusi oleh komputer (just in time)

Slide ke:5

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Apa Yang Akan Kita Pelajari?

Apa itu algoritma ? Struktur dasar algoritma Flow Chart Algoritma Serching dan Sorting

Slide ke:6

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Definition of Algorithm:: a procedure for solving a mathematical problem (as of finding

the greatest common divisor) in a finite number of steps that frequently involves repetition of an operation;

broadly : a step-by-step procedure for solving a problem or accomplishing some end especially by a computer

(Merriam-Webster)

Algoritma

Slide ke:7

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Algoritma

Algoritma yang umum digunakan

– Pengurutan (Sorting)

– Pencarian (Searching)

– Kompresi (Compression)

Slide ke:8

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Algoritma (Sequencial Search)

1 2 3 4 5 6 7 8 9 10

Mencari Angka 7 dalam daftar:

Apakah 1 = 7 ?

1 2 3 4 5 6 7 8 9 10

Apakah 2 = 7 ?

1 2 3 4 5 6 7 8 9 10

Apakah 7 = 7 ?...

Step 1:

Step 2:

Step 7:

Membutuhkan: max. N langkah

Slide ke:9

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Agoritma (Binary Search)

1 2 3 4 5 6 7 8 9 10

Mencari Angka 7 dalam daftar:Apakah 7 <, >, atau = 5 ?

6 7 8 9 10

Apakah 7 <, >, atau = 8 ?

6 7

Apakah 7 <, >, atau = 6 ?

Membutuhkan:Max. Log

2 N langkah

Slide ke:10

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Algoritma

Guessing Number Game :)

(permainan tebak angka)

Silahkan Pilih angka antara 1 – 100 dan kita hanya memiliki kesempatan max. 7 kali menebak

Jawab dengan “Lebih”, “Kurang”, atau “Ya!”

Slide ke:11

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Algoritma

Struktur Dasar Algoritma:

– Sequence (urutan)

– Selection (pemilihan)

– Repetition (pengulangan)

Slide ke:12

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Algoritma

Sequence

Merupakan rangkaian instruksi yang dijalankan secara berurutan.

Selection

Rangkaian instruksi yang dikerjakan apabila ada kondisi yang terpenuhi.

Repetition

Rangkaian instruksi yang dikerjakan secara berulang sampai batas yang ditentukan.

Slide ke:13

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Algoritma (Sequence)

Membeli susu di toko:

Pergi ke toko Ambil susu yang diinginkan Bawa ke kasir Bayar tagihan Pulang

Slide ke:14

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Algoritma (Selection)

Pergi membeli Roti dan Susu di toko:

Pergi ke toko Ambil Roti yang diinginkan Hitung sisa uang:

− Apabila sisa uang >= 5000 beli susu 1 Liter− Apabila sisa uang < 5000 beli susu ½ liter

Bawa barang ke kasir Bayar tagihan Pulang

Slide ke:15

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Algoritma (Repetition)

Memecahkan batu:

Ambil alat pemecah batu (palu) Letakkan batu di tempat yang keras Selama batu belum pecah:

− Pukul batunya Letakkan batu yang sudah pecah di keranjang Selesai

Slide ke:16

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Flow Chart

Salah satu cara untuk menggambarkan algoritma adalah dengan menggunakan Flow Chart (Diagram Alir)

Slide ke:17

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Flow Chart (Notasi)

Awal / Akhir Proses

Alur

Data

Proses

Pemilihan

Connector

Report / Print

Slide ke:18

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Flow Chart

MembeliSusu

Pergi keToko

Ambil SusuYg diinginkan

BayarDi Kasir Pulang

MembeliSusu

Pergi keToko

Ambil SusuYg diinginkan

HitungKembalian

Beli susu1 Liter

Beli susu1/2 Liter

>= 5000

< 5000

BayarDi Kasir

Pulang

SEQUENCE

SELECTION

Slide ke:19

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Flow Chart

Memecahbatu

Ambil paluLetakkan batu

Di tempat keras Pukul Batu SudahPecah ?

Belum

MasukanKe keranjang

Selesai

REPETITION

sudah

Slide ke:20

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Flow Chart (Binary Search)

1 2 3 4 5 6 7 8 9 10

Mencari Angka 7 dalam daftar:Apakah 7 <= 5 ?

6 7 8 9 10

Apakah 7 <= 8 ?

6 7

Apakah 7 <= 6 ?

Bagaimana MembuatFlowchartnya?

Slide ke:21

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Flow Chart (Binary Search)

• Tentukan Langkahnya

– X = yang dicari

– Batas bawah = elemen pertama

– Batas atas = elemen terakhir

– Tengah = (batas atas + batas bawah) / 2

– Jika x < tengah

Batas atas = tengah – 1 Ulangi langkah (d)

– Jika x > tengah

Batas bawah = tengah + 1 Ulangi langkah (d)

– Jika x = tengah : selesai :D

Slide ke:22

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Flow Chart (Binary Search)

startX = Input

(angka yg dicari)

bandingkan

Atas = akhirBawah = awal

Cocokan niaiX dengan

nilai Tengah

Atas = Tengah - 1

Bawah = Tengah + 1

Tengah =(Atas + Bawah) / 2

Selesai

X < Tengah

X > Tengah

X = Tengah

Slide ke:23

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Bubble Sort

• Bubble sort adalah salah satu algoritma yang digunakan untuk mengurutkan data

• Disebut bubble karena elemen yang paling “ringan” akan terus naik ke atas

• Selain bubble sort ada juga metode lain seperti quick sort dan merge sort.

Slide ke:24

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Bubble Sort

1 5 3 4 2

1 5 3 4 2

Mana yg lebih ringan?Tukar angka yg ringan ke kanan

5 1 3 4 2

5 3 1 4 2

5 3 4 1 2

5 3 4 2 1

5 3 4 2 1Tidak berubahKarena 3 lebih ringan dari 5

0 1 2 3 4 index

Bagian yg hijauTidak akan di check Lagi Karena sudah urut

Slide ke:25

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Bubble Sort

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

Slide ke:26

Rabu 9 November 2011NF ComputerSalman El Farisisalman@nurulfikri.com

Algoritma & Programming

Bubble Sort

Bagaimana Membuat Flow Chart nya?

Saya tunggu jawabannya minggu depan :)

Dikumpulkan di:salman@nurulfikri.com

Dengan subjek:[ALGO] Tugas_1_Nama