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’.
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.
Adapun ilustrasi
proses pemrograman, terlihat dalam gambar 1.1. berikut ini :
Gambar 1.1. Diagram alir Proses Pemrograman
Algoritma disusun oleh 3 bagian (blok)
yang biasanya selalu ada dalam sebuah algoritma. 3 bagian itu adalah :
1.
bagian judul (header)
2.
bagian deklarasi (declaration)
3.
bagian algoritma (sebagian menyebutnya dengan deskripsi)
Ketiga bagian tersebut secara umum ditunjukkan dalam
notasi algoritmik seperti di bawah:
PROGRAM nama program
{berisi judul algoritma, singkat dan jelas}
{berisi judul algoritma, singkat dan jelas}
DEKLARASI
{sebagai tempat untuk mengenalkan nama atau variabel apa saja yang digunakan dan tipe datanya serta prosedur dan fungsi yang dipakai}
{sebagai tempat untuk mengenalkan nama atau variabel apa saja yang digunakan dan tipe datanya serta prosedur dan fungsi yang dipakai}
ALGORITMA :
{berisi langkah-langkah penyelesaian masalah}
{berisi langkah-langkah penyelesaian masalah}
Bagian Judul (header)
Sesuai bagiannya, kita perlu memberi judul terhadap
algoritma yang kita buat. Judul sebaiknya singkat, dan jelas serta
menggambarkan apa yang dilakukan oleh program. Di bawah judul, sebaiknya juga
diberikan komentar singkat tentang masalah yang ingin diselesaikan itu, dan
bagaimana masukan dan keluarannya.
Contohnya :
PROGRAM ucapan selamat
datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
Bagian Deklarasi (declaration)
Digunakan untuk memperkenalkan semua
variabel atau nama-nama yang akan terlibat dalam algoritma termasuk tipe data
dan sebagainya. Apapun nama dan variabel yang digunakan dalam algoritma harus
di ‘umumkan’ terlebih dahulu di bagian deklarasi ini, jika tidak, algoritma (dan
program) tidak akan bisa menyelesaikan masalah. Justru malah menjadi masalah.
Contoh deklarasi adalah :
DEKLARASI
nama : string
usia : integer
nama : string
usia : integer
Nama atau variabel adalah satu
kesatuan leksikal, sehingga nama tidak boleh mengandung spasi, tanda baca,
tanda operator dan sebagainya kecuali tanda “_” (garis bawah). Pada algoritma,
tidak dibedakan antara huruf besar (kapital) atau huruf kecil, semuanya
dianggap sama. Lebih jelasnya akan kita lihat pada posting berikutnya…
Bagian Algoritma (deskripsi)
Bagian ini adalah inti dari program
untuk menyelesaikan masalah. Berisi instruksi-instruksi untuk pemecahan masalah
dengan menggunakan notasi pseudo-code. Tidak perlu berpanjang lebar, kita
lihat saja contohnya.
ALGORITMA :
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
Nah, kalau ketiga bagian di atas digabungkan menjadi 1
kesatuan algoritma akan menjadi :
PROGRAM ucapan selamat
datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
DEKLARASI
nama : string
usia : integer
nama : string
usia : integer
ALGORITMA :
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
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 n.
- 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.
FLOWCHART
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan
urut-urutan prosedur dari suatu program.
Flowchart berfungsi :
• untuk memudahkan perancangan alur urutan logika suatu program,
• memudahkan pelacakkan sumber kesalahan program,
• untuk menerangkan logika program.
• menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil
• menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.
Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya
masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
urut-urutan prosedur dari suatu program.
Flowchart berfungsi :
• untuk memudahkan perancangan alur urutan logika suatu program,
• memudahkan pelacakkan sumber kesalahan program,
• untuk menerangkan logika program.
• menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil
• menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.
Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya
masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
PEDOMAN-PEDOMAN
DALAM MEMBUAT FLOWCHART
Bila seorang analis dan programmer akan membuat
flowchart, ada beberapa
petunjuk yang harus diperhatikan, seperti :
a.
Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke
kanan.
b. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan
definisi ini harus dapat dimengerti oleh pembacanya.
c. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
d. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan
deskripsi kata kerja, misalkan “menghitung luas lingkaran”.
e. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
f. Lingkup dan range dari aktifitas yang sedang digambarkan harus
ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong
aktivitas yang sedang digambarkan tidak perlu digambarkan pada
flowchart yang sama. Simbol konektor harus digunakan dan
percabangannya diletakan pada halaman yang terpisah atau hilangkan
seluruhnya bila percabangannya tidak berkaitan dengan sistem.
g. Gunakan simbol-simbol flowchart yang standar.
kanan.
b. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan
definisi ini harus dapat dimengerti oleh pembacanya.
c. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
d. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan
deskripsi kata kerja, misalkan “menghitung luas lingkaran”.
e. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
f. Lingkup dan range dari aktifitas yang sedang digambarkan harus
ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong
aktivitas yang sedang digambarkan tidak perlu digambarkan pada
flowchart yang sama. Simbol konektor harus digunakan dan
percabangannya diletakan pada halaman yang terpisah atau hilangkan
seluruhnya bila percabangannya tidak berkaitan dengan sistem.
g. Gunakan simbol-simbol flowchart yang standar.
JENIS-JENIS
FLOWCHART
Flowchart terbagi atas lima jenis, yaitu :
Flowchart terbagi atas lima jenis, yaitu :
- Flowchart Sistem (System Flowchart)
- Flowchart Paperwork / Flowchart Dokumen (Document Flowchart)
- Flowchart Skematik (Schematic Flowchart)
- Flowchart Program (Program Flowchart)
- Flowchart Proses (Process Flowchart)
FLOWCHART
SISTEM
Flowchart Sistem merupakan bagan yang menunjukkan alur kerja atau apa yang
sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan
dari prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart
ini merupakan deskripsi secara grafik dari urutan prosedur-prosedur yang
terkombinasi yang membentuk suatu sistem. Flowchart Sistem terdiri dari data
yang mengalir melalui sistem dan proses yang mentransformasikan data itu. Data
dan proses dalam flowchart sistem dapat digambarkan secara online (dihubungkan
langsung dengan komputer) atau offline (tidak dihubungkan langsung dengan
komputer, misalnya mesin tik, cash register atau kalkulator).
FLOWCHART PAPERWORK / FLOWCHART DOKUMEN
Flowchart Paperwork menelusuri alur dari data yang ditulis melalui sistem. Flowchart Paperwork sering disebut juga dengan Flowchart Dokumen. Kegunaan utamanya adalah untuk menelusuri alur form dan laporan sistem dari satu bagian ke bagian lain baik bagaimana alur form dan laporan diproses, dicatat dan disimpan.
FLOWCHART SKEMATIK
Flowchart Skematik mirip dengan Flowchart Sistem yang menggambarkan
suatu sistem atau prosedur. Flowchart Skematik ini bukan hanya
menggunakan simbol-simbol flowchart standar, tetapi juga menggunakan
gambar-gambar komputer, peripheral, form-form atau peralatan lain yang
digunakan dalam sistem.
Flowchart Skematik digunakan sebagai alat komunikasi antara analis
sistem dengan seseorang yang tidak familiar dengan simbol-simbol
flowchart yang konvensional. Pemakaian gambar sebagai ganti dari
simbol-simbol flowchart akan menghemat waktu yang dibutuhkan oleh
seseorang untuk mempelajari simbol abstrak sebelum dapat mengerti
flowchart.
FLOWCHART PROGRAM
Flowchart Program dihasilkan dari Flowchart Sistem. Flowchart Program merupakan keterangan yang lebih rinci tentang bagaimana setiap langkah program atau prosedur sesungguhnya dilaksanakan. Flowchart ini menunjukkan setiap langkah program atau prosedur dalam urutan yang tepat saat terjadi. Programmer menggunakan flowchart program untuk menggambarkan urutan instruksi dari program komputer. Analis Sistem menggunakan flowchart program untuk menggambarkan urutan tugas-tugas pekerjaan dalam suatu prosedur atau operasi.
FLOWCHART PROSES
Flowchart Proses merupakan teknik penggambaran rekayasa industrial
yang memecah dan menganalisis langkah-langkah selanjutnya dalam
suatu prosedur atau sistem.
SIMBOL-SIMBOL FLOWCHARTSimbol-simbol
flowchart yang biasanya dipakai adalah simbol-simbol
flowchart standar yang dikeluarkan oleh ANSI dan ISO.
flowchart standar yang dikeluarkan oleh ANSI dan ISO.
Psoudecode
Pseudocode adalah cara untuk menuliskan sebuah algoritma secara high-level
(level tingkat tinggi). Biasanya Pseudocode dituliskan dengan kombinasi Bahasa
Inggris dan notasi matematika. Biasanya sebuah Pseudocode tidak terlalu detail
dibandingkan dengan program. Isu-isu detail dalam program yang sifatnya teknis
tidak dibahas di dalam Pseudocode.
Komponen-komponen Pseudocode, antara lain:
1. Variabel
Merupakan tempat penyimpanan sebuah nilai.
Komponen-komponen Pseudocode, antara lain:
1. Variabel
Merupakan tempat penyimpanan sebuah nilai.
2.
Perulangan (Loop)
Teknik for-do
Teknik repeat-until
Teknik while-do
Teknik for-do
Teknik repeat-until
Teknik while-do
3. Percabangan (branch)
Teknik if-then
Teknik select-case
Teknik if-then
Teknik select-case
4. Modul
Procedure/Sub
Function.
Teknik Rekursif
Contoh Pseudocode, sederhana:
1. Algoritma untuk menampilkan 7 buah simbol #.
for i=1 to 7 do
display ”#”
end for
Procedure/Sub
Function.
Teknik Rekursif
Contoh Pseudocode, sederhana:
1. Algoritma untuk menampilkan 7 buah simbol #.
for i=1 to 7 do
display ”#”
end for
2. Algoritma untuk menghitung faktorial dari N.
iTampung=1
for i=1 to N do
iTampung=iTampung*i
end for
display ”Faktorial dari ”,N,” adalah ”,iTampung,NL
3. Algoritma untuk menampilkan bilangan Fibonacci.
f1=0
f2=1
for i=1 to 8 do
iFibo=f1+f2
display ”Angka ke-”,i,” adalah ”,iFibo,NL
f1=f2
f2=iFibo
end for
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.
2. Langkah-langkah Pemecahan
Masalah
Game Logika 1 :
-
Sediakan
gelas C
-
Gelas A
tuang ke gelas C
-
Gelas B
Tuang ke gelas A
-
Gelas C
tuang k Gelas B
-
FINISHED..!!
Game Logika 2 :
-
Ambil air
dengan ember 5L lalu tuang ke ember 7L
-
Isi
kembali ember 5L lalu tuang ke ember 7L dan sisa 3L pada ember 5l
-
Ember 7L
dibuang dan diisi dengan ember 5L dengan sisa 3L
-
Isi
kembali ember 5L kemudian tuang ke ember
7L dan menyisakan 1L
-
Tuang
ember 5L dengan sisa 1L pada ember 7L
-
Isikan
kembali ember 5L dan tuang ke ember 7L yang berisi 1L
-
YOU’VE
GOT IT..!!
Game logika 3 :
-
Orang ke
1 dan 6 menyebrang, orang ke 1 kembali membawa lampu
-
Orang ke
1 dan 3 menyebrang, orang ke 1 kembali membawa lampu
-
Orang ke
8 dan 12 menyebrang, giliran orang ke 3 membawa lampu
-
Orang ke
1 dan 3 mnyebrang
-
PERFECT..!!
Game logika 4 :
-
2 kanibal
menyebrang turun 1 dan 1 kembali membawa perahu
-
Menjemput
1 kanibal, menyebrang 2 kanibal turun 1 kembali 1
-
2 rahib
menyebang turun 1, kembali dengan 1 kanibal dan 1 rahib
-
2 rahib
menyebrang turun semua diganti oleh 1 kanibal
-
2 kanibal
menyebrang turun 1 kembali 1
-
2 kanibal
menyebrang turun semua
-
BRAVO..!!
Game logika 5 :
-
Kambing
menyebrang dan petani kembali
-
Anjing
menyebrang, petani kembali dengan kambing
-
Rumput
menyebrang, petani kembali
-
Kambing
menyebrang bersama petani
-
WELL
DONE..!!
3. Referensi
Dasar Teori Tentang Algoritma dan Pemrograman
KARATERISTIK ALGORITMA
FLOWCHART
Psoudecode
Bahasa Pemrograman