Sabtu, 21 September 2013

Laporan Dasar Pemrograman

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.

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

·         http://geyer.forumid.net/
·         http://sindarku.wordpress.com