Sabtu, 21 September 2013

Praktikum Dasar Pemrograman

Pemahaman Algoritma
oleh : Zulfiana Karimah / 115623286 MIC

Dasar Teori

A. Algoritma dan Pemrograman

  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.


Beda Algoritma dan Program


  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.


B. Karakteristik Algoritma 

    Menurut Donald E. Knuth dalam bukunya berjudul " The Art Of Computer Programming", algoritma harus mempunyai lima ciri penting, yaitu : 

1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah yang terbatas;

2. Setiap langkah harus didefinisikan dengan tepat dan tidak bermakna ganda (ambique);

3. Algoritma memiliki nol atau lebih masukan (input). Masukan adalah besaran yang diberikan kepada algoritma sebelum algoritma mulai berjalan;

4. Algoritma memiliki nol atau lebih keluaran (output). Keluaran adalah besaran yang memiliki hubungan dengan masukan (input);

5. Algoritma effective dimana setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang terbatas.



C. Flowchart

    Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung.

Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahsa pemrograman.

Simbol-simbol flowchart

Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara lain :


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.


D. Psoudecode

    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.

     Tidak ada satu pun standar yang berlaku atas kode-palsu, sebuah program yang masih berupa kode-palsu tidak dapat dijalankan. Kode-palsu menyerupai pula kerangka program (skeleton programs), termasuk dummy code, yang bisa dikompilasi tanpa kesalahan. Diagram alur dapat pula dimasukkan sebagai alternatif berbasis grafis sebuah kode-palsu.


E. Bahasa Pemrograman

     bahasa pemrograman adalah suatu komando atau perintah yang dibuat manusia untuk membuat komputer menjadi memiliki fungsi tertentu. bahasa pemrograman ini adalah suatu susunan aturan penulisan (sintaks) yang membentuk kode kode yang kemudian akan diterjemahkan oleh program kompiler menjadi bahasa rakitan (assembly) dan terus diolah hingga dimengerti oleh mesin. Komputer hanya mengerti bahasa mesin. menurut tingkat kedekatannya bahasa pemrograman (programming language) terdiri dari :

  1. bahasa mesin. yaitu bahasa yang digunakan untuk memprogram komputer dengan menggunakan kode semacam kode biner misalnya.00100001010100100
  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.

Langkah - Langkah Pemecahan Masalah :

1. Menukar Isi Air

   Dalam kasus ini kita membutuhkan 1 gelas kosong untuk penampungan sementara agar air berwarna biru bisa berada pada gelas A dan air berwarna merah berada pada gelas B. Berikut langkah - langkah untuk menukar isi air : 

   a. Air pada gelas A yang berwarna merah dituang pada gelas C yang masih kosong. Jadi sekarang gelas A kosong. Dan gelas C berisi air berwarna merah.

   b. Air pada gelas B yang berwarna biru dituang pada gelas A yang sekarang telah kosong. Sekarang gelas B yang menjadi kosong. Dan gelas A berisi air berwarna biru.

   c. Air pada gelas C yang berwarna merah dituang pada gelas B. Sehingga gelas B berisi air berwarna merah.

Jadi gelas A berisi air berwarna biru dan gelas B berisi air berwarna merah. 


2. Water Jars

    misal ember A = 5 liter 

            ember B = 3 liter

    langkah - langkahnya : 

    a. ambil air dari danau dengan ember A sampai full, tuang pada ember B. jadi pada ember A tersisa air sebanyak 2 liter. 

    b. buang air pada ember B sampai ember B kosong, lalu tuang sisa air 2 liter pada ember B. jadi pada ember B berisi air sebanyak 2 liter.

    c. ambil lagi air dari danau dengan ember A sampai full, tuang pada ember B yang telah berisi air 2 liter sampai full. sekarang pada ember A tersisa air sebanyak 4 liter. karena sebelumnya pada ember B sudah terisi air sebanyak 2 liter, jika air pada ember B di isi lagi maka hanya akan terisi 1 liter saja. begitu juga pada ember A hanya berkurang 1 liter. jadi pada ember A berisi air sebanyak 4 liter. 


3. Plastelina Game

    misal tempat A = tempat berada sekarang

    tempat B = tempat tujuan

    laki - laki kurus yang berjalan 1 detik = no 1

    laki - laki gendut yang berjalan 3 detik = no 3

    wanita kurus yang berjalan 6 detik = no 6

    laki - laki gendut yang berjalan 8 detik = no 8

    kakek - kakek yang berjalan 12 detik = no 12

    waktu semula 30 detik. 

    langkah - langkahnya : 

    a. no 1 & no 3 berjalan menuju tempat B, no 1 kembali ke tempat A dengan membawa lampu dan waktu yang tersisa 26 detik.

    b. no 12 & no 8 berjalan menuju tempat B, no 3 kembali ke tempat A dengan membawa lampu dan waktu yang tersisa 11 detik.

    c. no 1 & no 6 berjalan menuju tempat B, no 1 kembali ke tempat A dengan membawa lampu dan waktu yang tersisa 4 detik. 

    d. no 1 & no 3 berjalan menuju tempat B dan waktu yang tersisa 1 detik. 

Dengan itu semua orang telah berhasil menuju tempat B dengan waktu kurang dari 30 detik. 


4. Canibal Game

    misal tempat A = tempat berada sekarang

    tempat B = tempat tujuan

    Rahib : R1, R2, R3

    Kanibal : K1, K2, K3

    langkah - langkahnya : 

    a. K1 dan K2 menuju tempat B, K2 turun dari perahu dan berada di tempat B, K1 kembali ke tempat A.

    b. K1 dan K3 menuju tempat B, K3 turun dari perahu dan berada di tempat B, K1 kembali ke tempat A dan turun dari perahu dan berada di tempat A. 

    c.  R1 dan R2 menuju tempat B, R2 turun dari perahu dan berada di tempat b, R1 dan K2 kembali menuju tempat A, lalu K2 turun dari perahu dan berada di tempat A. 

    d. R2 dan R3 menuju tempat B, R2 dan R3 turun dari perahu, lalu K3 naik ke perahu dan kembali menuju tempat A

    e. K3 dan K2 menuju tempat B, K3 turun dari perahu dan berada di tempat B, K2 kembali ke tempat A. 

    f. terakhir K2 dan K1 menuju tempat B dan turun dari perahu.

Jadi sekarang K1, K2, K3 dan R1, R2, R3 berada di tempat B. 


5. Wolf Game

    misal tempat A = tempat berada sekarang

    tempat B = tempat tujuan

    langkah - langkahnya :  

    a. Petani membawa kambing menuju tempat B, petani menurunkan kambing di tempat B, setelah itu petani kembali menuju tempat A.

    b. Petani membawa anjing menuju tempat B, petani menurunkan anjing di tempat B dan membawa kambing yang berada di tempat B untuk menuju tempat A dan menurunkan kambing di tempat A.

    c.  Petani membawa rumput menuju tempat B, petani menurunkan rumput di tempat B, setelah itu petani kembali menuju tempat A.

    d. Petani membawa kambing menuju tempat B, petani menurunkan kambing di tempat B.  

Karena hal itu petani harus membawa barangnya satu - persatu sebanyak 7 kali bolak - balik. 

Referensi : 

  • http://andikafisma.wordpress.com/algoritma-dan-pemrograman/ 
  • http://schooldhol.blogspot.com/2013/08/slide-presenstasi-algoritma.html
  • http://tri0002.blogspot.com/2013/02/pengertian-pseudocode-dalam-algoritma.html 
  • http://andreyanto-gunadarma.blogspot.com/2012/10/pengenalan-flowchart-flowchart.html
  • http://fixhack.blogspot.com/2012/12/apa-itu-bahasa-pemrograman.html