Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
ALGORITMA & PEMROGRAMAN
PERTEMUAN 1 PENGANTAR ALGORITMA DAN
PEMROGRAMAN
[email protected] http://mardiana4smart.webnode.com
Tujuan
• Mahasiswa memahami tahapan perancangan program.
• Mahasiswa memahami prinsip-prinsip algoritma
• pembuatan algoritma yang baik serta diagram alur (flowchart)
Sub Pokok Bahasan
• Struktur sistem komputer
• Definisi Program/pemrograman
• Definisi Bahasa Pemrograman
• Definisi algoritma
• Kriteria algoritma
• Penerapan algoritma
• Penulisan algoritma
• Desk Checking VS Plan Test
Bagan Sistem Komputer
Definisi Program/Pemrograman
• Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
• Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan yang mempunyai komponen-komponen : Input, Output, Proses, Percabangan dan Perulangan.
• Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer.
Bahasa Pemrograman
• Bahasa Pemrograman merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer.
• Contoh: C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll. Perbedaan dan persamaan bahasa pemrograman • Perbedaan: cara memberikan instruksi (sintaks) • Persamaan: bertujuan menghasilkan output yang sama
Mengapa Belajar Algoritma dan Pemrograman?
• Untuk melatih logika berpikir
• Untuk menulis kode dalam bahasa yang dimengerti komputer
• Untuk dasar matakuliah lain di Sistem Informasi
Niklaus Wirth
Eidgenossische Technische Hochschule
Zurich, Switzerland
Definisi Logika
• Logika identik dengan masuk akal dan penalaran.
• Penalaran adalah salah satu bentuk pemikiran. Pemikiran adalah pengetahuan tak langsung yang didasarkan pada pernyataan langsung pemikiran mungkin benar dan mungkin juga tak benar.
• Definisi logika sangat sederhana yaitu ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berfikir valid menurut aturan yang berlaku
• Pelajaran logika menimbulkan kesadaran untuk menggunakan prinsip-prinsip untuk berfikir secara sistematis.
Asal-usul kata algoritma
• Abu Ja’far Muhammad Ibnu Musa Al Khuwarizmi adalah seorang penulis buku Arab yang berjudul Kitab Al Jabar Wal Muqabala (Buku Pemugaran dan Pengurangan). Kata Al Khuwarizmi dibaca orang Barat menjadi algorism.
• Kata algorism berarti proses menghitung dengan angka Arab. Seseorang dikatakan algorist jika orang tersebut menggunakan angka Arab.
• Kata algorism lambat laun menjadi algorithm disebabkan kata algorism sering dikelirukan dengan kata arithmetic sehingga akhiran –sm berubah menjadi –thm. Kata algorithm diserap ke dalam bahasa Indonesia menjadi algoritma.
Definisi Algoritma
• Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
• Kata logis disini berarti benar sesuai dengan logika manusia.
• Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar.
Penerapan Algoritma • Algoritma merupakan jantung ilmu komputer atau informatika.
Tapi penerapan algoritma tidak selalu di identikan dengan ilmu komputer saja,
melainkan sangat luas. Dalam kehidupan sehari-hari kita sering menjumpai
kegiatan penerapan algoritma tapi tanpa di sadari.
• Misal:
* Langkah-langkah membuat kue
* Membuat pakaian
* Membuat alat musik
* Pengambilan uang di ATM dll.
Kriteria algoritma yang baik adalah : 1. Memiliki logika perhitungan/metode yang tepat dalam memecahkan
masalah . 2. Menghasilkan output yang tepat dan benar dalam waktu yang singkat
(output). 3. Ditulis dengan bahasa yang standar secara sistematis dan rapi sehingga
tidak menimbulkan arti ganda. 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke
dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas. 6. Semua proses harus berakhir setelah sejumlah langkah dilakukan. Suatu Algoritma yg terbaik (The Best) : “ Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan dip’oleh suatu solusi ataupun tdk ada solusinya. “
Penulisan Algoritma Penulisan algoritma dapat di tuangkan dengan bentuk:
• Pseudo code yaitu kode atau intruksi perintah yang menyerupai penjelasan bahasa sehari-hari yang di mengerti oleh manusia.
• Algoritma pemrograman yang penulisan intruksinya lebih mendekati intruksi-intruksi bahasa pemrograman.
• Flowchart program merupakan langkah-langkah (instruksi-instruksi) program yang menceritakan kejadian suatu proses satu dengan proses lainya dalam suatu program secara mendetail yang di wakilkan dalam bentuk simbol-simbol.
Contoh Algoritma 1
Pseudocode
Nilai A adalah 5
Nilai B adalah 4
C diperoleh dari A ditambah dengan B
Cetak nilai C
Selesai
Diketahui dua buah bilangan masing- masing bernilai 5 dan 4. Susunlah pseudocode/agoritma untuk menjumlahkan bilangan tersebut.
Algoritma
A 5
B 4
C A + B
WRITE(C)
End
TAHAPAN PERANCANGAN PROGRAM
Tujuh langkah dasar dalam perancangan/ pengembangan program : 1. Definisi Masalah 2. Outline Solusi 3. Pengembangan outline ke dalam algoritma 4. Melakukan test terhadap algoritma 5. Memindahkan algoritma ke dalam bahasa pemrograman 6. Menjalankan program pada komputer 7. Dokumentasi dan pemeliharaan program
20
1. Definisi Masalah
• Pada tahap ini memerlukan pemahaman terhadap permasalahan dengan
membaca berulang kali sampai dengan mengerti apa yang dibutuhkan.
• Permasalahan dibagi kedalam tiga komponen:
• Input / Masukan
• Output / Keluaran
• Proses
21
Contoh : Menjumlah Tiga Angka
• Input
angka 1
angka 2
angka 3
• Proses
Read
Add
• Output
Total
Program diharuskan membaca tiga angka, menjumlahkannya bersamaan, lalu mencetak totalnya
2. Outline Solusi • Setelah permasalahan didefinisikan, permasalahan dapat di bagi kedalam
tugas tugas atau langkah langkah yang lebih kecil dan menghasilkan outline solusi
• Outline solusi awal dapat terdiri dari:
– Proses utama
– Subtask utama
– Struktur Kontrol
– Variabel dan struktur record
– Logic utama (mainline)
23
3. Pengembangan Outline Ke Dalam Algoritma
• Outline solusi pada langkah kedua dikembangkan menjadi algoritma yaitu
sebuah set langkah yang menggambarkan tugas yang akan dikerjakan dan
urutan pengerjaannya.
24
Menjumlah Tiga Angka
• Input
angka 1
angka 2
angka 3
• Proses
read
add
• Output
Total
Add_Tiga_Angka Read angka1, angka2, angka3
total = angka1 + angka 2 + angka 3 Print total
End
4. Melakukan Test Terhadap Algoritma
• Tujuan utama dari melakukan test terhadap algoritma adalah adalah untuk menemukan
kesalahan utama logik sejak awal, sehingga akan lebih mudah diperbaiki.
• Data test diperlukan untuk melakukan test terhadap algoritma ini.
26
5. Memindahkan Algoritma Ke Dalam Bahasa Pemrograman
Setelah ke-empat langkah sebelumnya dilakukan, maka pencodingan dapat dimulai dengan
menggunakan bahasa pemrograman yang dipilih.
Cth :
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<iostream.h>
#define phi 3.14
main(){
int r;
float luas;
cout<<"Masukan Jari-Jari Lingkaran : ";cin>> r;
luas = phi * pow(r,2);
cout<<"Luas Lingkaran = "<<luas;
getch();}
27
6. Menjalankan Program Pada Komputer
• Setelah pengcodingan, maka program dapat dijalankan pada komputer.
Jika Program sudah didesain dengan baik, maka akan mengurangi tingkat
kesalahan dalam melakukan testing program.
• Langkah ini perlu dilakukan beberapa kali, sehingga program yang
dijalankan dapat berfungsi dengan benar
28
DESK CHECKING ALGORITMA
Setelah algoritma solusi dibuat, maka algoritma tersebut harus di cek untuk mengetahui apakah algoritma solusi yang dirancang sudah benar atau belum.
Pengecekan ini biasanya disebut dengan desk checking atau tehnik manual untuk memeriksa logika algoritma.
29
Desk Checks vs Test Plans
Desk Check menekankan pada nilai variabel dan logika. Contoh : Berapakah nilai variabel x setelah pernyataan; Apa pernyataan berikutnya yang akan dieksekusi ?
Test Plan fokus pada nilai input dan output yang dibutuhkan untuk menguji program tanpa memperdulikan kinerja internal. Contoh : Apa output yang benar dari sebuah input ?
Tahapan Pengecekan Algoritma
31
1. Pilih data sederhana yang valid. Dua atau tiga data biasanya sudah mencukupi.
2. Tentukan hasil output yang diharapkan untuk setiap set data.
3. Buatlah tabel yang nama variabel yang ada pada algoritma di sebuah kertas
4. Jalankan test satu persatu mengikuti algoritma yang ada, mulai dari perintah / statement pertama sampai dengan selesai
5. Ulangi langkah tersebut menggunakan set data yang lain.
6. Cek apakah hasil dari langkah 5, sesuai dengan hasil yang diharapkan di langkah kedua
Contoh • Algoritma solusi:
program_kalkulator
baca bil_1, bil_2
jumlah = bil_1 + bil_2
selisih = bil_1 – bil_2
kali = bil_1 * bil_2
bagi = bil_1 / bil_2
cetak jumlah, selisih, kali, bagi
END
Contoh
• Plan Test :
• Data input:
Data 1 Data 2
Bil_1 10 20
Bil_2 5 10
Contoh
• Plan Test
• Hasil yang diharapkan:
Data 1 Data 2
Jumlah 15 30
Selisih 5 10
Kali 50 200
Bagi 2 2
Contoh
• Tabel desk checking
cetak bil_1 bil_2 jumlah selisih kali bagi
Data ke - 1
Baca 10 5
jumlah 15
selisih 5
kali 50
bagi 2
cetak ya ya ya ya
Data ke-2
Baca 20 10
jumlah 30
selisih 10
kali 200
bagi 2
cetak ya ya ya ya
7. Dokumentasi & Pemeliharaan Program
• Dokumentasi melibatkan eksternal dokumentasi (hierarchy chart,
algoritma solusi, dan hasil data test) dan internal dokumentasi (coding
program)
• Pemeliharaan program meliputi perubahan yang dialami oleh program
(perbaikan ataupun penambahan modul, dll)
36
Latihan 1
Buatlah suatu pseudocode untuk proses pembuatan kopi yang rasa manisnya tepat
Latihan 2
• Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas?
teh kopi
Jawaban Latihan 2
Algoritma • Siapkan gelas cadangan X
• Tuangkan gelas yang berisi teh ke gelas cadangan
• Tuangkan gelas yang berisi kopi ke gelas yang awalnya dipakai teh
• Tuangkan isi gelas cadangan ke gelas yang awalnya berisi kopi
teh
kopi teh
X
X
kopi X
Latihan 3
• Buatlah pseudocode/algoritma untuk menghitung luas lingkaran (data masukan diinput)
Latihan 4
• Algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap.
Latihan 5
Susun algoritma untuk menginput 3 buah bilangan bulat yang masing-masing menyatakan panjang sebuah garis. Kemudian periksa ketiga buah garis tersebut, apakah dapat membentuk sebuah segitiga. Bila ketiga buah garis tersebut dapat membentuk sebuah segitiga, maka cetak perkataan “SEGITIGA”, tapi bila ketiga buah garis tersebut tidak dapat membentuk sebuah segitiga, maka cetak perkataan “BUKAN SEGITIGA”. Pada sebuah segitiga berlaku suatu kepastian bahwa : Total panjang dua buah sisi selalu lebih besar dari panjang satu sisi yang lain.
Tugas Buatlah algoritma :
1. Untuk mengurutkan 3 bilangan acak!. Misal 3 bilangan adalah 35, 12, 27
2. Ada 2 gelas kosong berukuran: 5 liter dan 3 liter
Bagaimana cara kita mendapatkan air berukuran 4 liter?
3. Menentukan apakah tahun yang diinputkan termasuk tahun kabisat/bukan.
4. Menghitung ekivalensi bilangan dalam detik menjadi berapa hari, jam berapa menit dan berapa detik
Questions?