Top Banner
Struktur Dasar Algoritma
34

Struktur Dasar Algoritma

Jan 29, 2016

Download

Documents

snowy

Struktur Dasar Algoritma. MASALAH dan SOLUSI. ALGORITMA. SOURCE CODE. MASALAH. HASIL. EXECUTABLE CODE. RUN. ALGORITMA. Algoritma urutan langkah-langkah yang logis utuk memecahkan masalah - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Struktur Dasar Algoritma

Struktur Dasar Algoritma

Page 2: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 2

MASALAH dan SOLUSI

SOURCECODE

ALGORITMA

RUN

EXECUTABLECODE

MASALAH HASIL

Page 3: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 3

Algoritma◦ urutan langkah-langkah yang logis utuk

memecahkan masalah Kata algoritma diambil dari nama seorang

ilmuwan Persia Abu Ja’far Mohammed Ibn Mûsâ al-Khowârizmî ◦ menulis buku berjudul Kitab Al jabr w’al-muqabala

(rules of restoration and reduction, pada sekitar tahun 825).

ALGORITMA

Page 4: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 4

Sequence, runut◦ Langkah kedua dikerjakan setelah

mengerjakan langkap pertama Selection, pemilihan

◦ Jika syarat terpenuhi maka kerjakan proses X◦ Jika syarat tidak terpenuhi maka kerjakan

proses Y Iteration, pengulangan

◦ Proses dikerjakan berulang kali sampai kondisi tidak memenuhi

JENIS PROSES ALGORITMA

Page 5: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 5

NOTASI ALGORITMA (FLOWCHART)

Terminal, mengawali atau mengakhiri rangkaian proses

Input/Output, membaca masukan atau menampilkan keluaran

Process, mengolah

Decision, memeriksa kondisi

Connector, menggabung proses

Page 6: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 6

NOTASI ALGORITMA (FLOWCHART)

Start

A

B

C

D

Stop

Langkah ke-1: Proses A

Langkah ke-2: Proses B

Langkah ke-3: Proses C

Langkah ke-4: Proses D

SEQUENCERUNUT

Page 7: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 7

NOTASI ALGORITMA (FLOWCHART)

Start

A

C

D

Stop

SELECTIONPEMILIHAN

BYa

Ke-1: Proses AKe-2: Proses BKe-3: Proses CKe-4: Proses D

ATAUKe-1: Proses AKe-2: Proses BKe-3: Proses D

Page 8: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 8

NOTASI ALGORITMA (FLOWCHART)

Start

A

C

Stop

SELECTIONPEMILIHAN

BYa

Ke-1: Proses AKe-2: Proses BKe-3: Proses DKe-4: Proses E

Ke-1: Proses AKe-2: Proses BKe-3: Proses CKe-4: Proses E

D

E

Page 9: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 9

NOTASI ALGORITMA (FLOWCHART)

Start

A

C

ITERATIONPENGULANGAN

BYa

Ke-1: Proses AKe-2: Proses BKe-3: Proses CKe-4: Proses BKe-5: Proses C…Ke-n-1: Proses BKe-n: Proses D

Stop

D

Page 10: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 10

NOTASI ALGORITMA (PSEUDOCODE)

Masukan

Keluaran

Pemberian nilai

Pemilihan

input, read, get, key-in input, read, get, key-in

print, write, display print, write, display

if <kondisi benar> <proses>else <proses>endif

if <kondisi benar> <proses>else <proses>endif

if <kondisi benar> <proses>endif

if <kondisi benar> <proses>endif

Page 11: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 11

NOTASI ALGORITMA (PSEUDOCODE)

PENGULANGAN

for <kondisi benar> <proses>endfor

for <kondisi benar> <proses>endfor

repeat <proses>until <kondisi benar>

repeat <proses>until <kondisi benar>

while <kondisi benar> <proses>endwhile

while <kondisi benar> <proses>endwhile

do <kondisi benar> <proses>while <kondisi benar>

do <kondisi benar> <proses>while <kondisi benar>

