Algoritma adalah langkah-langkah yang disusun secara tertulis dan berurutan untuk menyelesaikan suatu masalah. Sedangkan Pemrograman adalah aktifitas yang berhubungan dengan pembuatan program dengan mengikuti kaidah bahasa pemrograman tertentu. Dalam konteks pemrograman terdapat sejumlah bahasa pemrograman seperti Pascal, C, C#, dan BASIC.
Dalam pemrograman yang sederhana, algoritma merupakan langkah pertama yang harus ditulis sebelum menuliskan program. Masalah yang dapat diselesaikan dengan pemrograman komputer adalah masalah-masalah yang berhubungan dengan perhitungan matematik.
Hal yang penting dikuasai dalam pemrograman adalah logika berpikir bagaimana cara memecahkan masalah pemrograman yang akan dibuat. Kadang-kadang ada masalah matematika yang sangat gampang jika diselesaikan secara tertulis, tetapi cukup sulit jika diterjemahkan ke dalam pemrograman. Jika menemukan hal seperti itu, maka algoritma dan logika pemrograman sangat penting untuk memecahkan masalah.
Sebagai gambaran, saya mengambil masalah Frekuensi data. Misalnya ada sekelompok data seperti berikut :
2 4 6 7 2 4 6 6 9 3 5 6 4
Secara tertulis, frekuensi data diperoleh dengan cara menghitung banyaknya tiap data dan menuliskan data mulai dari data yang terkecil ke terbesar dalam tabel. Kolom pertama berisi data dan kolom kedua berisi frekuensi masing-masing data.
Data | Frekuensi |
2 | 2 |
3 | 1 |
4 | 3 |
5 | 1 |
6 | 4 |
7 | 1 |
9 | 1 |
Cukup mudah bukan? Bagaimana jika cara mencari frekuensi di atas dibuat dalam bentuk program? Cukup sulit karena kita perlu menguasai logika pemrograman. Namun kasus ini akan saya bahas nanti, jika tidak ada halangan.
Baiklah kita mulai untuk membuat Algoritma pemrograman yang sederhana seperti contoh di bawah ini.
Contoh-1 :
Buatlah algoritma untuk menghitung frekuensi data seperti pada contoh kasus di atas.
Algoritmanya adalah :
Contoh-2 :
Buatlah algoritma untuk menghitung frekuensi data seperti pada contoh kasus di atas.
Algoritmanya adalah :
- Mulai
- Tentukan banyaknya data (n)
- Tentukan data sebanyak N
- Urutkan data secara Ascending (Mulai dari data kecil ke besar)
- Hitung banyaknya data (frekuensi ) tiap data
- Tampilkan Frekuensi data dalam bentuk tabel
- Selesai
Contoh-2 :
Buatlah algoritma untuk menghitung nilai y dari persamaan y = 2x + 6
Algoritmanya adalah :
- Mulai
- Tentukan nilai x
- Hitung nilai y = 2x + 6
- Tuliskan/cetak Nilai x dan y
- Selesai
Contoh-3:
Buatlah algoritma untuk menghitung nilai y dari persamaan y = 4x2 + 8x – 2
Algoritmanya adalah :
- Mulai
- Tentukan nilai x
- Hitung nilai y = 4x2 + 8x -2
- Cetak nilai x dan y
- Selesai
II. Sifat Algoritma
-. Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman
-. Tidak tergantung pada suatu bahasa pemrograman.
-. Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun.
- Input : Suatu algoritma mempunyai input atau kondisi awal sebelum dilaksanakan, bias berupa nilai-nilai peubah yang diambil dari himpunan khusus.
- Output : Suatu algoritma akan menghasilkan output setelah dilaksanakan. Suatu algoritma akan mengubah sebuah kondisi awal menjadi kondisi akhir, dimana nilai output diperoleh dari nilai input yang telah diproses melalui algoritma.
- Definiteness : Langkah-langkah yang dituliskan dalam algoritma terdefini dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma.
- Finiteness : Suatu algoritma harus memiliki kondisi akhir atau output setelah sejumlah langkah yang terbatas jumlahnya dilakukan terhadap setiap kondisi awal atau input yang diberikan.
- Effevtiveness : Setiap langkah dalam algortima dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya didapatkan solusi sesuai dengan yang diharapkan.
- Generality : Langkah-langkah algoritma berlaku untuk setiap himpunan input yang sesuai dengan persoalan yang diberikan, tidak hanya untuk himpunan tertentu.
-. Ada output
-. Efektifitas dan Efisiensi
-. Jumlah langkahnya berhingga :
-. Terstruktur
IV. Struktur Algoritma
Agar algoritma yang ditulis lebih teratur, maka struktur algoritma sebaiknya dibagi ke dalam beberapa bagian. Diantaranya :
- Bagian kepala (header) : memuat nama algoritma serta informasi atau keterangan tentang algoritma yang ditulis
- Bagian Deklarasi ( definisi variable ) : memuat definisi nama variable, nama tetapan, nama prosedur, nama fungsi, tipe data yang akan digunakan dalam algoritma.
- Bagian Deskripsi (rincian langkah ) : memuat langkah-langkah penyelesaian masalah, termasuk beberapa perintah seperti baca data, tampilkan, ulangi, yang mengubah data input menjadi output.
Contoh berikut
ini adalah struktur algoritma. Algoritma ini akan menghitung luas
sebuah luas lingkaran dengan input jejari lingkaran tersebut. Luas
lingkaran adalah phi*jari*jari.
Algoritma Luas_lingkaran
{Menghitung sebuah luas lingkaran apabila jari-jari tersebut diberikan}
Deklarasi
{Definisi nama tetapan}
Const phi = 3.14;
{Definisi nama peubah/variabel}
Real jari-jari, Luas;
Deskripsi
Read(jari-jari);
Luas = phi * jari-jari * jari_jari;
Write(Luas);
V. Ciri-ciri Algoritma
Menurut Donald E. Knuth penulis buku algoritma abad XX, menyatakan bahwa ada beberapa ciri algoritma, yaitu :
- Algoritma mempunyai awal dan akhir, suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas. Dengan kata lain, suatu algoritma memiliki langkah yang terbatas.
- Setiap langkah harus didefinisikan dengan tepat, sehingga tidak memiliki arti ganda, tidak membingungkan (not ambiguous)
- Memiliki masukan (input) atau kondisi awal
- Memiliki keluaran (output) atau kondisi akhir
- Algoritma harus efektif, bila diikuti benar-benar maka akan menyelesaikan masalah.
Adapun ciri-ciri Penting sebagai berikut :
1. Algoritma harus berhenti setelah menjalankan sejumlah langkah terbatas.
1. Algoritma harus berhenti setelah menjalankan sejumlah langkah terbatas.
2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3. Algortima memiliki nol atau lebih masukan.
4. Algoritma memiliki nol atau lebih keluaran.
5. Algoritma harus efektif (setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).
VI. Tahapan Pembuatan Program:
1.
Mendefinisikan masalah dan menganalisanya. Mencangkup : tujuan
pembuatan, parameter yang digunakan, fasilitas yang disediakan,
algoritma yang diterapkan, dan bahasa pemrograman yang digunakan.
2. Merealisasikan dengan langkah-langkah sebagai berikut:
Contoh Algoritma:
1. Mengirim surat kepada teman:
· Tulis surat pada secarik kertas surat
· Ambil sampul surat
· Masukkan surat ke dalam sampul
· Tutup sampul surat dengan perekat
· Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
· Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
· Tempel prangko pada sampul
· Bawa sampul ke kantor pos untuk diposkan
2. Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap:
· Masukkan sebuah bilangan sembarang
· Bagi bilangan tersebut dengan 2
· Hitung sisa hasil bagi pada langkah 2
· Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
· Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil
Flowchart
1. Flowchart adalah bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian suatu masalah
2. Merupakan cara penyajian dari suatu algoritma
3. Ada 2 macam flowchart:
· System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output
serta jenis penyimpanan dalam proses pengolahan data.
· Program flowchart:
Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program.
Contoh program Flowchart
Simbol-simbol Flowchart
1. Flow Direction Symbols (simbol penghubung alur)
2. Processing Symbols (simbol proses)
3. Input-Output Symbols (simbol input-output)
Tabel Simbol-simbol Flowchart
Pembuatan Flowchart
1. Tidak ada kaidah yang baku
2. Flowchart = gambaran hasil analisa suatu masalah
3. Flowchart dapat bervariasi antara satu pemrograman dengan pemrograman lainnya.
4. Secara garis besar ada 3 bagian utama:
· Input
· Proses
· Output
5. Hindari pengulangan yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6. Jalannnya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7. Sebuah Flowchart diawali dari satu titik START dan diakhiri dengan End.
Pseudocode:
1.
Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar
atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika tidak
maka dinyatakan tidak lulus.
Deklarasi:
Nama : String
Nilai : Integer
Keterangan : String
Deskripsi:
Read (nama, nilai)
if nilai >= 60 then
Keterangan = 'lulus'
else
Keterangan = 'tidak lulus'
write (nama, keterangan)
Aturan Penulisan Teks Algoritma
1. 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.
2. Deklarasi
Bagian untuk mendefinisikan semua nama yang digunakan di dalam program.
Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure, dan
fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang
ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Contoh Pseudocode:
1. Algoritma Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{
Menghitung
luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima
masukkan jari-jari lingkaran, menghitung luas dan kelilingnya, dan
mencetak luas lingkaran ke piranti keluaran
} (ini spesifikasi algoritma)
2. Deklarasi
const phi = 3.14 {nilai konstanta phi}
R : real {jari-jari lingkaran}
Luas : real {luas lingkaran}
Keliling : real {keliling lingkaran}
3. Deskripsi
Read (R)
Luas = phi * R * R
Keliling = 2 * phi * R
Write (luas, keliling)
Tidak ada komentar:
Posting Komentar