Kamis, 19 September 2013

tugas 1

I.       DASAR TEORI

      Dasar Teori dan Pemrograman
Beberapa definisi Algoritma adalah  seperti berikut ini :
§  Pola pikir yang terstruktur yang berisi tahap-tahap penyelesaian masalah.
§  Urutan logis pengambilan keputusan untuk pemecahan masalah.
§  Urutan langkah berhingga untuk memecahkan masalah logika dan matematika
Sedangkan Pemrograman yaitu Proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.
Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan sampai tugasnya selesai.
Adapun ilustrasi proses pemrograman, terlihat dalam gambar berikut ini :
diagrAlirPemrograman

Karakteristik Algoritma
a.       Presisi. Langkah langkah penyelesaian masalah dalam algoritma haruslah secara presisi (tepat) dinyatakan, tidak mengandung ambiguitas.
b.      Keunikan. Hasil pertengahan dalam tiap langkah eksekusi suatu algoritma didefinisikan secara khas dan merupakan pengolahan dari hasil eksekusi langkah sebelumnya.
c.       Keterbatasan. Algoritma harus terbatas dan berhenti pada suatu titik setelah semua ekesekusi dilaksanakan.
d.      Input. Algoritma menerima input.
e.      Output. Algoritma menghasilkan output.
f.        Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.


Flowchart
penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Flowchart diawali dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output.
Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.

pseudocode
Kode-palsu atau dalam bahasa inggris lebih dikenal sebagai pseudo-code merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Kode palsu biasanya tidak menggunakan elemen detail yang tidak diperlukan untuk kebutuhan pemahaman manusia atas suatu algoritma, seperti deklarasi variabel, kode ataupun subrutin untuk sistem yang bersifat spesifik. Bahasa pemrograman yang digunakan lebih diperbanyak dengan deskripsi dalam bahasa natural atas sesuatu hal yang bersifat detail, atau dengan menggunakan notasi matematis. Tujuan dari penggunaan kode-palsu adalah untuk mempermudah manusia dalam pemahaman dibandingkan menggunakan bahasa pemrograman yang umum digunakan, terlebih aspeknya yang ringkas serta tidak bergantung pada suatu sistem tertentu merupakan prinsip utama dalam suatu algoritma. Kode-palsu umumnya digunakan dalam buku-buku ataupun publikasi karya ilmiah yang mendokumentasikan suatu algortima, dan juga dalam perencanaan pengembangan program komputer, untuk membuat sketsa atas struktur sebuah program sebelum program yang sesungguhnya ditulis.
Bahasa Pemrograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintahkomputer. 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.

II.         LANGKAH-LANGKAH PENYELESAIAN MASALAH

1        Memindah air
a.       Mengambil sebuah gelas kosong diberi label C
b.      Tuangkan air di gelas B ke gelas C
c.       Pindahkan air pada gelas A ke gelas B
d.      Pindahkan air pada gelas C ke gelas A

2        Mengisi air
a.        isi ember 3 ltr, tuangkan ke dalam ember 5 ltr (ember  5 ltr terisi air 3 ltr)
b.       isi lagi ember 3 ltr, tuangkan ke ember 5 ltr (ember 5 ltr terisi penuh, ember 3 ltr tersisa 1 ltr air)
c.        buang air di ember 5 ltr
d.       tuangkan sisa air dari ember 3 ltr ke ember 5 ltr (ember 5 ltr terisi air 1 ltr)
e.       isi lagi ember 3 ltr, tuangkan ke dalam ember 5 ltr ( ember 5 ltr berisi 1 ltr + 3 ltr air = 4 ltr air)

3        Family crisis
a.       Seberangkan si  1 dtk dan si 3 dtk
b.      Si 1dtk balik untuk menjemput yang 6 dtk
c.       1 dtk dan 6 dtk menyebrang, 6 dtk memegang lampu, lalu si 1dtk balik lagi
d.      Seberangkan secara bersama-sama si 12 dtk dan si 8 dtk. Si 12 dtk yang pegang lampu
e.      si 3 dtk balik jemput si 1 dtk.
f.        si 1 dtk dan 3dtk menuju seberang bersama-sama, 3 dtk yg pegang lampu. Cannibals and missionaries

4.       Cannibals game
a.       Seberangkan K1 dan K2 terlebih dahulu, keluarkan K2 ke sisi B
b.      K1 kembali ke sisi A, masukkan K3, seberangkan mereka
c.       Keluarkan K3, seberangkan K1 ke sisi A
d.      Keluarkan K1, masukkan M1 dan M2, seberangkan ke sisi B
e.      Keluarkan M1, masukkan K2, seberangkan ke sisi A
f.        Keluarkan K2, masukkan M3, seberangkan ke sisi B
g.       Keluarkan M2 dan M3 ke sisi B, masukkan K2, seberangkan ke sisi A
h.      Masukkan K1 seberangkan
i.         Keluarkan K1, seberangkan K2 ke sisi A.
j.        Masukkan K3, seberangkan ke sisi B
k.       Keluarkan K2 dan K3 ke sisi B.

5        Wolf game
a.       Angkut kambingnya dulu menuju sisi B
b.      Angkut sayurnya menuju sisi B
c.       Bawa kembali kambingnya ke sisi A
d.      Angkut serigalanya ke sisi B
e.      Balik lagi sendirian menuju sisi A
f.        Ambil kambingnya menuju sisi B

III.       REFERENSI
lecturer.ukdw.ac.id/othie/flowchart.doc