Page 12: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 12

NOTASI ALGORITMA (KODE MAYA)

Masukan

Keluaran

Pemberian nilai

Pemilihan

isi, baca, masukkan,ketik, baca file

isi, baca, masukkan,ketik, baca file

tulis, cetak, tampil , rekam tulis, cetak, tampil , rekam

jika <kondisi benar> <proses>selain itu <proses>akhir jika

jika <kondisi benar> <proses>selain itu <proses>akhir jika

jika <kondisi benar> <proses>akhir jika

jika <kondisi benar> <proses>akhir jika

ulangi selama <kondisi benar> <proses>akhir pengulangan

ulangi selama <kondisi benar> <proses>akhir pengulangan

ulangi <proses>sampai <kondisi benar>

ulangi <proses>sampai <kondisi benar>

Pengulangan

Page 13: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 13

MENGECAT DINDINGToko Indo April mau mengecat dinding kedua sisi, 12m2 perlu sekaleng cat. Berapa kaleng cat diperlukan?

Keluaran ?Keluaran ?Masukan ?Masukan ?

Panjang dindingTinggi dinding Jumlah kaleng cat

Pj1, Tg1,Pj2, Tg2 Algoritma Kaleng

FlowchartPseudodcodeKode Maya

Page 14: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 14

MENGECAT DINDING12m2 perlu sekaleng cat.

Start

ReadPj1, Tg1,Pj2, Tg2

Klg=Ls / 12

Stop

Ls=Pj1*Tg1 +Pj2*Tg2

PrintKlg

A

A

Page 15: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 15

MENGECAT DINDING

PSEUDOCODE

read panjang1, tinggi1, panjang2, tinggi2luas panjang1 * tinggi1 + panjang2 * tinggi2kaleng luas / 12print kaleng

12m2 perlu sekaleng cat.

Page 16: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 16

MENGECAT DINDING

KODE MAYA

baca panjang1, tinggi1, panjang2, tinggi2luas panjang1 * tinggi1 + panjang2 * tinggi2kaleng luas / 12cetak kaleng

12m2 perlu sekaleng cat.

Page 17: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 17

POTONGAN HARGA SUSUToko Indo April memberi potongan harga susu 20%, maksimum 3 kaleng atau kotak. Berapa uang yang harus dibayar pembeli?

Keluaran ?Keluaran ?Masukan ?Masukan ?

Jumlah yang dibeliHarga sekaleng Uang yang harus dibayar

Jumlah, Harga Algoritma Bayar

FlowchartPseudodcodeKode Maya

Page 18: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 18

POTONGAN HARGA SUSUPotongan 20%, maksimum 3.

Start

ReadHRG,JML

BYR=JML*HRG*0.8

StopJML 3

A

Ya

BYR=3*HRG*0.8 + (JML-3)*HRG

PrintBYR

A

Page 19: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 19

POTONGAN HARGA SUSU

PSEUDOCODE

input harga, jumlahif jumlah <= 3 bayar jumlah * harga * 0.8else bayar (3 * harga * 0.8) + (jumlah – 3) * hargaendifprint bayar

Potongan 20%, maksimum 3.

Page 20: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 20

POTONGAN HARGA SUSUPotongan 20%, maksimum 3.

KODE MAYA

baca harga, jumlahjika jumlah <= 3 bayar jumlah * harga * 0.8selain itu bayar (3 * harga * 0.8) + (jumlah – 3) * hargaakhir jikacetak bayar

Page 21: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 21

1. Finiteness◦ Algoritma harus berakhir, terminate, halt

2. Definiteness◦ Langkah algoritma harus didefinisikan dengan

tepat dan tidak ambiguous3. Input

◦ Algoritma memerlukan masukan untuk diolah4. Output

◦ Algoritma memberi hasil keluaran5. Effectiveness

◦ Langkah algoritma dikerjakan dalam waktu yang wajar

SYARAT ALGORITMA

Page 22: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 22

