A. Pengantar Algoritma Dan Program
1.
Apakah Itu Algoritma
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.
1.
Algoritma Merupakan Jantung Ilmu
Informatika
Algoritma
adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang
mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma
selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun
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-langkah 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 elektronik lainnya. Pemroses melakukan suatu proses dengan
melaksanakan atau mengeksekusi
algoritma yang menjabarkan
proses tersebut.
A. 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
algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.
Dalam
beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan
pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama,
algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang
dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun
algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut
bukanlah algoritma yang baik Pertimbangan kedua yang harus diperhatikan adalah
kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut.
Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang
memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma
yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang
sebenarnya. Ketiga adalah efisiensi
algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu
dan memori. Meskipun algoritma memberikan keluaran yang benar (paling
mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan
keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang
menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar
memori yang terpakai maka semakin buruklah algoritma tersebut.Dalam
kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk
menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun
algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi
demikian, carilah algoritma yang paling efisien dan cepat.
Perhatikan algoritma sederhana berikut :
Jika
seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:
1.
Menyiapkan Peralatan Tulis
2.
Menulis surat
3.
Surat dimasukkan ke dalam amplop
tertutup
4.
Amplop ditempeli perangko secukupnya.
5.
Pergi ke Kantor Pos terdekat untuk
mengirimkannya
Algoritma
menghitung luas persegi panjang:
1.
Masukkan panjang (P)
2.
Masukkan lebar (L)
3.
Luas
P * L
4.
Tulis Luas
1.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya:
Pembuatan
atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan komputer
yang melaksanakannya.
Notasi
algoritma dapat diterjemahkan ke dalam berbagai
bahasa pemrograman.
Apapun
bahasa pemrogramannya, output yang akan
dikeluarkan sama karena algoritmanya sama.
2.
Beberapa
hal yang perlu diperhatikan dalam membuat algoritma:
Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
Tidak
ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
Setiap
orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini
dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu,
maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
Notasi
algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi
algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh
komputer, pseudocode dalam notasi
algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa
pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat
terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya. pseudocode adalah kode yang mirip dengan
instruksi kode program sebenarnya.
Algoritma
sebenarnya digunakan untuk
membantu kita dalam mengkonversikan suatu permasalahan ke
dalam bahasa pemrograman.
Algoritma
merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer,
algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.
B. Definisi Program / Pemrograman
Pemrograman
adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source
code yang dibuat oleh programmer (pembuat program)
Program
adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga
mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
(Menurut
P. Insap Santosa)
Bahasa
Pemrograman adalah alat untuk membuat program
Contoh: C, C++, C#, Pascal, Basic, Perl, PHP, ASP,
JHP, Java, dll.
Unsur
Pemrograman
1.
Input
Bagian
ini merupakan proses untuk memasukkan data ke komputer melalui device yang ada
misalnya keyboard, mouse, scanner dll. Program melakukan proses membaca data
yang akan diolah dari device tersebut.
2.
Output
Bagian ini
merupakan proses untuk menampilkan data yang telah diolah, melaporkan hasil
pegolahan data melalui device seperti monitor, printer dll.
Program
melakukan proses mencetak data ke device tersebut.
3.
Proses
Bagian
ini merupakan proses mengolah data yang diinputkan dengan nenerapkan metode-metode,
teknik-teknik, algoritma-algoritma yang ada. Proses ini menghasilkan data
output yang akan dioutputkan kepada pengguna program.
Beda
Algoritma dan Program ?
Program
adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis
dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa
pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari
bahasa pemrograman.
Beberapa
pakar memberi formula bahwa:
Program = Algoritma + Bahasa (Struktur Data)
Penerjemah Bahasa Pemrograman
Untuk
menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan Compiler dan interpreter.
Compiler adalah
suatu program yang menterjemahkan bahasa program (Source code) ke dalam bahasa
obyek (object code) secara keseluruhan program.
Interpreter
berbeda dengan Compiler, interpreter
menganalisis dan mengeksekusi setiap baris dari program secara keseluruhan.
Keuntungan dari interpreter adalah dalam eksekusi yang bisa dilakukan dengan
segera. Tanpa melalui tahap kompilasi, untuk alas an ini interpreter digunakan
pada saat pembuatan program berskala besar.
Perbedaan
Compiler dan interpreter.
Paradigma Pemrograman :
1)
Pemrograman Prosedural
a. Berdasarkan
urutan-urutan, sekuensial
b.
Program adalah suatu rangkaian
prosedur untuk memanipulasi data.
Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan.
c.
Harus mengingat prosedur mana yang
sudah dipanggil dan apa yang sudah diubah.
2)
Pemrograman Fungsional
a. Berdasarkan
teori fungsi matematika
b. Fungsi
merupakan dasar utama program.
3)
Pemrograman Terstruktur
a. Secara
berurutan dan terstrukrtur.
b. Program
dapat dibagai-bagi menjadi prosedur dan fungsi.
c. Contoh:
PASCAL dan C
4)
Pemrograman Modular
a. Pemrograman
ini membentuk banyak modul.
b. Modul
merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
c. Sebuah
program dapat merupakan kumpulan modul-modul.
d. Contoh:
MODULA-2 atau ADA
5)
Pemrograman Berorientasi Obyek
a. Pemrograman berdasarkan prinsip obyek,
dimana obyek memiliki data/variabel/property dan method/event/prosedur yang
dapat dimanipulasi
b.
Contoh: C++, Object Pascal, dan Java.
6)
Pemrograman Berorientasi Fungsi
a. Pemrograman ini berfokus pada suatu
fungsi tertentu saja. Sangat tergantung
pada tujuan pembuatan bahasa pemrograman ini.
b. Contoh:
SQL (Structured Query Language), HTML,
XML dan lain-lain.
7)
Pemrograman Deklaratif
a. Pemrograman ini mendeskripsikan suatu
masalah dengan pernyataan daripada memecahkan masalah dengan implementasi
algoritma.
b. Contoh:
PROLOG
A. 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. Sedangkan belajar
bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata
bahasanya, pernyataan-pernyataannya, tata cara pengoperasian compiler-nya, dan memanfaatkan pernyataan-pernyataan
tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sampai
saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I,
Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasi seperti CSMP,
Simscript, GPSS, Dinamo.
Berdasarkan
Terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar:
1.
Bahasa
pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah
Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi
ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan
buatan), bahasa-bahasa simulasi, dan sebagainya.
2.
Bahasa
pemrograman bertujuan umum, yang dapat digunakan untuk berbagai
aplikasi. Yang termasuk kelompok ini adalah bahasa
Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku. Bahasa-bahasa
bertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Cobol
misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya
terbatas. Yang jelas, bahasa-bahasa pemrograman yang berbeda dikembangkan untuk
bermacam-macam terapan yang berbeda pula.
Berdasarkan
pada apakah notasi bahasa pemrograman lebih dekat ke mesin atau ke bahasa
manusia, maka bahasa pemrograman dikelompokkan atas dua macam:
1.
Bahasa
tingkat rendah. Bahasa jenis ini dirancang agar setiap
instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah
(translator). Contohnya adalah bahasa mesin. CPU mengambil instruksi dari
memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat
rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin,
dan sulit dipahami manusia. Sedangkan bahasa rakitan dimasukkan ke dalam
kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke
mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke
dalam bahasa mesin.
2.
Bahasa
tingkat tinggi, yang membuat pemrograman lebih mudah dipahami,
lebih manusiawi,
dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam
bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu
diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut
kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi
oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic,
Fortran, C, PHP, C++, dan sebagainya.
ConversionConversion EmoticonEmoticon