Sabtu, 21 September 2013

Bayu Robby Dasar Pemrograman.doc



Dasar teori
1.   Algoritma
Menurut  Donald  E.  Knuth  (1973,p4),  algoritma  dalam  pengertian  modern mempunyai kemiripan dengan istilah  resep ,  proses, metode, teknik, prosedur, rutin . Algoritma  adalah  sekumpulan  aturan-aturan  berhingga  yang  memberikan  sederetan operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus. Menurut  Rinaldi  Munir,  algoritma  adalah  urutan  langkah-langkah  logis penyelesaian masalah yang disusun secara sistematis. Berdasarkan dua pengertian algoritma di atas, dapat disimpulkan bahwa algoritma merupakan suatu istilah yang luas,  yang tidak hanya berkaitan dengan dunia komputer
.
2.   Pemrograman
Pemrograman berasal dar i kata  program  yang diberi awalan pe– dan akhiran –an. Dalam buku ini, program berarti program komputer. Pengertian   program   computer menurut John M. Zelle,  Ph.D.  dalam bukunya  yang  berjudul “Python  Programming: An  Introduction to  Computer  Science”  (2002,  p1)  adalah  sekumpulan  instruksi langkah perlangkah yang memberitahukan mengenai yang harus dilakukan computer secara  tepat.   Pemrograman   adalah  segala  kegiatan  pembuatan  program  computer.
Kemudian  terdapat  pula  istilah   bahasa  pemrograman   yang  berarti  bahasa  yang digunakan dalam pembuatan program komputer. Berdasarkan  pengertian  algoritma  dan  pemrograman,  maka  dapat  dikatakan bahwa  program  merupakan  hasil  penerapan  dari  algoritma- algoritma.  Akan  tetapi, dalam  buku  ini  tidak dibahas  materi  mengenai  pembuatan  program  komputer.  Buku ini  memfokuskan teknik-teknik pembuatan  algoritma  itu  sendiri.  Nama  mata  kuliah Algoritma dan Pemrograman dalam hal ini berarti mempelajari pembuatan algoritma- algoritma yang dapat diterapkan dalam pemrograman.

3.   KARAKTERISTIK ALGORITMA
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.
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.

4.   FLOWCHART
Tujuan utama penggunaan flowchart adalah untuk menyederhanakan rangkaian proses atau prosedur untuk memudahkan pemahaman pengguna terhadap informasi tersebut. Oleh karena itu, design sebuah flowchart harus ringkas, jelas, dan logis.
Flowchart atau diagram alir merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut. 

v  Tujuan Flowchart



v  Simbol-Simbol

Gambar berikut adalah simbol flowchart yang umum digunakan.

Gambar
Simbol untuk
Keterangan

Proses / Langkah
Menyatakan kegiatan yang akan ditampilkan dalam diagram alir.

Titik Keputusan
Proses / Langkah dimana perlu adanya keputusan atau adanya kondisi tertentu. Di titik ini selalu ada dua keluaran untuk melanjutkan aliran kondisi yang berbeda.

Masukan / Keluaran Data
Digunakan untuk mewakili data masuk, atau data keluar.

Terminasi
Menunjukkan awal atau akhir sebuah proses.

Garis alir
Menunjukkan arah aliran proses atau algoritma.

Kontrol / Inspeksi
Menunjukkan proses / langkah dimana ada inspeksi atau pengontrolan.


v  Jenis-Jenis Diagram Alir


Sterneckert (2003) menyarankan untuk membuat model diagram alir yang berbeda sesuai dengan perspektif pemakai (managers, system analysts and clerks) sehingga dikenal ada 4 jenis diagram alir secara umum:

§  Diagram Alir Dokumen, menunjukkan kontrol dari sebuah sistem aliran dokumen.
§  Diagram Alir Data, menunjukkan kontrol dari sebuah sistem aliran data.
§  Diagram Alir Sistem, menunjukkan kontrol dari sebuah sistem aliran secara fisik.
§  Diagram Alir Program, menunjukkan kontrol dari sebuah program dalam sebuah sistem.

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

6.   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
Hasil laporan :
1.   Memindah air