A. Definisi masalahB. Membuat modelC. Merancang algoritmaD. Menulis programE. Kompilasi programF. Run dan hasilG. Dokumentasi

PEMECAHAN MASALAH

Page 23: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 23

SIKLUS PEMECAHAN MASALAH

DEFINISIMASALAH

DEFINISIMASALAH

MEMBUAT MODEL

MEMBUAT MODEL

RANCANG ALGO

RANCANG ALGO

TULIS PROGRAM

TULIS PROGRAM

COMPILECOMPILE

S.ErrS.Err

RUNRUN

O.ErrO.Err

DOKU-MENTASI

DOKU-MENTASI

Y

Y

Page 24: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 24

SIKLUS PEMECAHAN MASALAH

MASALAH Berapa besarnya biaya untuk memasang keramik pada suatu kamar belajar?

DATA YANG DIPERLUKAN Bentuk ruangan ? Ukuran ruangan ? Ukuran keramik ? Harga keramik ? Upah kerja ?

Persegi panjangpj ruang dan lb ruangpj krmik dan lb krmikharga perbox, keping perboxupah permeter

Page 25: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 25

SIKLUS PEMECAHAN MASALAH

MODEL PERHITUNGAN hitung kebutuhan keramik hitung upah kerja total biaya = biaya krmik + upah kerja

Page 26: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 26

SIKLUS PEMECAHAN MASALAH

get pj_ruang, lb_ruangget pj_krmik, lb_krmikget harga_perbox, keping_perboxget upah_permeterkrmik_sisi_pj pj_ruang \ pj_krmikkrmik_sisi_lb lb_ruang \ lb_krmikjml_krmik krmik_sisi_pj * krmik_sisi_lbrjml_cadang 5% * jml_krmiktotal_krmik jumlah_krmik + jumlah_cadangbiaya_krmik total_krmik \ keping_perbox * harga_perboxbiaya_upah pj_ruang * lb_ruang / upah_permetertotal_biaya biaya_krmik + biaya_upahprint total_biaya

masukan

proses

keluaran

Page 27: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 27

SIKLUS PEMECAHAN MASALAH

# include <stdio.h>void main() { int pj_ruang, lb_ruang, pj_krmik, lb_krmik, keping; float harga, upah, bea_krmik, bea_upah; int sisi_pj, sisi_lb, butuh;

scanf("%d %d", &pj_ruang, &lb_ruang); scanf("%d %d", &pj_krmik, &lb_krmik); scanf("%f %d %f", &harga, &keping, &upah); sisi_pj = ceil(pj_ruang / pj_krmik); sisi_lb = ceil(lb_ruang / lb_krmik); butuh = ceil (sisi_pj * sisi_lb * 1.05); bea_krmik = butuh / keping * harga; bea_upah = pj_ruang * lb_ruang * upah / 10000; printf("bea keramik = %.0f \n", bea_krmik); printf("bea upah = %.0f \n", bea_upah); printf("total bea = %.0f", bea_krmik + bea_upah);}

Page 28: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 28

SIKLUS PEMECAHAN MASALAH# include <stdio.h>

void main() { int pj_ruang, lb_ruang, pj_krmik, lb_krmik, keping; float harga, upah, bea_krmik, bea_upah; int sisi_pj, sisi_lb, butuh;

scanf("%d %d", &pj_ruang, &lb_ruang); scanf("%d %d", &pj_krmik, &lb_krmik); scanf("%f %d %f", &harga, &keping, &upah); sisi_pj = ceil(pj_ruang / pj_krmik); sisi_lb = ceil(lb_ruang / lb_krmik); butuh = ceil (sisi_pj * sisi_lb * 1.05); bea_krmik = butuh / keping * harga; bea_upah = pj_ruang * lb_ruang * upah / 10000; printf("bea keramik = %.0f \n", bea_krmik); printf("bea upah = %.0f \n", bea_upah); printf("total bea = %.0f", bea_krmik + bea_upah);}

Function ‘ceil’ should have a prototype

ERROR

Page 29: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 29

