konsep dasar pemrograman komputer dan algoritma

67
KONSEP DASAR PEMROGRAMAN KOMPUTER DAN ALGORITMA Pemrograman Dasar 1 Pertemuan 01

Upload: ella

Post on 21-Jan-2016

144 views

Category:

Documents


6 download

DESCRIPTION

KONSEP DASAR PEMROGRAMAN KOMPUTER DAN Algoritma. Pertemuan 01. Pemrograman Dasar. Learning Outcomes. Pada akhir pertemuan ini , diharapkan mahasiswa akan mampu : Menjelaskan tentang konsep dasar pemrograman komputer, algoritma dan tahapan pembuatan algoritma pemrograman terstruktur. - PowerPoint PPT Presentation

TRANSCRIPT

Judul

KONSEP DASAR PEMROGRAMAN KOMPUTER DAN Algoritma Pemrograman Dasar

1Pertemuan 01Learning OutcomesPada akhir pertemuan ini, diharapkan mahasiswa akan mampu :Menjelaskan tentang konsep dasar pemrograman komputer, algoritma dan tahapan pembuatan algoritma pemrograman terstruktur.2Outline MateriKonsep Dasar PemrogramanDefinisi AlgoritmaTahap Pengembangan AlgoritmaPenyajian algoritmaPseudocodeFlow ChartPemrograman Terstruktur 3Konsep Dasar Pemrograman Komputer4Penyimpanan DataPUSAT PENGOLAH DATA(berbasis Arithmatika dan Logika)Data yg Diolah(Masukan/Input)Data hasil pengolahan(Keluaran/Output)Nilai DataNilai DataCOMPUTERTO COMPUTE + ER (Menghitung/Mengolah bilangan)(Mengolah Data)Langkah Pembuatan ProgramPemrograman adalah suatu aktifitas pemecahan masalah.Metode pemecahan masalah dibahas pada berbagai bidang, misalnya:Di bidang bisnis digunakan pendekatan sistemDi bidang teknik dan sains digunakan metode teknik dan saintifikDi bidang pemrograman digunakan metode pengembangan softwareLangkah-langkah dalam metode Pembuatan Program:Menspesifikan kebutuhan masalah -> identifikasi masalahMenganalisis masalah -> metode penyelesaian terbaikMerancang/mendesign algoritma untuk menyelesaikan masalah -> Design pemrogramanMengimplementasikan algoritma -> coding Mentest dan memverifikasi program -> debuging; testingMemelihara dan meng-update program -> maintenance51. Spesifikasi MasalahKita harus dapat menspesifikasikan masalah dengan jelas dan tidak ambigu dan memiliki pemahaman yang jelas mengenai apa yang diperlukan untuk menyelesaikan masalah tersebut.Kita harus dapat mengeliminasi aspek-aspek yang tidak penting dari masalah.Dalam langkah ini, kita mungkin membutuhkan informasi dari orang-orang yang terlibat dalam masalah tersebut.62. Analisis (1)Kita harus dapat mengidentifikasi masalah berkaitan dengan:InputOutputKebutuhan tambahan atau batasan dari penyelesaian masalahFormat dari output (dalam bentuk tabel, file, atau yang lain)Daftar variabel dan hubungan antar variabel (bisa dinyatakan dalam rumus)Tips: Bacalah problem statement (soal) dengan hati-hati agar memiliki pemahaman yang jelas mengenai permasalahan dan agar dapat menentukan input maupun output dengan benar. Kita bisa menggarisbawahi frase di dalam soal yang mengindikasikan input dan output.7Contoh:Problem: Hitung dan tampilkan total harga apel jika jumlah kg apel yang dibeli dan harga perkg apel diketahui.Analisis:Hitung dan tampilkan total harga apel jika jumlah kg apel yang dibeli dan harga perkg apel diketahui.Input:Jumlah apel yang dibeli (dalam kg) -> kg_beliHarga per kg apel (dalam rupiah) -> harga_kgOutput:Total harga apel (dalam rupiah) -> totalRumus :total = harga_kg x kg_beliProses pemodelan suatu masalah dengan cara mengekstrak variabel-variabel penting dan hubungan di antara variabel-variabel disebut abstraksi.

