Upload
jarah
View
85
Download
0
Embed Size (px)
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
Citation preview
ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 1
SOURCECODE
ALGORITMA
MASALAH dan SOLUSI
RUN
EXECUTABLECODE
MASALAH HASIL
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).
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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);}
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
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
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
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
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
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