Anda di halaman 1dari 7

A.

Sejarah 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 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.

B. Definisi Algoritma
Terdapat beberapa definisi mengenai kata Algoritma :
1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun
secara sistematis (Rinaldi Munir :2002).
2. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah
(KBBI :1988).
3. Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas
memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah
tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan
instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988).

C. Konsep Dasar Algoritma

1. Ciri Algoritma
Menurut Donald E. Knuth, algoritma mempunyai lima ciri penring :
a. Finiteness (Keterbatasan)
b. Algoritma harus berakhir setelah melakukan sejumlah langkah proses
c. Definiteness (Kepastian)
d. Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak
menimbulkan makna ganda
e. Input (Masukan)
f. Sebuah algoritma memiliki nol atau lebih masukan (input) yang diberikan
kepada algoritma sebelum dijalankan
g. Output (Keluaran)
h. Setiap algoritma memberikan satu atau beberapa hasil keluaran
i. Effectiveness (Efektivitas)
j. Langkah-langkah algoritma dikerjakan dalam waktu yang “wajar”
2. Syarat Algoritma
Beberapa persyaratan untuk menjadi algoritma yang baik adalah:
a. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses
harus berakurasi tinggi dan benar.
b. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat
mungkin dan frekuensi kalkulasi yang sependek mungkin.
c. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus
saja, tapi juga untuk kasus lain yang lebih general.
d. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita
kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
e. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma
Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance
(kelola).
f. Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan
di berbagai platform komputer.
g. Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan
tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan
secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap
sudah mengerti. Setiap langkah harus jelas dan pasti.
Contoh: Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
h. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus
yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya
berbeda.
i. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh
pemroses yang akan menjalankannya.
Contoh: Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.
Misal: Hitung akar 2 sampai lima digit di belakang koma.
j. Harus terminate. Jalannya algoritma harus ada kriteria berhenti.
Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti
terminate?
k. Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan
diikuti dengan seksama maka dihasilkan output yang diinginkan.
3. Teks Algoritma
Pada dasarnya, teks algoritma disusun atas tiga bagian (blok) : bagian judul
(header) agoritma, bagian deklarasi, dan bagian deskripsi. Setiap bagian dapat
diberi komentar untuk memperjelas maksud teks yang dituliskan. Komentar
biasanya ditulis menggunakan kurung kurawal.
1. Judul Algoritma, adalah bagian yang terdiri atas nama algoritma dan
penjelasan (spesifikasi) tentang algoritma tersebut. Nama algoritma sebaiknya
singkat, namun cukup menggambarkan apa yang akan dilakukan oleh algoritma
tersebut. Di bawah nama algoritma disertai dengan penjelasan singkat (intisari)
tentang apa yang dilakukan oleh algoritma. Penjelasan di bawah nama algoritma
sering dinamakan juga spesifikasi algoritma. Algoritma harus ditulis sesuai
dengan spesifikasi yang didefinisikan.
Contoh :
Algoritma Luas Lingkaran
{ Menghitung luas lingkaran untuk ukuran jari-jari tertentu. Algoritma menerima
masukan jari-jari lingkaran, menghitung luasnya, lalu cetak luasnya ke piranti
keluaran }
2. Deklarasi, Di dalam algoritma, deklarasi nama adalah bagian untuk
mendefinisikan semua nama yang dipakai di dalam algoritma. Nama tersebut
dapat berupa nama terapan, nama peubah, nama tipe, nama prosedur dan nama
fungsi.
Contoh Deklarasi :
Panjang = integer {tipe data bilangan bulat}
Lebar = integer
Luas = real {tipe data bilangan pecahan}
3. Deskripsi adalah bagian terpenting dari struktur algoritma. Bagian ini berisi
uraian langkah-langkah penyelesaian masalah. Langkah-langkah ini dituliskan
dengan notasi yang lazim dalam penulisan algoritma. Setiap langkah algoritma
dibaca dari langkah paling atas hingga langkah paling bawah. Urutan penulisan
menentukan urutan pelaksanaan perintah.
Contoh Deskripsi :
Read ( nama )
Read (NIM)
Read (nilai)
If (nilai < 45) then
Grade = E
Else if (nilai >= 45) and (nilai < 60) then
Grade = D
Else if (nilai >= 60) and (nilai < 70) then
Grade = C
Else if (nilai >= 70) and (nilai < 80) then
Grade = B
Else
Grade = A
Write (nama)
Write (NIM)
Write (nilai)
4. Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkahlangkah
tersebut dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi.
Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi,
sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu :
a. Runtunan (sequence), Sebuah runtunan terdiri dari satu atau lebih instruksi.
Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya,
yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai
dikerjakan.
b. Pemilihan (selection), Adakalanya sebuah instruksi dikerjakan jika kondisi
tertentu dipenuhi. Tiap tiap instruksi akan diseleksi oleh kondisi, apabila
instruksi memenuhi kondisi yang diminta, maka instruksi akan dijalankan.
c. Pengulangan (repetition), Salah satu kelebihan komputer adalah
kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa
mengenal lelah. Kita tidak perlu menulis instruksi yang sama berulang kali, tetapi
cukup melakukan pengulangan dengan instruksi yang tersedia.
5. Penulisan Algoritma
Algoritma dapat ditulis dengan cara berikut:
a. Menggunakan bahasa natural
b. Menggunakan kode semu (pseudo-code)
c. Teknik penulisan yang mendekati bahasa pemrograman tertentu
d. Menggunakan diagram alir (flow chart)
Teknik penyajian dengan menggunakan symbol-simbol.
Dari ketiga cara diatas untuk mempermudah translasi teks algoritma kedalam
teks program sebaiknya ditulis dalam bentuk notasi yang mendekati bahasa
pemrograman (pseudo-code).
Di bawah ini dikemukakan beberapa notasi yang digunakan dalam penulisan
algoritma, antara lain :
a. Notasi yang dinyatakan dalam bahasa natural/ kalimat deskriptif, Dengan
notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas. Notasi
ini cocok untuk algoritma yang pendek, namun untuk masalah yang
algoritmanya besar, notasi ini jelas tidak efektif. Selain itu, pengkonversian
notasi algoritma ke notasi bahasa pemrograman cenderung relatif sukar.
b. Notasi yang dinyatakan dengan pseudo code, Pseudocode adalah notasi yang
menyerupai bahasa pemrograman tingkat tinggi. Keuntungan menggunakan
notasi pseudo code adalah kemudahan mengkonversinya lebih tepat yang disebut
mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi
antara setiap pseudo code dengan notasi bahasa pemrograman.
c. Notasi yang dinyatakan dalam flow chart, Sama halnya dengan notasi
deskriptif, notasi ini cocok untuk algoritma yang pendek, namun untuk masalah
yang algoritmanya besar, notasi ini jelas tidak efektif. Selain itu, pengkonversian
notasi algoritma ke notasi bahasa pemrograman cenderung relatif sukar.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu:
1. Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang
menggambarkan urutan prosedur dan proses suatu file dalam suatu media
menjadi file di dalam media lain, dalam suatu sistem pengolahan data.
2. Flowchart program yaitu bagan dengan simbol-simbol tertentu yang
menggambarkan urutan proses dan hubungan antar proses secara mendetail di
dalam suatu program.
6. Tipe Data, Variabel dan Identifier
Program adalah kumpulan instruksi yang disusun sedemikian rupa sehingga
mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
Instruksi-instruksi yang digunakan dalam pemrograman mengacu pada suatu
bahasa pemrograman tertentu, pada buku ini menggunakan bahasa pemrograman
C++, sehingga penulisan program pada buku ini mengikuti tata bahasa C++.
Segala sesuatu yang diproses oleh program adalah data. Dalam hal ini data adalah
elemen-elemen yang digunakan untuk menjelaskan segala sesuatu yang
mempunyai besaran (ukuran/ nilai), seperti misalnya umur besarannya bisa
berupa biangan desimal 42.5 (maksudnya 42½ tahun), golongan seorang
karyawan besarannya bisa berupa sebuah karakter A (maksudnya goongan A)
dan sebagainya. Bahasa C++ menyimpan besaran-besaran tersebut di memori
utama untuk dikelola oleh program, sehingga perlu dilakukan pengaturan
pemakaian memori, oleh karena itu dalam bahasa pemrograman selalu terdapat
istilah-istilah yang bernama Tipe Data, Variabel dan Konstanta. Identifier
(pengen l) adalah suatu nama yang digunakan program untuk merujuk ke suatu
lokasi memori tertentu agar nilai pada lokasi tersebut dapat diakses. Alamat
lokasi memori sebenarnya berupa angkaangka heksadesimal, namun pada bahasa
pemrograman setingkat C++ (middle level programming language) dan di
atasnya, telah mengubahnya dalam bentuk identifier (pengenal) yaitu berupa
suatu huruf atau kata (label) sehingga kita tidak perlu mengetahu alamat yang
sesungguhnya dan dengan identifier (label) akan lebih mudah untuk diingat.
7. Tipe Data Bahasa C++
Data yang dapat dikelola oleh program bisa bermacam-macam, seperti misalnya
bilangan bulat (integer), bilangan dengan desimal (floating point), huruf
(character), dan sebagainya. Oleh sebab itu ketika kita akan memakai suatu
lokasi memori tertentu untuk menyimpan nilai diperlukan 2 hal, yaitu identifier
sebagai pengenal (label) lokasi memori yang digunakan dan tipe data, yaitu
besaran yang menentukan ukuran memori yang dialokasikan. Sekali suatu
identifier sudah dialokasikan dengan tipe data tertentu besarnya ruang yang
digunakan tidak bisa diubah. Bahasa C++ mengenal tipe-tipe data berikut ini :

8. Variabel dan Konstanta


Nilai yang tersimpan di memori dan dikenal melalui identifier tersebut terdiri
dari variabel dan konstanta. Perbedaan diantara keduanya adalah bahwa variabel
(sesuai dengan namanya) nilainya dapat diubah-ubah pada saat program
dieksekusi, sedangkan konstanta nilainya tidak dapat diubah (konstan = tetap).
Sebelum suatu variabel atau konstanta dapat digunakan, tempat pada memori
harus dipesan terlebih dahulu, mekanisme ini dinamalan deklarasi. Deklarasi
dilakukan dengan cara menuliskan tipe data (ukuran memori yang dibutuhkan)
dan diikuti dengan nama pengenal (nama variabel), jika dikehendaki bisa juga
suatu variabel langsung diinisialisasi dengan suatu nilai. Pengenal (identifier)
bisa terdiri dari sebuah huruf atau kombinasi antara huruf dengan angka dengan
syarat :

Baca Selengkapnya : PDF

Anda mungkin juga menyukai