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
Algoritma
PEMECAHAN
Source Code
SOLUSI / HASIL
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
Sintak Err T Executable code: => Run
Y
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
Executable code: => Run
x2 = (-b – sqrt(b^2 - 4ac))/2a Output Err
DOKUMEN TASI
24
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
Start
TULIS PROGRAM
COMPILE
Masukkan a,b,c Sintak Err d = b^2 – 4ac d<0
T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a
Executable code: => Run
Y Cetak: “Akar majiner”
Output Err
Cetak: x1, x2 DOKUMEN TASI
Stop
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
Arah
Proses
Konektor
Input/Output
Konektor antar halaman
Dokumen
Pemanggilan Procedure
Pemilihan 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 Y d<0 T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a
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: 01234
56
Studi
Kasus satu
1. Menghitung Luas Permukaan kubus :6 *
luas sisi kubus 2. Menghitung Volume bola : 4/3*Phi* r3 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 ax2+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 ax2 + bx + c=0. Analisis: Mencari nilai akar-akar persamaan kuadrat dan menampilkan hasilnya. Input:
koefisien a, b, c
Output: x1, x2 Rumus : x1= (-b + √D )/2a x2= (-b - √D )/2a dengan D = b2 – 4ac
dan a ≠ 0
Algoritma : 1. 2. 3. 4.
Masukkan koefisien a Masukkan koefisien b Masukkan koefisien c Hitung D
D = b2 – 4ac 5. Jika D<0 maka 5.1 Tampilkan “Tidak ada akar real” Jika tidak, maka 5.2 Hitung x1 x1= (-b + √D )/2a 5.3 Hitung x2 x2= (-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 Y d<0 T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a
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