1 / 28

Algoritme dan Pemrograman

Algoritme dan Pemrograman. Kuliah #3 Implementasi algoritme Struktur program C Elemen program. *. Review: Bagaimana memecahkan masalah dengan komputer ?????. *. *. *. Masalah. Logika Pemrograman (algoritme). Logika Berpikir.

deron
Download Presentation

Algoritme dan Pemrograman

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AlgoritmedanPemrograman Kuliah #3 Implementasialgoritme Struktur program C Elemen program

  2. * Review: Bagaimanamemecahkanmasalahdengankomputer????? * * * Masalah Logika Pemrograman (algoritme) Logika Berpikir ImplementasiAlgortimedenganBahasaPemrograman (program) solusi

  3. Review:Algoritme dan Program • Program Komputer: • Instruksiterstruktur yang disusundandiberikankepadakomputeruntukdilaksanakandenganmenggunakanbahasapemrogramantertentu, misalnya C, Pascal, Basic, dsb. • Implementasidarialgoritmeyang telahdisusunsebelumnya.

  4. Bahasa Pemrograman • Bahasapemrogramanadalahnotasi yang digunakanuntukmenulis program (komputer) denganaturantertentu. • Bahasainidibagimenjaditigatingkatanyaitu • bahasamesin, • bahasatingkatrendahdan • bahasatingkattinggi.

  5. Bahasa mesin(machine language) • Bahasamesinberupamicro-instructionatauhardwire • Programnyasangatpanjangdansulitdipahami • Sangattergantungpadaarsitekturmesin • Prosesnyasangatcepatdantidakperluinterpreterataupenterjemah

  6. Bahasa tingkat rendah(low level language) • Bahasatingkatrendahberupamacroinstruction (assembly) sehinggaseringdisebutsebagaibahasarakitan(assembly language) • Bahasatingkatrendahtergantungpadaarsitekturmesin • Programnyapanjangdansulitdipahamiwalaupunprosesnyacepat • Jenisbahasatingkatiniperlupenterjemahberupaassembler

  7. Bahasa tingkat tinggi(high level language) • Bahasatingkattinggilebihmenyerupaibahasamanusiasehinggamudahdipahami • Tidaktergantungpadaarsitekturmesintetapimemerlukanpenterjemahberupacompileratauinterpreter • Terdiridaribanyak model • Contoh: C, Java, Pascal, dsb

  8. Compiler dan Interpreter • Bahasa program dianalisisdanselanjutnyaditerjemahkankedalambentuk yang dapatdipahamimesin. • Prosespenterjemahan: • Dijalankanolehkomputer (compiler) – real machine compiling • Dijalankanolehinterpreter – software yang mensimulasikan virtual machine danmenjalankandalam real machine  interpreting

  9. Compiler Lexical analyzer Syntactic analyzer Type checker Code optimizer Code generator Machine code Source program (*.c) Computer (*.exe) Input Output

  10. Interpreter Abstract syntax Lexical analyzer Syntactic analyzer Type checker Interpreter Source program Input Computer Output

  11. 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

  12. 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

  13. Struktur program C(contoh 1) Program menuliskan teks “HELLO” ke layar. /* 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

  14. 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) • Fungsimembaca data • Duajenisargumen, yaitu format danvariabel • Format menunjukkantipe data yang dibaca, dalamhaliniadalahduanilaidesimalbulat (%d %d). • Variabel yang menerimanilai data, diawalidengantanda & • Pernyataanpenugasan • Memberikannilaia+b (sebelahkanantanda =) kevariabeljumlah (sebelahkiritanda =) • Fungsimenulis output • Adaduaargumen: format danvariabel (atauekspresi) • Miripfungsiscanf, tetapiargumenkeduaadalahekspresi

  15. 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.

  16. 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",…

  17. Tipe data

  18. 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, …

  19. Deklarasi Variabel • Setiapvariabel yang digunakandalam program C harusdideklarasikandenganmenentukantipevariabel yang bersangkutan. • Tipevariabelmenunjukkantipe data yang yangdisimpan. • Format: keyword v1, v2, ..., vn; • Contoh: intjumlah; int n, tahun; double rataan, tinggiBadan;

  20. Formatuntuk output dan input

  21. 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);

  22. Membaca input :: scanf • Format: scanf("format", &variabel); • Contoh (bagaimana contoh data yang dibaca?): int a, b; float x; scanf("%d", &a); scanf("%d%d%f", &a, &b, &x);

  23. 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?

  24. Latihan 2 ::Menghitung luas segitiga • MasalahProgram menuliskan nilai luas segitiga yang memiliki panjang alas dan tinggi tertentu, dengan format dua digit di belakang koma. • Perumusan masalahInput program adalah dua nilai floating point, yaitu panjang alas dan tinggi. Misalkan panjang alas=a, dan tinggi=t, maka dapat dihitung luas=0.5 a t

  25. Latihan 2 ::Menghitung luas segitiga • Algoritme procedure luasSegitiga { read a, t luas = 0.5*a*t print luas }

  26. 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; }

  27. 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

  28. AnalisisMasalah 4m 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 3m

More Related