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 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.
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.
Beberapa
hal yang perlu diperhatikan dalam membuat algoritma:
1. Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
2. Tidak
ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
3. 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.
4. 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
5. Algoritma
sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
6.
Algoritma merupakan hasil pemikiran
konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus
ditranslasikan ke dalam notasi bahasa pemrograman.
Tipe-tipe Algoritma Berdasarkan Format Penulisan
Algoritma adalah independen terhadap
bahasa pemr ograman tertentu, artinya algoritma
yang telah dibuat tidak boleh hanya
dapat diterapkan pada bahasa pemrograman
tertentu. Penulisan algoritma tidak ter ikat
pada suatu aturan tertentu, tetapi harus jelas maksudnya
untuk tiap langkah algoritmanya. Namun pada dasar nya algoritma dibagi menjadi
beberapa macam berdasarkan for mat penulisannya, yaitu:
1.
Deskriptif
Algoritma
bertipe deskr iptif maksudnya adalah algoritma
yang ditulis dalam bahasa manusia sehari- hari (misalnya bahasa
Indonesia atau bahasa Inggris) dan dalam bentuk kalimat.
Setiap langkah algoritmanya diterangkan dalam
satu atau beberapa kalimat.
Sebagai contoh misalnya algoritma menentukan bilangan
terbesar dari 3 bilangan berikut ini:
Algoritma Menentukan_bilangan_terbesar_dari_3_bilangan
- Meminta input 3 bilangan dari user, misalkan bilangan a, b, dan c.
- Apabila bilangan a lebih besar dari b maupun c, maka bilangan a merupakan bilangan terbesar.
- Jika tidak (bilangan a tidak lebih besar dari b atau c) berarti bilangan a sudah pasti bukan bilangan terbesar. Kemungkinannya tinggal bilangan b atau c. Apabila bilangan b lebih besar dari c, maka b merupakan bilangan terbesar. Sebaliknya apabila bilangan b tidak lebih besar dari c, maka bilangan c merupakan yang terbesar.
- Selesai.
2.
Flow
Chart (Diagram Alir)
Selain
dalam bentuk tulisan, algoritma juga dapat ditulis dalam bentuk diagram-
diagram dengan anak panah sebagai penunjuk urutan langkah algoritmanya. Algor
itma yang ditulis dengan simbol-simbol demikian yang dinamakan flow
chart .
Mengenai lambang- lambang yang
digunakan akan dibahas pada bagian selanjutnya.
Sekarang diberikan suatu contoh algoritma menentukan bilangan terbesar dar i 3
bilangan seperti yang dicontohkan sebelumnya, tetapi ditulis dalam bentuk flow
chart.
3.
Pseudocode
Pseudo berarti imitasi dan code
ber arti kode yang dihubungkan dengan instruksi yang ditulis
dalam bahasa komputer (kode bahasa
pemrograman). Apabila diterjemahkan secar a bebas,
maka pseudocode berarti tiruan atau imitasi
dari kode bahasa pemrograman. Pada dasarnya, pseudocode
merupakan suatu bahasa yang memungkinkan programmer
untuk berpikir terhadap per masalahan yang harus dipecahkan tanpa harus
memikirkan syntax dar i bahasa
pemrogr aman yang tertentu. Tidak ada aturan penulisan
syntax di dalam pseudocode.
Jadi pseudocode digunakan untuk menggambarkan logika
urut-urutan dari program tanpa memandang bagaimana bahasa pemrogramannya.
Walaupun
pseudocode tidak ada aturan penulisan syntax, di dalam buku ini akan diberikan
suatu aturan-aturan penulisan syntax yang cukup seder hana
agar pembaca dapat lebih mudah dalam mempelajari
algoritma-algor itma yang ada di dalam buku
ini. Pseudocode yang ditulis di dalam
buku ini akan menyerupai (meniru) syntax- syntax
dalam bahasa Pascal. Namun dibuat sesederhana mungkin sehingga tidak akan
ada kesulitan bagi pembaca untuk memahami
algoritma- algor itma dalam buku ini walaupun pembaca belum
pernah mempelajar i bahasa Pascal.
Contoh
algoritma menentukan bilangan terbesar dar i
tiga bilangan yang ditulis dalam bentuk pseudocode bergaya
buku ini.
Pemrograman
Pemrograman adalah proses menulis, menguji dan
memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer.
Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari
pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu
perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram (programmer).
Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma,
logika,
bahasa pemrograman, dan di banyak kasus,
pengetahuan-pengetahuan lain seperti matematika.
Pemrograman adalah sebuah seni dalam
menggunakan satu atau lebih algoritma
yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga
menjadi sebuah program komputer. Bahasa pemrograman yang berbeda mendukung
gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.
Sejarah pemrograman
Mekanisme Antikythera dari Yunani
kuno adalah kalkulator menggunakan persneling dari berbagai ukuran dan
konfigurasi untuk menentukan operasi, yang dilacak siklus Metonik masih
digunakan di bulan-ke-surya kalender, dan yang konsisten untuk menghitung
tanggal olimpiade. Al-Jazari dibangun Automata diprogram pada tahun 1206. Salah
satu sistem yang digunakan dalam perangkat ini adalah penggunaan pasak dan Cams
ditempatkan ke drum kayu di lokasi tertentu, yang secara berurutan akan memicu
tuas yang pada gilirannya dioperasikan instrumen perkusi. Output dari perangkat
ini adalah drumer kecil bermain berbagai ritme dan pola drum. The Jacquard
Loom, Joseph Marie Jacquard yang dikembangkan pada tahun 1801, menggunakan
serangkaian karton kartu dengan menekan lubang di dalamnya. Pola lubang pola
yang mewakili alat tenun harus mengikuti menenun kain. Alat tenun bisa
menghasilkan tenun yang sama sekali berbeda dengan menggunakan kumpulan kartu
yang berbeda. Charles Babbage mengadopsi penggunaan kartu menekan sekitar tahun
1830 untuk mengendalikan Analytical Engine. Program komputer pertama ditulis
untuk Analytical Engine oleh matematikawan Ada Lovelace untuk menghitung urutan
Bilangan Bernoulli. Sintesis perhitungan numerik, operasi dan output telah
ditentukan, bersama dengan cara untuk mengatur dan masukan instruksi dengan
cara yang relatif mudah bagi manusia untuk hamil dan menghasilkan, menyebabkan
perkembangan modern pemrograman komputer. Pengembangan pemrograman komputer
dipercepat melalui Revolusi Industri. Pada akhir 1880-an, Herman Hollerith
menemukan rekaman data pada media yang kemudian dapat dibaca oleh mesin.
Sebelum menggunakan mesin dibaca dari media, di atas, telah untuk kontrol,
bukan data. "Setelah beberapa percobaan awal dengan kertas pita, ia
menetap di kartu menekan ..." Untuk memproses kartu menekan ini, pertama
kali dikenal sebagai "kartu Hollerith" dia menciptakan tabulator, dan
mesin keypunch. Ketiga penemuannya dasar dari industri pengolahan informasi
modern. Pada tahun 1896 ia mendirikan Tabulating Machine Company (yang kemudian
menjadi inti dari IBM). Penambahan panel kontrol (plugboard) ke 1906 Tipe I
Tabulator memungkinkannya untuk melakukan pekerjaan yang berbeda tanpa harus
secara fisik dibangun kembali. Pada akhir 1940-an, ada berbagai mesin panel
kontrol diprogram, disebut catatan unit peralatan, untuk melakukan pengolahan
data tugas.
Data dan instruksi dapat disimpan pada kartu punched
eksternal, yang disimpan dalam rangka dan disusun dalam deck. Penemuan
arsitektur von Neumann memungkinkan program komputer untuk disimpan dalam
memori komputer. Program awal harus susah payah dibuat dengan menggunakan
instruksi (operasi dasar) dari mesin tertentu, sering kali dalam notasi biner.
Setiap model komputer mungkin akan menggunakan instruksi yang berbeda (bahasa mesin)
untuk melakukan tugas yang sama. Kemudian, perakitan bahasa tersebut
dikembangkan yang memungkinkan programmer menentukan setiap instruksi dalam
format teks, singkatan memasukkan kode untuk setiap operasi, bukan menetapkan
sebuah nomor dan alamat dalam bentuk simbolik (misalnya, ADD X, JUMLAH).
Memasuki sebuah program dalam bahasa assembly biasanya lebih nyaman, lebih
cepat, dan kurang rentan terhadap kesalahan manusia daripada menggunakan bahasa
mesin, tetapi karena bahasa assembly adalah sedikit lebih dari satu notasi yang
berbeda untuk bahasa mesin, setiap dua mesin dengan instruksi yang berbeda set
juga memiliki perakitan yang berbeda bahasa. Pada tahun 1954, FORTRAN
diciptakan, melainkan tingkat pertama bahasa pemrograman tinggi untuk memiliki
implementasi fungsional, dibandingkan dengan hanya desain di atas kertas [9]
[10] (Sebuah bahasa tingkat tinggi adalah, dalam istilah yang sangat umum,.
bahasa pemrograman yang memungkinkan programmer untuk menulis program dalam
istilah yang lebih abstrak dari instruksi bahasa assembly, yaitu pada tingkat
abstraksi "lebih tinggi" daripada bahasa assembly.) Ini memungkinkan
programmer untuk menentukan perhitungan dengan memasukkan formula secara
langsung (misalnya Y = X * 2 + 5 * X + 9). Program teks, atau sumber, diubah
menjadi instruksi mesin menggunakan program khusus yang disebut kompilator,
yang diterjemahkan program FORTRAN ke dalam bahasa mesin. Bahkan, nama FORTRAN
adalah singkatan dari "Formula Translation". Banyak bahasa lainnya
dikembangkan, termasuk beberapa program untuk komersial, seperti COBOL. Program
itu sebagian besar masih masuk menggunakan kartu punched atau pita kertas.
(Lihat pemrograman komputer di era kartu punch). Pada akhir 1960-an, perangkat
penyimpanan data dan terminal komputer menjadi cukup murah bahwa program dapat
dibuat dengan mengetikkan langsung ke dalam komputer. Teks editor tersebut
dikembangkan yang memungkinkan perubahan dan perbaikan harus dilakukan jauh
lebih mudah dibandingkan dengan kartu berlubang. (Biasanya, kesalahan dalam
meninju kartu berarti bahwa kartu harus dibuang dan yang baru menekan untuk
menggantikannya.) Ketika waktu telah berkembang, komputer telah membuat
lompatan raksasa di bidang kekuatan prosesor. Ini telah membawa bahasa
pemrograman baru yang lebih disarikan dari hardware. Meskipun bahasa tingkat
tinggi biasanya dikenakan biaya overhead yang lebih besar, peningkatan
kecepatan komputer modern telah membuat penggunaan bahasa ini jauh lebih
praktis daripada di masa lalu. Bahasa ini semakin disarikan biasanya lebih
mudah untuk belajar dan memungkinkan programmer untuk mengembangkan aplikasi
jauh lebih efisien dan dengan kode sumber kurang. Namun, bahasa tingkat tinggi
masih praktis untuk beberapa program, seperti yang di mana tingkat rendah
kontrol perangkat keras diperlukan atau di mana kecepatan pemrosesan maksimum
adalah penting.
Sepanjang paruh kedua abad kedua
puluh, pemrograman adalah karier yang menarik di sebagian besar negara maju.
Beberapa bentuk pemrograman telah lepas pantai semakin tunduk pada outsourcing
(impor perangkat lunak dan jasa dari negara lain, biasanya dengan upah rendah),
membuat keputusan karir pemrograman di negara maju lebih rumit, sementara
meningkatkan peluang ekonomi di daerah kurang berkembang. Tidak jelas seberapa
jauh kecenderungan ini akan berlanjut dan seberapa dalam dampak akan programmer
upah dan kesempatan.
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.
Belajar Memprogram
1.
Belajar memprogram ≠ belajar bahasa
pemrograman
2.
Belajar memprogram : belajar tentang strategi
pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian
menuliskannya dalam notasi yang disepakati bersama
3.
Belajar memprogram : bersifat pemahaman
persoalan, analisis dan sintesis
4.
Belajar memprogram, titik berat :
designer program
Belajar Bahasa Pemrograman
1.
Belajar bahasa pemrograman : belajar
memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan
instruksi yang spesifik untuk setiap bahasa
2.
Belajar bahasa pemrograman , titik berat
: coder
Produk yang dihasilkan pemrogram :
1.
program dengan rancangan yang baik
(metodologis, sistematis)
2.
Dapat dieksekusi oleh mesin
3.
Berfungsi dengan benar
4.
Sanggup melayani segala kemungkinan
masukan
5.
Disertai dokumentasi
6.
Belajar memprogram, titik berat :
designer program
Tidak ada komentar:
Posting Komentar