82. Analisis (2)3. DesignDalam tahap design, kita menyusun algoritma (daftar langkah yang diperlukan untuk menyelesaikan masalah) dan memverifikasi apakah algoritma yang kita susun dapat menyelesaikan masalah sesuai dengan yang kita inginkan. Jangan berusaha secara langsung untuk menyelesaikan masalah secara detail pada saat merancang algoritme. Gunakan pendekatan top down design (disebut juga divide and conquer), yaitu pendekatan yang dimulai dengan mendaftar langkah-langkah utama atau submasalah yang diperlukan untuk menyelesaikan masalah utama, selanjutnya diikuti dengan menyusun penyelesaian untuk setiap submasalah.9Definisi AlgoritmaAlgoritma adalah sekumpulan langkah-langkah terbatas untuk mencari solusi suatu masalah.Berasal dari kata algoris dan ritmis. Awalnya diungkapkan oleh Al Khowarizmi. Di pemrograman, algoritma didefinisikan sebagai metode yang terdiri dari langkah-langkah terstuktur untuk mencari solusi suatu masalah dengan bantuan komputer.10Hampir setiap algoritme komputer terdiri dari submasalah berikut:Memasukkan dataMelakukan perhitunganMenampilkan hasilProses penyusunan langkah-langkah penyelesaian untuk setiap submasalah yang berhasil diidentifikasi disebut penghalusan algoritme (algorithm refinement).Untuk memverifikasi algoritme dilakukan desk checking, yaitu pemeriksaan setiap langkah dalam algoritme dengan cara mensimulasikan hasil eksekusi algoritme dengan perhitungan manual.

113. Design4. ImplementasiPada tahap ini dilakukan penulisan program, yaitu mengkonversi algoritme yang disusun pada tahap sebelumnya ke dalam bahasa pemrograman yang dipilih.125. TestingSetelah program sudah bisa dieksekusi, dilakukan pengetesan program dengan berbagai macam data, sehingga bisa diverifikasi bahwa program sudah bekerja sesuai dengan kebutuhan pada berbagai situasi yang mungkin dihadapi oleh program.136. Pemeliharaan (maintenance)Pemeliharaan dan peng-update-an program mencakup modifikasi program untuk menghilangkan error yang sebelumnya tidak terdeteksi dan untuk menjaga agar program tetap up-to-date (sesuai) dengan kebijakan pemerintah ataupun dengan perubahan kebijakan oganisasi.Beberapa organisasi melakukan pemeliharaan program setiap 5 tahun sekali atau lebih, dan seringkali pemeliharaan program dilakukan oleh orang yang sebelumnya tidak terlibat dalam pengembangan program tersebut. Oleh karena itu, sangat penting untuk melakukan dokumentasi terhadap setiap tahap pengembangan software, sehingga proses pemeliharaan program bisa dilakukan dengan baik.14MASALAH / IDEAPEMECAHANSOLUSI / HASILAlgoritma

