Struktur Dasar Algoritma MASALAH dan SOLUSI ALGORITMA SOURCE
- Slides: 34
Struktur Dasar Algoritma
MASALAH dan SOLUSI ALGORITMA SOURCE CODE MASALAH HASIL EXECUTABLE CODE RUN ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 1
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 2
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 3
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 4
NOTASI ALGORITMA (FLOWCHART) Start SEQUENCE RUNUT A Langkah ke-1: Proses A B Langkah ke-2: Proses B C Langkah ke-3: Proses C D Langkah ke-4: Proses D Stop ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 5
NOTASI ALGORITMA (FLOWCHART) Start SELECTION PEMILIHAN A B ATAU Ke-1: Proses A Ke-2: Proses B Ke-3: Proses D Ya C D Stop ALGORITMA dan STRUKTUR DATA: Bahasa C Ke-1: Ke-2: Ke-3: Ke-4: Pendahuluan Proses A B C D 6
NOTASI ALGORITMA (FLOWCHART) Start SELECTION PEMILIHAN A B C D Ke-1: Ke-2: Ke-3: Ke-4: Proses A B D E Ya E Stop ALGORITMA dan STRUKTUR DATA: Bahasa C Ke-1: Ke-2: Ke-3: Ke-4: Pendahuluan Proses A B C E 7
NOTASI ALGORITMA (FLOWCHART) Start ITERATION PENGULANGAN A Ke-1: Proses A Ke-2: Proses B Ke-3: Proses C Ke-4: Proses B Ke-5: Proses C … Ke-n-1: Proses B Ke-n: Proses D C B Ya D Stop ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 8
NOTASI ALGORITMA (PSEUDOCODE) Masukan input, read, get, key-in Keluaran print, write, display Pemberian nilai Pemilihan if <kondisi benar> <proses> else <proses> endif if <kondisi benar> <proses> endif ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 9
NOTASI ALGORITMA (PSEUDOCODE) P E N G U L A N G A N for <kondisi benar> <proses> endfor while <kondisi benar> <proses> endwhile do <kondisi benar> <proses> while <kondisi benar> repeat <proses> until <kondisi benar> ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 10
NOTASI ALGORITMA (KODE MAYA) Masukan isi, baca, masukkan, ketik, baca file Keluaran tulis, cetak, tampil , rekam Pemberian nilai Pemilihan jika <kondisi benar> <proses> selain itu <proses> akhir jika <kondisi benar> <proses> akhir jika ALGORITMA dan STRUKTUR DATA: Bahasa C Pengulangan ulangi selama <kondisi benar> <proses> akhir pengulangan ulangi <proses> sampai <kondisi benar> Pendahuluan 11
MENGECAT DINDING Toko Indo April mau mengecat dinding kedua sisi, 12 m 2 perlu sekaleng cat. Berapa kaleng cat diperlukan? Masukan ? Keluaran ? Panjang dinding Tinggi dinding Jumlah kaleng cat Pj 1, Tg 1, Pj 2, Tg 2 Algoritma Kaleng Flowchart Pseudodcode Kode Maya ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 12
MENGECAT DINDING 12 m 2 perlu sekaleng cat. Start A Read Pj 1, Tg 1, Pj 2, Tg 2 Klg= Ls / 12 Ls= Pj 1*Tg 1 + Pj 2*Tg 2 Print Klg A ALGORITMA dan STRUKTUR DATA: Bahasa C Stop Pendahuluan 13
MENGECAT DINDING 12 m 2 perlu sekaleng cat. PSEUDOCODE read panjang 1, tinggi 1, panjang 2, tinggi 2 luas panjang 1 * tinggi 1 + panjang 2 * tinggi 2 kaleng luas / 12 print kaleng ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 14
MENGECAT DINDING 12 m 2 perlu sekaleng cat. KODE MAYA baca panjang 1, tinggi 1, panjang 2, tinggi 2 luas panjang 1 * tinggi 1 + panjang 2 * tinggi 2 kaleng luas / 12 cetak kaleng ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 15
POTONGAN HARGA SUSU Toko Indo April memberi potongan harga susu 20%, maksimum 3 kaleng atau kotak. Berapa uang yang harus dibayar pembeli? Masukan ? Keluaran ? Jumlah yang dibeli Harga sekaleng Uang yang harus dibayar Jumlah, Harga Algoritma Bayar Flowchart Pseudodcode Kode Maya ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 16
POTONGAN HARGA SUSU Potongan 20%, maksimum 3. Start A Read HRG, JML Print BYR JML 3 BYR= 3*HRG*0. 8 + (JML-3)*HRG Stop Ya BYR= JML*HRG*0. 8 A ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 17
POTONGAN HARGA SUSU Potongan 20%, maksimum 3. PSEUDOCODE input harga, jumlah if jumlah <= 3 bayar jumlah * harga * 0. 8 else bayar (3 * harga * 0. 8) + (jumlah – 3) * harga endif print bayar ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 18
POTONGAN HARGA SUSU Potongan 20%, maksimum 3. KODE MAYA baca harga, jumlah jika jumlah <= 3 bayar jumlah * harga * 0. 8 selain itu bayar (3 * harga * 0. 8) + (jumlah – 3) * harga akhir jika cetak bayar ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 19
SYARAT ALGORITMA 1. Finiteness ◦ Algoritma harus berakhir, terminate, halt ◦ Langkah algoritma harus didefinisikan dengan tepat dan tidak ambiguous 2. Definiteness 3. Input ◦ Algoritma memerlukan masukan untuk diolah ◦ Algoritma memberi hasil keluaran ◦ Langkah algoritma dikerjakan dalam waktu yang wajar 4. Output 5. Effectiveness ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 20
PEMECAHAN MASALAH A. B. C. D. E. F. G. Definisi masalah Membuat model Merancang algoritma Menulis program Kompilasi program Run dan hasil Dokumentasi ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 21
SIKLUS PEMECAHAN MASALAH DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGO TULIS PROGRAM COMPILE Y S. Err RUN Y ALGORITMA dan STRUKTUR DATA: Bahasa C O. Err DOKUMENTASI Pendahuluan 22
SIKLUS PEMECAHAN MASALAH Berapa besarnya biaya untuk memasang keramik pada suatu kamar belajar? DATA YANG DIPERLUKAN Persegi panjang Bentuk ruangan ? pj ruang dan lb ruang Ukuran ruangan ? pj krmik dan lb krmik Ukuran keramik ? harga perbox, keping perbox Harga keramik ? upah permeter Upah kerja ? ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 23
SIKLUS PEMECAHAN MASALAH MODEL PERHITUNGAN hitung kebutuhan keramik hitung upah kerja total biaya = biaya krmik + upah kerja ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 24
SIKLUS PEMECAHAN MASALAH get pj_ruang, lb_ruang masukan get pj_krmik, lb_krmik get harga_perbox, keping_perbox get upah_permeter krmik_sisi_pj pj_ruang pj_krmik proses 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 keluaran ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 25
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 = %. 0 f n", bea_krmik); printf("bea upah = %. 0 f n", bea_upah); printf("total bea = %. 0 f", bea_krmik + bea_upah); } ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 26
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); ERROR 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 = %. 0 f n", bea_krmik); printf("bea upah = %. 0 f n", bea_upah); printf("total bea = %. 0 f", bea_krmik + bea_upah); } Function ‘ceil’ should have a prototype ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 27
SIKLUS PEMECAHAN MASALAH # include <stdio. h> # include <math. h> tambahkan 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 = %. 0 f n", bea_krmik); printf("bea upah = %. 0 f n", bea_upah); printf("total bea = %. 0 f", bea_krmik + bea_upah); } Success ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 28
SIKLUS PEMECAHAN MASALAH 200 320 30 30 50000 5 75000 bea keramik = 600000 bea upah = -11520 total bea = 588480 ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 29
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 = %. 0 f n", bea_krmik); printf("bea upah = %. 0 f n", bea_upah); printf("total bea = %. 0 f", bea_krmik + bea_upah); } Success ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 30
SIKLUS PEMECAHAN MASALAH 200 320 30 30 50000 5 75000 bea keramik = 850000 bea upah = 480000 total bea = 1330000 100 20 20 10000 10 50000 bea keramik = 30000 bea upah = 50000 total bea = 80000 ALGORITMA dan STRUKTUR DATA: Bahasa C Pendahuluan 31
SIKLUS PEMECAHAN MASALAH O O O O 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 = %. 0 f n", bea_krmik); printf("bea upah = %. 0 f n", bea_upah); printf("total bea = %. 0 f", bea_krmik + bea_upah); } ALGORITMA dan STRUKTUR DATA: Bahasa C O O O O O Pendahuluan 32
Terima kasih Pendahuluan 33
- Matrik usg
- Pengertian root cause analysis
- Merumuskan solusi masalah
- Merumuskan solusi masalah
- Metode pearl adalah
- Contoh struktur pengulangan
- Struktur dasar
- 3 konsep dasar algoritma
- Penyajian algoritma dengan pseudocode
- Struktur sequence
- 3 struktur dasar algoritma
- Algoritma untuk mengirim surat
- Ketidakpastian teori ralat
- Etika relasi karyawan dan perlakuan adil di tempat kerja
- Konsep dasar unit pemrosesan dan dasar datapath
- Antarmuka memori utama
- Pernyataan masalah adalah
- Masalah-masalah khusus dalam penyusunan laporan arus kas
- Laporan arus kas
- Perangkat keras input device
- Solusi it bisnis
- Contoh soal dan penyelesaian metode iterasi gauss -seidel
- Syukur sebagai solusi hidup
- Ruang solusi diorganisasikan ke dalam
- Solusi umum dari persamaan diferensial
- Solusi optimum adalah
- Substitusi balik
- Contoh soal persamaan non linear
- Solusi persamaan nirlanjar
- Solusi sistem persamaan linear
- Solusi covid
- Data struktur dan algoritma
- Struktur fisik puisi terdiri dari
- Konsep dasar timbulnya masalah gizi
- Urutan penyelesaian masalah adalah algoritma