LAPORAN
1.
DASAR
TEORI
a. Dasar
Teori tentang algoritma dan pemrograman
1.1 Definisi
algoritma
“Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah
yang
disusun secara sistematis dan logis”. Kata logis merupakan kata kunci
dalam
algoritma. Langkah-langkah dalam algoritma harus logis dan harus
dapat
ditentukan bernilai salah atau benar.
Dalam
beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk
melakukan
pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma
adalah,
pertama, algoritma haruslah benar. Artinya algoritma akan memberikan
keluaran
yang dikehendaki dari sejumlah masukan yang diberikan. Tidak
peduli
sebagus apapun algoritma, kalau memberikan keluaran yang salah,
pastilah
algoritma tersebut bukanlah algoritma yang baik
Pertimbangan
kedua yang harus diperhatikan adalah kita harus mengetahui
seberapa
baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting
terutama
pada algoritma untuk menyelesaikan masalah yang memerlukan
aproksimasi
hasil (hasil yang hanya berupa pendekatan). Algoritma yang
baik harus
mampu memberikan hasil yang sedekat mungkin dengan nilai
yang
sebenarnya.
Ketiga
adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari dua
hal yaitu
efisiensi waktu dan memori. Meskipun algoritma memberikan
keluaran
yang benar (paling mendekati), tetapi jika kita harus menunggu
berjam-jam
untuk mendapatkan keluarannya, algoritma tersebut biasanya
tidak akan
dipakai, setiap orang menginginkan keluaran yang cepat. Begitu
juga
dengan memori, semakin besar memori yang terpakai maka semakin
buruklah
algoritma tersebut.
Dalam
kenyataannya, setiap orang bisa membuat algoritma yang berbeda
untuk
menyelesaikan suatu permasalahan, walaupun terjadi perbedaan
dalam
menyusun algoritma, tentunya kita mengharapkan keluaran yang
sama.
Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
b. Karakteristik
algoritma
1.1 karateristik
alogaritma
1.
Algoritma harus berhenti setelah
mengerjakan sejumlah langkah terbatas. Sebagai contoh, dalam algoritma
Euclidean, pada langkah 1, jika n = 0, algoritma berhenti, jika n tidak = 0
maka nilai n selalu berkurang sebagai akibat dari langkah 2 dan 3, dan pada
akhirnya nilai n = 0. Program yang tidak pernah berhenti mengindikasikan bahwa
program tersebut berisi algoritma yang salah.
2.
Setiap langkah harus di defenisikan
dengan tepat dan tidak berarti dua (ambiguous). Pembaca harus mengerti apa yang
di maksud dengan “m” dan “n” adalah bilangan bulat tak negatif (-). Contoh
lainnya pernyataan ” bagilah p dengan beberapa sejumlah bilangan bulat positif”
dapat bermakna ganda. Berapakah yang di maksud dengan “berapa” ? Algoritma
menjadi jelas jika langkah tersebut di tulis “bagilah p dengan 10 buah bilangan
bulat positif”
3.
Algoritma memiliki nol atau lebih
masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk di
proses. Algoritma Euclidean mempunyai dua buah masukan, yaitu m dan n.
4.
Algoritma mempunya nol atau lebih
keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki
hubungan dengan masukan. Algoritma Euclidean mempunyai 1 keluaran, yaitu m pada
langkah 1, yang merupakan pembagi bersama terbesar dari kedua bilangan.
5.
Algoritma harus sangkil (effective).
Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu
yang masuk akal.
c. Flowchart
1.1
pengertian dasar flowchart
Flowchart
adalah Bagan-bagan yang mempunyai arus yang menggambarkan
langkah-langkah
penyelesaian suatu masalah. Flowchart merupakan cara
penyajian
dari suatu algoritma
Tujuan
Membuat Flowchat :
•
Menggambarkan suatu tahapan penyelesaian masalah
•
Secara sederhana, terurai, rapi dan jelas
•
Menggunakan simbol-simbol standar
Dalam
penulisan Flowchart dikenal dua model, yaitu Sistem
Flowchart dan
Program
Flowchart
System Flowchart :
Yaitu
: bagan Yang memperlihatkan urutan prosedure dan proses dari
beberapa
file di dalam media tertentu.
Melalui
flowchart ini terlihat jenis media penyimpanan yang dipakai dalam
pengolahan
data.
•
Selain itu juga menggambarkan file yang dipakai sebagai input dan
output.
•
Tidak digunakan untuk menggambarkan urutan langkah untuk
memecahkan
masalah
• Hanya untuk menggambarkan prosedur dalam sistem yang dibentuk
d. Psoudecode
1.1
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:
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan
langkah 5.
4. Tampilkan bilangan pertama
5. Tampilkan bilangan kedua
Pseudo-code
a. Pseudo-code adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah.
b. Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan.
c. Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan [hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari algoritma.
d. 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.
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan
langkah 5.
4. Tampilkan bilangan pertama
5. Tampilkan bilangan kedua
Pseudo-code
a. Pseudo-code adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah.
b. Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan.
c. Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan [hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari algoritma.
d. 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.
e. Bahasa
pemrograman
1.1 definisi
bahasa pemograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik
komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan
suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan
seorang programmer dapat menentukan secara persis data mana yang akan diolah
oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil
dalam berbagai situasi.
Menurut tingkat kedekatannya
dengan mesin komputer, bahasa pemrograman terdiri dari:
1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan
memakai kode bahasa biner, contohnya 01100101100110
2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan
(bah.Inggris Assembly),
yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat
(kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran
instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di
bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<,
>>, &&, ||, dsb.
4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi
berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for,
while, and, or, dsb.
Sebagian besar bahasa
pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang
digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa
Tingkat Rendah.
1.2 Belajar
Memprogram dan Belajar Bahasa Pemrograman
Belajar
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. Sedangkan belajar bahasa pemrograman
berarti
belajar memakai suatu bahasa aturan-aturan tata bahasanya,
pernyataan-pernyataannya,
tata cara pengoperasian compiler-nya,
dan
memanfaatkan
pernyataan-pernyataan tersebut untuk membuat program
yang
ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan
bahasa
pemrogram, antara lain bahasa rakitan (assembly),
Fortran, Cobol,
Ada,
PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG,
bahasabahasa
simulasi seperti CSMP, Simscript, GPSS, Dinamo.
Berdasarkan
terapannya,
bahasa pemrograman dapat digolongkan atas dua kelompok
besar:
1. Bahasa
pemrograman bertujuan khusus. Yang termasuk kelompok
ini adalah Cobol (untuk
terapan bisnis dan administrasi). Fortran
(terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman
mesin), Prolog (terapan
kecerdasan buatan), bahasa-bahasa
simulasi, dan sebagainya.
2. Bahasa
perograman bertujuan umum, yang dapat digunakan untuk
berbagai aplikasi. Yang termasuk kelompok ini
adalah bahasa
Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku.
Bahasabahasa
bertujuan khusus tidak berarti tidak bisa
digunakan untuk
aplikasi lain. Cobol
misalnya, dapat juga digunakan untuk terapan
ilmiah, hanya saja kemampuannya terbatas.
Yang jelas, bahasabahasa
pemrograman yang berbeda dikembangkan untuk
bermacam-macam terapan yang berbeda pula.
Program
adalah kumpulan pernyataan komputer, sedangkan metode dan
tahapan
sistematis dalam program adalah algoritma. Program ditulis dengan
menggunakan
bahasa pemrograman. Jadi bisa disebut bahwa program
adalah
suatu implementasi dari bahasa pemrograman.
Beberapa
pakar memberi formula bahwa:
Program
= Algoritma + Bahasa (Struktur Data)
Bagaimanapun
juga struktur data dan algoritma berhubungan sangat erat
pada
sebuah program. Algoritma yang baik tanpa pemilihan struktur data
yang tepat
akan membuat program menjadi kurang baik, demikian juga
sebaliknya.
Secara
sistematis berikut diberikan kiat-kiat untuk belajar memprogram dan
belajar
bahasa pemrograman serta produk yang dapat dihasilkan:
a. Belajar
Memprogram
• Belajar
memprogram: belajar bahasa pemrograman.
• Belajar
memprogram: belajar tentang strategi pemecahan masalah,
an sistematika pemecahan masalah kemudian
menuliskannya dalam notasi yang disepakati
bersama.
• Belajar
memprogram: bersifat pemahaman persoalan, analisis dan
sintesis.
• Belajar
memprogram, titik berat: designer program.
b.
Belajar Bahasa Pemrograman
• Belajar bahasa pemrograman: belajar
memakai suatu bahasa
pemrograman, aturan sintaks, tatacara untuk memanfaatkan pernyataan
yang spesifik untuk setiap bahasa.
•
Belajar bahasa pemrograman, titik berat: coder.
c.
Produk yang Dihasilkan Pemrogram
•
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: designer program.
2.
Langkah-langkah
pemecahan masalah
Penyelesaian Soal
pertama:
Siapkan
satu gelas kosong dan anggap itu gelas C
Kemudian
tuangkan air yang berwarna merah ke dalam gelas C
Lalu
tuangkan air yang berwarna biru ke dalam gelas A
Kemudian
tuangkan air yang berwarna merah ke dalam gelas B
Penyelesaian Soal
kedua:
Ambil
air di danau sebanyak 3 liter
Lalu
tuangkan kedalam ember yang bervolume 5 liter
ambil
lagi 3 liter, lalu tuangkan di ember yang bervolume 5 liter sampai penuh
maka
air akan tersisa 1 liter dan buang air pada ember yang bervolume 5 lliter
tersebut sampai kosong
kemudian
tuang 1 liter air tersebut kedalam ember yg bervolume 5 liter
lalu
ambil lagi air dari danau yang berukuran 3 liter dan tuangkan air 3 liter
tersebut kedalam ember yang bervolume 5 liter.
Total
air pada ember tersebut 4 liter
Penyelesaian Soal
ketiga:
Untuk
melewati jembatan itu
1.
Orang
dengan kecepatan 1 dan 3 detik menyebrang terlebih dahulu
2.
Kemudian
orang dengan kecepatan 1 detik kembali lagi untuk meyusul keluarganya
3.
Lalu
orang dengan kecepatan 1 dan 6 detik menyebrang
4.
Kemudian
orang yang kecepatan 3 detik kembali lagi menyebrang untuk menyusul keluarganya
5.
Setelah
itu orang deng kecepatan 8 dan 12 detik menyebrang secara bersamaan
6.
Setelah
sampai tujuan, orang dengan kecepatan 1 detik menyusul orang yg berkecepatan 3
detik
7.
Maka
sisa waktu yang dibutuhkan lebih 1 detik untuk menyebrangkan ke-5 keluarga
tersebut
Penyelesaian
soal keempat:
Dua cannibal menyebrang terlebih
dahulu
Kemudian satu cannibal kembali
dan menyusul satu kawannya lagi
Lalu satu cannibal kembali
menyebrang dan satunya lagi turun dari perahu
Setelah cannibal sampai di
sebrang. Cannibal turun dari perahu dan digantikan oleha dua missionary untuk menyebrang
Setelah keduanya sampai, satu
missionary turun dari perahu dan satu cannibal naik ke perahu.
Kemudian satu missionary dan satu
cannibal kembali menyebrang
Setelah menyebrang cannibal turun
dan digantikan oleh missionary
Kemudian dua missionary
menyebrang dan turun dari perahu
Setelah itu cannibal naik perahu
dan menjemput dua kawannya di sebrang
Penyelesaian
soal kelima:
Pertama Petani harus
menyebrangkan kambingnya
Kemudian petani kembali lagi
untuk menyebrangkan rumputnya
Setelah sampai disebrang petani
menaruh rumputnya dan membawa kembali kambingnya kesebrang agar rumputnya tidak
dimakan oleh kambingnya
Kemudian kambingnya di taruh dan
diganti mengangkut srigala
Setelah sampai disebrang srigala
ditaruh dan petani kembali
Kemudian kambing di sebrangkan
Dan akhirnya kambing,rumput dan
srigaala sampai pada tujuan
3.
Referensi