34
Struktur Dasar Algoritma

Struktur Dasar Algoritma

  • Upload
    snowy

  • View
    72

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Citation preview

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