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:
- Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
- 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.
- 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.
- 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
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
|