1 / 98

Algoritma dan pemrograman E. Rizal

Algoritma dan pemrograman E. Rizal. Semester Gasal 2012/2013. Telp : 021 – 8656789 HP : 08128513048 E-mail : rrizal65@yahoo.com rizal65@uhamka.ac.id Blog : rizal65.blog.uhamka.ac.id Website : www.uhamka.ac.id. ABSEN : 10 % TUGAS : 15% UTS : 25 %

hisoki
Download Presentation

Algoritma dan pemrograman E. Rizal

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. Algoritmadanpemrograman E. Rizal Semester Gasal 2012/2013

  2. Telp : 021 – 8656789 • HP : 08128513048 • E-mail : rrizal65@yahoo.com • rizal65@uhamka.ac.id • Blog : rizal65.blog.uhamka.ac.id • Website : www.uhamka.ac.id

  3. ABSEN : 10 % TUGAS : 15% UTS : 25 % UAS : 50% KOMPONEN PENILAIAN

  4. RencanaPertemuan • RencanaPertemuan (tatapmuka) : 16 x • Termasuk UTS dan UAS • Syarat minimal Mata KuliahbisaDiujikan : 75% X rencanapertemuan. • Syarat minimal Mahasiswabisamengikuti UJIAN AKHIR SEMESTER : 75 % dariTatapMukaygdilakukan dg Dosen.

  5. AturanPerkuliahan • Toleransiketerlambatanmaks. 15 menit • Berbusanasopan, rapi, dantidakmemakai sandal. • Jujur, dilarangkerastitipAbsen ( bagiygberhalanganhadir : Adasuratketerangansakit, dll. Dan izin via smsmaks. 2 x)

  6. Referensi : • RinaldiMunir, AlgoritmadanPemrogramandalambahasa Pascal dan C, PenerbitInformatika Bandung • P. InsapSantosa, Ir ., M.Sc., Dasardasar Pascal, Teoridan Program Terapan • Budi Raharjo, TeknikPemrograman Pascal, PenerbitInformatika Bandung. • Donald Knuth, The art Computer Programming, Vol.1 / fundamental Algorithms. 2nd edition, Addison Wesleyl • Referensidari internet

  7. beberapalangkahumumdalampembuatansuatuprogramyaitu • Mendefinisikanmasalah • mendefinisikanpermasalahan. langkahiniharusdilakukanuntukmenentukanmasalah yang adasertaditentukan pula inputdan output program • Mencarisolusinya • Bilauntukmendapatkansolusiharusmelaluilangkah yang terlalurumitdapatdilakukanpembagianmasalahdalambeberapamodul-modulkecil agar mudahuntukdikerjakan. Lalumodul-modulkeciltersebutdigabungkanmenjadisatuuntukdapatmenentukansolusi. • Menentukanalgoritma • Menulisprogram • Mengujiprogram • Mendokumentasikanprogram • Merawatprogram

  8. ApaituAlgoritma • Algoritmaadalahurutanlangkah-langkahlogispenyelesaianmasalah yang disusunsecarasistematisdanlogis.- Katalogismerupakankatakuncidalamalgoritma.- Urutanlogis/langkah-langkahdalamalgoritmaharusdapatditentunkandengannilaiBenar(TRUE) atauSalah(FALSE). • AlgoritmaadalahjantungnyaIlmukomputer/ Informatika

  9. AlgoritmaDalamKehidupan. Tanpadisadarikitaseringmenerapkanalgoritmadalamkehidupansehari-hari, seperti : • Memasakresepmakanan • MencuciBaju • Mandi • dll

  10. ContohAlgoritma : • Misalkanada 2 Ember yang berisi air(larutan) yang berwarna, (anggapsaja Ember A dan Ember B). Ember A berisi air yang berwarnaMerah, sedangkan Ember B berisi air yang berwarnaBiru. Volume kedua ember tersebutsama. • Pertanyaannya? : Bagaimanakahcarapertukaranisikedua ember itusehingganantiakanmenjadi Ember A berisi air warnaBiru, dan Ember B berisi air warnaMerah?

  11. Algoritmanya : • KondisiAwal : Ember A (Berisi air warnaMerah) dan Ember B (Berisi air warnaBiru).KondisiAhir : Ember A (Berisi air warnaBiru) dan Ember B (Berisi air warnaMerah). • AlgoritmamenghasilkanEfekNetto

  12. Penyelesainyan : • Tambahkansatu Ember kosong, (Anggapsaja Ember C). • Tuang ember A ke ember C • Tuang ember B ke ember A • Tuang ember C ke ember B • Selesai.

  13. BAHASA PEMROGRAMAN. • Untukmelaksanakansuatualgoritma, diperlukansuatubahasapemrograman, contoh : Pascal, C++, Visual Basic, dll. • Notasialgoritmadapatditerjemahkankedalambahasapemrogramanapapaun, dengankata lain notasialgoritmabersifatindependen. • NotasiAlgoritmik :- Deskripsi- Flow Chart- KodePesudo

  14. Program : instruksi (coding) • Pemrogram : yang membuat program • Pemrograman : kegiatan yang dilakukanuntukmerancangdanmenulis program • BahasaPemrograman : bahasa yang digunakandalammembuat program yang dimengertiolehkomputer.

  15. case

  16. Algoritma : { sisi A : (P, S, K, Y) sisi B : (………………)} • Pemudamenyeberangkankambingdarisisi A kesisi B { sisi A : (-, S, -, Y) sisi B : (P,-,K,-)} • Pemudamenyeberangsendiridarisisi B kesisi A • Pemudamenyeberangkansrigaladarisisi A kesisi B • Pemudamenyeberangkankambingdarisisi B kesisi A • Pemudamenyeberangkansayurdarisisi A kesisi B • Pemudamenyeberangkansendiridari B ke A • Pemudamenyeberangkankambingdarisisi A kesisi B { sisi A : (………………) sisi B : (P, S, K, Y) }

  17. Algoritmnamerupakankerangkadasardarikonsepsuatuprogramuntukmenyelesaikanmasalah . • Algoritmatidakterikatdarisuatubahasapemrogramanmanapunataudengankata lain bahasa yang digunakanadalahbebasdenganbahasaapapun, baikmemakaibahasa Indonesia, bahasaInggrisataubahasalainnya.

  18. Setiaporangpunyapolapikir yang berbeda, karenaituakanmenghasilkanalgoritma yang berbeda • Algoritmadikatakanbenarapabiladapatmemecahkanmasalah • Perludipertimbangkanmasalahefisiensidalampenyusunanalgoritma • Pemilihanrutejalan, misalnya : • Beberaparutemungkinakanmenghasilkantujuan yang sama • Adarute yang lebihefisiendibandingrutelainnya • Sebaiknya yang diambiladalahruteterpendek

  19. Kriteria/ AspekPentingdariAlgoritma 1. Finiteness• Algoritmaharusberhenti after a finite number of steps2. Definiteness• Setiaplangkahharusdidefinisikansecaratepat, tidakboleh membingungkan (ambiguous)3. Input• Sebuahalgoritmamemilikinolataulebihinput yang diberikankepadaalgoritmasebelumdijalankan4. Output• Sebuahalgoritmamemilikisatuataulebih output, yang biasanyabergantungkepadainput5. Effectiveness• Setiapalgoritmadiharapkanmilikisifatefektif

  20. FLOWCHART • Flowchartlebihbaikdibandingkanpseudocode • Merupakangambarandalambentuk diagram alirdarialgoritma-algoritmadalamsuatuprogram yang menyatakanarahalurprogramtersebut • Disajikandalambentukgrafik/gambar • Dapatmembantu programmer maupunorang lain dalammemahamialurprogram (apasajainput, prosesdan output dariprogram) • Representasi visual, karenaitulebihmudahdipahami • Jumlahsimbol yang digunakansedikit, karenaitulebihsederhanadanlebihmudahdipelajari

  21. Flow Chart • flow chart (diagram alir) • (menggambarkan urutan langkah-langkah kegiatan /program mulai dari awal sampai akhir dengan menggunakan simbol atau gambar tertentu.) • Kegunaan : mendesain dan mempresentasikan program

  22. Kaidah-KaidahUmumPembuatanFlowchart Program • Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifatmutlak. Karenaflowchart merupakangambaranhasilpemikirandalammenganalisissuatumasalahdengankomputer. Sehinggaflowchart yang dihasilkandapatbervariasiantarasatupemrogramdengan yang lainnya.

  23. Namunsecaragarisbesarsetiappengolahanselaluterdiriatas 3 bagianutama, yaitu: • Input, • Prosespengolahandan • Output

  24. Untukpengolahan data dengankomputer, urutandasarpemecahansuatumasalah: • START, berisipernyataanuntukpersiapanperalatan yang diperlukansebelummenanganipemecahanpersoalan. • READ, berisipernyataankegiatanuntukmembaca data darisuatuperalataninput. • PROSES, berisikegiatan yang berkaitandenganpemecahan persoalansesuaidengan data yang dibaca. • WRITE, berisipernyataanuntukmerekamhasilkegiatanke peralatanoutput. • END, mengakhirikegiatanpengolahan.

  25. Walaupuntidakadakaidah-kaidah yang bakudalampenyusunanflowchart, namunadabeberapaanjuran: • Hindaripengulanganproses yang tidakperludanlogika yang berbelitsehinggajalannyaprosesmenjadisingkat. • Jalannyaprosesdigambarkandariataskebawahdandiberikantandapanahuntukmemperjelas. • Sebuahflowchart diawalidarisatutitik START dandiakhiridenganEND.

  26. Lambang Flowchart

  27. Kasus: • BuatlahsebuahAlgoritmadenganmenggunakanflowchart, mencariluaspersegipanjang. Solusi: Perumusanuntukmencariluaspersegipanjangadalah: L = p. l dimana, L adalahLuaspersegipanjang, p adalahpanjangpersegi, dan l adalahlebarpersegi.

  28. Keterangan 1: 1. Simbolpertamamenunjukkandimulainyasebuah program. 2. Simbolkeduamenunjukkanbahwainput data dari p dan l. 3. Data darip dan l akandiprosespadasimbolketigadengan menggunakan perumusan L = p. l 4. Simbolkeempatmenunjukkanhasiloutput dariprosesdarisimbol ketiga. 5. Simbolkelimaatauterakhirmenunjukkanberakhirnya program dengantandaEnd.

  29. kuis • BuatlahsebuahAlgoritmadenganmenggunakanflowchart untukmenghitungluaslingkaran!

  30. Case (penggunaan Decision dalamproses) • Membuatalgoritmadengan flowchart untukmenentukanapakahseorangmahasiswatersebut LULUS atau GAGAL berdasarNilaiAkhir (NA) yang didapat. • denganketentuan : Jika NA >= 60, maka LULUS, kalautidak, maka GAGAL. • Buatlahalgoritma dg flowchart untukmenyelesaikanpermasalahandiatas!

  31. INPUT : • TUGAS, UTS, dan UAS • Proses : • NA = (10%xABSEN)+(15%xTUGAS)+(25%XUTS)+(50%XUAS) • Output : • NA ( Nilaiakhir)

  32. Pseudo Code • berupapengkodeanataupenandaan yang menyerupaisuatuprogram • Pseudo Codeseringdigunakandalampenulisanalgoritma. • Contoh : Mencaribilanganterkecildariduabilangan yang dimasukkan. Algoritma : • Masukkanbilpertama • Masukkanbilkedua • Jikabilpertama < bilkeduamakakerjakanlangkah 4, bilatidakmakadikerjakanlangkah 5. • Tampilkanbilpertama • Tampilkanbilkedua

  33. Menghitung rata-rata tigabuah data Algoritmadenganstrukturbahasa Natural (Deskriptif) Algoritmadenganpseudocode input (a, b, c) Jml = a+b+c Rerata = Jml/3 Output (Rerata) • - Baca bilangan a, b, dan c • - Jumlahkanketigabilangantersebut • - Bagijumlahtersebutdengan 3 • - Tulishasilnya

  34. Latihan • BuatlahsebuahAlgoritma program denganmenggunakannotasiAlgoritmikDeskriptifdanPseudo Code untukmenghitungluaslingkaran!

  35. NilaiTerbesar Dari 2 BuahBilangan deskriptif Pseudo code Input bil1, bil2 if bil1 > bil2, then besar bil1 Besar  bil2 Output(Besar) • Baca bilanganpertama, danbilangankedua • Bandingkannilaipertamadengannilaikedua. • sehinggadidapatnilaiterbesardiantarakeduabilangantersebut.

  36. NilaiTerbesar Dari 3 BuahBilangan deskriptif Pseudo code Input bil1, bil2, bil3 Besar bil1 If bil2 > Besar, then besar bil2 If bil3 > besar, then besar  bil3 Output (besar) • Baca bilanganpertama , bilangankeduadanbilanganketiga • Bandingkannilaipertamadengannilaikedua. • Kemudian yang lebihbesardiantaranilaitersebutdibandingkandengannilaiberikutnya (nilaiketiga) • sehinggadidapatnilaiterbesardiantaraketigavariabeltersebut.

  37. TIGA BAGIAN UTAMA  PENULISAN ALGORITMA : • Judul (Header) • Kamus • Algoritma

  38. Contoh : JUDUL ( Header) • Program Jumlah_Bilangan{ judulalgoritma } KAMUS • Kamus : • c,d ,e: integer ALGORITMA • Algoritma : • Input (c,d) • If c < d then • e  c + d • Else • e  c-d • Output( e )

  39. TIPE DATA, OPERATOR DAN EKSPRESI Program Komputer memanipulasi data (variabel dan konstanta) di dalam memori. • TIPE DATA : • Untuk menyatakan tipe data dari sebuah variabel (peubah) pada Deklarasi. • OPERATOR : • Menspesifikasikan operasi apa yang dapat dilakukan terhadap peubah (variabel) dan konstanta. • EKSPRESI : • Mengkombinasikan peubah-peubah dan dan konstanta untuk menghasilkan hasil baru.

  40. TIPE DATA • TIPE DATA DASAR : • Tipe yang dapat langsung dipakai. • TIPE DATA BENTUKAN : • Tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya.

  41. 1. TIPE DATA DASAR • Dalam pemrograman, yang termasuk ke dalam tipe dasar adalah : Bilangan lojik, bilangan bulat, karakter, bilangan riil, dan string • Bilangan lojik, bilangan bulat, dan karakter disebut juga dengan TIPE ORDINAL (nilainya ada dalam urutan).

  42. BILANGAN LOJIK • NAMA TIPE : • Boolean • RANAH NILAI : • Dua buah nilai : Benar (true) dan Salah (false) • bilangan logik :benar  1, salah  0 • KONSTANTA : • True dan False • OPERASI : • Operasi Logika atau operasi boolean • Operasi logika menghasilkan nilai : true atau false • Operator logika : AND, OR dan XOR

  43. BILANGAN LOJIK - next

  44. BILANGAN LOJIK - next • Contoh operasi logika : • Misalkan X, Y, dan Z adalah peubah (variabel) bertipe boolean. • Dimana : • X bernilai true, Y bernilai false, dan Z bernilai true • Maka : operasi logika hasil ------------------------------------------ ( x and y) or z true A and ( y or z) true Not (x and z) false (y xor z) and y false

  45. BILANGAN BULAT • Bilangan yang tidak mengandung pecahan desimal, misal : 34, 8, 0, -17, 45678901, dsb • NAMA TIPE : • Integer • RANAH NILAI :

  46. BILANGAN BULAT - next • Contoh ; • deklarasi : • X : byte • Y : integer • Maka : • Peubah X tidak dapat dioperasikan untuk nilai-nilai di atas 255 • Peubah Y tidak dapat dioperasikan untuk nilai-nilai di atas 32767

  47. Contoh program Program salahtipe; Uses wincrt; Var a,b,x : shortInt; Begin a:=10; b:=20; X:=a*b; {x akan bernilai -56, bukan 200} Writeln(‘Nilai x=‘, x); End.

  48. BILANGAN BULAT - next • KONSTANTA : • Harus ditulis tanpa mengandung titik desimal : • Contoh : 78, -14, 7654, 0, 5, 9999, dsb • OPERASI : • Operasi aritmetika : + (tambah) - (kurang) * (kali) Div (hasil bagi bilangan bulat) Mod (sisa hasil bagi) Contoh : 3 + 10  hasil : 13 10 DIV 3  hasil : 3 10 MOD 3  hasil : 1

  49. BILANGAN BULAT - next 2. Operasi Perbandingan : • Menghasilkan nilai boolean (true dan false)

  50. Contoh : operasi perbandingan

More Related