LANDASAN TEORI
1. Dasar Teori Tentang Algoritma dan Pemrograman
Dalam Mempelajari Teori Algoritma dan Pemrograman
dalam matakuliah Algoritma dan Pemrograman, maka perlulah mahasiswa terlebih
dahulu mengenal akan definisi-definisi masing-masing dari kata
‘Algoritma’ serta ‘Pemrograman’. Beberapa definisi Algoritma adalah seperti
berikut ini :
a.
Pola pikir yang
terstruktur yang berisi tahap-tahap penyelesaian masalah.
b.
Urutan logis
pengambilan keputusan untuk pemecahan masalah.
c.
Urutan langkah
berhingga untuk memecahkan masalah logika dan matematika
d.
Sedangkan definisi
dari Pemrograman yaitu Proses mengimplementasikan urutan langkah untuk
menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.
2.
Karakteristik
Algoritma yang baik yaitu :
a.
Algoritma harus tidak
ambigu (unambiguous)
b.
Algoritma harus
tepat (precise)
c.
Algoritma harus pasti
( definite)
d.
Algoritma harus
berhingga
3.
Flowchart
Flowchart atau diagram alir
adalah sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran
algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam
bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah
tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah
demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau
algoritma tersebut.
a.
Flowchart adalah bagan-bagan yang
mempunyai arus menggambarkan langkah-langkah penyelesaian suatu masalah
b.
Merupakan cara penyajian dari
suatu algoritma
c.
2 macam flowchart:
- System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output
serta jenis penyimpanan dalam proses pengolahan data.
- Program flowchart:
d.
Urutan instruksi yang digambarkan
dengan symbol tertentu untuk memecahkan masalah dalam suatu program.
Pembuatan Flowchart
a.
Tidak ada kaidah yang baku
b.
Flowchart = gambaran hasil analisa
suatu masalah
c.
Flowchart dapat bervariasi antara
satu pemrograman dengan pemrograman lainnya.
d.
Secara garis besar ada 3 bagian
utama:
- Input \
- Proses
- Output
e.
Hindari pengulangan yang tidak
perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
f.
Jalannnya proses digambarkan dari
atas ke bawah dan diberikan tanda panah untuk memperjelas.
g.
Sebuah Flowchart diawali dari satu
titik START dan diakhiri dengan End.
Tujuan Flowchart
Tujuan utama penggunaan
flowchart adalah untuk menyederhanakan rangkaian proses atau prosedur untuk
memudahkan pemahaman pengguna terhadap informasi tersebut. Oleh karena itu,
design sebuah flowchart harus ringkas, jelas, dan logis.
4. Psoudecode
Definisi Pseudo-code
Kode atau tanda yang menyerupai (pseudo) atau
merupakan pejelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan
oleh manusia untuk menuliskan algoritma.
Problem: mencari bilangan terbesar dari dua bilangan
yang diinputkan
Contoh Pseudo-code:
Contoh Pseudo-code:
a.
Masukkan bilangan
pertama
b.
Masukkan bilangan
kedua
c.
Jika bilangan pertama
> bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5
d.
Tampilkan bilangan
pertama
e.
Tampilkan bilangan
kedua
Pseudo-code
1)
Pseudo-code adalah
kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara
menyelesaikan suatu masalah.
2)
Pseudo-code sering
digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan.
3)
Pseudo-code berisikan
langkah-langkah untuk menyelesaikan suatu permasalahan [hampir sama dengan
algoritma], hanya saja bentuknya sedikit berbeda dari algoritma.
4)
Pseudo-code
menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Selain itu
biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal
dan juga lebih ringkas dari pada algoritma.
5. Bahasa Pemrograman
Bahasa
Pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan proses
komputasi dalam format yang dapat dibaca oleh komputer dan manusia. Proses
komputasi umumnya Bahasa pemrograman == Komputer adalah mesin yang dapat
melaksanakan seperangkat perintah dasar (instruction set). Komputer hanya dapat
diberi perintah yang terdiri dari perintah-perintah dasar tersebut.
Perintah-perintah
yang lebih rumit (misalnya mengurutkan suatu daftar sesuai abjad) harus
diterjemahkan menjadi serangkaian perintah-perintah dasar yang dapat dimengerti
komputer (perintah-perintah yang termasuk dalam instruction
set komputer tersebut) yang pada akhirnya dapat mennyelesaikan tugas yang
diinginkan, meskipun dijalankan dengan beberapa operasi dasar, bukan satu
operasi rumit.
LANGKAH - LANGKAH PEMECAHAN MASALAH
1.
Gelas
Agar isi di di gelas A bisa ditukar ke gelas B kita memerlukan sebuah
gelas tambahan untuk tempat penampungan sementara, dan kita namakan gelas
tambahan tersebut adalah gelas C dan
dengan menggunakan gelas C ini
sebagai media pertukaran, algoritma
pertukaran isi kedua buah gelas adalah sebagai berikut :
a.
Tuangkan air dari
Gelas A ke dalam Gelas C.
b.
Tuangkan air dari
Gelas B ke dalam Gelas A.
c.
Tuangkan air dari
Gelas B ke dalam Gelas A.
d.
Tuangkan air dari
Gelas C ke dalam Gelas B.
2.
Ember
§ Masukkan air kedalam ember 3 liter
§ Tuangkan air dari ember 3 liter
ke ember 5 liter
§ Masukkan air kedalam ember 3 liter
§ Tuangkan air dari ember 3 liter ke ember 5 liter
§ Buang air di ember 5 liter
§ Masukkan air kedalam ember 3 liter
§ Tuangkan air dari ember 3 liter
ke ember 5 liter
§ Maka ember 5 liter akan terisi
air sebanyak 4 liter
3.
Plastelina game
§ Permzisalan, untuk orang yang berjalan 1 detik berarti
nomor 1, untuk orang yang berjalan 6 detik berarti nomor 6, dan lain
sebagainya. Sedangkan sisi A untuk tepi awal berangkat dan sisi B untuk tepi
tujuan
§ Gunakan orang nomor 3 dan nomor 1 menuju sisi B, dan
orang nomor 3 tinggal di sisi B, sedangkan orang nomor 1 kembali ke sisi A
§ Gunakan orang nomor 6 dan nomor 1 menuju sisi B, dan
orang nomor 1 dan nomor 6 tinggal di sisi B, sedangkan orang nomor 3 kembali
kesisi A
§ Di sisi A ada orang nomor 8,
nomor 12, dan nomor 3
§ Gunakan orang nomor 8 dan nomor 12 menuju sisi B, dan
lalu gunakan orang nomor 1 untuk menjemput orang nomor 3
§ Lalu gunakan orang nomor 1 dan
nomor 3 menuju sisi B.
1. Canibal
game
·
Permisalan, untuk
kanibal adalah K1, K2, dan K3 dan untuk rahib R1, R2, dan R3 dan tepi pertama
sebagai tepi A dan tepi kedua sebagai tepi B
·
K1 dan R1 berangkat
lebih dulu ke tepi B, dan K1 tinggal di tepi B, sedangkan R1 kembali ke tepi A
·
R1 turun dari perahu,
digantikan oleh K2 dan K3 menuju tepi B, dan K2 tinggal di tepi B sedangkan K3
kembali ketepi A
·
K3 turun dari perahu,
digantikan R1 dan R2 menuju tepi B, dan R1 dan R2 tinggal di tepi B sedangkan
K1 kembali ketepi A
·
K1 dan K2 naik perahu
menuju tepi B, dan K2 tinggal di tepi B sedangkan K1 kembali ketepi A
·
K1 dan K3 naik perahu
menuju tepi B, lalu K1 dan K3 sama-sama turun di tepi B.
2. Wolf
game
§ Jika membawa srigala terlebih dulu, maka kambing akan
memakan rumput, jika membawa rumput terlebih dulu, srigala akan memakan kambing
§ Permisalan,sisi awal adalah A,sisi akhir adalah B
§ Bawa kambing ke sisi A,karena srigala tidak makan
rumput
§ Lalu kembali ke sisi A,bawa rumput ke sisi B
§ Bawa kembali kambing ke sisi
A,dan diturunkan
§ Srigala di bawa ke sisi B,dan petani kembali kesisi A
§ Ambil kambing dan bawa ke sisi B
REFRENSI