SIKLUS PEMECAHAN MASALAH# include <stdio.h>

# include <math.h>void main() { int pj_ruang, lb_ruang, pj_krmik, lb_krmik, keping; float harga, upah, bea_krmik, bea_upah; int sisi_pj, sisi_lb, butuh;

scanf("%d %d", &pj_ruang, &lb_ruang); scanf("%d %d", &pj_krmik, &lb_krmik); scanf("%f %d %f", &harga, &keping, &upah); sisi_pj = ceil(pj_ruang / pj_krmik); sisi_lb = ceil(lb_ruang / lb_krmik); butuh = ceil (sisi_pj * sisi_lb * 1.05); bea_krmik = butuh / keping * harga; bea_upah = pj_ruang * lb_ruang * upah / 10000; printf("bea keramik = %.0f \n", bea_krmik); printf("bea upah = %.0f \n", bea_upah); printf("total bea = %.0f", bea_krmik + bea_upah);}

Success

tambahkan

Page 30: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 30

SIKLUS PEMECAHAN MASALAH

200 32030 3050000 5 75000bea keramik = 600000bea upah = -11520total bea = 588480

200 32030 3050000 5 75000bea keramik = 600000bea upah = -11520total bea = 588480

Page 31: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 31

SIKLUS PEMECAHAN MASALAH# include <stdio.h>

# include <math.h>void main() { float pj_ruang, lb_ruang, pj_krmik, lb_krmik; float harga, keping, upah; float sisi_pj, sisi_lb, butuh, bea_krmik, bea_upah; scanf("%f %f", &pj_ruang, &lb_ruang); scanf("%f %f", &pj_krmik, &lb_krmik); scanf("%f %f %f", &harga, &keping, &upah); sisi_pj = ceil(pj_ruang / pj_krmik); sisi_lb = ceil(lb_ruang / lb_krmik); butuh = ceil (sisi_pj * sisi_lb * 1.05); bea_krmik = ceil(butuh / keping) * harga; bea_upah = pj_ruang * lb_ruang * upah / 10000; printf("bea keramik = %.0f \n", bea_krmik); printf("bea upah = %.0f \n", bea_upah); printf("total bea = %.0f", bea_krmik + bea_upah);}

Success

Page 32: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 32

SIKLUS PEMECAHAN MASALAH

200 32030 3050000 5 75000bea keramik = 850000bea upah = 480000total bea = 1330000

200 32030 3050000 5 75000bea keramik = 850000bea upah = 480000total bea = 1330000

100 10020 2010000 10 50000bea keramik = 30000bea upah = 50000total bea = 80000

100 10020 2010000 10 50000bea keramik = 30000bea upah = 50000total bea = 80000

Page 33: Struktur Dasar Algoritma

ALGORITMA dan STRUKTUR DATA: Bahasa CPendahuluan 33

SIKLUS PEMECAHAN MASALAH

OOOOOOOOOOOOOOOOOOOO

// menghitung biaya pemasangan keramik# include <stdio.h># include <math.h>void main() { float pj_ruang, lb_ruang, pj_krmik, lb_krmik; float harga, keping, upah; float sisi_pj, sisi_lb, butuh, bea_krmik, bea_upah; scanf("%f %f", &pj_ruang, &lb_ruang); scanf("%f %f", &pj_krmik, &lb_krmik); scanf("%f %f %f", &harga, &keping, &upah); sisi_pj = ceil(pj_ruang / pj_krmik); sisi_lb = ceil(lb_ruang / lb_krmik); butuh = ceil (sisi_pj * sisi_lb * 1.05); bea_krmik = ceil(butuh / keping) * harga; bea_upah = pj_ruang * lb_ruang * upah / 10000; printf("bea keramik = %.0f \n", bea_krmik); printf("bea upah = %.0f \n", bea_upah); printf("total bea = %.0f", bea_krmik + bea_upah);}

OOOOOOOOOOOOOOOOOOOO

Page 34: Struktur Dasar Algoritma

Pendahuluan 34

Terima kasih