1 / 30

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.

tansy
Télécharger la présentation

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 Interpreter

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

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

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

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

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

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

  16. Tipe data

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

  18. 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;

  19. Formatuntuk output dan input

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

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

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

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

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

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

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

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

  28. total=2*berat* (((p-2)/0.5)+1) * (((l-2)/0.5)+1)

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

More Related