a.       Mengambil sebuah gelas kosong diberi label C
b.      Tuangkan air di gelas B kegelas C
c.       Pindahkan air pada gelas A ke gelas B
d.      Pindahkan air B pada gelas C ke gelas A
2.   Game logika
Mendapatkan air 4 liter dari dua buah ember bervolume 5 dan 3 liter
- Isi penuh ember 3 liter dengan air (ember 3 liter berisi 3 liter air)
- Tuangkan air dari ember 3 liter ke dalam ember air 5 liter (ember 5 liter,sekarang berisi 3 liter air)
- Isi penuh kembali ember ember 3 liter dengan air (ember 3 liter berisi 3 liter air)
tuangkan air dari ember 3 liter kedalam ember 5 liter hingga penuh (di dalam ember 3 liter sekarang tersisa 1 liter air)
- Buang seluruh air dari ember 5 liter air (ember 5 liter kosong)
tuangkan air dari ember 3 liter(yang tersisa 1 liter tadi) kedalam ember 5 liter (ember 5 liter sekarang berisi 1 liter air, ember 3 liter kosong)
- Isi penuh ember 3 liter dengan air (ember 3 liter berisi air 3 liter)
- Tuangkan air dari ember 3 liter ke dalam ember 5 liter (ember 5 liter sekarang berisi 1 + 3 = 4 liter air)

3.Family crisis

a.       Permisalan, untuk orang yang berjalan 1 detik berarti nomor satu, untuk orang yang berjalan 6 detik berarti nomor 6, dan lain sebagainya. Sedangkan sisi 1 untuk tepi awal berangkat dan sisi 2 untuk tepi tujuan
b.      Gunakan orang nomor 3 dan nomor 1 menuju sisi 2, dan orang nomor 3 tinggal di sisi 2 sedangkan orang nomor 1 kembali kesisi 1
c.       Gunakan orang nomor 6 dannomor 1 menuju sisi 2, dan orang nomor 1 dan nomor 6 tinggal di sisi 2 sedangkan orang nomor 3 kembalike sisi 1
d.      Di sisi 1 ada orang nomor 8, nomor 12, dan nomor 3 yang baru saja kembali dari sisi 2
e.       Gunakan orang nomor 8 dan nomor 12 menuju sisi 2, dan lalu gunakan orang nomor 1 untuk menjemput orang nomor 3
f.       Gunakan orang nomor 1 dan nomor 3 menuju sisi 2.

3.   Cannibals and missionaries

a.       Permisalan, untuk kanibal adalah K1, K2, dan K3 dan untuk rahib R1, R2, dan R3 dan tepi pertama sebagai tepi A dan tepi kedua sebagai tepi B
b.      K1 dan R1 berangkat lebih dulu ketepi B, dan K1 tinggal di tepi B sedangkan R1 kembali ke tepi A
c.       R1 turun dari perahu, digantikan oleh K2 dan K3 menuju tepi B, dan K2 tinggal di tepi B sedangkan K3 kembaliketepi A
d.      K3turundariperahu, digantikan R1 dan R2 menujutepi B, dan R1 dan R2 tinggal di tepi B sedangkan K1 kembali ke tepi A
e.       K1 dan K2 naik perahu menuju tepi B, dan K2 tinggal di tepi B sedangkan K1 kembali ketepi A
f.       K1 dan K3 naik perahu menuju tepi B, lalu K1 dan K3 sama-sama turun di tepi B.

4.   Wolf game

a.       Jika membawa anjing terlebih dulu, maka kambing akan memakan rumput, jika membawa rumput terlebih
b.      dulu, anjing akan memakan kambing
c.       Satu-satunya cara untuk membawa satu per satu adalah dengan membawa kambing lebih dulu, karena anjing tidak memakan rumput
d.      Setelah itu membawa anjing dan kambing secara bergantian




REFERENSI
                http://sindarku.wordpress.com/2009/06/24/karakteristik-algoritma/
http://tugas2kuliah.wordpress.com/2011/11/29/pengertian-algoritma-dan-pemograman/
SEVOCAB: Software and Systems Engineering Vocabulary. Term: Flow chart. Retrieved 31 July 2008.
Alan B. Sterneckert (2003)Critical Incident Management. p. 126
http://tri0002.blogspot.com/2013/02/pengertian-pseudocode-dalam-algoritma.html
http://id.wikipedia.org/wiki/Bahasa_pemrograman


Nama : Bayu Robby Sagita
NIM : 135623031
Prodi : D3 Manajemen Informatika