Definisi algoritma adalah urutan langkah-langkah logis
penyeselaian masalah yang disusun secara sistematis dan logis. Kata logis
(logika) merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma
harus dapat ditentukan bernilai benar atau salah.
Algoritma
Dalam Kehidupan
Algoritma adalah jantung ilmu komputer atau
informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi
algoritma. Namun algoritma juga digunakan dalam kehidupan sehari-hari,
contohnya resep makanan. Di dalam resep makanan terdapat langkah-langkah yang
merupakan algoritma. Selain itu masih banyak contoh algoritma yang lain.
Bahasa
Pemrograman
Untuk melaksanakan suatu algoritma diperlukan suatu
bahasa pemrograman, contoh bahasa pemrograman adalah : Pascal, C++, Basic, dll.
Notasi algoritma dapat diterjemahkan kedalam bahasa pemrograman apapun, dengan
kata lain notasi algoritma bersifat independen.
Flowchart
Suatu flowchart adalah suatu representasi secara
diagram yang mengilustrasikan urutan dari operasi yang dilakukan untuk
mendapatkan suatu hasil. Dengan kata lain, flowchart membantu kita untuk
mengerti dan melihat bentuk algoritma dengan menampilkan algoritma dalam
simbol-simbol gambar.
Dalam menggambar flowchart, digunakan simbol tertentu
seperti diatas. Contoh berikut bisa digunakan untuk lebih mengerti perbedaan
kegunaan simbol-simbol tersebut. Misal kita ingin mencari jumlah dari 2 buah
bilangan, maka flowchart-nya adalah sebagai berikut :
Contoh lain, misalkan kita ingin mengetahui apakah
sebuah bilangan ganjil atau genap. Untuk itu kita harus membuat flowchart
seperti ini :
Pseudo Code
Pseudo Code adalah urutan baris algoritma seperti kode
pemrograman dan tidak memiliki sintak yang baku. Pseudo Code lebih umum
digunakan oleh programmer yang berpengalaman. Akan tetapi, flowchart lebih
mudah dimengerti oleh programmer pemula, pseudo code sangat mudah
diimplementasikan ke dalam kode program dibandingkan dengan flowchart. Kita
bisa bebas menulis pseudo code selama itu mudah dimengerti bagi orang lain.
Tetapi disarankan untuk menggunakan keyword yang umum digunakan seperti : if,
then, else, while, do, repeat, for, dan lainnya. Dan ikuti gaya penulisan
pemrograman seperti Pascal, C++, dll. Perhatikan kode dibawah ini :
- Mulai
- Masukkan sebuah angka
- Masukkan sebuah angka dan tampilkan
- Ambil angka yang sebelumnya dan tampilkan
- Selesai
Walaupun pseudo code diatas masih bisa dimengerti
tetapi ada beberapa statemen yang ambigu. Dari baris kedua, kita tidak tahu
kemana angka tersebut disimpan dan kita juga tidak tahu angka yang mana yang
dimaksud untuk “angka yang sebelumnya”. Apakah angka yang pertama atau
yang kedua. Pseudo Code diatas dapat dimodifikasi menjadi seperti berikut :
- Start
- Masukkan A
- Masukkan B, Tampilkan B
- Tampilkan A
- End
Pseudo Code diatas lebih baik dibandingkan sebelumnya.
Kita bisa dengan jelas melihat dimana angka disimpan dan angka yang mana yang
ditampilkan. Sekarang kita akan mengubah flowchart pada gambar 1.2
- Start
- Masukkan A dan B
- C = A + B
- Tampilkan C
- End
PENGERTIAN DASAR LOGIKA DAN ALGORITMA
Abu Ja’far Mohammad Ibnu Musa Al Khawarizmi, pertama dan pelopor logika algoritma.Logika berasal dari kata Yunani Kuno. Pengertiannya yaitu hasil pertimbangan akal pikiran yang diutarakan lewat kata dan dinyatakan dalam bahasa.
Definisi Algoritma :
1. Langkah-langkah yg dilakukan agar solusi masalah dapat diperoleh.
2. Suatu prosedur yang merupakan urutan langkah-langkah yang berintegrasi
3. Suatu motode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata (Webster dictionary)
Kriteria Pemilihan Algoritma
1. Ada out put
2. Efektifitas dan efesiensi
3. Jumlah langkahnya berhingga
4. (semi Algoritma)àBerakhir
5. Terstruktur
1. output: mengacu pada definisi algoritma, suatu algoritma haruslah mempunyai output yang harus merupakan solusi dari masalah yang sedang diselesaikan.
2. Efektifitas dan Efisiensi: ikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan dalam arti algoritma harus tepat guna.Dikatakan efisiensi jika waktu proses suatu algoritma relatif lebih singkat dan penggunaan memori komputernya lebih sedikit.
3. Jumlah langkahnya berhingga : maksudnya adalah barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama.
4. Berakhir à (Semi Algoritma) : proses didalam mencari penyelesaian suatu masalah harus berhenti dan berakhir dengan hasil akhir yang merupakan solusinya atau berupa informasi yang tidak diketemukan solusinya. Artinya baik dalam kondisi solusi ada atau tidak ada, proses akan tetap harus berakhir dan berhenti. Istilah lain dalam algoritma dikenal sebagai SEMI ALGORITMA, yaitu suatu prosedur yang hanya akan berhenti jika mempunyai atau menghasilkan solusi, sedangkan jika tidak menghasilkan solusi, maka prosedur tersebut akan berjalan tanpa henti.
5. Terstruktur : yaitu urutan barisan langkah-langkah yang digunakan harus disusun sedemikian rupa agar proses penyelesaian tidak berbelit-belit sedemikian sehingga bagian-bagian proses dapat dibedakan dengan jelas mana bagian input, proses dan output sehingga memudahkan user melakukan pemeriksaan ulang.
Kesimpulannya:
Suatu Algoritma yang terbaik(The Best) : “Suatu algoritma harus menghasilkan output yan tepat guna(efektif) dalam waktu yang relatif singkat & penggunaan memori yang relatif sedikit(efisien) dengan langkah yang berhingga & prosedurnya berakhir baik dalam keadan diperoleh suatu solusi ataupun tidak ada solusinya”
Contoh:
A. Algoritma untuk mengirimkan surat
1. Tulis surat pada secarik kertas surat
2. Ambil sampul surat atau amplop
3. Masukkan surat ke dalam amplop
4. Tutup amplop surat dengan lem perekat
5. Tulis alamat surat yang dituju, jika tidak diingat, lebih dahulu ambil buku alamat & cari alamat yang dituju, lalu tulis alamat tersebut pada amplop surat
6. Tempelkan perangko pada amplop surat
7. Bawa surat ke kantor pos untuk diserahkan pada pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dalam kotak/bis surat.
B. Algoritma untuk menentukan bilangan akar kuadrat dari suatu bilangan bulat positif yang diinput.
1. Baca bilangan bulat positif yang diinput, sebut saja sebagai A.
2. Dinyatakan Nilai B adalah 0
3. Jika Nilai C sama dengan Nilai A, maka Nilai B adalah Akar dari Nilai A, lalu stop
4. Jika tidak, maka nilai B akan bertambah 1
5. Kembali ke langkah pada No.3
ANALISIS SUATU ALGORITMA
(Untuk melihat faktor efisiensi & efektifitas dari algoritma tersebut), dapat dilakukan terhadap suatu algoritma dengan melihat pada:
- Waktu tempu (Running Time) dari suatu algoritma: adalah satuan waktu yang ditempuh atau diperlukan oleh suatu algoritma dalam menyelesaikan suatu masalah.
Hal-hal yang dapat mempengaruhi daripada waktu tempuh adalah:
1. Banyaknya langkah: Makin banyak langkah atau instruksi yang digunakan dalam menyelesaikan masalah, maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut
2. Besar dan jenis input data: Besar dan jenis input data pada suatu algoritma akan sangat berpengaruh pada proses perhitugan yang terjadi. Jika jenis data adalah tingkat ketelitian tunggal(Single precision), maka waktu tempuh akan menjadi relatif lebih cepat dibandingkan dengan tingkat ketelitian ganda(double precesion)
3. Jenis operasi: Waktu tempuh juga dipengaruhi oleh jenis operasi yang digunakan. Jenis operasi tersebut meliputi operasi matematika, nalar atau logika, atau yang lainnya. Sebagai contoh, operasi perkalian atau pembagian akan memakan waktu lebih lama dibandingkan operasi penjumlahan atau pengurangan.
4. Komputer dan kompilator: hal terakhir yang mempengaruhi waktu tempuh suatu proses algoritma adalah komputer dan kompilatornya, walaupun sebenarnya faktor ini diluar tahap rancangan atau tahap pembuatan algoritma yang efisien. Algoritma dibuat untuk mencapai waktu tempuh yang seefektif dan seefisien mungkin, tetapi kesemuanya itu akan sangat bergantung pada kemampuan komputer yang tentunya harus sesuai dengan jumlah program atau langkah yang diperlukan oleh algoritma, begitu juga dengan kompilator tersebut, misalnya PC XT 8086 akan kalah cepat dibandingkan 8088 atau dengan AT 80286 atau 80386 atau 80486 dan seterusnya
- Jumlah Memori Yang digunakan: banyaknya langkah yang digunakan dan jenis variabel data yang dipakai dalam suatu algoritma akan sangat mempengaruhi penggunaan memori. Dalm hal ini, diharapkan dapat memperkirakan seberapa banyak kebutuhan memori yang diperlukan selama proses berlangsung hingga proses selesai dikerjakan. Dengan demikian, dapat disiapkan storage yang memadai agar proses suatu algoritma berjalan tanpa ada hambatan atau kekurangan memori.
Sifat-Sifat Algoritma
- Banyaknya langkah instruksi harus berhingga: pelaksanaan sebuah algoritma yang terprogram haruslah dapat diakhiri atau diselesaikan melalui sejumlah langkah operasional yang berhingga. Jika tidak demikian, kita tidak akan dapat mengharapkan bahwa pelaksaan algoritma tersebut dapat menghasilkan suatu solusi yang baik.
- Langkah atau instruksi harus jelas: artinya bahwa penulisa setiap langkah yang terdapat didalam sebuah algoritma harus memiliki arti yang khusus atau spesifik sehingga dapat dibedakan antara penulisan langkah untuk komputer(program/pemrograman) dengan penulisan langkah bagi manusia(pesudocode). Manusia akan lebih mudah memahami algoritma yang terdiri atas simbol-simbol(Contoh: pembuatan algoritma dengan diagram alur/flowchart) sedangkan komputer hanya membutuhkan sebuah penulisan algoritma dengan kode-kode yang dituangkan dalam bahasa yang dimengerti oleh komputer itu sendiri(bahasa pemrograman).
- Proses harus jelas dan mempunyai batasan: rangkaian suatu proses yang berisi langkah-langkah instruksi dari suatu algoritma yang akan dilaksanakn harus ditetapkan dengna jelas, baik dan pasti sebab sebuah algoritma harus memiliki instruksi dasar tertentu dimana setiap instruksi harus memiliki unsur pelaksana yang berfungsi sebagai pemroses data yang akan dimasukkan dalam sebuah komputer. Dengan demikian, sebuah algoritma harus ditulis dengan jelas tentang batasa-batasan proses yang akan dilaksanakan oleh komputer.
- Efektifitas: instruksi yang diberikan pada komputer agar hanya menjalankan atau melaksanakan proses yang mampu dilaksanakannya. Yang dimaksud mampu adalah bahwa suatu algoritma atau instruksi-instruksi dalam sebuah program hanya akan dapat dilaksanakan jika informasi yang diberikan oleh instruksi-instruksi tersebut lengkap, benar dan jelas.
- Adanya batasan ruang lingkup, sebuah algoritma yang baik adalah hanya ditujukan bagi suatu masalah tertentu saja. Susunana input harus ditentukan lebih dulu sebab susunan tersebut enentukan sifat umum dari algoritma yang bersangkutan.
0 Response to "Definisi Algoritma"
Posting Komentar