1 / 44

Dasar Pemograman

Dasar Pemograman. Pertemuan Ke-1 ALFITH, S.Pd , M.Pd. PENGANTAR. Tujuan umum matakuliah :

rhona
Download Presentation

Dasar Pemograman

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. DasarPemograman Pertemuan Ke-1 ALFITH, S.Pd, M.Pd

  2. PENGANTAR Tujuanumummatakuliah: • Membekalimahasiswacaraberpikirdalampemecahanpersoalandenganmenggunakanbeberapaparadigmapemrograman, kemudian mahasiswa memiliki kemampuan membuatmenyelesaikanmasalahpemrogramantanpatergantungpada bahasapemrogramanapapun. • Membekalimahasiswadenganmoduldasardarialgoritma yang seringdipakaidalampemrograman, termasukdalammengeksekusiprogram tersebutdengansalahsatubahasapemrograman yang sederhana, sebagai alat untuk mengeksekusiprogram denganmesin yang tersedia.

  3. PENGANTAR Tujuankhususmatakuliah: Mahasiswadiharapkanmampuuntuk : • Memecahkanmasalahdenganbeberapaparadigmapemrogramandanmenuliskanspesifikasidanalgoritmanyatanpatergantungpadabahasapemrogramanapapun. • Menulis algoritma dari suatu masalah dengan menggunakan metodologidanskema standard yang terstruktur. • Menulis program yang baiksesuaidengankriteriadalambahasapemrograman yang ada, denganmenggunakanaturantranslasi yang diperkenankan. • Menghasilkan program yang terstrukturwalaupunbahasapemrogramannyabukanbahasa yang terstruktur. • Menuliskandanmenerjemahkanpenyelesaianalgoritmikuntukbeberapapersoalanmenjadi program yang dapatdieksekusiolehmesin dalam salah satu bahasa tingkat tinggi yang biasa digunakan.

  4. KEPUSTAKAAN • Aho, Hopcroft, Ullman, "Data Structures and Algorithms", Prentice Hall, 1987. • Knuth, D.E., "The Art of Computer Programming", Vol. 1 : "Fundamentals Algoritms", Addison Wisley, 1968. • Sedgewick R., "Algorithms", Addison Wisley, 1984. • Wirth, N., "Algorithms & Data Stuctures", Prentice Hall, 1986. • Munir, R dan Lidya, L. 2001. Algoritma dan PemrogramanDalamBahasa Pascal dan C. Bandung: Informatika. • Kadir, A danHeriyanto. 2005. AlgoritmaPemrogramanMenggunakan C++. Yogyakarta: PenerbitAndi. • Pranata, A. 2005. AlgoritmadanPemrograman. Yogyakarta: PenerbitGrahaIlmu. • P.J. Deitel, H.M. Deitel, “C How to Program”, Pearson International Edition Fifth Edition, 2007. • Stephen Prata, “C Primer Plus”, SamsPublishing Fifth Edition, 2005. • FathulWahid, “Dasar-DasarAlgoritma & Pemrograman”, PenerbitAndi, Yogyakarta, 2004. • Ellis Horowitz, SartajSahni, SanguthevarRajasekaran. “Computer Algorithms / C++, Computer Science Press. 1998. • Thomas H Cormen, Charles E Leiserson, Ronald L. “Introduction to Algorithms”,2nd Edition. The MIT Press. New York. 1990. • Robert Setiadi. “AlgoritmaItuMudah”, PT Prima InfosaranaMedia, KelompokGramedia. Jakarta 2008

  5. SISTEM PERKULIAHAN 1. TugasMandiri30% 2. UTS 35% 3. UAS 35% • Syaratkehadiranadalah 80% dari total keseluruhanperkuliahan.

  6. PENGERTIAN • Pemrogramanberkaitandengankomputer, yang digunakanuntukmembantumenyelesaikanpersoalan. • Strategipenyelesaianmasalaholehkomputermestiditanamkanpadamesintersebutolehmanusiamelaluisuatu program olehsuatubahasapemrograman. • Untukmenghasilkan program, manusiamestimengunakanparadigma yang memilikiprioritasdanketerbatasan.

  7. PENGERTIAN • Program merupakanpernyatan yang disusunmenjadisatukesatuanprosedur yang berupaurutanlangkah yang disusunsecaralogisdansistematisuntukmenyelesaikanmasalah. • Bahasapemrogramanadalahprosedurpenulisan program, umumnyaterdiridari 3 faktorutama: • Sintaks, merupakan aturan penulisan bahasa pemrograman. • Semantik, adalah arti atau maksud yang terkandung padastatemen. • Kebenaran logika, adalah berhubungan benar tidaknya urutanstatemen.

  8. PENGERTIAN • Produk yang dihasilkanolehseorangpemrogramadalah program denganrancanganbenar (metodologis & sistematis) yang dapatdieksekusiolehmesin, berfungsidenganbenar, sanggupmelayanisegalakemungkinanmasukandandidukungdenganadanyadokumentasi.

  9. PENGERTIAN • Tujuanpengajaranpemrogramanmembentukmahasiswamenjadiperancang (designer) program. • Sedangkan tujuan pengajaran bahasa program membentuk mahasiswa menjadi juru kode (coder).

  10. PENGERTIAN • Padaprakteknya, suaturancanganharusdapatdi-kode, untuk dieksekusi oleh mesin. Sehingga belajar pemrograman dan bahasa program saling berkaitan satu sama lain. • Metodaterbaikuntukpengajarantersebutmelalui contoh nyata program yang merupakanpolasolusi, sehinggadapatmelihat, mengalamisendiridanmelakukannya.

  11. PENGERTIAN • Belajarmemrogramdanbelajarbahasa program mempunyaitingkatankesulitan yang berbeda. • Belajarmemrogramlebihbersifatpemahamanpersoalan, analisisdansintesis, yang merupakanbelajartentangstrategipemecahanmasalah, metodologidansistematikapemecahanmasalahtersebut, kemudianmenuangkannyadalamsuatunotasi yang disepakatibersama.

  12. PENGERTIAN • Belajar bahasa program adalah bagaimana cara memakai suatu bahasa, aturan sintaks (tatabahasa), setiapinstruksi yang adadantatacarapengoperasiankompilatoratau interpreter bahasa yang bersangkutanpadamesintertentu. • Belajarbahasa program lebihkepadaketrampilandari pada analisis dan sintesis, yang memanfaatkan instruksi-instruksi dan kiat atau cara yang dapat dipakai secara spesifik hanya padabahasa yang digunakantersebut.

  13. PENGERTIAN • BahasaMesin, merupakanbahasapemograman pada mesin yang hanya mengenal 2 keadaan yang berlawananyaitukeadaan 0 dan 1 ataubenaratausalah. • Bahasa Tingkat Rendah, ataudikenaljugaMnemonics (pembantuuntukmengingat) • Bahasa Assembler • Bahasa Tingkat Tinggi • Bahasagenerasike 4 (4GL)

  14. PENGERTIAN • Bahasapemrogramanberkembangdengancepatsejaktahunenampuluhan, seringkalidianalogikan dengan menara Babel yang berakibatmanusiamenjaditidaklagisalingmengertibahasamasing-masing.

  15. PENGERTIAN Paradigmadalampemrograman: • Prosedural • Fungsional • Deklaratif • BerorientasiObjek • Konkuren • Relasional Untuksetiapparadigma, tersediabahasapemrograman yang mempermudahimplementasirancanganpenyelesaianmasalahnya.

  16. PENGERTIAN Contohbahasa-bahasapemrograman yang ada : • 1. Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C ... • 2. Fungsional : LOGO, APL, LISP • 3. Deklaratif/Lojik : Prolog • 4. Object oriented murni: Smalltalk, Eifel, Jaca, C++.. • 5. Konkuren : OCCAM, Ada, Java • 6. Relasional: SQL padabasisdatarelasional • ParadigmaObjekmulaiditambahkanpadabahasa-bahasa yang ada. Pemrosesbahasa Pascal dan C versiterbarudilengkapidenganfasilitasterorientasiobjek, misalnya Turbo Pascal (mulaiversi 5.5) padakomputerpribadi (PC) dan C++. Adabeberapaversi LISP dan Prolog yang jugamemasukkanaspek OO. • Suatu program dalambahasapemrogramantertentuakandiprosesolehpemrosesbahasanya. Adaduakategoripemrosesbahasa, yaitukompilatordan interpreter. • Dalammelakukanimplementasi program, tersediabahasapemrograman visual atautekstual.

  17. ParadigmaPemrogramanProsedural • Paradigmainididasariolehkonsepmesin Van Neumann, dimanasekelompoktempatpenyimpanan (Memori), yang dibedakanmenjadi memori instruksi dan memori data, masing-masingdapatdiberinamadanharga • Instruksi akan dieksekusi satu per satu secara sekuensialolehsebuahpemrosestunggal • Data diperiksa dan dimodifikasi secara sekuensialjuga

  18. ParadigmaPemrogramanProsedural • Program dalamparadigmainididasaripadastrukturisasi informasi dalam memori dan manipulasidariinformasi yang disimpantersebut • Program = Algoritma + Struktur Data • Pemrogramanpadaparadigmainimestiberpikir dalam batasan mesin namun efisien dalameksekusi

  19. ParadigmaPemrogramanFungsional • Paradigmainididasariolehkonseppemetaandanfungsipadamatematika • Disini tidak dipermasalahkan memorisasi dan struktur data, tidak ada pemisahan antara data dan program maupunpengertiantentangvariabel • Semua kelakuan program adalah mata rantai transformasidarisebuahkeadaanawalmenujuke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara maupun melalui aplikasi fungsiParadigmaPemrograman

  20. ParadigmaPemrogramanFungsional • Padapemrogramanfungsional, pemrogramtidakperlulagimengetahuibagaimanamesinmengeksekusiataubagaimanainformasidisimpanpadamemori, namunhanyamemperhatikankeadaanawaldanakhirsaja • Dibandingakanpemrogramanprosedural, pemrogramanfungsionalmemilikikelemahanpadaefisiensidankinerjanya

  21. ParadigmaPemrogramanDeklaratif • Paradigma ini didasari oleh pendefinisian relasiantarindividu yang dinyatakansebagaipredikat • Pemrogramaninimenguraikansekumpulanfakta dan aturan-aturan, ketika program dieksekusi, pemakaimengajukanpertanyaandanprogramakanmenjawab, apakahpernyataanitudapatdideduksidariaturandanfakta yang ada

  22. ParadigmaBerorientasiObjek • ParadigmainididasariolehKelasdanObjek • Paradigmainimenawarkankonsepmodularitas, penggunaankembali, dankemudahanmodifikasi

  23. ParadigmaKonkuren • Paradigmainididasariolehkenyataanbahwadalamkeadaannyata, sebuahsistemkomputerharusmenanganibeberapa program (task) yang harus dieksekusi bersama dalam sebuah lingkungan • Paradigmakonkuren, yang erathubungannyadengan arsitektur perangkat keras yang memungkinkanpemrosesan secara paralelatauperangkatlunaksistemterdistribusi yang mengelolaakseskonkuren

  24. ParadigmaRelasional • Paradigma relasional, yang didasarientity dan relasi, danpemrogramandalambahasa Query yang memungkinkandiperolehnyasuatuhimpunannilai.

  25. APA ITU ALGORITMA? • Cara menyelesaikansuatuproses • Terdiriataslangkah-langkah yang terdefinisidenganbaik • Bisadihitung (computable) ataubisadiukur(measurable) • Menerima input, menghasilkan output • An algorithm is a sequence of computational steps that transform the input into the output • An algorithm is a tool for solving a well-specified computational problem

  26. DEFINISI ALGORITMA MENURUTPAKAR • Menurut Abu Ja’far Mohammad Ibn Musa Al Khoarismi: “Suatumetodekhususuntukmenyelesaikansuatupersoalan.” • Menurut Goodman HedetNiemi: “Urut-urutanterbatasdarioperasi-operasiterdefinisidenganbaik, yang masing-masingmembutuhkan memory danwaktu yang terbatasuntukmenyelesaikansuatumasalah.”

  27. ALGORITMA • Algoritmaadalahcara yang dapatditempuholeh komputer dalam mencapai suatu tujuan, terdiri atas langkah-langkah yang terdefinisi denganbaik, menerima input, melakukanproses, dan menghasilkan output. Meskipun tidakselalu, biasanyasebuahalgoritmamemilikisifatbisadihitung (computable) ataubisadiukur (measurable).

  28. SYARAT CORRECTNESS • Sebuahalgoritmadikatakan BENAR (correct) jikaalgoritmatersebutberhasilmengeluarkan output yang benaruntuksemuakemungkinan input. • Bagaimanadengan 99% benar? – 99% benarartinyasebuahalgoritmaadalah SALAH (incorrect)

  29. PSEUDOCODE • Adalahcarauntukmenuliskansebuahalgoritmasecarahigh-level • BiasanyadituliskandengankombinasibahasaInggrisdannotasimatematika • LebihterstrukturdaripadabahasaInggrisbiasa • Tidakdetildibanding program • Isu-isudetildalam program yang sifatnyateknistidakdibahasdalampseudocode

  30. PSEUDOCODE • Kode-palsuataudalambahasainggrislebihdikenalsebagaipseudocodemerupakandeskripsitingkattinggi informal danringkasatasalgoritmapemrogramankomputer yang menggunakankonvensistrukturalatassuatubahasapemrograman, danditujukanuntukdibacaolehmanusia dan bukan oleh mesin. Kode palsu biasanyatidakmenggunakanelemen detail yang tidakdiperlukanuntukkebutuhanpemahamanmanusiaatassuatualgoritma, sepertideklarasivariabel, kode ataupun subrutin untuk sistem yang bersifatspesifik

  31. CONTOH PSEUDOCODE (1) • Algoritmauntukmenampilkan 7 buahsimbol # 1 for i=1 to 7 do 2 display ”#” 3 end for

  32. CONTOH PSEUDOCODE (2) • AlgoritmauntukmenghitungFaktorialdari N 1 iTampung=1 2 for i=1 to N do 3 iTampung=iTampung*i 4 end for 5 display ”Faktorial dari ”,N,” adalah ”,iTampung,NL

  33. CONTOH PSEUDOCODE (3) • Algoritmauntukmenampilkan 8 bilangan Fibonacci 1 f1=0 2 f2=1 3 for i=1 to 8 do 4 iFibo=f1+f2 5 display ”Angkake-”,i,” adalah ”,iFibo,NL 6 f1=f2 7 f2=iFibo 8 end for

  34. KOMPONEN PSEUDOCODE • Variabel – Merupakan tempat penyimpanan sebuah nilai • Perulangan (loop) – Teknik for-do – Teknik repeat-until – Teknik while-do • Percabangan (branch) – Teknik if-then – Teknik select-case • Modul – Procedure / Sub – Function – Teknikrekursif

  35. VARIABEL • Merupakan tempat penyimpanan sebuah nilai • Memilikinama • Dapatdimasukkansebuahnilai • Dapatdipanggilnilainya • Menampungtipe data tertentu – Numerik – Karakter – String • Beberapavariabel yang tipenyasamadapatdirangkaimenjadisebuah array

  36. TEKNIK FOR-DO • Perulanganberdasar : – Variabelpenentuperulangan – Batas bawah – Batas atas • Contohalgoritmamenampilkan N bilangan Fibonacci pertama (pseudocode 2.9b) 1 f1=0 2 f2=1 3 for i=1 to N do 4 iFibo=f1+f2 5 display ”Angkake-”,i,” adalah ”,iFibo,NL 6 f1=f2 7 f2=iFibo 8 end for

  37. TEKNIK REPEAT-UNTIL • Perulanganberdasarkankondisi (true ataufalse) • Kondisi diperiksa di akhir perulangan • Perulanganterjadiselamakondisibelumterpenuhi • Minimal terjadi 1x perulangan • Contohalgoritmamenampilkan N bilangan Fibonacci pertama (pseudocode 2.9c) 1 f1=0 2 f2=1 3 iFibo=f1+f2 4 i=1 5 repeat 6 display ”Angkake-”,i,” adalah ”,iFibo,NL 7 i=i+1 8 f1=f2 9 f2=iFibo 10 iFibo=f1+f2 11 until i>N

  38. TEKNIK WHILE-DO • Perulanganberdasarkankondisi (true atau false) • Kondisi diperiksa di awal perulangan • Perulanganterjadiselamakondisimasihterpenuhi • Bisaterjadi 0 perulanganjikadariawalkondisitidakterpenuhi • Buatlahcontohalgoritmamenampilkan N bilangan Fibonacci pertamadenganmenggunakanteknik while-do!

  39. TEKNIK IF-THEN • Percabanganberdasarkankondisi (true atau false) • Terdapat 2 segmen, akandieksekusiberdasarkankondisi • Contohalgoritmadengan if-then (pseudocode 2.13b) 1 if iUmur >= 17 then 2 display ”Anda boleh masuk”,NL 3 else 4 display ”MaafAndatidakbolehmasuk”,NL 5 end if

  40. TEKNIK SELECT-CASE • Percabanganberdasarkannilaisebuahvariabel ordinal • Terdapatbanyaksegmen, akandieksekusiberdasarkankondisi • Contohalgoritmadengan select-case (pseudocode 2.15) 1 display ”Masukkanjumlahsisibangun : ” 2 read iSisi 3 switch iSisi 4 case 3 : display ”segitiga”,NL 5 case 4 : display ”kotak”,NL 6 case 5 : display ”segilima”,NL 7 else : display ”namabanguntdkterdaftar”,NL 8 end switch

  41. NOTASI MATEMATIKA Penjumlahandansifat-sifatnya 1. 2. SifatLinearitas 3.

  42. DERET • DeretAritmatika • DeretHarmonis

  43. LATIHAN • Buatlahsebuahpseudocodeuntukmenampilkan N bilanganpertamasecaraterbalik. • contoh : 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 • Buatdenganmenggunakanteknik for-do! • Buatdenganmenggunakanteknik repeat-until! • Buatdenganmenggunakanteknik while-do! • Buatsebuahpseudocode yang akanmenerimasebuah bilangan X dari user. Tampilkan pesan “benar” jika X habisdibagi 2, 3 atau 7 dantampilkan “salah” jikatidakhabisdibagi.

  44. REVIEW • Apa yang sudahdipahami? • Apa yang akandibahasselanjutnya?

More Related