Pengenalan Algoritma - AKADEMI TELKOM JAKARTA

Download Report

Transcript Pengenalan Algoritma - AKADEMI TELKOM JAKARTA

Pengenalan Algoritma
dan Pemrograman
Mata kuliah Algoritma dan Pemrograman
Pertemuan ke-1
Yan Puspitarani,ST
Apakah Algoritma itu ?
► Algorism,
proses menghitung dengan
bahasa Arab
► Algorism berasal dari nama penulis buku
Arab yang terkenal yaitu Abu Ja’far
Muhammad ibnu Musa al-Khuwarizmi yang
menulih Kitab al jabar wal-muqabala
-Alpro 2009-
2
Apakah Algoritma itu ?
► Urutan
langkah-langkah logis penyelesaian
masalah yang disusun secara sistematis
► Urutan logis pengambilan keputusan untuk
pemecahan masalah
► Logis : hasil dari urutan langkah tersebut harus
dapat ditentukan benar atau salah
► Dalam bidang pemrograman,
 Algoritma didefinisikan sebagai suatu metode khusus
yang tepat dan terdiri dari serangkaian langkah yang
terstruktur dan dituliskan secara sistematis yang akan
dikerjakan untuk menyelesaikan suatu masalah dengan
bantuan komputer.
-Alpro 2009-
3
Proses Penyelesaian masalah dengan
Algoritma
Pemecahan
Masalah
Masalah
Algoritma
-Alpro 2009-
Implementasi
Solusi
4
Contoh
► Ibu
Tati Mengupas Kentang
-Alpro 2009-
5
Ruang Lingkup
► Apakah
kentangnya harus dibeli dulu atau
sudah ada di dapur ?
► Apakah yang dimaksud dengan mengupas
kentang untuk makan malam berarti sampai
kentang terhidang?
► Ketika kentangnya terhidang,jadi
sup,digoreng atau direbus saja?
-Alpro 2009-
6
Constraint
► Initial
State :
Kentang sudah ada di kantong kentang,
yang ditaruh di rak di dapur dimana ibu tati
akan mengupasnya
► Final State :
Kentang dalam keadaan terkupas di panci,
siap untuk dimasak dan kantong
kentangnya dikembalikan ke rak lagi
-Alpro 2009-
7
Sub-Aksi
► Ambil
kantong kentang dari rak
► Ambil panci dari almari
► Kupas kentang
► Kembalikan kantong kentang ke rak
-Alpro 2009-
8
► Ambil
kantong kentang dari rak
► Ambil panci dari almari
► Depend on warna baju
 Berwarna muda : pakai celemek
 Tidak berwarna muda : ► Kupas
kentang
► Kembalikan kentang ke rak
-Alpro 2009-
9
► Ambil
kantong kentang dari rak
► Ambil panci dari almari
► Depend on baju
 Berwarna muda : pakai celemek
 Tidak berwarna muda : ► While
do
jumlah kentang terkupas belum cukup
 Kupas 1 kentang
► Kembalikan
kantong kentang ke rak
-Alpro 2009-
10
► While
pakaian berwarna muda do
 Kupas 1 kentang berikutnya
-Alpro 2009-
11
Kasus lain
A
A
B
B
Bagaimana Algoritmanya ??
-Alpro 2009-
12
5 ciri penting algoritma
► Algoritma
harus berhenti setelah
mengerjakan sejumlah langkah terbatas
► Setiap langkah harus didefinisikan dengan
tepat dan tidak memiliki dua arti (ambigu)
► Algoritma memiliki nol atau lebih masukan
(input)
► Algoritma memiliki nol atau lebih keluaran
(output)
► Algoritma harus efektif
-Alpro 2009-
13
Program dan
Bahasa Pemrograman
► Program
adalah formulasi sebuah algoritma
dalam bentuk bahasa pemrograman sehingga siap
untuk dijalankan pada mesin komputer
► Bahasa pemrograman adalah bahasa buatan
yang digunakan untuk mengendalikan perilaku
dari sebuah mesin, biasanya berupa mesin
komputer, sehingga dapat digunakan untuk
memberitahu komputer tentang apa yang harus
dilakukan.
-Alpro 2009-
14
Klasifikasi Bahasa Pemrograman
► Menurut





Generasi
First Generation Language (1GL), kode mesin
Second Generation Language (2GL), bahasa assembly
Generasi Ketiga, C,C++,Pascal,Java
Generasi Keempat, SQL,PL/SQL,ABAP
Generasi Kelima, Prolog,LISP  AI
► Menurut
Tingkatan
 Low-level programming language, 1GL & 2GL
 High-level programming language (HLL), 3GL
 Very High-level programming language (VHLL), 4GL
