masalah dan solusi

24
ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 1 SOURCE CODE ALGORITMA MASALAH dan SOLUSI RUN EXECUTABLE CODE MASALAH HASIL

Upload: jarah

Post on 30-Jan-2016

85 views

Category:

Documents


0 download

DESCRIPTION

MASALAH dan SOLUSI. ALGORITMA. SOURCE CODE. MASALAH. HASIL. EXECUTABLE CODE. RUN. ALGORITMA. 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î - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 1

SOURCECODE

ALGORITMA

MASALAH dan SOLUSI

RUN

EXECUTABLECODE

MASALAH HASIL

Page 2: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 2

ALGORITMA

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).

Page 3: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 3

JENIS PROSES ALGORITMA

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

Page 4: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 4

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 5: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 5

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 6: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 6

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 7: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 7

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 8: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 8

POTONGAN HARGA SUSU

Toko 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 9: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 9

Potongan 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

POTONGAN HARGA SUSU

Page 10: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 10

PSEUDOCODE

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

Potongan 20%, maksimum 3.

POTONGAN HARGA SUSU

Page 11: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 11

Potongan 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

POTONGAN HARGA SUSU

Page 12: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 12

SYARAT ALGORITMA

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

Page 13: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 13

PEMECAHAN MASALAH

A. Definisi masalah

B. Membuat model

C. Merancang algoritma

D. Menulis program

E. Kompilasi program

F. Run dan hasil

G. Dokumentasi

Page 14: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 14

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 15: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 15

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 16: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 16

SIKLUS PEMECAHAN MASALAH

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

Page 17: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 17

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 18: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 18

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 19: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 19

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 20: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 20

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 21: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 21

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 22: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 22

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 23: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 23

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 24: MASALAH dan SOLUSI

ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 24

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