MASALAH dan SOLUSI ALGORITMA SOURCE CODE MASALAH HASIL EXECUTABLE CODE RUN Pendahuluan
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). Pendahuluan
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 Pendahuluan
NOTASI ALGORITMA (FLOWCHART) Terminal, mengawali atau mengakhiri rangkaian proses Input/Output, membaca masukan atau menampilkan keluaran Process, mengolah Decision, memeriksa kondisi Connector, menggabung proses Pendahuluan
NOTASI ALGORITMA (FLOWCHART) Start A Langkah ke-1: Proses A B Langkah ke-2: Proses B SEQUENCE RUNUT C Langkah ke-3: Proses C D Langkah ke-4: Proses D Stop Pendahuluan
MENGECAT DINDING Toko Indo April mau mengecat dinding kedua sisi, 12m2 perlu sekaleng cat. Berapa kaleng cat diperlukan? Masukan ? Keluaran ? Panjang dinding Tinggi dinding Jumlah kaleng cat Pj1, Tg1, Pj2, Tg2 Algoritma Kaleng Flowchart Pseudodcode Kode Maya Pendahuluan
MENGECAT DINDING 12m2 perlu sekaleng cat. Start A Read Pj1, Tg1, Klg= Ls / 12 Ls= Pj1*Tg1 + Pj2*Tg2 Print Klg Stop A Pendahuluan
MENGECAT DINDING 12m2 perlu sekaleng cat. PSEUDOCODE read panjang1, tinggi1, panjang2, tinggi2 luas panjang1 * tinggi1 + panjang2 * tinggi2 kaleng luas / 12 print kaleng Pendahuluan
MENGECAT DINDING 12m2 perlu sekaleng cat. KODE MAYA baca panjang1, tinggi1, panjang2, tinggi2 luas panjang1 * tinggi1 + panjang2 * tinggi2 kaleng luas / 12 cetak kaleng Pendahuluan
SYARAT ALGORITMA Finiteness Definiteness Input Output Effectiveness Algoritma harus berakhir, terminate, halt Definiteness Langkah algoritma harus didefinisikan dengan tepat dan tidak ambiguous Input Algoritma memerlukan masukan untuk diolah Output Algoritma memberi hasil keluaran Effectiveness Langkah algoritma dikerjakan dalam waktu yang wajar Pendahuluan
PEMECAHAN MASALAH Definisi masalah Membuat model Merancang algoritma Menulis program Kompilasi program Run dan hasil Dokumentasi Pendahuluan
SIKLUS PEMECAHAN MASALAH DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGO TULIS PROGRAM COMPILE Y S.Err RUN Y O.Err DOKU- MENTASI Pendahuluan
SIKLUS PEMECAHAN 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 panjang pj ruang dan lb ruang pj krmik dan lb krmik harga perbox, keping perbox upah permeter Pendahuluan
SIKLUS PEMECAHAN MASALAH MODEL PERHITUNGAN hitung kebutuhan keramik hitung upah kerja total biaya = biaya krmik + upah kerja Pendahuluan
SIKLUS PEMECAHAN MASALAH get pj_ruang, lb_ruang get pj_krmik, lb_krmik get harga_perbox, keping_perbox get upah_permeter krmik_sisi_pj pj_ruang \ pj_krmik krmik_sisi_lb lb_ruang \ lb_krmik jml_krmik krmik_sisi_pj * krmik_sisi_lbr jml_cadang 5% * jml_krmik total_krmik jumlah_krmik + jumlah_cadang biaya_krmik total_krmik \ keping_perbox * harga_perbox biaya_upah pj_ruang * lb_ruang / upah_permeter total_biaya biaya_krmik + biaya_upah print total_biaya masukan proses keluaran Pendahuluan
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); } Pendahuluan
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); } ERROR Function ‘ceil’ should have a prototype Pendahuluan
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); } tambahkan Success Pendahuluan
SIKLUS PEMECAHAN MASALAH 200 320 30 30 50000 5 75000 bea keramik = 600000 bea upah = -11520 total bea = 588480 Pendahuluan
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 Pendahuluan
SIKLUS PEMECAHAN MASALAH 200 320 30 30 50000 5 75000 bea keramik = 850000 bea upah = 480000 total bea = 1330000 100 100 20 20 10000 10 50000 bea keramik = 30000 bea upah = 50000 total bea = 80000 Pendahuluan
SIKLUS PEMECAHAN MASALAH O // 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); } Pendahuluan