Post on 15-Feb-2016
description
PENGANTAR ALGORITMA & PEMROGRAMAN
WILIS KASWIDJANTI, S.SI., M.KOM.
Bagan Sistem KomputerHardware
(Perangkat Keras)
Software (Perangkat Lunak)
Brainware (Manusia)
Komputer
Sistem OperasiBahasa
PemrogramanProgram Aplikasi
User/Pemakai
Contoh
Bahasa Pemrograman:
• C• Pascal• Basic• Delphi• Visual Basic• PHP• Java• dll
Siklus Software
Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman menempati posisi dibagian implementasi karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses coding (pembuatan program).
DEFINISI ALGORITMA & PEMROGRAMAN
Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:
Langkah : Menulis surat Surat dimasukkan ke dalam amplop tertutup Amplop dikasih alamat penerima dan pengirim Amplop ditempeli perangko secukupnya. Pergi ke Kantor Pos terdekat untuk
mengirimkannya
Analogi :
Apa Itu Algoritma ?Definisi :
Urutan langkah-langkah untuk memecahkan masalah yang disusun secara sistematis dan logis.
Kamus Besar Bahasa Indonesia:Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.
Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah.
Apa Itu Program/Pemrograman?
DefinisiKumpulan instruksi-instruksi
tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program).
Program : Realisasi dari Algoritma.Program = Algoritma +
Bahasa
Mengapa Algoritma ?
Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun.
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Syarat Algoritma Baik?
Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
Pemrosesan yang efisien (cost rendah)
Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
Sifatnya general Bukan sesuatu yang hanya untuk
menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
Bisa dikembangkan (expandable) Haruslah sesuatu yang dapat kita
kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
Mudah dimengerti Siapapun yang melihat, dia akan bisa
memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).
Portabilitas yang tinggi (portability)
Bisa dengan mudah diimplementasikan di berbagai platform komputer.
Precise (tepat, betul, teliti)
Efektif Tidak boleh ada instruksi yang tidak mungkin
dikerjakan oleh pemroses yang akan menjalankannya.
Harus terminate Jalannya algoritma harus ada kriteria berhenti.Output yang dihasilkan tepat.
Langkah Pembuatan Program
1. Mendefinisikan masalah2. Menemukan solusi3. Memilih algoritma4. Menulis program5. Menguji program6. Menulis dokumentasi7. Merawat program
Start
DesainAlgoritma & Flowchart
Menulis program
Test Kebenaran Program
Dokumentasi
Arsip
Mendefinisikan Masalah Langkah penting yang sering dilupakan Pendefinisian masalah secara rinci
pemrograman lebih terarah dan terfokus
Hukum Murphy (Henry Ledgard) :› “Semakin cepat menulis program, maka
semakin lama kita dapat menyelesaikannya”
Berlaku untuk problem yang kompleks Definisikan problem apa yang harus
dicarikan solusi tentukan input dan outputnya
Menemukan Solusi Problem jelas tentukan solusi yang
dipergunakan Problem kompleks bagi menjadi
modul-modul kecil solusi mudah Modul program program lebih simpel,
mudah dilihat, singkat Contoh invers matrik :
› Meminta input matrik dari user› Mencari invers matrik input› Menampilkan matrik hasil invers
Memilih Algoritma Pilihlah algoritma yang benar-benar
sesuai dengan problem yang akan dipecahkan
Pertimbangkan input dan output, serta efisiensi & efektivitas program
Penggunaan algoritma lain merupakan opsi terakhir
Menulis Program Pilihlah bahasa pemrograman yang
mudah Sesuaikan dengan kebutuhan program Memiliki interoperabilitas yang tinggi
terhadap perangkat keras dan platform lainnya
Menguji Program Uji program dengan intensif Handling error yang muncul Black box & white box testing Eror minimal -> program layak
digunakan
Debugging/Pengujian Program Syntax error :
› Kesalahan penulisan program Run time error :
› Kesalahan saat program dijalankan Logic error :
› Kesalahan tata urut dan logika pemrograman
› Program berjalan normal tapi output salah
Menulis Dokumentasi Dokumentasi -> memudahkan back
tracking dan modifikasi/revisi Komentar :
› Judul dan sekilas info program› Fungsi-fungsi dan prosedur› Variabel dan konstanta
Merawat Program Mencegah munculnya bug/error yang
tidak terdeteksi sebelumnya Penambahan fitur baru Modifikasi fitur yang sudah ada
Penulisan algoritma Kalimat Deskriptif Flow Chart (bagan alir) Pseudo Code (kode semu)
Kalimat deskriptif Menggunakan untaian kalimat untuk
menjelaskan langkah – langkah Contoh PROGRAM GanjilGenapDiberikan sebuah bilangan bulat positif X untuk dicek apakah termasuk ganjil atau genap
ALGORITMA1.Jika X habis dibagi 2 maka tulis “Genap”, jika tidak maka tulis “Ganjil”
Flowchart
Menggunakan simbol – simbol untuk menggambarkan aliran atau langkah – langkah
Contoh mulai
baca X
X mod 2 = 0
selesai
Tulis “Genap
Tulis “Ganjil”
tidak
ya
Pseudo code
Menggunakan kode – kode untuk menyatakan langkah – langkah
Mirip bahasa pemrograman Contoh
DEKLARASIX : integer
ALGORITMAread(X)if X mod 2 = 0 then {apakah X habis dibagi 2}
write(“Genap”) {jika ya}else
write(“Ganjil) {jika tidak}
Lambang-lambang flowchart
KETERANGAN SIMBOLMulai / Selesai (Terminator)
Aliran Data
Input / Output
Proses
Percabangan (Decision)
Pemberian nilai awal suatu variabel (Preparation) Memangggil prosedur / fungsi (Call)
Connector (di halaman yang sama)
Connector (di halaman lain)
Sequence process
Perulangan
Contoh Flowchart Problem :
› Menghitung luas persegi panjang
Algoritma :1. Masukkan panjang
(p)2. Masukkan lebar (l)3. Hitung luas (L),
yaitu panjang kali lebar
4. Cetak luas (L)
Mulai
Selesai
Masukkan p
Masukkan l
Hitung luasL = p x l
Tulis L
Contoh Flowchart Problem :
› Menentukan suatu bilangan termasuk bilangan ganjil atau genap
Algoritma :› Masukkan bilangan a› Hitung sisa pembagian
a dengan 2› Cek sisa bagi :
0 maka a termasuk bilangan genap
1 maka a termasuk bilangan ganjil
› Cetak hasil
Mulai
Selesai
Masukkan a
Hitung sisa pembagian a
(a mod 2)
Sisa bagi = 0?
Cetak Genap
Y
Cetak Ganjil
T
Beda antara algoritma dan pseudo-code untuk kasus mencari luas persegi panjang :
Algoritma Pseudo-codeMasukkan panjang Input panjang Masukkan lebar Input lebar Nilai luas adalah panjang x lebar
Luas panjang x lebar
Tampilkan luas Print luas
Contoh lain: Algoritma Pseudo-code
Jika sudah selesai, cetak invoice
IF KONDISI_SELESAI = “DONE” THENPRINT INVOICE
Nilai A dibagi dengan 2 A ← A / 2 Jika nilai A lebih besar dari 2maka nilai A dikalikan 3
IF A > 2 THEN A ← A x 3
Dari dua bilangan A dan B, cari bilangan yang terbesar
IF A > B THEN PRINT A ELSE PRINT B
Masukkan semua mata kuliah yang ingin diambil pada semester ini
DARI MATKUL = 0 SAMPAI MATKUL <= MATKUL_DIINGINKAN, MASUKANDATA MATKUL
Sebenarnya tidak ada aturan mengikat tentang penulisan algoritma dan pseudo-code, karena fungsi kedua hal ini adalah untuk memudahkan seseorang untuk menggambarkan urutan suatu kejadian. Sedangkan untuk para programmer, kedua hal ini berfungsi sebagai dasar alur pembuatan program. Di mana dapat merepresentasikan alur cerita dari client tentang kebutuhan dasar dari sebuah program, sehingga lebih mudah untuk dipahami.
Jadi pseudo-code bisa dikatakan juga sebagai algortima yang sudah sedikit digabungkan dengan bahasa pemrograman yang akan digunakan.
Contoh
Terdapat 2 buah ember A dan B masing – masing memiliki isi yang berbeda. Tuliskan algoritma untuk menukarkan isi masing – masing ember tersebut.
Jawaban ALGORITMA untuk menukar air dari ember A ke ember B,dibutuhkan satu ember kosong yaitu C.
air yang ada di ember A kita pindah dahulu ke ember C.
sekarang ember A kosong, kemudian isi yang ada di ember B kita pindah ke ember A.
sekarang ember A terisi dan ember B kosong.
kemudian isi yang ada di ember C kita pindah ke ember B.
sehingga ember A dan B sudah terisi dan tertukar sedang ember C menjadi kosong.
FLOWCHART
mulai
baca A,B,C
selesai
Tampilkan A,B
C = AA = BB = C
Pseudo code DEKLARASI A,B,C : integer
ALGORITMA A = 2 B = 5 C A isi di variabel A sudah pindah ke variabel C A B isi yang ada di variabel B sudah pindah ke variabel A B C isi yang ada di variabel C sudah pindah ke variabel B sehingga A 5 B 2
TugasBuatlah algoritma dan flowchart Menghitung Luas Lingkaran dan
menampilkan hasilnya Mengecek bilangan di antara 2
bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya