Rabu, 09 Oktober 2013

NAMA       :  Siti Eli Rahma
NIM            :  135623083
PRODI        :  D3 Manajemen Informatika (kelas C)     
 




DASAR TEORI


A.     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’.
Algoritma adalah metode untuk menyelesaikan suatu permasalahan secara bertahap.
Contoh sederhana suatu algoritma adalah resep suatu masakan. Pada resep suatu masakan terdapat langkah langkah penyelesaian untuk membuat masakan itu. Misalkan untuk membuat telur rebus, maka diperlukan langkah langkah:
1.      Cuci bersih telur yang akan direbus.
2.      Siapkan air pada panci.
3.      Rebus air hingga mendidih.
4.      Masukkan telur yang sudah dicuci kedalam air yang telah direbus.
5.      Tunggu hingga matang dan sajikan
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 definisi dari Pemrograman yaitu Proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.
B.     Karakteristik Algoritma
Algoritma memiliki beberapa karakteristik yang harus dipenuhi agar menjadi algoritma yang baik, antara lain:
·         Ada Output
·         Efektif dan Efisien
·         Jumlah langkahnya berhingga
·         Berakhir
·         Terstruktur
·         Presisi, langkah penyelesaian masalah dalam algoritma haruslah secara presisi (tepat) dinyatakan, tidak mengandung ambiguitas.
·          Keterbatasan, Algoritma harus terbatas dan berhenti pada suatu titik setelah semua ekesekusi dilaksanakan.
·         General, berlaku untuk suatu kumpulan input tertentu.
C.     FLOWCHART
Flowchart adalah 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 biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.

Jenis - Jenis Flowchart
Flowchart terbagi atas lima jenis, yaitu :
1.      Flowchart Sistem (System Flowchart)
2.      Flowchart Paperwork / Flowchart Dokumen (Document Flowchart)
3.      Flowchart Skematik (Schematic Flowchart)
4.      Flowchart Program (Program Flowchart)
5.      Flowchart Proses (Process Flowchart)

Simbol - Simbol Flowchart
Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang dipakai seperti contoh di bawah ini :
Flow Direction symbol

 Yaitu simbol yang digunakan untuk menghubungkan antara simbol yang satu dengan simbol yang lain. Simbol ini disebut juga connecting line.
Terminator Symbol
Yaitu simbol untuk permulaan (start) atau akhir (stop) dari suatu kegiatan
Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses dalam lembar / halaman yang sama.





Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses pada lembar / halaman yang berbeda.
Processing Symbol
Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer
Simbol Manual Operation
Simbol yang menunjukkan pengolahan yang tidak dilakukan oleh komputer
Simbol Decision
Simbol pemilihan proses berdasarkan kondisi yang ada.
Simbol Input-Output
Simbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya
Simbol Manual Input
Simbol untuk pemasukan data secara manual on-line keyboard

Simbol Preparation
 
Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage.
Simbol Predefine Proses

Simbol untuk pelaksanaan suatu bagian (sub-program)/prosedure
Simbol Display
 
Simbol yang menyatakan peralatan output yang digunakan yaitu layar, plotter, printer dan sebagainya.
Simbol disk and On-line Storage
 
Simbol yang menyatakan input yang berasal dari disk atau disimpan ke disk.
Simbol magnetik tape Unit
Simbol yang menyatakan input berasal dari pita magnetik atau output disimpan ke pita magnetik.
Simbol Punch Card
 
Simbol yang menyatakan bahwa input berasal dari kartu atau output ditulis ke kartu
Simbol Dokumen
Simbol yang menyatakan input berasal dari dokumen dalam bentuk kertas atau output dicetak ke kertas.

D.     PSEUDOCODE

Pseudocode adalah kode yang menyerupai bahasa program sesungguhnya dengan penjelasan cara menyelesaikan suatu masalah dan tidak ada aturan dalam penulisannya serta ditujukan untuk dibaca manusia (bukan mesin).
Kelemahan dari pseudocode sendiri adalah kesulitan yang dijumpai bila algoritmanya banyak mengandung penyeleksian kondisi, sehingga semakin banyak kondisi yang perlu diperhatikan, akan semakin rumit penulisan pseudocodenya
Biasanya yang ditulis dari pseudocode adalah variabel dan fungsi. Tujuan penggunaan utama dari pseudocode adalah untuk memudahkan manusia dalam memahami prinsip-prinsip dari suatu algoritma. Penggunaan pseudocode umumnya banyak kita temukan di buku-buku dan artikel-artikel tentang pemrograman yang membahas tentang algoritma tertentu. Kadang pula pseudocode kita temukan dalam merencanakan pengembangan suatu program komputer.

E.     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.


















MODUL 1
PRAKTIKUM DASAR PEMROGRAMAN
Topik          : Pemahaman Algoritma

1.       Misalkan terdapat dua gelas, yakni gelas “A” dan “B”. Gelas A berisi air berwarna merah, dan gelas B berisi air berwarna biru. Volume air di dalam kedua gelas sama. Bagaimana mempertukarkan isi kedua gelas sehingga gelas A berisi air berwarna biru, dan gelas B berisi air berwarna merah.

Kondisi awal:
                                    Gelas A                                                Gelas B

Kondisi akhir:
                                    Gelas A                                                Gelas B


