Bab1 algoritma

26
Slide ke:1 Rabu 9 November 2011 NF Computer Salman El Farisi [email protected] Algoritma & Programming Bab 1: Pengenalan Algoritma

description

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

Transcript of Bab1 algoritma

Page 1: Bab1 algoritma

Slide ke:1

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Bab 1: Pengenalan Algoritma

Page 2: Bab1 algoritma

Slide ke:2

Rabu 9 November 2011NF ComputerSalman El [email protected]

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)

Page 3: Bab1 algoritma

Slide ke:3

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 4: Bab1 algoritma

Slide ke:4

Rabu 9 November 2011NF ComputerSalman El [email protected]

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)

Page 5: Bab1 algoritma

Slide ke:5

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Apa Yang Akan Kita Pelajari?

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

Page 6: Bab1 algoritma

Slide ke:6

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 7: Bab1 algoritma

Slide ke:7

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Algoritma

Algoritma yang umum digunakan

– Pengurutan (Sorting)

– Pencarian (Searching)

– Kompresi (Compression)

Page 8: Bab1 algoritma

Slide ke:8

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 9: Bab1 algoritma

Slide ke:9

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 10: Bab1 algoritma

Slide ke:10

Rabu 9 November 2011NF ComputerSalman El [email protected]

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!”

Page 11: Bab1 algoritma

Slide ke:11

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Algoritma

Struktur Dasar Algoritma:

– Sequence (urutan)

– Selection (pemilihan)

– Repetition (pengulangan)

Page 12: Bab1 algoritma

Slide ke:12

Rabu 9 November 2011NF ComputerSalman El [email protected]

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.

Page 13: Bab1 algoritma

Slide ke:13

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Algoritma (Sequence)

Membeli susu di toko:

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

Page 14: Bab1 algoritma

Slide ke:14

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 15: Bab1 algoritma

Slide ke:15

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 16: Bab1 algoritma

Slide ke:16

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Flow Chart

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

Page 17: Bab1 algoritma

Slide ke:17

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Flow Chart (Notasi)

Awal / Akhir Proses

Alur

Data

Proses

Pemilihan

Connector

Report / Print

Page 18: Bab1 algoritma

Slide ke:18

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 19: Bab1 algoritma

Slide ke:19

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Flow Chart

Memecahbatu

Ambil paluLetakkan batu

Di tempat keras Pukul Batu SudahPecah ?

Belum

MasukanKe keranjang

Selesai

REPETITION

sudah

Page 20: Bab1 algoritma

Slide ke:20

Rabu 9 November 2011NF ComputerSalman El [email protected]

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?

Page 21: Bab1 algoritma

Slide ke:21

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 22: Bab1 algoritma

Slide ke:22

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 23: Bab1 algoritma

Slide ke:23

Rabu 9 November 2011NF ComputerSalman El [email protected]

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.

Page 24: Bab1 algoritma

Slide ke:24

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 25: Bab1 algoritma

Slide ke:25

Rabu 9 November 2011NF ComputerSalman El [email protected]

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

Page 26: Bab1 algoritma

Slide ke:26

Rabu 9 November 2011NF ComputerSalman El [email protected]

Algoritma & Programming

Bubble Sort

Bagaimana Membuat Flow Chart nya?

Saya tunggu jawabannya minggu depan :)

Dikumpulkan di:[email protected]

Dengan subjek:[ALGO] Tugas_1_Nama