Source CodeExecutable CodeTAHAP PENGEMBANGAN PROGRAM Contoh kasus: Konversi Mil ke KilometerProblem :Dalam kerja praktek anda diminta untuk mempelajari beberapa peta. Peta-peta tersebut ada yang menggunakan satuan mil dan ada yang menggunakan satuan kilometer. Oleh pembimbing kerja praktek, anda diminta untuk mengkonversi semua jarak dalam mil ke dalam kilometer.Analisis :. Oleh pembimbing kerja praktek, anda diminta untuk mengkonversi semua jarak dalam mil ke dalam kilometer.Input :Jarak dalam mil -> milOutput :Jarak dalam kilometer -> kmRumus :1 mil = 1.609 km16Design :Algoritme awal :Masukkan jarak dalam milKonversi jarak dari mil ke kilometerTampilkan hasil dalam kilometerPenghalusan algoritme :Masukkan jarak dalam milKonversi jarak dari mil ke kilometer2.1. Jarak dalam kilometer adalah 1.609 kali jarak dalam mil.3.Tampilkan hasil dalam kilometerContoh desk check terhadap algoritma :Pada langkah 1, dimasukkan jarak 10 mil, langkah 2.1 akan mengkonversinya menjadi 1.609 x 10 menjadi 16.09 kilometer. Hasil ini akan ditampilkan di langkah 3.17Implementasi :/* Konversi jarak dari mil ke kilometer */#include /* definisi printf, scanf */#include KM_PER_MIL 1.609 /*konstanta konversi */int main(void) {double mil, /*input: jarak dalam mil*/ km; /*output: jarak dalam km*//* memasukkan jarak dalam mil */printf(Masukkan jarak dalam mil : );scanf(%lf, &mil);/* konversi jarak ke kilometer */km = KM_PER_MIL * mil;/* tampilkan jarak dalam kilometer */printf(Hasil konversi adalah %lf kilometer.\n, km);return(0);}Contoh hasil runing program :Masukkan jarak dalam mil : 10.00Hasil konversi adalah 16.090000 kilometer18PengetesanUntuk memverifikasi bahwa program sudah berjalan sesuai dengan kebutuhan, cobalah mentest program dengan memasukkan beberapa jarak dalam mil yang lain.19Studi Kasus :Problem :Suatu dealer minyak menampung minyak jualannya di dalam drum-drum. Sementara semua pembeli selalu membeli minyak dengan membawa wadah yang sama berupa jerigen. Pemilik dealer agak kesulitan untuk menghitung harga minyak yang dibeli oleh pembeli, karena pembeli selalu membeli minyak dengan satuan jerigen (misalnya 3 jerigen, atau 3.5 jerigen), sementara harga jual yang diketahui adalah rupiah per drum, yaitu 100.000 rupiah per drum. Diketahui bahwa 1 jerigen isinya sama dengan 1/20 drum. Bisakah anda membantu pemilik dealer untuk memudahkan perhitungan harga total minyak yang dijual ke setiap pembeli?20RujukanBrian W. Kernighan, Dennis M. Ritchie (1988). The C Programming Language, Second Edition, Prentice HallDeitel, H.M. and Deitel, P.J. (2001). C HOW TO PROGRAM. 3rd edition. Prentice Hall, NJ.Gottfried, B.S. (1996). Schaums Outline Series. Theory and Problems of Programming with C. McGraw Hill, NY.Ngoen. Th. S. (2004). Pengantar Algoritma dengan Bahasa C. Penerbit Salemba Teknika. Sedgewick, R. (1992). Algorithms in C++. Addison Wesley.21TAHAP PENGEMBANGAN PROGRAM 22DEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASIYYTTTAHAP PENGEMBANGAN PROGRAM 23DEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASIMasalah:Tentukan akar-akar dari suatu persamaan kwadrat.Definisi:Persamaan kwadrat : ax^2 + bx + c = 0Data yg diperlukan :Nilai dari a, b dan c : tipe real24TAHAP PENGEMBANGAN PROGRAMDEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASIModel Matematika :Rumus ABC x1 = (-b + sqrt(b^2 - 4ac))/2a x2 = (-b sqrt(b^2 - 4ac))/2a25TAHAP PENGEMBANGAN PROGRAMTULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASIDEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMAStart d = b^2 4ac d < 0Masukkan a,b,c x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2aStopYTCetak: x1, x2Cetak: Akar majiner26

DEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASITAHAP PENGEMBANGAN PROGRAM27

DEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASITAHAP PENGEMBANGAN PROGRAM28

DEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASITAHAP PENGEMBANGAN PROGRAM29

DEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASITAHAP PENGEMBANGAN PROGRAM30DEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASI

TAHAP PENGEMBANGAN PROGRAM

