ALGORITMA

8
ALGORITMA Sebagai sebuah mesin yang dapat digunakan sebagai alat bantu dalam menyelesaikan “masalah”, yang tentunya tidak dapat langsung diserahkan begitu saja ke komputer dalam menyelesaikannya. Dalam hal ini, masalah yang akan diselesaikan oleh komputer terlebih dahulu dilakukan perumusan langkah demi langkah penyelesain suatu masalah dalam rangkaian instruksi yang selanjutnya komputer akan menjalankan instruksi-instruksi tersebut. Sekumpulan instruksi yang merupakan penyelesaian masalah yang disebut program. Agar supaya komputer dapat mengerjakan/melaksakan program tersebut, seharusnya ditulis kedalam bahasa yang dapat dimengerti/dipahami oleh komputer. Karena komputer merupakan sebuah mesin, program ditulis dalam bahasa yang khusus dibuat agar dapat berkomunikasi dengan komputer. Bahasa yang digunakan dalam hal ini disebut bahasa pemrograman. Beberapa bahasa pemprograman yang dikenal seperti BASIC, PASCAL, FORTRAN, COBOL, C/C++/C#, PROLOG, LISP, Assembler dsb. Orang mempelajari suatu bahasa pemrograman melalui aturan tata bahasanya. Bahasa pemrograman yang berbeda menpunyai aturan tata bahasa yang berbeda pula. Sebua bahasa yang sama dapat mempunyai beberapa versi (sesuai perkembangannya) dan setiap versi dirancang untuk komputer atau lingkungan system operasi tertentu. Pemrogram sangat terikat dengan aturan bahasa dan spesifikasi mesin yang akan menjalankannya. Dengan berkembangnya teknik pemprograman terstruktur, orang tidak lagi memecahkan masalah dengan langsung menuliskan programnya dalam bahasa pemrograman. Orang lain mulai memikirkan suatu cara penyelesain masalah yang akan deprogram dengan menekankan desain (rancangan yang mewakili pemecahan masalah tersebut).desain ini independent dari bahasa pemrograman yang digunakan dan komputer yang mejalankan program. Desai menyajikan cara berpikir si program dalam menyelesaikan masalah. Desain berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam notasi- notasi deskriptif. Urutan lamgkah-langkah yang sistematis untuk menyelesaikan sebuah masalah dinamakan algoritma. A. Sejarah algoritma

description

Alpro

Transcript of ALGORITMA

Page 1: ALGORITMA

ALGORITMA

Sebagai sebuah mesin yang dapat digunakan sebagai alat bantu dalam menyelesaikan “masalah”, yang tentunya tidak dapat langsung diserahkan begitu saja ke komputer dalam menyelesaikannya. Dalam hal ini, masalah yang akan diselesaikan oleh komputer terlebih dahulu dilakukan perumusan langkah demi langkah penyelesain suatu masalah dalam rangkaian instruksi yang selanjutnya komputer akan menjalankan instruksi-instruksi tersebut. Sekumpulan instruksi yang merupakan penyelesaian masalah yang disebut program.

Agar supaya komputer dapat mengerjakan/melaksakan program tersebut, seharusnya ditulis kedalam bahasa yang dapat dimengerti/dipahami oleh komputer. Karena komputer merupakan sebuah mesin, program ditulis dalam bahasa yang khusus dibuat agar dapat berkomunikasi dengan komputer. Bahasa yang digunakan dalam hal ini disebut bahasa pemrograman. Beberapa bahasa pemprograman yang dikenal seperti BASIC, PASCAL, FORTRAN, COBOL, C/C++/C#, PROLOG, LISP, Assembler dsb.

Orang mempelajari suatu bahasa pemrograman melalui aturan tata bahasanya. Bahasa pemrograman yang berbeda menpunyai aturan tata bahasa yang berbeda pula. Sebua bahasa yang sama dapat mempunyai beberapa versi (sesuai perkembangannya) dan setiap versi dirancang untuk komputer atau lingkungan system operasi tertentu. Pemrogram sangat terikat dengan aturan bahasa dan spesifikasi mesin yang akan menjalankannya. Dengan berkembangnya teknik pemprograman terstruktur, orang tidak lagi memecahkan masalah dengan langsung menuliskan programnya dalam bahasa pemrograman. Orang lain mulai memikirkan suatu cara penyelesain masalah yang akan deprogram dengan menekankan desain (rancangan yang mewakili pemecahan masalah tersebut).desain ini independent dari bahasa pemrograman yang digunakan dan komputer yang mejalankan program. Desai menyajikan cara berpikir si program dalam menyelesaikan masalah. Desain berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam notasi-notasi deskriptif. Urutan lamgkah-langkah yang sistematis untuk menyelesaikan sebuah masalah dinamakan algoritma.

A. Sejarah algoritma

Sebelum membahas defenisi algoritma terlebih dahulu kita mengenal asal muasal kata algoritma tersebut. Algoritma diambil dari nama ilmuwan ahli matematika dari uzbekistan bernama Jafar mohammad Ibn Musa Al-khuwarizmi (algorizm) dalam kitabnya yang berjudul al jabr w` al-muqabala yang artinya “buku pemugaran dan pengurangan” ( rules of restoration and reduction) sekitar tahun 825. Kata algorizm menjadi populer karena populernya angka arab digunakan dalam perhitungan masa kini. Lebih lanjut, kata algorithm berubah menjadi algoritma setelah pemrograman komputer dimulai di indonesia.

B.Defenisi algoritma

Adapun defenisi algoritma yaitu sebagai berikut

Page 2: ALGORITMA

1.Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. (Rinaldi Munir, 2006)

2.Algoritma diartikan sebagai prosedur langkah demi langkah untuk memecahkan masalah atau penyelesaian tugas khususnya dengan menggunakan bantuan komputer (merriam-webster`s Collegiate Dictionary).

3.Algoritma sebagai urutan logis pengambilan keputusan untuk pemecahan masalah (Kamus Besar Bahasa Indonesia)

4.Algoritma adalah teknik penyusunan langkah demi langkah penyelesaian masalah dalam bentuk kalimat singkat dengan jumlah kata terbatas, namun tersusun secara logis sistematis (suarga, 2006).

5.Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah terbatas tetapi tersusun secara logis dan sistematis.

6.Prosedur yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan langkah-langkah tertentu dan terbatas jumlahnya.

Berdasarkan beberapa petikan defenisi, bahwa algoritma merupakan urutan langkah yang logis dan mengikuti suatu urutan tertentu, tidak boleh melompat-lompat (Microsoft Press Computer and internet Dictionaary 1997, 1998). Ini berarti, hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberi hasil yang salah. Dan, alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis menyebatkan alogaritma seseorang dapat juga berbeda dari alogaritma yang lain, yang tertuang dalam bentuk kalimat, gambar, atau table tertentu (Moh. Sjukani, Algoritma dan struktur data dengan C, C++, dan JAVA).

Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemprograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik, maka proses pemprograman akan menjadi salah atau rusak, lambak dan tidak efisien.

Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemprograman dan komputer yang mengeksekusinya. Notasi alogaritma bukan notasi bahasa pemprograman tetapi dapat diterjemahkan kedalam berbagai bahasa pemprograman.

Penulisan algoritma dapat dilakukan dengan cara berikut:

1.Menggunakan bahasa natural (bahasa indonesia, bahasa inggris atau bahasa yang di mengerti oleh manusia), kendala yang sering muncul adalah pernyataan yang dibuat menggunakan bahasa natural adalah sering menimbulkan kebingungan (ambiguous).

2.Menggunakan flowchard (diagram alir). Pengguna diagram ali dalam algoritma lebih baik dibanding pain 1, karena alogaritma dalam bentuk flowchart baik secara visual tetapi bila algoritmanya panjang maka flowchartnya juga menjadi repot.

3. menggunakan pseudo-code. Penulisan ini dekat pada bahasa pemprograman namun sulit dimengerti oleh orang yang tidak mengerti pemrograman

Page 3: ALGORITMA

C.Jenis jenis algoritma

Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.

1.Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.

2.Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.

3.Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.

D.Syarat/ciri Algoritma

Syarat sebuah algoritma yang baik menurut Donald E. Knuth sebagai berikut:

1.Finiteness

Algoritma harus berakhir setelah melakukan sejumlah langkah proses.

2.Definiteness

Setiap langkah algoritma harus didefenisikan dengan tepat dan tidak menimbulkan makna ganda. Sehingga, langkah yang tepat menuliskan algoritma adalah dengan menggunakan languange (bahasa pemprograman computer).

3.Input

Setiap algoritma memerlukan data sebagai data untuk masukan untuk diolah.

4.Output

Setiap algoritma memberikan satu atau beberapa hasil luaran.

5.Effectiveness

Page 4: ALGORITMA

Langkah-langkah algoritma dikerjakan dalam waktu yang wajar sebisa mungkin harus dapat dilaksanakan dan efektif.

E.Jenis Proses Algoritma

Jenis proses Algoritma sebagai berikut:

1.Sequace Process merupakan Instruksi dikerjakan secara sekuensial (berurutan).

2.Selection Process merupakan Instruksi dikerjakan jika memenuhi kriteria tertentu.

3.Interation Process merupakan Instruksi dikerjakan selama memenuhi suatu kondisi tertentu.

4.Concurret Process merupakan beberapa instruksi dikerjakan secara bersama.

F.Algoritma sebagai subbidang ilmu komputer

Ilmu komputer (computer science) adalah ilmu pengetahuan yang berisi tentang teori, metodologi, desain dan implementasi, yang berhubungan dengan komputasi, komputer dan algoritmanya dalam perspektif perangkat lunak (sofware) maupun perangkat keras (hardware). Ilmu komputer sangat berkaitan erat dengan algoritma, hampir semua bidang dari ilmu komputer (computer science) tidak terlepas dari algoritma. Bahkan pada saat ini, studi tentang algoritma telah menjadi subbidang khusus dalam ilmu komputer. Studi atau ilmu yang mempelajari tentang algoritma sering disebut dengan istilah algorithmics.

Pembahasan

A.PENULISAN DAN STRUKTUR DASAR ALGORITMA

Perlu diketahui bahwa algoritma bukan bahasa pemrograman, sehingga setiap orang dapat membuat notasi algoritmik (notasi-notasi deskriptif) yang berbeda. Notasi algoritmik, bukan notasi baku bila dibandingkan dengan bahasa pemprograman, yang dibuat merupakan notasi yang mudah dibaca dan dimengerti untuk menghindari terjadinya kekeliruan.

1.Penulisan menggunakan Flow chart

Bagan alir merupakan diagram yang tersusun dari symbol-simbol atau bagan-bagan yang berbada, sesuai dengan jenis dan perintahnya, yang mempunyai aliran untuk menggambarkan langkah-langkah penyelesaian suatu masalah (memperlihatkan urutan dan hubungan antara proses beserta instruksinya). Bagan alir merupakan suatu cara penulisan algoritma yang bertujuan memudahkan dalam penulisan/perencangan program.

Berikut symbol-simbol bagan alir yang digunakan dalam penulisan algoritma

Page 5: ALGORITMA

Perlu dipahami bahwa, tidak ada kaida yang baku dalam penggunaan bagan alir diatas karena merupakan gambaran hasi analisis suatu masalah. Bagan alir dapat bervariasi antara satu pemprogram dengan pemprogram lainnya. Secara garis besar, bagan alir terdiri dari 3 bagian utama yaitu, input, proses, dan, output.

Hal-hal yang perlu diperhatikan dalam pembuatan bagan alir adalah:

1.Hindari pengulangan proses yang tidak perlu dan logika yang berbelit-belit sehingga jalannya proses menjadi singkat.

2.Jalannya proses digambarkan dari atas ke bawah dan berikan tanda panah untuk memperjelas.

3.Sebuah flowchart diawali dari satu tiik START (mulai) dan akhiri dengan END (selesai)

2.Penulisan menggunakan Pseudo-code

Ilmuwan komputer menyukai menuliskan algoritma agar lebih praktis yaitu notasi pseudo code. Pseudo code (pseudo berarti semu atau tidak sebenarnya) merupakan notasi yang mirip dengan notasi bahasa pemprograman. Pseudo code merupakan campuran antara bahasa alami (natural) dengan bahasa pemprograman. Kemudahan menggunakan pseudo code adalah kemudahan menkonversikan (mentralisasi) ke nota bahasa pemprograman karena terdapat korespondin (hubungan yang saling terkait) antara setiap pseudo code dengan notasi bahasa pemprograman.

Pedoman yang perlukan diketahui bagaimana menyusun pseudo code yang digunakan adalah

1.Notasi dipakai untuk memberikan nilai ke suatu variabel.

2.Setiap pernyataan atau suatu perintah yang dapat berdiri sendiri akan ditulis dalam sebuah baris tersendiri.

3.Setiap variable (nama yang digunakan untuk menyimpan data yang dapat diubah-ubah) akan ditulis dengan awalan huruf.

4.tipe data majemuk atau disebut tipe data rekaman (tipe data yang dapat mengandung beberapa data dengan nama yang berbeda-beda ).

5.Indentasi (penjorokan ke kanan) digunakan untuk menuliskan pernyataan yang berada dalam suatu struktur blok.

6.Symbol // digunakan untuk menyatakan komentar (keterangan yang ditujukan untuk pembaca algoritma, tidak ditujukan untuk proses oleh komputer).

7.Notasi masukkan ( ) dan tampilkan ( ) secara berurutan mewakili perintah untuk memperoleh masukan dan menyajikan keluaran.

8.Nilai logika yang dapat dipakai untuk membandingkan pernyataan dan logika yang akan memberikan suatu hasil apakah bernilai benar atau salah.

9.Bentuk menyatakan model penulisan untuk menangani struktur selesai.

3.Tahapan algoritma

Page 6: ALGORITMA

Proses pemecahan masalah dengan algoritma tertentu hingga menjadi program dapat dibagi dalam tahapan berikut:

A.Mendefinisikan masalah : masalah yang ingin dicapai harus jelas lingkupnya.

B.Membuat model (bentuk) matematis yang dapat digunakan untuk memecahkan masalah.

C.Merancang algoritma: apa masukannya, bagaimana rincian prosesnya dan apa keluarannya.

D.Menuliskan program: ubah algoritma menjadi program (source code) sesuai dengan bahasa pemprograman tertentu.

E.Mengubah source code menjadi executable code melalui proses compiling

F.Memeriksa hasil compiling, jika salah maka kembali ke tahap empat.

G.Menjalankan program (run) untuk diuji kebenarannya dengan menggunakan berbagai data.

H.Memperbaiki keselahan

I.Mendokumentasikan program bila sudah benar.

B.STRUKTUR ALGORITMA

Pada dasarnya terdapat tiga buah struktur yang digunakan dalam menyusun suatu algoritma, yaitu runtunan (sequace), pemilihan (selection ) dan pengulangan.

1.Struktur runtunan (sequace)

Sebuah runtutan terdiri dari satu atau lebih instruksi dimana setiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya (sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dikerjakan).

2.Struktur pemilihan

Struktur pemilihan (seleksi) menyatakan pemilihan langkah yang didasarkan oleh suatu kondisi (pengambilan keputusan).

3.Struktur pengulangan

Instruksi yang dapat mengulangi pelaksanaan sederetan instruksi-intruksi sesuai dengan persyaratan yang ditetapkan. Suatu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang tampa lelah.