3.1 Algoritma

Diagram alur dari sebuah algoritme (Algoritme Euclid) untuk menghitung faktor persekutuan terbesar (f.p.b.) dari dua angka a dan b dalam lokasi bernama A dan B. Algoritme dijalankan dengan pengurangan berturut-turut dalam dua pengulangan: JIKA pengujian B >= A menghasilkan "ya" (atau benar) (lebih akuratnya angka b dalam lokasi B lebih besar atau sama dengan angka a dalam lokasi A) MAKA, algoritme menentukan B ← B - A (artinya angka b - a menggantikan b sebelumnya). Hal yang sama, JIKA A > B, MAKA A ← A - B. Proses tersebut berhenti saat (isi dari) B adalah 0, menghasilkan f.p.k. dalam A. (Algoritme tersebut diambil dari Scott 2009:13; simbol dan gaya penggambaran dari Tausworthe 1977).
Dalam matematika dan ilmu komputer, algoritme adalah prosedur langkah-demi-langkah untuk penghitungan. Algoritme digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis.
Algoritme adalah metode efektif diekspresikan sebagai rangkaian terbatas [1] dari instruksi-instruksi yang telah didefinisikan dengan baik [2] untuk menghitung sebuah fungsi.[3] Dimulai dari sebuah kondisi awal dan input awal (mungkin kosong),[4] instruksi-instruksi tersebut menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat sejumlah urutan kondisi terbatas [5] yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran" [6] dan berhenti di kondisi akhir. Transisi dari satu kondisi ke kondisi selanjutnya tidak harus deterministik; beberapa algoritme, dikenal dengan algoritme pengacakan, menggunakan masukan acak.[7]
Walaupun algorism-nya al-Khawarizmi dirujuk sebagai aturan-aturan melakukan aritmetika menggunakan bilangan Hindu-Arab dan solusi sistematis dan persamaan kuadrat, sebagian formalisasi yang nantinya menjadi algoritme modern dimulai dengan usaha untuk memecahkan permasalahan keputusan (Entscheidungsproblem) yang diajukan oleh David Hilbert pada tahun 1928. Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan "penghitungan efektif" [8] atau "metode efektif"; [9]formalisasi tersebut mengikutkan Godel-Herbrand-Kleene fungsi rekursif-nya Kurt Godel - Jacques Herbrand - Stephen Cole Kleene pada tahun 1930, 1934, dan 1935, kalkulus lambda-nya Alonzo Church pada tahun 1936, "Formulasi 1"-nya Emil Post pada tahun 1936, dan Mesin Turing-nya Alan Turingpada tahun 1936-7 dan 1939. Dari definisi formal dari algoritme di atas, berkaitan dengan konsep intuituf, masih tetap ada masalah yang menantang. [10]
Definisi• Algoritma adalah sekumpulan langkah-langkah terbatas untuk mencari solusi suatu masalah.
• Berasal dari kata algoris dan ritmis. Diperkenalkan oleh Abu Ja’far Muhammad Musa Al-Khowarizmi (780-850) dalam bukunya yang berjudul Kitab Al Jabr Waal Muqobala (Rules of Restoration and Reduction).
• Pada pemrograman, algoritma didefinisikan sebagai metode yang terdiri dari langkah-langkah terstuktur untuk mencari solusi suatu masalah dengan bantuan komputer.
• Berasal dari kata algoris dan ritmis. Diperkenalkan oleh Abu Ja’far Muhammad Musa Al-Khowarizmi (780-850) dalam bukunya yang berjudul Kitab Al Jabr Waal Muqobala (Rules of Restoration and Reduction).
• Pada pemrograman, algoritma didefinisikan sebagai metode yang terdiri dari langkah-langkah terstuktur untuk mencari solusi suatu masalah dengan bantuan komputer.
Syarat AlgoritmaMenurut Donald E.Knuth sebuah algoritma harus memenuhi persyaratan :
• Finiteness.
Algoritma harus berakhir (terminate) setelah melakukan sejumlah langkah proses.
• Definiteness.Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda(ambiguous).
• Input.Setiap algoritma memerlukan data sebagai masukan untuk diolah.
• Output.
Setiap algoritma memberikan satu atau lebih hasil keluaran.
• Effectiveness.Langka-langkah algoritma dikerjakan dalam batas waktu yang wajar.
• Finiteness.
Algoritma harus berakhir (terminate) setelah melakukan sejumlah langkah proses.
• Definiteness.Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda(ambiguous).
• Input.Setiap algoritma memerlukan data sebagai masukan untuk diolah.
• Output.
Setiap algoritma memberikan satu atau lebih hasil keluaran.
• Effectiveness.Langka-langkah algoritma dikerjakan dalam batas waktu yang wajar.
Jenis Proses AlgoritmaLangkah-langkah yang membentuk suatu algoritma dapat dibagi menjadi tiga kelompok proses :
• Sequence process.
Sederetan instruksi dijalankan secara berurutan dari awal hingga akhir.
• Selection process.
Instruksi atau sederetan instruksi dijalankan jika kondisi tertentu terpenuhi.Contohnya adalah siswa dinyatakan lulus mata kuliah jika nilainya minimal 60.
• Iteration process.
Instruksi atau sederetan instruksi dijalankan secra berulang jika kondisi tertentu terpenuhi. Contohnya adalah siswa harus mengambil mata kuliah selama nilainya di bawah 60.
• Sequence process.
Sederetan instruksi dijalankan secara berurutan dari awal hingga akhir.
• Selection process.
Instruksi atau sederetan instruksi dijalankan jika kondisi tertentu terpenuhi.Contohnya adalah siswa dinyatakan lulus mata kuliah jika nilainya minimal 60.
• Iteration process.
Instruksi atau sederetan instruksi dijalankan secra berulang jika kondisi tertentu terpenuhi. Contohnya adalah siswa harus mengambil mata kuliah selama nilainya di bawah 60.
Penulisan algoritma harus terdiri dari 3 bagian berikut ini:
- Judul algoritma;Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh algoritma tersebut.
- Deklarasi; Bagian untuk mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedur dan fungsi.
- Deskripsi; Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Penulisan algoritma sendiri tidak tergantung dari spesifikasi bahasa pemrograman dan kemampuan komputer yang mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman, namun algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Lalu seperti apa contoh algoritma pemrograman dasar yang wajib Anda kuasai? Berikut ini contoh-contohnya:
1. Algoritma Narasi
Contoh: Algoritma Kelulusan_mhs
Persoalan: Diberikan data berupa nama dan nilai mahasiswa. Jika nilai mahasiswa lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus. Sedangkan jika nilainya lebih kecil dari 60, maka mahasiswa tersebut dinyatakan tidak lulus.
Algoritmanya akan seperti berikut:
baca nama dan nilai mahasiswa.
jika nilai >= 60 maka
keterangan = lulus
tetapi jika
keterangan = tidak lulus.
tulis nama dan keterangan
baca nama dan nilai mahasiswa.
jika nilai >= 60 maka
keterangan = lulus
tetapi jika
keterangan = tidak lulus.
tulis nama dan keterangan
2. Algoritma Pseudo Code
Contoh; Algoritma Kelulusan_mhs
Persoalan: Diberikan data berupa nama dan nilai mahasiswa. Jika nilai mahasiswa lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus. Sedangkan jika nilainya lebih kecil dari 60, maka mahasiswa tersebut dinyatakan tidak lulus.
Deklarasi dari tipe datanya akan seperti berikut:
Nama = string
Nilai = integer
Keterangan = string
Nama = string
Nilai = integer
Keterangan = string
Algoritmanya akan seperti berikut:
read (nama, nilai)
if nilai >= 60 then
keterangan = ‘lulus’
else
keterangan = ‘tidak lulus’
write(nama, keterangan)
read (nama, nilai)
if nilai >= 60 then
keterangan = ‘lulus’
else
keterangan = ‘tidak lulus’
write(nama, keterangan)
3. Algoritma Flowchart
Berikut ini adalah beberapa contoh dari algoritma flowchart. Fungsi flowchart pada pemrograman adalah untuk memudahkan programmer ketika merancang sebuah program komputer. Ini dia contoh-contohnya:
- Menentukan bilangan ganjil atau genap
Terdapat bilangan yang bernama “bilangan bulat” yaitu 0, 1, -1, 2, dan seterusnya serta bilangan asli 1, 2, 3, 4, 5, dst. Kedua jenis bilangan tersebut sering digunakan dalam perhitungan. Algoritma di bawha ini akan menentukan apakah bilangan tersebut ganjil atau genap> Berikut ini adalah flowchart dari algoritma tersebut:
Dari flowchart di atas, penjelasannya adalah sebagai berikut:

Bilangan genap adalah sebuah bilangan bulat yang akan habis atau tidak memiliki sisa jika dibagi 2 (dua). Sedangkan bilangan ganjil adalah sebuah bilangan bulat yang tidak akan habis apabila dibagi 2 (dua) atau ada sisa pembagian.
- Algoritma tahun kabisat
Tahun kabisat adalah sebuah tahun yang memiliki tambahan 1 hari yang bertujuan agar kalender dapat menyesuaikan dengan keadaan astronomi. Saat tahun kabisat, bulan Februari memiliki 29 hari. Tahun yang dapat untuk dibagi dengan 4 adalah tahun kabisat. Berikut ini adalah algoritma untuk menentukan tahun kabisat jika disajikan dengan flowchart seperti di bawah ini:
- Menghitung harga yang harus dibayar setelah mendapatkan sebuah diskon
Contoh flowchart kali ini adalah flowchart dari algoritma untuk menentukan biaya yang harus dibayar oleh pembeli sesudah mendapat diskon 10%. Syarat untuk mendapatkan diskon tersebut adalah jumlah dari total pembelian sebesar Rp.1.500.000,-. Berikut ini adalah algoritma flowchartnya:
Jumlah barang memiliki sifat yang dinamik sesuai dengan masukan dari pengguna. Intinya, jika total pembeliannya kurang dari 1500000, maka pembeli tidak akan mendapatkan diskon.

- Flowchart menghitung luas lingkaran
Algoritma flowchart di bawah ini adalah contoh flowchart untuk menghitung luas lingkaran dengan rumus L = πr2:
Algoritma:
- Program dimulai
- Tentukan nilai phi dan r
- Hitung L = phi x r2
- Cetak Hasil L
- Program Selesai
Flowchart:

- Flowchart menghitung luas segitiga
Berikut ini contoh flowchart program untuk menghitung luas segitiga, dimana diketahui nilai ALAS = 10 dan nilai TINGGI = 8. Pada flowchart ini, untuk mendapatkan nilai awal dari “ALAS” dan “TINGGI” menggunakan kotak proses, karena nilai “ALAS” dan “TINGGI” sudah ditentukan sebelumnya.

Sekian artikel kami kali ini seputar contoh algoritma pemrograman dasar. Semoga artikel kami kali ini dapat menjadi bahan materi Anda untuk mempelajari pemrograman dasar.
Komentar
Posting Komentar