31DEFINISI MASALAHMEMBUAT MODELRANCANG ALGORITMATULIS PROGRAMCOMPILESintak ErrExecutable code: => RunOutput ErrDOKUMEN TASITAHAP PENGEMBANGAN PROGRAMPenyajian AlgoritmaAlgoritma bisa dibuat dengan:Teknik tulisan seperti : Structure english dan Pseudocode.Teknik visual seperti : Flow chart.32PseudocodeOutline dari sebuah program komputerDitulis dalam bahasa Inggris atau Indonesia sederhanaKata kunci (keyword) digunakan untuk menjelaskan struktur kendali (misalnya: jika, ulangi, sampai,if,repeat, until) 33Tujuh operasi dasar komputer:Membaca data (Input) Menampilkan data (Output) Melakukan perhitungan aritmetika (Compute)Memberikan nilai ke suatu identifier (Store)Membandingkan dan Memilih (Compare)Melakukan pengulangan (Loop)Procedure dan atau Function34Pseudocode1. MEMBACA DATASewaktu komputer menerima informasi atau input, maka statement yang biasa digunakan adalah Read, Get, Baca ,Input atau KeyInContoh: Read BilanganGet kode_pajak Baca nama_mahasiswa352. Menampilkan Data Sewaktu komputer menampilkan informasi ataupun output, maka statement yang biasa digunakan adalah Print, Write, Put, Output, Display ataupun CetakContoh:Print Universitas BrawijayaCetak Dasar Pemrograman KomputerOutput Total363. perhitungan AritmetikaUntuk melakukan operasi aritmetika digunakan pseudocode berikut: + untuk penjumlahan (add)- Untuk pengurangan (subtract) * Untuk perkalian (multiply)/ Untuk pembagian (divide)() Untuk kurung Statement Compute, Calculate ataupun Hitung juga dapat digunakan. Contoh: Add number to total Total = Total + number

374. Memberikan nilai ke IdentifierAda tiga cara untuk memberikan nilai ke dalam variabel : Memberikan nilai awal, menggunakan statement Initialize atau SetMemberikan nilai sebagai hasil dari suatu proses, maka tanda = digunakanUntuk menyimpan suatu nilai maka statement Save atau Store digunakan Contoh:Set Counter to 0 Total = Harga * Jumlah 385. Membandingkan dan memilihSalah satu operasi terpenting yang dapat dilakukan komputer adalah membandingkan dan memilih salah satu alternatif solusi. Keyword yang digunakan : IF, THEN dan ELSE Contoh IF Pilih=1 THEN Discount = 0.1 * hargaELSEDiscount = 0.2 * harga ENDIF396. PengulanganJika ada beberapa perintah yang harus diulang, maka dapat digunakan keyword DOWHILE dan ENDDO.Contoh Bil = 0DOWHILE bil < 10cetak bil bil = bil +1ENDDO 40Contoh Algoritma dgn PseudocodeAlgoritma Menggunakan KalkulatorMulaiNyalakan kalkulatorKosongkan KalkulatorUlangiInput hargaTekan tombol Plus (+)Sampai semua harga diinputTampilkan total hargaMatikan kalkulatorSelesai41Algoritma Berangkat KuliahMulaiBangun dari tempat tidurMandi PagiSarapan PagiPergi Ke KampusCari Ruang KuliahMasuk kelas untuk KuliahSelesai42Contoh Algoritma dgn PseudocodeAlgoritma Sarapan PagiMulaiAmbil piringMasukkan nasi dan lauk dalam piringAmbil sendok dan garpuUlangiAngkat sendok dan garpuAmbil nasi dan laukSuapkan ke dalam mulutTaruh sendok dan garpuKunyahSampai (nasi dan lauk habis) ATAU kekenyangan Bereskan piring, sendok dan garpuSelesai43Contoh Algoritma dgn PseudocodeFLOW CHART44TerminatorProsesPemilihanInput/OutputDokumenPengulanganArahKonektor antar halamanKonektorPemanggilan Procedure45

46

Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END atau STOP.47Contoh FLOW CHART48Start d = b^2 4ac d < 0 x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2aEndYTMasukkan a,b,cCetak x1,x2Cetak Pesan Akar imajinerKriteria Algoritma Yang BaikMempunyai logika yang tepat untuk memecahkan masalah.Menghasilkan output yang benar dalam waktu yang singkat.Ditulis dengan bahasa baku terstruktur sehingga tidak menimbulkan arti ganda. Ditulis dengan format baku sehingga mudah diimplementasikan kedalam bahasa pemrograman.Semua operasi didefinisikan dengan jelas dan berakhir sesudah sejumlah langkah.

