Pertemuan 01 Pemrograman Dasar 1
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Menjelaskan tentang konsep dasar pemrograman komputer, algoritma dan tahapan pembuatan algoritma pemrograman terstruktur. 2
Konsep Dasar Pemrograman Definisi Algoritma Tahap Pengembangan Algoritma Penyajian algoritma Pseudocode Flow Chart Pemrograman Terstruktur 3
COMPUTER TO COMPUTE + ER (Menghitung/Mengolah bilangan) (Mengolah Data) Data yg Diolah (Masukan/Input) PUSAT PENGOLAH DATA (berbasis Arithmatika dan Logika) Data hasil pengolahan (Keluaran/Output) Penyimpanan Data 4
Pemrograman adalah suatu aktifitas pemecahan masalah. Metode pemecahan masalah dibahas pada berbagai bidang, misalnya: Di bidang bisnis digunakan pendekatan sistem Di bidang teknik dan sains digunakan metode teknik dan saintifik Di bidang pemrograman digunakan metode pengembangan software Langkah-langkah dalam metode Pembuatan Program: 1. Menspesifikan kebutuhan masalah -> identifikasi masalah 2. Menganalisis masalah -> metode penyelesaian terbaik 3. Merancang/mendesign algoritma untuk menyelesaikan masalah -> Design pemrograman 4. Mengimplementasikan algoritma -> coding 5. Mentest dan memverifikasi program -> debuging; testing 6. Memelihara dan meng-update program -> maintenance 5
Kita 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 aspekaspek yang tidak penting dari masalah. Dalam langkah ini, kita mungkin membutuhkan informasi dari orangorang yang terlibat dalam masalah tersebut. 6
Kita harus dapat mengidentifikasi masalah berkaitan dengan: Input Output Kebutuhan tambahan atau batasan dari penyelesaian masalah Format 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 hatihati 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. 7
Contoh: 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_beli Harga per kg apel (dalam rupiah) -> harga_kg Output: Total harga apel (dalam rupiah) -> total Rumus : total = harga_kg x kg_beli Proses pemodelan suatu masalah dengan cara mengekstrak variabel-variabel penting dan hubungan di antara variabelvariabel disebut abstraksi. 8
Dalam 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. 9
Algoritma 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 langkahlangkah terstuktur untuk mencari solusi suatu masalah dengan bantuan komputer. 10
Hampir setiap algoritme komputer terdiri dari submasalah berikut: Memasukkan data Melakukan perhitungan Menampilkan hasil Proses 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. 11
Pada tahap ini dilakukan penulisan program, yaitu mengkonversi algoritme yang disusun pada tahap sebelumnya ke dalam bahasa pemrograman yang dipilih. 12
Setelah 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. 13
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. 14
MASALAH / IDEA PEMECAHAN SOLUSI / HASIL Algoritma Source Code Executable Code
Problem : 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 -> mil Output : Jarak dalam kilometer -> km Rumus : 1 mil = 1.609 km 16
Design : Algoritme awal : 1. Masukkan jarak dalam mil 2. Konversi jarak dari mil ke kilometer 3. Tampilkan hasil dalam kilometer Penghalusan algoritme : 1. Masukkan jarak dalam mil 2. Konversi jarak dari mil ke kilometer 2.1. Jarak dalam kilometer adalah 1.609 kali jarak dalam mil. 3. Tampilkan hasil dalam kilometer Contoh 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. 17
Implementasi : /* Konversi jarak dari mil ke kilometer */ #include <stdio.h> /* 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.00 Hasil konversi adalah 16.090000 kilometer 18
Pengetesan Untuk memverifikasi bahwa program sudah berjalan sesuai dengan kebutuhan, cobalah mentest program dengan memasukkan beberapa jarak dalam mil yang lain. 19
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? 20
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Y Y Sintak Err T Executable code: => Run Output Err T DOKUMEN TASI 22
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Masalah: Tentukan akar-akar dari suatu persamaan kwadrat. Definisi: Persamaan kwadrat : ax^2 + bx + c = 0 Data yg diperlukan : Nilai dari a, b dan c : tipe real Sintak Err Executable code: => Run Output Err DOKUMEN TASI 23
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Model Matematika : Sintak Err Rumus ABC x1 = (-b + sqrt(b^2-4ac))/2a x2 = (-b sqrt(b^2-4ac))/2a Executable code: => Run Output Err DOKUMEN TASI 24
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM Start COMPILE Masukkan a,b,c d = b^2 4ac Sintak Err d < 0 T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Y Cetak: Akar majiner Executable code: => Run Output Err Cetak: x1, x2 Stop DOKUMEN TASI 25
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 26
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 27
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 28
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 29
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 30
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI 31
Algoritma bisa dibuat dengan: Teknik tulisan seperti : Structure english dan Pseudocode. Teknik visual seperti : Flow chart. 32
Outline dari sebuah program komputer Ditulis dalam bahasa Inggris atau Indonesia sederhana Kata kunci (keyword) digunakan untuk menjelaskan struktur kendali (misalnya: jika, ulangi, sampai, if, repeat, until ) 33
Tujuh operasi dasar komputer: 1. Membaca data (Input) 2. Menampilkan data (Output) 3. Melakukan perhitungan aritmetika (Compute) 4. Memberikan nilai ke suatu identifier (Store) 5. Membandingkan dan Memilih (Compare) 6. Melakukan pengulangan (Loop) 7. Procedure dan atau Function 34
Sewaktu komputer menerima informasi atau input, maka statement yang biasa digunakan adalah Read, Get, Baca, Input atau KeyIn Contoh: Read Bilangan Get kode_pajak Baca nama_mahasiswa 35
Sewaktu komputer menampilkan informasi ataupun output, maka statement yang biasa digunakan adalah Print, Write, Put, Output, Display ataupun Cetak Contoh: Print Universitas Brawijaya Cetak Dasar Pemrograman Komputer Output Total 36
Untuk 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 37
Ada tiga cara untuk memberikan nilai ke dalam variabel : Memberikan nilai awal, menggunakan statement Initialize atau Set Memberikan nilai sebagai hasil dari suatu proses, maka tanda = digunakan Untuk menyimpan suatu nilai maka statement Save atau Store digunakan Contoh: Set Counter to 0 Total = Harga * Jumlah 38
Salah 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 * harga ELSE Discount = 0.2 * harga ENDIF 39
Jika ada beberapa perintah yang harus diulang, maka dapat digunakan keyword DOWHILE dan ENDDO. Contoh Bil = 0 DOWHILE bil < 10 cetak bil bil = bil +1 ENDDO 40
Algoritma Menggunakan Kalkulator Mulai Nyalakan kalkulator Kosongkan Kalkulator Ulangi Input harga Tekan tombol Plus (+) Sampai semua harga diinput Tampilkan total harga Matikan kalkulator Selesai 41
Algoritma Berangkat Kuliah Mulai Bangun dari tempat tidur Mandi Pagi Sarapan Pagi Pergi Ke Kampus Cari Ruang Kuliah Masuk kelas untuk Kuliah Selesai 42
Algoritma Sarapan Pagi Mulai Ambil piring Masukkan nasi dan lauk dalam piring Ambil sendok dan garpu Ulangi Angkat sendok dan garpu Ambil nasi dan lauk Suapkan ke dalam mulut Taruh sendok dan garpu Kunyah Sampai (nasi dan lauk habis) ATAU kekenyangan Bereskan piring, sendok dan garpu Selesai 43
Terminator Proses Arah Konektor Input/Output Dokumen Pemilihan Konektor antar halaman Pemanggilan Procedure Pengulangan 44
45
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. 47
Start Masukkan a,b,c d = b^2 4ac d < 0 T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Y Cetak Pesan Akar imajiner Cetak x1,x2 End 48
Mempunyai 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. 49
Pemrograman terstruktur merupakan pola penyusunan program komputer hanya dengan menggunakan tiga struktur kontrol yaitu: 1. Sequence 2. Selection 3. Repetition 50
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-down 51
Contoh: Cetak Jumlah Mahasiswa Set Jumlah to 49 Cetak Tambahan mahasiswa baru Baca mhs_baru Jumlah = Jumlah + mhs_baru Cetak Jumlah Mahasiswa Cetak 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 52
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). 53
Contoh : IF Hari=1 THEN Cetak Senin ELSE Cetak Bukan hari Senin ENDIF Penjelasan Tulisan Senin akan ditampilkan jika Hari bernilai 1, jika tidak maka tulisan Bukan hari Senin yang akan ditampilkan 54
Beberapa statement / perintah dapat diulang dengan menggunakan struktur kontrol repetition. Statement / perintah akan tetap diulang selama kondisi perulangan memenuhi (jika menggunakan DOWHILE ENDDO) 55
Contoh: Bintang = 0 DOWHILE bintang < 5 Cetak bintang bintang = 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 56
Studi Kasus satu 1. Menghitung Luas Permukaan kubus :6 * luas sisi kubus 2. Menghitung Volume bola : 4/3*Phi* r 3 3. Memperkirakan lama di jalan bila kecepatan mobil 50 km/jam dan jarak tempuh 100 km : lama di jalan = jarak/kecepatan 4. Mencari nilai akar persamaan ax 2 +bx+c=0
Problem: 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
Algoritma : 1. Masukkan rusuk kubus (r) 2. Hitung luas luas = 6 x r x r 3. tampilkan luas
PsuedoCode start read r; Calculate luas=6 * r * r; Display luas; stop Tulisan disamping seklias mirip dengan bahasa pemrograman, padahal sebenarnya adalah bahasa Indonesia/ Inggris yang berisi urutan proses dan ditulis mirip code program 60
Problem: Cari dan tampilkan akar-akar persamaan kuadrat ax 2 + bx + c=0. Analisis: Mencari nilai akar-akar persamaan kuadrat dan menampilkan hasilnya. Input: koefisien a, b, c Output: x 1, x 2 Rumus : x 1 = (-b + D )/2a x 2 = (-b - D )/2a dengan D = b 2 4ac dan a 0
Algoritma : 1. Masukkan koefisien a 2. Masukkan koefisien b 3. Masukkan koefisien c 4. Hitung D D = b 2 4ac 5. Jika D<0 maka 5.1 Tampilkan Tidak ada akar real Jika tidak, maka 5.2 Hitung x1 x 1 = (-b + D )/2a 5.3 Hitung x2 x 2 = (-b - D )/2a 5.4 tampilkan x1 5.5 tampilkan x2 6. END
Contoh Psuedocode start baca a; baca b; baca c; hitung D=b^2-4*a*c; IF D<0 { cetak "Tidak ada akar real"; } ELSE { hitung x1=(-b+sqrt(d))/2a; hitung x2=(-b-sqrt(d))/2a; cetak x1; cetak x2; } stop Tulisan disamping seklias mirip dengan bahasa pemrograman, padahal sebenarnya adalah bahasa Indonesia/ Inggris yang berisi urutan proses dan ditulis mirip code program 63
Start Masukkan a,b,c d = b^2 4ac d < 0 T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Y Cetak Tidak ada akar real Cetak x1,x2 End 64
1. Buatlah algoritma menggunakan pseudocode untuk menghitung luas persegi panjang 2. Buatlah algoritma menggunakan pseudocode untuk mengubah jam dan menit yang diinput ke dalam satuan detik. 3. Buatlah algoritma menggunakan pseudocode untuk menentukan apakah bilangan yang diinput adalah bilangan ganjil atau bilangan genap. 65
4. Buatlah algoritma menggunakan pseudocode untuk menghitung luas lingkaran. 5. Buatlah algoritma menggunakan pseudocode untuk menginput 3 buah bilangan, kemudian tentukan bilangan terbesar, terkecil dan rataratanya. 66
Ulangi latihan no. 1 s/d no. 5 diatas dengan menggunakan Flow Chart. 67
Pak Tono diberi tugas mengambil air dari sungai sebanyak 4 Liter. Pak Tono hanya dibekali dua ember yang berukuran 5 liter dan 3 liter. Pak Tono dilarang menggunakan alat bantu lain. Buatlah langkah agar Pak Tono mendapatkan air 4 liter yang dimaksud! 68