PEMROGRAMAN DASAR Sistem Informasi PTIIK UB Semester Ganjil 2015/2016
Pengenalan Algoritma
Dr. Eng. Herman Tolle, ST., MT Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya
“metode yang terdiri dari langkah-langkah terstuktur untuk mencari solusi suatu masalah tertentu dengan bantuan komputer”
ALGORITMA KOMPUTER
• Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu memahami dan dapat menjelaskan tentang: 1. Konsep dasar pemrograman komputer, 2. Algoritma, dan 3. Tahapan pembuatan algoritma pemrograman terstruktur.
3
– Konsep Dasar Pemrograman – Definisi Algoritma
– Tahap Pengembangan Algoritma – Penyajian algoritma – Pseudocode – Flow Chart – Pemrograman Terstruktur 4
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 5
• 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 langkah-langkah terstuktur untuk mencari solusi suatu masalah dengan bantuan komputer.
6
Algoritma Membuat Program Komputer adalah seperti Membuat Kopi
MASALAH / IDEA
Algoritma
PEMECAHAN
Source Code
SOLUSI / HASIL
Executable Code
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM COMPILE
Y
Sintak Err T Executable code: => Run
Y
Output Err T DOKUMEN TASI 9
Kasus: Akar Persamaan Kuadrat PENYELESAIAN SECARA MATEMATIS • Persamaan Kuadrat: aX2 + bX + c = 0 • Contoh: X2 + 5X + 6 = 0 (X+x1)(X+x2) = 0; • Solusi:
x1, x2 = ?
X2 + 5X + 6 = 0 a = 1, b = 5, c = 6 x1 = (-b + √ (b2–4.a.c)) / 2.a = (-5 + √52 – 4.1.6) / 2 = (-5 + √(25-26)) / 2 = (-5 + 1 ) / 2 = -4 / 2 = -2 x2 = (-b - √ (b2–4.a.c)) / 2.a = (-5 - √52 – 4.1.6) / 2 = = (-5 - 1 ) / 2 = -6 / 2 = - 3
• Akar dari X2 + 5X + 6 = 0 adalah (X+2)(X+3) = 0; x1 = -2, x2 = -3
Kasus: Akar Persamaan Kuadrat PENYELESAIAN DENGAN KOMPUTER • Membuat sebuah program komputer yang dapat menghitung secara otomatis akar dari suatu persamaan kuadrat, dimana pengguna hanya menginputkan nilai (a, b, c) dari bentuk persamaan kuadratnya. • Program komputer adalah bersifat generic dan umum, dibuat untuk menyelesaikan semua kasus persamaan kuadrat dengan nilai a, b, c apapun yang memenuhi aX2 + bX + c = 0 • Programmer memberikan perintah dalam bentuk urutanurutan langkah yang harus dikerjakan oleh komputer, perintah-perintah tersebut dalam bentuk Kode Program • Sekali komputer telah deprogram, maka proses tsb dapat dikerjakan sendiri oleh komputer
Kasus: Akar Persamaan Kuadrat PENYELESAIAN DENGAN KOMPUTER • Langkah-langkah yang dilakukan Programmer: 1. Membuat Pemodelan Matematis 2. Membuat Algoritma, urutan langkah penyelesaian 3. Membuat Kode Program 4. Menjalankan / Menguji Program 5. Mendokumentasikan Program jika sudah berhasil
Kasus: Akar Persamaan Kuadrat PENYELESAIAN DENGAN KOMPUTER Langkah 1: Pemodelan Matematis • Persamaan Kuadrat: aX2 + bX + c = 0 • Langkah Penyelesaian: 1. Tentukan Output: Output: x1, x2 2. Buat Proses untuk menghitung output dengan menggunakan nilai-nilai yang sudah diketahui (input) Proses: x1 = (-b + √ (b2–4.a.c)) / 2.a x2 = (-b - √ (b2–4.a.c)) / 2.a
Pastikan bahwa semua nilai yang ada pada bagian sebelah kanan dari tanda = (sama dengan) telah diketahui nilainya. 3. Tentukan Input: Input: a, b, c?
Kasus: Akar Persamaan Kuadrat PENYELESAIAN DENGAN KOMPUTER Langkah 2 Membuat Algoritma • Persamaan Kuadrat: aX2 + bX + c = 0 • Langkah Penyelesaian: 1. Input: a, b, c? 2. Proses: x1 = (-b + √ (b2–4.a.c)) / 2.a x2 = (-b - √ (b2–4.a.c)) / 2.a
3.
Output: x1, x2
Algoritma secara umum harus dalam urutan IPO INPUT-PROSES-OUTPUT Ingat Algoritma Membuat Kopi!
Algoritma Persamaan Kuadrat Mulai Input a? Input b? Input c? x1 = (-b + √ (b2–4.a.c)) / 2.a x2 = (-b - √ (b2–4.a.c)) / 2.a Cetak hasil x1 Cetak hasil x2 Selesai
Kasus: Akar Persamaan Kuadrat PENYELESAIAN DENGAN KOMPUTER Langkah 3 Membuat Program Komputer class PersamaanKuadrat { public static void main (String arg[]) { System.out.print(“Nilai A?”); int A = input.nextInt(); System.out.print(“Nilai B?”); int B = input.nextInt(); System.out.print(“Nilai C?”); int C = input.nextInt(); double X1, X2; X1 = (-B + Math.sqrt(B*B-4*A*C))/(2*A); X2 = (-B - Math.sqrt(B*B-4*A*C))/(2*A);
System.out.println(“X1 = “ + X1); System.out.println(“X2 = “ + X2); }}
Algoritma Persamaan Kuadrat Mulai
Input a? Input b? Input c? x1 = (-b + √ (b2–4.a.c))/ 2.a x2 = (-b - √ (b2–4.a.c))/ 2.a
Cetak hasil x1 Cetak hasil x2
Selesai
Kasus: Akar Persamaan Kuadrat PENYELESAIAN DENGAN KOMPUTER Langkah 4 Menjalankan Program Komputer class PersamaanKuadrat { public static void main (String arg[]) { System.out.print(“Nilai A?”); int A = input.nextInt(); System.out.print(“Nilai B?”); int B = input.nextInt(); System.out.print(“Nilai C?”); int C = input.nextInt(); double X1, X2; X1 = (-B + Math.sqrt(B*B-4*A*C))/(2*A); X2 = (-B - Math.sqrt(B*B-4*A*C))/(2*A);
System.out.println(“X1 = “ + X1); System.out.println(“X2 = “ + X2); }}
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 17
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
18
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
19
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code: => Run
Output Err
DOKUMEN TASI
20
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code: => Run
Output Err
DOKUMEN TASI 21
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code: => Run
Output Err
DOKUMEN TASI 22
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code: => Run
Output Err
DOKUMEN TASI 23
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code: => Run
Output Err
DOKUMEN TASI 24
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code: => Run
Output Err
DOKUMEN TASI 25
• Algoritma bisa dibuat dengan: – Teknik Tulisan seperti : Structure english dan Pseudocode. – Teknik Visual seperti : Flow chart.
26
• 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”)
27
Tujuh operasi dasar komputer: 1. 2. 3. 4. 5. 6. 7. 8.
Membaca data (Input) Menampilkan data (Output) Melakukan perhitungan aritmetika (Compute) Memberikan nilai ke suatu identifier (Store) Membandingkan dan Memilih (Compare) Melakukan pengulangan (Loop) Array Function / Method 28
• Digunakan untuk memberikan input kepada komputer (program) • Input harus disimpan pada variable penampung • statement yang biasa digunakan: “Read”, “Get”, “Baca” ,”Input” atau “KeyIn”
• Contoh: Read Bilangan Get kode_pajak
Baca nama_mahasiswa 29
• Digunakan untuk menampilkan / mengeluarkan data ke media keluaran seperti monitor atau printer • Statement yang biasa digunakan: “Print”, “Write”, “Put”, “Output”, “Display” ataupun “Cetak” • Contoh: Print “Universitas Brawijaya” Cetak “Dasar Pemrograman Komputer” Output Total
30
• 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 31
• 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 32
• 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
33
• Digunakan untuk memberikan perintah agar sebuah (atau sekumpulan proses) dikerjakan berulang sebanyak jumlah tertentu atau selama suatu kondisi terpenuhi • Menggunakan keyword: “DOWHILE” dan “ENDDO”. • Contoh Bil = 0 DOWHILE bil < 10 cetak bil bil = bil +1 ENDDO
34
Algoritma Menggunakan Kalkulator Mulai Nyalakan kalkulator Kosongkan Kalkulator Ulangi Input harga Tekan tombol Plus (+) Sampai semua harga diinput Tampilkan total harga Matikan kalkulator
Selesai 35
Algoritma Berangkat Kuliah Mulai Bangun dari tempat tidur Mandi Pagi Sarapan Pagi Pergi Ke Kampus Cari Ruang Kuliah Masuk kelas untuk Kuliah
Selesai 36
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 37
Terminator
Arah
Proses
Konektor
Input/Output
Konektor antar halaman
Dokumen
Pemanggilan Procedure
Pemilihan
Pengulangan
38
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
Stop
39
1. Mempunyai logika yang tepat untuk memecahkan masalah. 2. Menghasilkan output yang benar dalam waktu yang singkat. 3. Ditulis dengan bahasa baku terstruktur sehingga tidak menimbulkan arti ganda.
4. Ditulis dengan format baku sehingga mudah diimplementasikan kedalam bahasa pemrograman. 5. Semua operasi didefinisikan dengan jelas dan berakhir sesudah sejumlah langkah. 40
• Pemrograman terstruktur merupakan pola penyusunan program komputer hanya dengan menggunakan tiga struktur kontrol yaitu: 1. Sequence 2. Selection 3. Repetition
41
• 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 – dari atas ke bawah - mengalir 42
• 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 43
• 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).
44
Contoh Selection • 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 45
• Beberapa statement / perintah dapat diulang dengan menggunakan struktur kontrol repetition. • Statement / perintah akan tetap diulang selama kondisi perulangan memenuhi (jika menggunakan DOWHILE – ENDDO)
46
Contoh Repetition • 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 47
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.
48
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.
49
• Ulangi latihan no. 1 s/d no. 5 diatas dengan menggunakan Flow Chart.
50
Pseudocode // Pseudocode Menghitung Luas Persegi Panjang Cetak “Berapa Panjang?” Baca PANJANG Cetak “Berapa Lebar?” Baca LEBAR Hitung LUAS = PANJANG * LEBAR Cetak “Luas Persegi = “ + LUAS
Kelas Praktikum 1 • Menyelesaikan Latihan Soal No 3, 4 dan 5 • Menyelesaikan Flow Chart 2, 3, 4, 5 • Dikumpulkan ke Asisten