49Pemrograman Terstruktur Pemrograman terstruktur merupakan pola penyusunan program komputer hanya dengan menggunakan tiga struktur kontrol yaitu: Sequence SelectionRepetition 501. Sequence Sequence merupakan urutan pengerjaan dari perintah/statement pertama sampai dengan perintah/statement terakhir.Umumnya bahasa pemrograman mempunyai sequence (urutan pengerjaan dari perintah / statement ) mulai dari atas ke bawah dan dari kiri ke kanan.Top-down51Contoh Sequence Contoh: Cetak Jumlah Mahasiswa Set Jumlah to 49Cetak Tambahan mahasiswa baruBaca mhs_baru Jumlah = Jumlah + mhs_baruCetak Jumlah MahasiswaCetak jumlah

Penjelasan Urutan pengerjaan adalah mulai dari urutan pertama sampai dengan urutan terakhir, jika mhs_baru diisi dengan 2, maka jumlah yang tercetak adalah 51

522. Selection Struktur Kontrol Selection adalah penggambaran sebuah kondisi dan pilihan diantara dua aksi.Statement Pertama akan dikerjakan jika kondisi bernilai benar, jika tidak maka akan mengerjakan perintah setelah keyword else (jika ada). 53Contoh Selection Contoh :IF Hari=1 THEN Cetak SeninELSE Cetak Bukan hari Senin ENDIFPenjelasan Tulisan Senin akan ditampilkan jika Hari bernilai 1, jika tidak maka tulisan Bukan hari Senin yang akan ditampilkan 543. Repetition Beberapa statement / perintah dapat diulang dengan menggunakan struktur kontrol repetition. Statement / perintah akan tetap diulang selama kondisi perulangan memenuhi (jika menggunakan DOWHILE ENDDO)55Contoh Repetition Contoh: Bintang = 0 DOWHILE bintang < 5Cetak bintangbintang = bintang + 1 ENDDO Penjelasan: Pertama kali bintang akan diisi dengan 0, setelah itu isi dari bintang akan dicetak sebanyak lima kali, sehingga tampilannya akan sebagai berikut: 0 1 2 3 4 56Studi Kasus satuMenghitung Luas Permukaan kubus :6 * luas sisi kubusMenghitung Volume bola : 4/3*Phi* r3Memperkirakan lama di jalan bila kecepatan mobil 50 km/jam dan jarak tempuh 100 km : lama di jalan = jarak/kecepatanMencari nilai akar persamaan ax2+bx+c=0Contoh Kasus57Problem: Hitung dan tampilkan luas permukan kubus.Analisis:Hitung dan tampilkan luas permukaan kubus jika sisi kubus diketahui.Input:Panjang rusuk kubus (r) dalam satuan jarak.Output: Luas permukaan kubus (luas)Rumus :luas=6 x r x r

Solusi Kasus 158Algoritma :Masukkan rusuk kubus (r)Hitung luas luas = 6 x r x rtampilkan luasSolusi Kasus 159Solusi Kasus 1PsuedoCode

60start read r;Calculate luas=6 * r * r;Display luas;stopTulisan disamping seklias mirip dengan bahasa pemrograman, padahal sebenarnya adalah bahasa Indonesia/ Inggris yang berisi urutan proses dan ditulis mirip code programProblem: Cari dan tampilkan akar-akar persamaan kuadrat ax2 + bx + c=0.Analisis:Mencari nilai akar-akar persamaan kuadrat dan menampilkan hasilnya.Input:koefisien a, b, c Output: x1, x2Rumus :x1= (-b + D )/2ax2= (-b - D )/2adengan D = b2 4ac dan a 0

Solusi Kasus 461Algoritma :Masukkan koefisien aMasukkan koefisien bMasukkan koefisien cHitung DD = b2 4acJika D