2.       Misalkan anda mempunyai dua ember, masing-masing ber-volume 5liter dan 3 liter. Anda diminta untuk mendapatkan air (dari sebuah danau) sebanyak 4 liter dengan menggunakan bantuan hanya kedua ember tersebut. Terserah bagaimana caranya, anda boleh memindahkan air dari satu ember ke ember yang lain, membuang seluruh isi ember, dan sebagainya. Catatan: ember tidak memiliki ukuran.

Pertanyaan: Tuliskan langkah-langkah untuk mendapatkan air 4 liter tersebut.

3.       (plastelina game) Ada sebuah keluarga terdiri dari 5 orang, akan menyeberang melewati jembatan pada malam hari dengan bantuan lampu yang hanya bisa bertahan 30 detik, dengan catatan:
a.       Setiap orang mempunyai kecepatan yang berbeda-beda (1, 3, 6, 8, dan 12 detik).
b.      Apabila yang melewati jembatan ada 2 orang, maka kecepatannya akan dihitung berdasarkan yang paling lambat.

Game bisa di akses di: http://plastelina.net/game3.html
Pertanyaan: tuliskan langkah-langkah secara detail untuk menyelesaikan game tersebut.

4.       (Canibal Game) Bagaimana caranya untuk menyeberangkan tiga rahib dan 3 kanibal ke pulai di seberang, dengan catatan:
a.       Perahu maksimal dapat ditumpangi dua orang.
b.      Perahu tidak dapat berjalan sendiri (tanpa penumpang)
c.       Jika jumlah rahib lebih sedikit dari kanibal, maka rahib akan dimakan oleh kanibal.

Pertanyaan: tuliskan langkah-langkah secara detail untuk menyeberangkan rahib dan kanibal ke pulai seberang.

5.       (wolf game) seorang petani akan bepergian ke kota dengan membawa se-ekor kambing , anjing, dan rumput yang ketiganya memiliki berat yang tidak jauh berbeda. Ditengah jalan, petani harus menyeberangi sungai dengan menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkan membawa sekaligus bawaanya mengingat kapasitas kekuatan perahu tersebut, dan untuk melaluinya petani harus membawa satu per-satu bawaannya, dengan catatan:
a.       Kambing makan rumput
b.      Anjing makan kambing

Pertanyaan: tuliskan langkah-langkah secara detail untuk menyeberangkan semua barang bawaan petani tersebut, dan berapa kali petani harus membawa satu-persatu bawaanya.


Format Laporan
1.       Dasar Teori
-         Dasar Teori tentang algoritma dan pemrograman
-         Karakteristik algoritma
-         Flowchart
-         Psoudecode
-         Bahasa pemrograman
2.       Langkah-langkah pemecahan masalah
3.       referensi




JAWABAN GAMES LOGIKA
1.       
Ø  Siapkan gelas C
Ø  Kemudian tuangkan gelas isi A ke dalam gelas C
Ø  Tuangkan lagi gelas isi B ke dalam gelas A
Ø  Tuangkan lagi isi gelas C ke dalam gelas B
2.       
Ø  Ember A 5 liter
Ø  Ember B 3 liter
Ø  Isi ember A sebanyak 5 liter
Ø  Tuangkan isi ember A ke dalam ember B sebanyak 3 liter
Ø  Ember A telah tersisa 2 liter
Ø  Buang isi ember B sebanyak 3 liter
Ø  Tuangkan sisa isi ember A ke dalam ember B sebanyak 2 liter
Ø  Isi ember A sebanyak 5 liter
Ø  Tuangkan isi ember A ke dalam ember B sebanyak 1 liter
Ø  Sisa ember A sebanyak 4 liter
Ø  Buang semua isi ember B sebanyak 3 liter
Ø  Jadi, sisa di ember A sebanyak 4 liter
3.       
Ø  orang yang pertama menyeberang adalah orang yang ke 3 dan 1 dalam waktu 3 detik
Ø  kemudian orang ke 1 kembali menjemput orang ke 6 dalam waktu 1 detik
Ø  kemudian orang ke 6 dan 1 menyeberang dalam waktu 6 detik
Ø  orang ke 1 kembali lagi dalam waktu 2 detik
Ø  kemudian orang ke 12 dan 8 menyeberang dalam waktu 12 detik
Ø  kemudian orang ke 3 kembali untuk menjemput orang ke 1 dalam waktu 3 detik
Ø  kemudian orang ke 3 dan 1 menyeberang dalam waktu 3 detik
Ø  Jadi, semua orang sudah menyeberang dalam waktu 30 detik



4.       
Ø  Sebrangkan K1 dan K2 terlebih dahulu
Ø  Setelah sampai disebrang, keluarkan K1
Ø  Lalu sebrangkan K2 dan masukkan K3 lalu sebrangkan mereka
Ø  Keluarkan K2 sebrangkan K3
Ø  Keluarkan K3 sebrangkan M1 dan M2
Ø  Keluarkan M1 masukkan K1, lalu sebrangkan mereka
Ø  Keluarkan K1 masukkan M3, lalu sebrangkan mereka
5.       
Ø  Yang pertama di bawah menyeberang adalah kambing
Ø  Kemudian petani kembali untuk menyeberangkan anjingnya
Ø  Kemudian dombanya dibawa lagi ketempat semula supaya tidak di makan anjingnya
Ø  Kemudian petani menyeberangkan rumputnya
Ø  Dan yang terakhirpetaniharuskembalilagiuntukmenyeberangkankambingnya
Ø  Petani harus bolak balik sebanyak 4-5 kali untuk menyeberangkan bawaannya