300 likes | 484 Vues
Algoritme dan Pemrograman. Kuliah #3 Implementasi algoritme Struktur program C Elemen program. *. Review: Bagaimana memecahkan masalah dengan komputer ?????. *. *. *. Masalah. Logika Pemrograman (algoritme). Logika Berpikir.
E N D
AlgoritmedanPemrograman Kuliah #3 Implementasialgoritme Struktur program C Elemen program
* Review: Bagaimanamemecahkanmasalahdengankomputer????? * * * Masalah Logika Pemrograman (algoritme) Logika Berpikir ImplementasiAlgortimedenganBahasaPemrograman (program) solusi
Review:Algoritme dan Program • Program Komputer: • Instruksiterstruktur yang disusundandiberikankepadakomputeruntukdilaksanakandenganmenggunakanbahasapemrogramantertentu, misalnya C, Pascal, Basic, dsb. • Implementasidarialgoritmeyang telahdisusunsebelumnya.
Bahasa Pemrograman • Bahasapemrogramanadalahnotasi yang digunakanuntukmenulis program (komputer) denganaturantertentu. • Bahasainidibagimenjaditigatingkatanyaitu • bahasamesin, • bahasatingkatrendahdan • bahasatingkattinggi.
Bahasa mesin(machine language) • Bahasamesinberupamicro-instructionatauhardwire • Programnyasangatpanjangdansulitdipahami • Sangattergantungpadaarsitekturmesin • Prosesnyasangatcepatdantidakperluinterpreterataupenterjemah
Bahasa tingkat rendah(low level language) • Bahasatingkatrendahberupamacroinstruction (assembly) sehinggaseringdisebutsebagaibahasarakitan(assembly language) • Bahasatingkatrendahtergantungpadaarsitekturmesin • Programnyapanjangdansulitdipahamiwalaupunprosesnyacepat • Jenisbahasatingkatiniperlupenterjemahberupaassembler
Bahasa tingkat tinggi(high level language) • Bahasatingkattinggilebihmenyerupaibahasamanusiasehinggamudahdipahami • Tidaktergantungpadaarsitekturmesintetapimemerlukanpenterjemahberupacompileratauinterpreter • Terdiridaribanyak model • Contoh: C, Java, Pascal, dsb
Compiler dan Interpreter • Bahasa program dianalisisdanselanjutnyaditerjemahkankedalambentuk yang dapatdipahamimesin. • Prosespenterjemahan: • Dijalankanolehkomputer (compiler) – real machine compiling • Dijalankanolehinterpreter – software yang mensimulasikan virtual machine danmenjalankandalam real machine interpreting
Compiler Interpreter
Bahasa C • Bahasa C disusunberdasarkanduabahasaterdahulu, yaitu BCPL dan B. • BCPL dikembangkantahun 1967 oleh Martin Richards. • Ken Thompson memodelkanbeberapafiturdidalambahasa B bersamarekan-rekannya yang menggunakanbahasa BCPL untukmembuatsistemoperasi UNIX yang pertamadi Bell Laboratories padatahun 1970 denganmenggunakankomputer DEC PDP-7. • Bahasa C dikembangkanlebihlanjutdaribahasa B oleh Dennis Ritchidi Bell Laboratories danpertama kali diimplementasikandalamkomputer DEC PDP-11 padatahun 1972 yang menggunakansistemoperasi UNIX. • C pertama kali dipublikasikan oleh Kernighan dan Ritchi pada tahun 1978
Tahapan pemrosesan program C • Edit (menulis program dikomputer) -- coding, danhasilnyadisebut source code Text editor: NotePad, vi, … Turbo C, Borland C, Bloodshed Dev-C++ • Preprocess atau Compile object module (obj) • Link executable file (exe) Compiler: Turbo C, Borland C, gcc, … • Load • Execute -- running program Command prompt
Struktur program C(contoh 1) Program menuliskanteks “HELLO” kelayar. /* Program hello.c */ #include <stdio.h> main() { printf("HELLO\n"); // print return 0; } • Komentar • Tidakdiprosesoleh compiler • Untukmemperjelas • Compound statement • Terdiriataslebihdarisatu statement • Diapitolehkurungkurawal { } • Preprocessor directives • Menyertakan file stdio.h yang berisiinformasi yang diperlukanolehfungsi-fungsi yang akandigunakandalam program • File stdio.hdisebut header file • Tergantungkebutuhan • Fungsiutama (main routine) • Setiap program C harusmengandungfungsi main • Pernyataan pertama yang dieksekusi oleh program C • Fungsimenuliskanke standard output • Disebut statement • Tiap statement harusdiakhirititikkoma (;) • Akhirdarifungsi main • Menunjukkan program berakhirdenganbenar
Struktur program C(contoh 2) Program menjumlahkanduabilanganbulat. /* Program jumlah */ #include <stdio.h> main() { int a, b, jumlah; scanf("%d %d", &a, &b); jumlah=a+b; printf("%d\n", jumlah); // print return 0; } • Deklarasivariabel • Tiapvariabel yang digunakanharusdideklarasikan • Tergantungpadatipe data, dalamhalinibil.bulat (int) • Fungsi membaca data • Dua jenis argumen, yaitu format dan variabel • Format menunjukkan tipe data yang dibaca, dalam hal ini adalah dua nilai desimal bulat (%d %d). • Variabel yang menerima nilai data, diawali dengan tanda & • Pernyataanpenugasan • Memberikannilaia+b (sebelahkanantanda =) kevariabeljumlah (sebelahkiritanda =) • Fungsimenulis output • Adaduaargumen: format danvariabel (atauekspresi) • Miripfungsiscanf, tetapiargumenkeduaadalahekspresi
Data • Setiap program umumnyamempunyai data, dansetiap data memilikitipetertentu. • Suatunilai data didalam program dituliskandalambentukliteral constant (literal: hanyaberupanilai, constant: tidakberubah). • Setiap literal mempunyaitipe, misalnya: 3 bertipeinteger, 4.15 bertipefloating point. • Nilailiteralbersifatnonaddressable, yaitutidakmemilikialamatdalammemorikomputer.
Literal Constant • Literal integer constant – bilanganbulat • Desimal : 24, 103, -5, … • Oktal : 024, 0103, … • Heksadesimal : 0X24, 0X103, … • Literal floating point constant – bilanganriil • Desimal floating point : 3.14, -90.254, … • Eksponensial : 1.0E-3 • Literal character constant – kode ASCII • Printable character : '', 'a', '4', '0', '*', … • Escape sequence : '\n', '\t', '\r', '\0', '\a', '\\', '\"' • Literal string constant – beberapa character • Contoh : "ipb", "", "5", "a", "HELLO\n",…
Variabel • Literal constant disimpankedalamsuatuvariabel, agar dapatdiaksesdidalam program. • Variabelmerupakansuatuidentifier, suatuidentitas yang dibuatsendiridenganaturan: • Terdiriatassatuataulebihkarakter • Dimulaidenganhuruf, dandapatdiikutioleh alphanumeric atau underscore (_) • Dapatdimulaidengan underscore, tetapiumumnyadigunakanoleh library C • Contohpenamaan identifier: • Benar : n, x1, jumNegatif, … • Salah : 1x, jumlahbilangan, …
Deklarasi Variabel • Setiapvariabel yang digunakandalam program C harusdideklarasikandenganmenentukantipevariabel yang bersangkutan. • Tipevariabelmenunjukkantipe data yang disimpan. • Format: keyword v1, v2, ..., vn; • Contoh: intjumlah; int n, tahun; double rataan, tinggiBadan;
Menuliskan output :: printf • Format: printf(ekspresi); printf("format", ekspresi); • Contoh (apaoutputnya?): int a=5, b=10, c=15; float x=12.56; printf("Output Program\n"); printf("%d-%d=%d\n", b, a, b-a); printf("Nilai x adalah %.2f\n", x); printf("a=%d\nb=%d\nc=%d", a, b, c);
Membaca input :: scanf • Format: scanf("format", &variabel); • Contoh(bagaimanacontoh data yang dibaca?): int a, b; float x; scanf("%d", &a); scanf("%d%d%f", &a, &b, &x);
Latihan 1 #include <stdio.h> main() { int a, b, c; scanf("%d %d", &a, &b); c = a; a = b; b = c; printf("%d %d\n", a, b); return 0; } Jikadiberi input 35 200, apa output program tersebut? Apasebenarnya yang dilakukan program tersebut?
Latihan 2 ::Menghitung luas segitiga • MasalahProgram menuliskannilailuassegitiga yang memiliki alas dantinggitertentu, dengan format dua digit dibelakangkoma. • PerumusanmasalahInput program adalahduanilai floating point, yaitu alas dantinggi. Misalkan alas=a, dantinggi=t, makadapatdihitungluas=0.5 a t
Latihan 2 ::Menghitung luas segitiga • Algoritme procedure luasSegitiga { read a, t luas = 0.5*a*t print luas }
Latihan 2 ::Menghitung luas segitiga • Program C /* Program luassegitiga */ #include <stdio.h> main() { float a, t, luas; scanf("%f %f", &a, &t); luas = 0.5*a*t; printf("%.2f\n", luas); return 0; }
Latihan 3 ::Menghitung berat benih jagung Pak Jalalmemilikikebunberbentuksegiempatdenganpanjangdanlebardalamsatuan meter danselaluberupabilanganbulat. Kebunakanditanamijagungdenganjaraktanammasing-masing 0.5 meter membentuksegiempat. Jagungselaluditanam 1 meter daribataspinggirkebun, tidakpernahditanamdibataspinggirnya. Di setiaplubangtanam, selaludimasukkanduabijibenihjagung. Setiapbenihmemilikiberat yang sama, yaitu 0.15 gram. Bantulah Pak Jalalmenghitungberapaberatbenihjagung yang dibutuhkan, denganmembuat program C. Beratdituliskandalamsatuan gram dengandua digit dibelakangkoma. Contoh, jika panjang=4m, dan lebar=3m, maka dibutuhkan benih jagung seberat 4.50 gram (15 x 2 x 0.15) 4m 3m
AnalisisMasalah 4m 3m Panjang yang digunakan: p–2 = 4-2 = 2 Lebar yang digunakan: l-2 = 3-2=1 Tempatbiji yang ditanam : p (2 : 0.5) + 1 = 5 l (1 : 0.5) + 1 = 3 Banyaknyalubangtanam: 5 * 3 = 15 Berat total biji = 15 * 2 * 0.15 = 4.50
int p, l; • float berat=0.15, total; • //inputkan p dan l scanf • total=2*berat* (((p-2)/0.5)+1) * (((l-2)/0.5)+1) • //print total