-Alpro 2009-
15
Bagaimana Algoritma dapat menjadi
program?
Piranti
Masukan
CPU
Piranti
Keluaran
Memori
-Alpro 2009-
16
Belajar Memrogram Vs Belajar
Bahasa Pemrograman
► Belajar
memprogram adalah belajar tentang
metodologi pemecahan masalah, kemudian
menuangkannya dalam suatu notasi tertentu yang
mudah dibaca dan dipahami.
► Belajar bahasa pemrograman berarti belajar
memakai suatu bahasa, aturan-aturan tata
bahasanya, instruksi-instruksinya, tata cara
pengoperasian compiler-nya, dan memanfaatkan
instruksi-instruksi tersebut untuk membuat
program yang ditulis hanya dalam bahasa itu saja.
-Alpro 2009-
17
Belajar Memprogram
► belajar
bahasa pemrograman
► belajar tentang strategi pemecahan
masalah, metodologi dan sistematika
pemecahan masalah kemudian
menuliskannya dalam notasi yang disepakati
bersama
► bersifat pemahaman persoalan, analisis dan
sintesis
► titik berat : designer program
-Alpro 2009-
18
Belajar Bahasa Pemrograman
► belajar
memakai suatu bahasa
pemrograman, aturan sintaks, tatacara
untuk memanfaatkan instruksi yang spesifik
untuk setiap bahasa
► titik berat : coder
-Alpro 2009-
19
Syarat Program yang Baik
1.
2.
3.
4.
5.
benar
berlaku umum untuk beragam data (valid)
mudah dibaca
mudah dimodifikasi dan dikembangkan
efisiensi dalam penggunaan ruang dan
waktu (kompleksitas rendah)
-Alpro 2009-
20
Flowchart dan
Pseudocode
Struktur Dasar Algoritma
► Runtunan
(Sequence)
► Pemilihan (Selection)
► Pengulangan(Repetition)
-Alpro 2009-
22
Flowchart
► bagan
yang menggambarkan urutan
instruksi untuk proses dengan komputer
dan hubungan antara suatu proses dengan
proses lainnya dengan menggunakan simbol
► tidak digunakan untuk menggambarkan
urutan langkah untuk memecahkan
masalah, tetapi hanya untuk
menggambarkan prosedur dalam sistem
yang dibentuk
-Alpro 2009-
23
Flowchart
Terminator
Input/Output
Proses
Condisional / Decision
-Alpro 2009-
24
Flowchart (cont’)
Preparation
Arrow
Connector (on page)
Connector (off page)
Display
-Alpro 2009-
25
Flowchart (cont’)
► Keuntungan
:
lebih mudah dilihat dan dipahami
► Kelemahan :
jika digunakan untuk menggambarkan
proses atau algoritma untuk skala kasus
yang besar, maka akan dibutuhkan banyak
kertas
-Alpro 2009-
26
Kasus
► Pemimpin
sebuah perusahaan otomotif perlu
menentukan besarnya bonus yang akan diberikan
kepada para pegawainya yang bekerja sebagai
account executive. Jika terdapat pegawai yang
dalam bulan ini telah menjual mobil lebih dari dua
unit, maka akan mendapatkan bonus sebesar Rp
1.000.000,- kemudian pegawai yang bisa menjual
mobil tepat dua buah maka, akan mendapatkan
bonus Rp 500.000,- namun jika pegawai yang
dalam bulan ini penjualannya kurang dari dua unit
maka, pegawai tersebut tidak mendapatkan
bonus.
-Alpro 2009-
27
Pseudocode
► Diarahkan
untuk menyerupai aturan
penulisan bahasa pemrograman tertentu
-Alpro 2009-
28
Pseudocode
Judul
Kamus
Algoritma
-Alpro 2009-
29
Judul
► Tidak
diawali dengan angka atau karakter
lain selain alphabet
► Tidak terdapat karakter spasi atau karakter
selain alphabet kecuali karakter underscore
‘_’ (sebagai pengganti karakter spasi)
► Mana yang benar ?





Algoritma
Algoritma
Algoritma
Algoritma
Algoritma
berhitung;
konversi suhu;
hitungan_pajak;
2bilangan;
*kecil;
-Alpro 2009-
30
Kamus
► digunakan
sebagai tempat untuk
mencantumkan variabel, konstanta, dan
record
► Hal-hal
yang dideklarasikan pada bagian ini
digunakan sebagai ‘reservasi’ alokasi
memory untuk penyimpanan data dan akan
digunakan selama program bekerja
-Alpro 2009-
31
Algoritma
► digunakan
untuk meletakkan semua
algoritma atau kode-kode program
► Diawali dengan ‘BEGIN’ dan diakhiri dengan
‘END’
-Alpro 2009-
32
Pemilihan (Selection)
If kondisi then
aksi
endIf
If kondisi then
else
aksi1
aksi2
endIf
-Alpro 2009-
33
Contoh (Pemilihan) :
If A>B then Max A endIf
If B>A then Max B endIf
If A>B then Max A
Else Max B
endIf
-Alpro 2009-
34
Pengulangan (Repetition)
for var  awal to akhir do
aksi
Endfor
repeat
aksi
until kondisi_stop
while kondisi_ulang do
aksi
endwhile
-Alpro 2009-
35
Contoh (Pengulangan) :
For i  1 to 5 do
output(“Algoritma dan Pemrograman”)
EndFor
i1
Repeat
output(“Algoritma dan Pemrograman”)
ii+1
Until (i>5)
i1
While (i<=5) do
output(“Algoritma dan Pemrograman”)
ii+1
endwhile
-Alpro 2009-
36
Input dan Output
Algoritma Masukkan_data
Kamus data
x : integer
BEGIN
input(x) /*x adalah variabel penampung nilai*/
END.
Algoritma Masukkan_nilai
Kamus data
x : integer
BEGIN
x  5 /*panah ke kiri arah masuknya nilai*/
END.
-Alpro 2009-
37
Input dan Output
Algoritma Tampilan
Kamus data
x : integer
BEGIN
output(x) /*x adalah variabel yang berisi nilai*/
END.
-Alpro 2009-
38
Reference
► Rinaldi
Munir. “Algoritma dan Pemrograman”
► Inggriani Liem.”Diktat Kuliah Algoritma dan
Pemrograman”. ITB
► “Diktat Kuliah Algoritma dan Pemrograman”.
Politeknik Telkom
-Alpro 2009-
39