KELAS : TF-C
1
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh.
Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka
arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli
bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya
para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis
buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi.
Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku
yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan
pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga
memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi
Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga
akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi
hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode
perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam
Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.
2
Bahasa Pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan
proses komputasi dalam format yang dapat dibaca oleh komputer dan manusia. Proses
komputasi umumnya didefinisikan secara formal menggunakan konsep matematika dari
Mesin Turing. Pada dasarnya bahasa Pemrograman dirancang untuk memfasilitasi
komunikasi antara manusia dengan komputer.
Sebuah bahasa pemrograman disebut Turing Complete jika dapat dipergunakan
untuk mendeskripsikan semua komputasi yang dapat dilakukan Mesin Turing, yaitu
memiliki variable integer dan operator aritmatik, pernyataan penugasan, pernyataan
sekuensial, pernyataan seleksi, dan pernyataan iterasi.
2
2.2. DEFINISI ALGORITMA
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu
computer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan
algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-
haripun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara
membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut
sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat
masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang
diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per
satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia
baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses
(processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat alat
3
elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau
“mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma
tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan
kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya,
pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma
harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu
pemroses harus :
1. Mengerti setiap langkah dalam Algoritma.
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
3
2.2.2. Mekanisme Pelaksanan Algoritma Oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer,
algoritma hasrus ditulis dalam notasi bahasa pemrograman sehingga dinamakan
program. Jadi program adalah prwujudan atau implementasi teknis Algoritma yang
ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh
komputer.
Imperative Declarative
4
a. Belajar Memprogram
Belajar memprogram ≠ belajar bahasa pemrograman
Belajar memprogram : belajar tentang strategi pemecahan masalah,
metodologi dan sistematika pemecahan masalah kemudian menuliskannya
dalam notasi yang disepakati bersama.
Belajar memprogram : bersifat pemahaman persoalan, analisis dan sintesis.
Belajar memprogram, titik berat : designer program.
5
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.2.4. Algoritma
a. Aksi :
kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan
berakhir pada saat T1).
Menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan.
b. Contoh :
Ibu Tati mengupas kentang untuk mempersiapkan makan malam (luas
ruang lingkupnya).
Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek
netto yang direncanakan ( Initial State dan Final State).
Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan
ditaruh di rak dapur dimana ibu Tati akan mengupasnya.
Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci,
siap untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi.
Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan.
Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari
kejadian.
Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari
sudut pandang. Contoh mengupas kentang dapat dijelaskan :
6
- Ambil kantong kentang dari rak
- Ambil panci dari almari
- Kupas kentang
- Kembalikan kantong kentang ke rak
Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang
diambil dari rak sebelum ambil panci) :
- Ambil kantong kentang dari rak dan ambil panci dari almari
- Kupas kentang
- Kembalikan kantong kentang ke rak
Jika esok hari ibu Tati mengupas kentang lagi untuk makan malam juga, dan
kita mengamati hal-hal yang sama, apakah hal tsb bisa disebut sama? Ini
tergantung jawabannya bisa sama bisa tidak.
Tidak karena ibu Tati tidak mungkin mengupas kentang yang sama dengan
kemarin.
Sama karena kemiripan pola yang dilakukan.
6
2.2.5. Notasi Algoritma Independen Terhadap Bahasa Pemrograman Dan Mesin
Komputer
Pemrograman Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti
Algoritma adalah proses yang procedural.
Definisi Prosedural menurut Kamus Besar Bahasa Indonesia :
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.
Pada pemrograman procedural, program dibedakan antara bagian data dengan
bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang
dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan
instruksi dapat berubah karena adanya pencabangan kondisional. Data yang
disimpan di dalam memori dimanipulasi oleh instrusi secara beruntun atau
procedural. Paradigma pemrograman seperti ini dinamakan pemrograman
procedural.
8
Jadi Algoritma adalah:
1. penyusunaan aspekproses logika dari suatu pemecahan masalah tanpa melihat
karakteristik bahasa pemrograman yang akan digunakan.
2. Urutan notasi logika yang merupakan hasil analiss dan rancangan
sistematik dari strategi pemecahan maslah, untuk menggambarkan urutan
langkah kerja yang jika dikerjakan akan membawa ketujuannya.
3. Urutan logika langkah kerja untuk meyelesaikan suatu masalah.
Contoh algoritma dalam kehidupan sehari-hari, misalnya: menjahit
pakaian, membuat kue, jadwal harian, panduan merakit komputer, dan lain-
lain.
9
Contoh masalah : menghitung luas segiempat.
Notasi I :
Algoritma Luas_Segiempat
Menghitung luas segiempat dengan memasukkan nilai lebar dan panjang
segiempat
Deklarasi
Luas,panjang,lebar : bilangan bulat
Deskripsi
1. Masukkan nilai lebar dan panjang
2. Hitung luas sama dengan panjang kali lebar
3. Tampilkan Luas
9
Notasi II :
10
Notasi III :
Algoritma Luas_Segiempat
Menghitung luas segiempat dengan memasukkan nilai lebar dan panjang
segiempat
Deklarasi
Luas,panjang,lebar :integer
Deskripsi
Input(n)
Luas= panjang * lebar
Output(Luas)
10
2.3. ATURAN PENULISAN ALGORITMA
Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut dapat
ditulis dalam notasi apapun, asalkan mudah dibaca dan dimengerti, karena memang tidak
ada notasi baku dalam penulisan algoritma. Tiap orang dapat membuat aturan penulisan
dan notasi algoritma sendiri. Agar notasi algoritma mudah ditranslasi ke dalam notasi
11
bahasa pemrograman, maka sebaiknya notasi algoritma tersebut berkorespnden dengan
notasi bahasa pemrograman secara umum.
Kamus
{ Pada bagian ini, didefinifikan nama konstanta, nama variable, nama
prosedur dan nama fungsi }
Algoritma
{ Pada bagian ini algoritma dituliskan. Semua teks yang dituliskan tidak
diantara tanda kurung kurawa akan dianggap sebagai notasi algoritma yang
akan berpengaruh terhadap kebenaran algoritma }
11
Judul (Header)
Judul adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan
nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi.
Setelah judul disarankan untuk menuliskan spesifikasi singkat dari teks algoritma
12
tersebut. Nama algoritma sebaiknya singkat namun cukup menggambarkan apa yang
akan dilakukan oleh algoritma tersebut.
Contoh :
Catatan :
Untuk memisahkan antara kata dalam judul algoritma menggunakan tanda “_”
bukanlah suatu keharusan. Anda dapat menuliskan LuasLingkaran atau
Luas_Lingkaran. Tetapi sebaiknya anda tidak menggunakan spasi “ “ untuk
memisahkan antara kata di dalam nama algoritma.
Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
Nama type
Nama konstanta
Nama variable
Nama fungsi
Nama prosedur
Semua nama tersebut baru dapat dipakai di dalam algoritma jika telah didefinisikan
terlebih dahulu didalam kamus. Penulisan sekumpulan nama dalam kamus sebaiknya
dikelompokan menurut jenis nama tersebut. Nama variabel belum terdefinisi nilainya
ketika didefinisikan. Pendefinisian nama konstanta sekaligus memberikan harga
konstanta tersebut, pendefinisian nama fungsi dilakukan sekaligus dengan domain /
range serta spesifikasinya. Pendefinisian nama prosedur sekaligus dengan
pendefinisian parameter (jika ada) dan spesifikasi prosedur (kondisi awal “Initial
State”, Kondisi akhir “ Final State” dan proses yang dilakukan).
12
Contoh :
Kamus
13
{Nama type, hanya untuk type yang bukan type dasar}
type jam : <hh,mm,ss :integer> {Type jam terdiri dari 3 masukan yaitu “hh” sebagai
jam. “mm” sebagai menit dan “ss” sebagai detik}
Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau
pemanggilan aksi yang telah didefinisikan. Komponen teks algoritma dalam
pemrograman procedural dapat berupa :
Instruksi dasar seperti input/output, assignment
Sequence (runtutan)
Analisa kasus
Perulangan
Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi penulisan
menentuan urutan langkah pelaksanaan perintah.
13
14
Contoh :
Algoritma
input (c,d) {menerima masukan 2 bilangan c dan d}
if c < d then {operasi kondisional}
e ← a + b {e di assignment oleh nilai a dan b}
else
e ← a – boutput (e) {hasil keluaran berupa bilangan e}
Catatan :
Untuk kata-kata input, output, if then else, output akan dipelajari lebih mendalam
dalam bab-bab selanjutnya.
Program Cetak_string
{mencetak string “Selamat Belajar Algoritma dan Pemrograman” ke piranti
keluaran}
Kamus
{tidak ada}
Algoritma
Output (‘Selamat Belajar Algoritma dan Pemrograman’)
15
14
Menentukan nilai terbesar dari bilangan bulat yang dibaca dari piranti masukan dan
menuliskan hasilnya ke piranti keluaran.
Program Nilai_Maksimal
{Menentukan nilai tertinggi yang dibaca dari piranti masukan dan
hasilnya dicetak ke piranti keluaran}
Kamus
hasil,x,y : integer {hasil merupakan variabel untuk menampung nilai
keluaran}
{x,y adalah variabel untuk menampung nilai
masukan}
Algoritma
input (x,y) {membaca nilai x dan y dari piranti masukan}
if x < y then {operasi kondisional}
hasil ← x {hasil di assignment oleh nila terbesar}
else
hasil ← y
FLOWCHART
output (hasil) (nilai didalam variabel hasil dicetak ke piranti
1. PENDAHULUAN
keluaran}
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan
prosedur dari suatu program. Flowchart menolong analis dan programmer untuk
memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam
menganalisis alternatif-alternatif lain dalam pengoperasian.
16
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata
kerja, misalkan MENGHITUNG PAJAK PENJUALAN.
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6. 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.
7. Gunakan simbol-simbol flowchart yang standar.
3. JENIS-JENIS FLOWCHART
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 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
17
dihubungkan langsung dengan komputer, misalnya mesin tik, cash register atau
kalkulator).
18
Gambar 1. Flowchart Sistem
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.
Gambar 2. menggambarkan suatu contoh flowchart ini mengenai alur pembuatan kartu
anggota untuk suatu perpustakaan.
19
KETERANGAN :
# : Masukkan data calon anggota ke dalam komputer (proses pengisian data)
P : Tanda tangan dan validasi data
Gambar 2. Flowchart Paperwork
20
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.
Suatu contoh flowchart program dapat dilihat pada Gambar 3. berikut ini :
21
Gambar 3. Flowchart Program
22
Flowchart Proses merupakan teknik penggambaran rekayasa industrial yang memecah
dan menganalisis langkah-langkah selanjutnya dalam suatu prosedur atau sistem.
23
Gambar 5. Flowchart Proses
4. SIMBOL-SIMBOL FLOWCHART
Simbol-simbol flowchart yang biasanya dipakai adalah simbol-simbol flowchart standar
yang dikeluarkan oleh ANSI dan ISO.
24
Gambar 6. Simbol Flowchart Standar
25
26
Gambar 6. Lanjutan
27
Gambar 6. Lanjutan
28
Gambar 6. Lanjutan
29
RAPTOR
"RAPTOR adalah flowchart pemrograman berbasis lingkungan, yang dirancang khusus untuk
membantu siswa memvisualisasikan algoritma mereka dan menghindari bagasi sintaksis. Program
RAPTOR diciptakan secara visual dan dijalankan secara visual dengan menelusuri eksekusi melalui
flowchart. Sintaks yang diperlukan dijaga seminimal mungkin. Siswa lebih suka menggunakan diagram
alur untuk mengekspresikan algoritma mereka, dan lebih sukses menciptakan algoritma menggunakan
RAPTOR daripada menggunakan bahasa tradisional atau menulis diagram alur tanpa RAPTOR."
Kenapa harus Raptor? karena raptor ramah terhadap pelajar baru atau awam yang baru memulai
pembelajaran mengenai pemrograman. Sehingga memungkinan untuk berhasil dalam menciptakan
algoritma semakin besar, tidak serumit beberapa tahun silam yang masih menggunakan bahasa
tradisional pemrograman.
RAPTOR memiliki enam (6) simbol dasar, di mana setiap simbol merupakan jenis yang unik dari
instruksi. Simbol dasar ditampilkan di sebelah kanan. Jenis pernyataan atas empat, Tugas, Panggil, Input,
dan Output, dijelaskan dalam membaca, dua jenis bawah, Seleksi dan Loops, akan dijelaskan dalam
membaca masa depan.
30
• OUTPUT - display (atau menyimpan) nilai-nilai yang memberikan solusi untuk tugas.
Ketiga komponen memiliki hubungan langsung dengan petunjuk RAPTOR seperti yang
Berjalannyasekelompok instruksi
didefinisikan dalam prosedur bernama.
PROSEDUR
PENGOLAHAN Dalam beberapa kasus beberapa
PEMANGGILAN
argumen prosedur (misalnya, variabel)
akan diubah oleh petunjuk prosedur itu.
*Biasanya di antara empat instruksi tersebut semuadigunakan melakukan sesuatu untuk variabel
31
DAFTAR PUSTAKA
4. http://raptor.martincarlisle.com
32