NAMA : Rachmat Arief Nurcahyo
NIM
: 135623086
Dasar Teori Algoritma dan Pemrograman
1. 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 2 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
2.
PEMROGRAMAN
Pemrograman adalah proses menulis, menguji
dan memperbaiki (debug), dan memelihara kode yang membangun sebuah
program komputer.
Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman
adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau
'pekerjaan' sesuai dengan keinginan si pemrogram (programmer). Untuk dapat
melakukan pemrograman, diperlukan keterampilan dalam algoritma,
logika,
bahasa pemrograman, dan di banyak kasus,
pengetahuan-pengetahuan lain seperti matematika.
Karakteristik
Algoritma
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.
- 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”
- 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.
- 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.
- Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.
Flowchart
Flowchart adalah representasi skematis dari sebuah proses. Flowchart banyak digunakan dalam
presentasi bisnis/ekonomi untuk membantu hadirin memvisualisasikan konten
secara lebih baik, atau untuk menemukan kelemahan-kelemahan dalam sebuah
proses.
Pseudocode
Pseudocode
adalah cara untuk menuliskan sebuah algoritma secara high-level (level tingkat tinggi).Biasanya
Pseudocode dituliskan dengan kombinasi Bahasa Inggris dan notasi matematika.
Biasanya sebuah Pseudocode tidak terlalu detail dibandingkan dengan program.
Isu-isu detail dalam program yang sifatnya teknis tidak dibahas di dalam
Pseudocode.
Komponen-komponen Pseudocode, antara lain:
1. Variabel.
1. Variabel.
-
Merupakan tempat penyimpanan sebuah nilai.
2. Perulangan (Loop).
- Teknik for-do
- Teknik repeat-until
- Teknik while-do
3. Percabangan (branch).
- Teknik if-then
- Teknik select-case
4. Modul.
- Procedure/Sub
- Function.
- Teknik Rekursif
2. Perulangan (Loop).
- Teknik for-do
- Teknik repeat-until
- Teknik while-do
3. Percabangan (branch).
- Teknik if-then
- Teknik select-case
4. Modul.
- Procedure/Sub
- Function.
- Teknik Rekursif
Contoh Pseudocode,
sederhana:
1. Algoritma untuk menampilkan 7 buah simbol #.
1. for i=1 to 7 do
2. display ”#”
3. end for
1. Algoritma untuk menampilkan 7 buah simbol #.
1. for i=1 to 7 do
2. display ”#”
3. end for
2. Algoritma untuk menghitung faktorial dari N.
1. iTampung=1
2. for i=1 to N do
3. iTampung=iTampung*i
4. end for
5. display ”Faktorial dari ”,N,” adalah ”,iTampung,NL
1. iTampung=1
2. for i=1 to N do
3. iTampung=iTampung*i
4. end for
5. display ”Faktorial dari ”,N,” adalah ”,iTampung,NL
3. Algoritma untuk menampilkan bilangan Fibonacci.
1 f1=0
2 f2=1
3 for i=1 to 8 do
4 iFibo=f1+f2
5 display ”Angka ke-”,i,” adalah ”,iFibo,NL
6 f1=f2
7 f2=iFibo
8 end for
1 f1=0
2 f2=1
3 for i=1 to 8 do
4 iFibo=f1+f2
5 display ”Angka ke-”,i,” adalah ”,iFibo,NL
6 f1=f2
7 f2=iFibo
8 end for
Bahasa Pemrograman
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.
Langkah-langkah
pemecahan masalah
No 1. Langkah-langkah menyelesaikan masalah
1. Siapkan gelas C (kosong)
2. Tuangkan gelas A ke gelas C
3. Kemudian tuangkan gelas B ke gelas A
4. Yang terakhir tuangkan gelas C ke gelas B
5. Selesai, hasil gelas A berwarna biru, gelas B berwarna
merah
No
2. Langkah-langkah menyelesaikan masalah
1.
Ambil air dengan ember 7L
2.
Setelah itu tuangkan pada ember 5L
3.
Sisa air pada ember 7L
4.
Buang air di ember 5L
5.
Tuangkan air sisa di ember 7L ke ember 5L
6.
Ambil air di ember 7L
7.
Tuangkan lagi ke ember 5L dan sisa 5L
8.
Buang air di ember 5L tuangkan air sisa di ember 7L ke ember 5L
9.
Ambil air di ember 7L
10.
Tuangkan lagi ke ember 5L dan menjadi 6L
No
3. Langkah-langkah menyelesaikan masalah
1. Orang no 3
sama orang no 1 berjalan
2. Orang no 1
balik
3. Orang no 12
sama orang no 8
4. Orang no 3
balik
5. Orang no 6
sama orang no 1
6. Orang no 1
balik
7. Orang no 3
sama orng no 1
No
4.Langkah-langkah menyelesaikan masalah
1.
2 kanibal menyebrang
2.
Kanibal 1 di turunkan
3.
Kembali membawa kanibal satunya terus menyebrang
4.
Kembali tukar sama 2 orang terus menyebrang
5.
1 orang tukar sama 1 kanibal
6.
Kembali 1 kanibal di tukar 1 orang terus menyebrang
7.
2 orang turun tukar sama 1 kanibal membawa 1 kanibal terus menyebrang
8.
Meneruskan 1 kanibal yang satunya kembali membawa kanibal yang selanjutnya
9.
Turun 2 kanibal tersebut
10.
BRAVO!!!
No
5.Langkah-langkah menyelesaikan masalah
1.
Petani lebih dulu membawa kambing
2.
Taruh kambing tersebut terus petani kembali
3.
Membawa sayuran terus taruh tukar sama kambing
4.
Petani membawa kambing menukar dengan anjing
5.
Taruh anjing tersebut petani kembali membawa kambing
Referensi
Dasar Teori tentang algoritma dan pemrograman : http://andikafisma.wordpress.com/algoritma-dan-pemrograman/ http://id.wikipedia.org/wiki/Pemrograman