Disusun oleh :
Ujang Adi R.
KATA PENGANTAR
Alhamdulillah, puji syukur penulis haturkan kehadirat Allah SWT. Atas rahmatNya lah Penulis dapat menyelesaikan makalah ini tepat pada waktunya. Tak lupa Penulis
juga menghaturkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah
mendukung dan membantu Penulis dalam menyelesaikan makalah ini.
Dalam makalah yang berjudul ALGORITMA DAN PEMROGRAMAN ini, akan
dibahas mengenai pengertian Algoritma dan Pemrograman, sejarah Algoritma itu sendiri,
kemudian dasar-dasar pemrograman yang menjelaskan tentang variabel, tipe data, dan
operatoryang terdapat dalam bahasa pemrograman. Selain itu, untuk mempermudah
pemahaman juga sebagai bahan latihan, Penulis juga menyertakan contoh program yang dapat
dipraktekkan oleh para pembaca.
Namun demikian, Penulis merasa masih banyak sekali kekurangan dalam
penyusunan makalah ini, sesuai dengan pepatah yang mengatakan bahwa tak ada gading yang tak retak. Oleh
karena itu, segala saran dan kritik yang membangun dari yang lebih berkompeten di bidang Algoritma
dan Pemrograman, penulis terima dengan penuh rasa terima kasih.
Akhir kata, Penulis berharap makalah ini dapat bermanfaat bagi para pembaca,
khususnya bagi yang akan mempelajari Algoritma dan Pemrograman.
Penulis
Ujang Adi R.
DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI
ii
BAB 1
PENDAHULUAN
1.2. TUJUAN
BAB 2
PEMBAHASAN
2.1. PENGERTIAN ALGORITMA DAN PEMROGRAMAN
4
5
7
11
PENUTUP
3.1. KESIMPULAN
16
3.2. REFERENSI
16
ii
BAB 1
PENDAHULUAN
1.1. LATAR BELAKANG
Pesatnya teknologi, terutama teknologi komputer sudah tak bisa dipungkiri
lagi, bagi yang mengikuti perkembangannya, ia tidak akan dipandang sebelah mata.
Sebaliknya, bagi yang tidak mengikuti perkembangannya, bersiaplah untuk mundur
secara suka rela dari panggung kompetisi. Ibarat wabah, teknologi komputer sudah
menyusupi hampir semua bidang kehidupan manusia. Dari pemerintah pusat sampai
tingkat
pemerintah
desa,
perusahaan-perusahaan,
supermarket,
minimarket,
TUJUAN
Makalah ini disusun dengan tujuan sebagai sarana untuk mengikuti pesatnya
perkembangan teknologi komputer di masa sekarang ini, salah satunya di dunia
pemrograman yang sekarang semakin banyak diminati. Selain itu, tujuan disusunnya
makalah ini adalah untuk memenuhi tugas untuk memperbaiki nilai UTS.
1
1
BAB 2
PEMBAHASAN
2.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 Jafar
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.
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 urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis dan logis. Kata Logis merupakan kata kunci dalam
Algoritma. Langkah-langkah dalam Algoritmaharus logis dan harus dapat ditentukan
bernilai salah atau benar.
2.2.1. Algoritma Merupakan Jantung Ilmu Informatika
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 langkahlangkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibuibu yang mencoba suatu resep masakan akan membaca satu per satu langkahlangkah 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
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.
2.2.3. 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. Sedangakan belajar bahasa pemrograman berarti belajar
memakai suatu bahasa aturan-aturan tata bahasanya, instruksi-instruksinya,
tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi
tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja.
Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan
berdasarkan tujuan dan fungsinya. Diantaranya adalah :
Programming
Language Paradigm
Declarativ
e
Imperative
Prosedural C,
Pascal,
Fortran,
Basic
ObjOriented
Ada, Object
Pascal, C++,
Java,
Smalltalk,
Eiffel
Parallel
Processing :
Ada, Pascal S,
Occam,
CLinda
Logic :
PROLOG
Functional :
LISP, APL,
SCHEME
Database :
SQL
4
a. Belajar Memprogram
Belajar memprogram belajar bahasa pemrograman
Belajar memprogram : belajar tentang strategi pemecahan masalah,
metodologi
dan
sistematika
pemecahan
masalah
kemudian
Aksi :
kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan
berakhir pada saat T1).
5
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 :
- 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
Notasi
Algoritma
dapat
diterjemahkan
ke
dalam
berbagai
bahasa
7
Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C
mendukung kegiatan pemrograman procedural, karena itu mereka dinamakan
juga bahasa procedural. Selain paradigma pemrograman procedural, ada lagi
paradigma yang lain yaitu pemrograman berorientasi objek (Object Oriented
Programming). Paradigma pemrograman ini merupakan trend baru dan
sangat populr akhir-akhir ini.
Paradigma pemrograman yang lain adalah pemrograman fungsional,
pemrogramn deklaratif dan pemrograman konkuren. Pada kesempatan ini
penulis hanya menyajikan paradigma pemrograman procedural saja.
Keuntungan pemakaian algoritma adalah: logika pemecahan masalah dapat
dibuat bertingkat (mulai dari global menuju terperinci), algoritma
merupakan
bentuk
fleksibel
untuk
diterapkan
keberbagai
bahasa
pemrograman.
Jadi Algoritma adalah:
1.
2.
3.
2.
3.
8
Simbol-simbol program flowchart
3. Tampilkan Luas
9
Notasi II :
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 bahasa pemrograman, maka sebaiknya notasi algoritma
tersebut berkorespnden dengan notasi bahasa pemrograman secara umum.
a.
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 tersebut. Nama algoritma sebaiknya singkat namun cukup
menggambarkan apa yang akan dilakukan oleh algoritma tersebut.
Contoh :
Program Luas_Kubus
{Judul Algoritma}
{ Menghitung luas kubus untuk ukuran sisi yang dibaca dari piranti masukan
lalu mencetak hasilnya kepiranti keluaran} {Spesifikasi Algoritma}
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
{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}
{Nama konstanta, harus menyebutkan type dan nilai }
constant phi : real = 3,14159
constant nama : string = Alex
constant benar : boolean = true
{Nama Informasi, menyebutkan type}
x,y : integer {suatu nilai yang bertype bilangan bulat}
NMax : real {nilai maksimum yang bertype bilangan real}
Nama : string {suatu nilai yang merupakan kumpulan character}
P : point {suatu nilai pada bidang kartesian}
Cari : Boolean {suatu nilai logika}
Algoritma (Deskripsi)
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
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.
Contoh Penyelesaian Masalah Oleh Algoritma
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)
if x < y then
hasil x
else
hasil y
output (hasil)
15
BAB 3
PENUTUP
3.1. Kesimpulan
Imperative program beranalogi dibawah bahasa pemograman yang memacu atau
berorientasi pada objek objek system informasi yang mengarah pada system
informasi. Pembuatan program program komputer dengan penguasaan data yang ada
pada bahasa pemograman untuk dikuasai agar menjadi seorang programmer handal.
Beberapa sub dari bidang pemograman imperative diantaranya adalah variable dan
penugasan ; perintah tidak struktur ; perintah tidak terstruktur ; subprogram, prosedur
dan fungsi; dan penanganan eksepsi. Mengenali dan memberi contoh variable dan
penguasaaanya, mengenali bentuk perintah tidak terstruktur, mengenali bentuk
perintah terstruktur, dapat menjelaskan bentuk-bentuk struktur control, dapat
16