IF31204
Algoritma & Pemrograman Bab 1: Pengantar Algoritma
Universitas Komputer Indonesia
Oleh : Andri Heryandi, M.T. 1
Masalah Masalah adalah pertanyaan atau tugas yang kita cari jawabannya. Contoh :
Bagaimana cara memasak nasi goreng.? Ada data 5,3,2,7,4 ingin diurutkan dari kecil ke besar sehingga menjadi 2,3,4,5,7 Bagaimana cara menghitung lama rental internet dihitung dari jam masuk dan jam keluar. Ada data mahasiswa di file, bagaimana cara mencari mahasiswa yang bernama “asep” Dan lain-lain. Oleh : Andri Heryandi, M.T.
2
Definisi Algoritma 1. Urutan langkah-langkah untuk memecahkan masalah.[1] 2. Sekumpulan langkah-langkah yang dapat dikomputasi untuk mencapai sebuah hasil yang diinginkan.[2] 3. Deretan langkah-langkah komputasi yang mentransformasikan data masukan menjadi keluaran.[1]
Oleh : Andri Heryandi, M.T.
3
Sejarah Algoritma “algoritma” berasal dari nama seorang ahli matematika Persia yang bernama Abu Ja'far Mohammed ibn Mûsâ alKhowârizmî
Oleh : Andri Heryandi, M.T.
4
Penyajian/Notasi Algoritma Deskriptif Algoritma ditulis dalam bentuk yang independen dari spesifikasi bahasa pemrograman apapun. Mudah dibuat/dipahami oleh orang awam. Flowchart Algoritma ditulis dalam bentuk bagan alir. Pseudo-code Algoritma ditulis dalam bentuk notasi yang mirip dengan bahasa pemrograman (biasanyanya mirip bahasa Pascal atau C. Cara Pseudo-code inilah yang akan digunakan dalam perkuliahan ini. Oleh : Andri Heryandi, M.T.
5
Contoh Masalah Buatlah sebuah program yang dapat menentukan seseorang mahasiswa lulus di suatu matakuliah atau tidak. Data yang diinputkan adalah nilai matakuliah mahasiswa yang hanya boleh berisi antara 0 sampai 100. Seseorang akan disebut lulus jika nilainya lebih besar atau sama dengan 45.
Oleh : Andri Heryandi, M.T.
6
Solusi (Deskriptif) 1. Masukan nilai. 2. Ulangi langkah 1 jika nilai tidak berada dalam jangkauan 0 s/d 100. Jika nilai sudah berada dalam jangkauan 0 s/d 100, maka lanjutkan ke langkah berikutnya. 3. Jika nilai lebih besar atau sama dengan 45, maka tampilkan keterangan “Lulus”, jika tidak, tampilkan keterangan “Tidak lulus”. Oleh : Andri Heryandi, M.T.
7
Simbol Flowchart Simbol flowchart di Ms. Visio 2007
Oleh : Andri Heryandi, M.T.
8
Solusi (Flowchart)
Oleh : Andri Heryandi, M.T.
9
Struktur Teks Algoritma PROGRAM Nama_Program { Penjelasan tentang algoritma, yang berisi uraian singkat mengenai masalah apa yang akan diselesaikan, termasuk masukan dan keluarannya }
DEKLARASI/KAMUS { Semua nama yang dipakai, meliputi nama tipe, nama konstanta, nama peubah (variable), nama prosedur dan nama fungsi diumumkan/ditulis di sini }
ALGORITMA: { berisi langkah-langkah penyelesaian masalah }
Oleh : Andri Heryandi, M.T.
10
Solusi (pseudo-code) Algoritma Keterangan Lulus {I.S. : Nilai diinputkan user, harus antara 0 s/d 100} {F.S. : Keterangan kelulusan ditampilkan} Kamus: Nilai:integer Algoritma: repeat input(Nilai) until (nilai>=0) and (nilai<=100) if nilai>=45 then output("Lulus") else output("Tidak Lulus") endif
Oleh : Andri Heryandi, M.T.
11
Definisi Program Program adalah serangkaian (sequence) instruksi yang ditulis untuk melakukan sebuah pekerjaan dengan komputer. Program adalah implementasi dari algoritma yang ditulis dengan bahasa pemrograman Contoh bahasa pemrograman yang populer adalah : C, C++, C# Pascal Java, Javascript PHP, ASP, JSP Basic Pemrogram/Programmer adalah orang yang membuat program.
Oleh : Andri Heryandi, M.T.
12
Solusi (Contoh Program) Dalam bahasa pascal program keterangan_lulus; var nilai:integer; begin repeat write('Nilai : ');readln(nilai); until (nilai>=0) and (nilai<=100); if nilai>=45 then writeln('Lulus') else writeln('Tidak Lulus'); readln; end. Oleh : Andri Heryandi, M.T.
13
Kompilasi Kompilasi (compile) adalah memeriksa kebenaran sintaks program, dan jika tidak ada kesalahan akan mengubah kode program yang ditulis dalam bahasa pemrograman ke bahasa mesin yang siap dieksekusi oleh komputer.
Oleh : Andri Heryandi, M.T.
14
Menjalankan program Proses ini berguna untuk menjalankan program hasil kompilasi dari source code.
Oleh : Andri Heryandi, M.T.
15
Referensi 1. Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Rinaldi Munir, 2007 2. http://xlinux.nist.gov/dads//HTML/algorith m.html
Oleh : Andri Heryandi, M.T.
16