i. pengantar algoritma€¦ · konsep dasar algoritma pemrograman berfikir logis dengan algoritma...
TRANSCRIPT
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 1
I. PENGANTAR ALGORITMA
ALGORITMA PEMROGRAMAN
Definisi Algoritma
ALGORITMA : urutan langkah‐langkah logis penyelesaian masalah yang disusun secara sistematis.
Algoritma menurut Kamus Besar Bahasa Indonesia adalah Urutan logis pengambilan keputusan untuk
pemecahan masalah .
Definisi Pemrograman
PROGRAM : suatu bentuk dan aturan untuk menyelesaikan sesuatu yang tersetruktur dan teratur,
dalah hal pemrograman yang dimaksut adalah bentuk dan aturan yang merupakan cara kerja yang
ada didalam suatu komputer (merupakan proses dalam PC)
Jadi Algoritma Pemrograman adalah bagaimana langkah‐langkah yang ditempuh atau diputuskan
untuk menyelesaikan suatu permasalahan dengan menggunakan aturan serta proses yang berada
didalam komputer/PC. Sehingga dalam menyelesaiakan suatu permasalahan dituntut untuk berfikir
dengan langkah‐langkah yang runtut seakan‐akan seperti langkah‐langkah yang akan di jalankan oleh
sebuah sistem komputer, karena hasil pemikiran tersebut atau langkah‐langkah tersebut akan
diimplementasikan dan dilaksanakan oleh komputer.
Yang bisanya menjadi sebuah kesulitan dalam permulaan belajar adalah jika kita belum bisa
menyadari bahwa sebenarnya cara kerja otak kita juga seperti sebuah sistem komputer. Perbedaan
mendasarnya kita tidak menyadari dikarenakan sudah otomatis dan menjadi suatu kebiasaan otak
kita dalam berfikir sehingga suatu langkah akan bisa terlewati. Contohnya : jika kita sudah terbiasa
memakai pisau roti untuk memotong roti maka ketika ada pilihan pisau yang lain kita akan langsung
mengabaikannya, tetapi jika kita belum terbiasa memakai pisau roti bahkan belum tau mana yang
dimaksut dengan pisau roti maka kita akan mencoba pilihan yang ada dengan pemikiran jika yang
digunakan salah masih bisa mencoba pilihan lainnya. Cara berfikir itulah yang disebut suatu langkah‐
langkah yang harus ditempuh untuk menyelesaikan suatu masalah yang pada contoh diatas adalah
untuk memotong roti.
Contoh lain Algoritma dalam kehidupan sehari‐hari :
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 2
Proses Algoritma Langkah dalam Algoritma
Membuat Kue Resep Kue Ambil 3buah telur, ambil kuning telur dan kocok,…
Membuat baju Pola Baju Potong kain sesuai pola,….
Isi Voucher HP Panduan Tekan nomor 555, tekan 1 untuk isi pulsa , ….
Ke Monas Perjalanan Beli Tiket Pesawat,Ke bandara Juanda, Turun
Cengkareng,......
Jadi bisa disimpulkan bahwa dalam algoritma harus sudah jelas langkah‐langkah yang akan diambil,
sudah ada alternatif atau langkah lain yang sudah direncanakan sebelumnya jika terjadi kegagalan
pada langkah tertentu. Dimana semua langkah yang jelas itu merupakan suatu pemilihan atau
pemikiran logika (yang dapat diterima akal dan dibuktikan). Walaupun logika bisa mengerti tetapi
jika struktur algoritma tidak menemukan langkah‐langkah dalam penyelesaiannya maka bisa
diumpamakan ”seseorang yang mengerti cara menyelesaikan masalah tetapi tidak tahu jalan mana
yang ditempuh untuk bisa menyelesaiakn masalah tersebut”.
Jika algoritma kita sudah terlatih dengan baik maka untuk pemrograman hanyalah merupakan
bahasa yang digunakan untuk menuliskan algoritma kita kedalam suatu Komputer. Bahasa tersebut
yang akan dikenali dan dimengerti oleh sistem komputer sehingga komputer akan melaksanakan
semua apa yang sudah dituliskan dengan bahasa pemrograman. Jadi bisa disimpulkan bahawa jika
algoritma sudah terlatih maka beda bahasa pemrograman halnya seperti kita beda bahasa antara
suku atau bangsa di dunia ini.
KONSEP DASAR ALGORITMA PEMROGRAMAN
Berfikir Logis dengan Algoritma
Bagaimana bagaimana cara berpikir logis ala algoritma itu. Algoritma jangan dibayangkan sebuah
tabel matematik dengan angka‐angka yang jelimet/rumit dan membuat mata sakit. Algoritma.
Seperti penjelasan diatas, Algoritma adalah runtutan langkah‐langkah logis penyelesian masalah yang
disusun secara sistematis atau kalau menurut Kamus Besar Bahasa Indonesia didefinisikan sebagai
urutan logis pengambilan putusan untuk pemecahan masalah. Jadi jelas bukan masalah perhitungan
dengan angka‐angka jelimet ,tetapi dititikberatkan pada proses berpikirnya yang dilakukan secara
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 3
logis. Gampang dan sangat dibutuhkan dalam kehidupan sehari‐hari. Sebenarnya dalam bidang
apapun kita pasti memerlukan cara berpikir logis untuk menyelesaikan tantangan/permasalahan
yang kita hadapi.
Kata Logis merupakan kata kunci dalam Algoritma. Langkah‐langkah dalam Algoritma harus logis dan
harus dapat ditentukan bernilai salah atau benar. Seperti contoh yang ada diatas dalam tatacara
membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai
algoritma. Pada setiap resep selalu ada urutan langkah‐lankah membuat masakan. Bila langkah‐
langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu‐ibu yang mencoba suatu
resep masakan akan membaca satu per satu langkah‐langkah pembuatannya lalu ia mengerjakan
proses secara runtut sesuai yang di baca.
Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses
tersebut dapat berupa manusia, komputer, robot atau alat‐alat elektronik lainnya. Pemroses
melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan
proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah‐langkah di dalam Algoritma tersebut.
Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak
membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan
papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti
oleh pemroses. Jadi suatu pemroses harus :
1 Mengerti setiap langkah dalam Algoritma
2 Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
Langkah Penyusun Algoritma dalam suatu proses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma hasrus
ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah
perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu
sehingga dapat dilaksanakan oleh komputer.
Algoritma berisi langkah‐langkah penyelesaian suatu masalah. Langkah‐langkah bisa berupa
runtunan, pemilihan, dan pengulangan. Ketiga langkah itulah yang menyusun algoritma. Belajar
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 4
memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar
tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu
yang mudah dibaca dan dipahami (belajar logika program). Sedangakan 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. Sehingga bisa dijabarkan
perbedaan antara belajar algoritma program dan belajar bahasa pemrograman sebagai berikkut;
Belajar Algoritma program / Memprogram
• Belajar memprogram ≠ belajar bahasa pemrograman.
• Belajar memprogram adalah belajar tentang strategi pemecahan masalah, metodologi dan
sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati
bersama.
• Belajar memprogram adalah bersifat pemahaman persoalan, analisis dan sintesis.
• Belajar memprogram, titik berat pada designer program atau langkah program berjalan.
Belajar Bahasa Pemrograman
• Belajar bahasa pemrograman adalah belajar memakai suatu bahasa pemrograman, aturan
sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa.
• Belajar bahasa pemrograman , titik berat pada coder/coding (menuliskan sintaks/bahasa
program pada komputer)
Produk yang dihasilkan pemrogram/programer :
• Program dengan rancangan yang baik (metodologis, sistematis).
• Dapat dieksekusi oleh mesin.
• Berfungsi dengan benar.
• Sanggup melayani segala kemungkinan masukan.
• Disertai dokumentasi.
• Belajar memprogram, titik berat pada designer program atau langkah – langkah dalam membuat
anang@anaTIF UWKS
progr
Tahap Pe
Kriteria P
1. A
2. Ef
3. Ju
4. B
5. T
Aloritm
(efektif)
langkah
ada solus
ang65.web.id S
ram (algoritm
enyelesaian
Pemilihan A
Ada Output
fektifitas da
umlah Langk
erakhir
erstruktur
ma dikatak
dalam wak
yg berhingg
sinya.“
2009
ma program
Masalah
lgoritma
n Efisiensi
kahnya Berh
kan baik ji
ktu yg relat
ga & prosed
DESA
m)
ingga
ika : Suatu
tif singkat &
durnya berak
AIN DAN A
u algoritma
& pengguna
khir baik dlm
ANALISIS A
harus men
aan memor
m keadaan d
ALGORITMA
ghasilkan o
ri yg relatif
diperoleh su
A
output yg te
f sedikit (efe
atu solusi at
Page 5
epat guna
fesien) dgn
taupun tdk
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 6
CONTOH :
Langkah‐langkah ketika akan mengirimkan surat kepada teman:
1. Tulis surat pada secarik kertas surat
2. Ambil sampul surat atau amplop
3. Masukkan surat ke dalam amplop
4. Tutup amplop surat dengan lem perekat
5. Tulis alamat surat yg dituju, jika tdk ingat, lebih dahulu ambil buku alamat & cari
alamat yg dituju, lalu tulis alamat tsb pd amplop surat.
6. Tempelkan perangko pada amplop surat
7. Bawa surat ke kantor pos utk diserahkan pd pegawai pos atau menuju ke bis surat
untuk memasukkan surat ke dlm kotak/bis surat.
Langkah‐langkah penyelesaian untuk masalah menentukan akar kuadrat dari suatu bilangan Bulat
Positif yg di Input :
1. Baca bilangan Bulat Positif yg diinput, sebut saja sebagai A
2. Dinyatakan Nilai B adalah 0
3. Hitung Nilai C yg berisikan Nilai B dikalikan Nilai B
4. Jika Nilai C sama dengan Nilai A, maka Nilai B adalah Akar dari Nilai A, lalu stop.
5. Jika tidak, maka Nilai B akan bertambah 1
6. Kembali ke langkah pada No. 3
Penulisan Algoritma
• Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)
o Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami.
• Menggunakan Flowchart
o Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika
algoritma panjang
anang@anaTIF UWKS
• M
Tahap An
1. B
2. B
S
d
ang65.web.id S
Menggunaka
o Sudah
belum
nalisa Algor
agaimana m
Denga
Conto
diame
Rumu
agaimana m
‐
uatu cara
isampaikan/
2009
an Pseudoco
h dekat den
m tahu pemr
itma
merencanaka
an Mendefin
oh : Permasa
eter lingkara
us : ∏ . r2 de
menyatakan s
Misalnya D
penulis
/diekspresik
DESA
ode
gan bahasa
ograman
an algoritma
nisikan masa
alahan meng
an.
engan Phi =
suatu algorit
Dengan psud
san algorit
an menggun
AIN DAN A
pemrogram
alah.
ghitung luas
= 3.14 atau 2
tma (menuli
docode
ma agar
nakan gaya b
ANALISIS A
man, tetapi
lingkaran, d
22
is algoritma)
ide dan
bahasa pem
ALGORITMA
sulit dimen
dengan data
)
logika da
rograman te
A
gerti oleh o
yang diketa
ari algoritm
ertentu.
Page 7
orang yang
ahui adalah
ma dapat
anang@anaTIF UWKS
P
p
3. B
4. B
U
ang65.web.id S
‐
rogram Flow
emecahan m
agaimana va
Untuk
algori
Misalk
denga
agaimana M
Untuk meliha
• Waktu
• Jumla
2009
Dengan flo
wchart, yait
masalah.
aliditas suat
k melihat k
tma ersebut
kan apakah
an tujuan alg
Menganalisa
at effisiensi d
u Tempuh d
h memori ya
DESA
owchart / di
tu bagan ya
u algoritma.
kesesuaian
t.
benar nilai s
goritma, jika
suatu Algori
dan efektifit
ari Suatu Alg
ang digunak
AIN DAN A
agram alir
ng mengga
.
dengan tuj
suatu algorit
salah harus
itma.
tas dari suat
goritma
kan
ANALISIS A
mbar‐kan u
juan dan g
tma akan ga
s membuat a
tu algoritma,
ALGORITMA
rutan logika
goal dari p
njil , jika ben
algoritma lag
, dapat dilih
A
a dari suatu
pembuatan/
nar berarti te
gi.
at dari:
Page 8
u prosedur
/akhir dari
elah sesuai
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 9
• Hal‐hal yang dapat mempengaruhi waktu tempuh adalah :
Banyaknya langkah.
Besar dan jenis input data.
Jenis Operasi.
Komputer dan kompilator
5. Bagaimana Menguji Program dari suatu Algoritma
Pengujian Tahap Debuging
Untuk mengecek kesalahan program, Baik sintaksis maupun logika.
Pengujian Tahap Profiling
Untuk menentukan waktu tempuh dan banyak nya memori program yang
digunakan.
SIFAT ALGORITMA
Aspek Penting Algoritma :
Finite algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas
Definite setiap langkah didefinisikan secara tepat, tidak boleh membingungkan
(ambigu)
Input sebuah algoritma memiliki nol/lebih input sebelum dijalankan
Output algoritma memiliki satu/lebih output, yang biasanya bergantung kepada input
Effective setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus
sederhana dan sehingga dapat dikerjakan dalam waktu yang masuk akal)
Langkah‐langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses:
1. Sequence Process instruksi dikerjakan secara berurutan satu persatu dimulai dari
langkah pertama sampai terakhir.
2. Selection Process instruksi pemilihan proses (percabangan), sehingga apabila
memenuhi persyaratan tertentu maka instruksi akan dikerjakan.
Contoh :
jika pembayaran tunai diberi diskon 10%
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 10
Jika dilakukan secara kredit maka diskon 0 %.
(dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.
3. Iteration Process suatu instruksi yang dikerjakan berulang‐ulang selama beberapa kali
selama masih memenuhi suatu kondisi.
4.
NOTASI ALGORITMA
Notasi algoritma sangatlah penting untuk belajar Algoritma pemrograman, karena notasi algoritma
bukan notasi bahasa pemrograman,sehingga siapapun dapat membuat notasi algoritma yang
berbeda.
Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Meskipun notasi
algoritma bukan notasi baku namun kepatuhan terhadap notasi perlu diperhatikan untuk
menghindari kekeliruan.
Dengan Notasi Algoritma kita menuliskan langkah‐langkah berfikir kita dalam betuk diskripsi yang
urut dengan menggunakan bahasa kita sendiri (bukan bahasa program).
Notasi Algoritma terbagi atas beberapa ,yaitu :
1. Notasi I : mendiskripsikan penyelesaiaan masalah.
Sebelum menyelesaiakn permasalahan harus terlebih dahulu bisa mendiskripsikan
permasalahannya sehingga bisa menemukan diskripsi untuk penyelesaian permasalahannya.
Contoh :
‐ Diskripsi Permasalahanya : Cara untuk pulang ke Surabaya
‐ Diskripsi cara penyelesaian masalahnya :
Untuk pulang ke Surabaya perlu menghitung biaya yang dikeluarkan dengan asumsi naik pesawat dan
naik kereta‐api maka selisih biaya tidak banyak tetapi waktu yang ditempuh untuk dengan naik
kereta‐api lebih lama daripada naik pesawat. Karena anak masih kecil dan takut capek dijalan maka
dipilih waktu yang tercepat sampai di Surabaya.
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 11
2. Notasi II : menyatakan langkah‐langkah algoritma dengan untaian kalimat deskriptif..
Yang dimaksut disini kita menuliskan langkah‐langkah apa yang harus di lakukan dalam
menyelesaian suatu permasalahan. Langakah‐langkah tersebut merupakan proses yang
beruntut dan urut. Dalam penulilsanya bisa kita lakukan dengan menggunakan penomoran
atau pengkodean yang lain. Misalkan (Langkah 1, langkah 2,.........atau langkah A, Langkah
B,......).
Dalm pemilihan kata untuk notasi pertama bisa dilakukan dengan kalimat‐kalimat yang lebih
deskriptif dan dengan bahasa yang mudah dimengerti. Misalkan :
suatau proses diawali dengan kata kerja seperti 'baca', 'hitung' , 'ganti'
dan sebagainya.
Sedangkan pernyataan kondisional dinyatakan dengan 'jika....' ,
'maka....'.
Notasi ini bagus untuk algoritma yang pendek ,namun untuk masalah yang besar notasi ini
tidak mungkin dipakai.Selain itu, konversi dari notasi algoritma ke bahasa pemrograman
cendrung relatif sukar. Sehingga penggunaan notasi ini harus di pisah‐pipsahkan dalam proses
yang kecil/sederhana tidak diperbolehkan suatu algoritma yang panjang menggunakan hanya
satu buah notasi.
Pemakaian notasi 1 akan efektif jika dalam algoritma yang pendek, sehingga jika
algoritmanya panjang kita harus bisa membagi‐bagi dalam bagian yang pendek.
Contoh : dari notasi I dibuat notasi II :
- Pulang mudik 2 orang dewasa 1 anak umur 6 tahun.
- Naik kereta api
- Jika ya maka lama perjalanan 10 jam
- Jika tidak naik pesawat yang lama perjalanan 45 menit
-
3. Notasi III: menggunakan diagram alir(flow‐chart).
Jika notasi I sudah selesai maka kita bisa membuat langkah‐langkah dari notasi I tersebut kedalam
bentuk Flowchart. Dalam membuat flowchart terdapat aturan baku untuk symbol‐symbolnya.
[email protected] TIF UWKS
2009 DESAIN DAN ANALISIS ALGORITMA
Page 12
Symbol tersebut dapat dilihat pada halam selanjutnya, dan akan dipelajari secara mendalam pada
pertemuan selanjutnya.
4. Notasi IV: menggunakan bahasa program untuk menjabarkan hasil dari flowchart
Dalam menuliskan dalam bahasa program kita menyesuikan dengan aturan‐aturan penulisan sesuai
dengan baha program yang digunakan, misalnya Visual Basic,Delphi,Pascal,C#,C++, dan lain‐lain.
Continue ….