struktur dasar algoritma
Post on 29-Jan-2016
74 Views
Preview:
DESCRIPTION
TRANSCRIPT
Struktur Dasar Algoritma
ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 2
MASALAH dan SOLUSI
SOURCECODE
ALGORITMA
RUN
EXECUTABLECODE
MASALAH HASIL
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
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
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
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
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
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
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
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
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>
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
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
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
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.
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.
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
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
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.
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
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
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
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
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
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
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
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);}
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
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
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
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
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
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
Pendahuluan 34
Terima kasih
top related