Algoritama dan Pemrograman.

I. Pengertian Algoritma dan Pemrograman serta Contohnya

    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.
DataFrekuensi
22
31
43
51
64
71
91

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 :
  • 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
Setelah menuliskan algoritma, maka langkah selanjutnya adalah menggambarkan algoritma tersebut dalam bentuk bagan alir yang disebut flowchart.
 
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.
  1. Input : Suatu algoritma mempunyai input atau kondisi awal sebelum dilaksanakan, bias berupa nilai-nilai peubah yang diambil dari himpunan khusus.
  2. 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.
  3. Definiteness : Langkah-langkah yang dituliskan dalam algoritma terdefini dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma.
  4. Finiteness : Suatu algoritma harus memiliki kondisi akhir atau output setelah sejumlah langkah yang terbatas jumlahnya dilakukan terhadap setiap kondisi awal atau input yang diberikan.
  5. Effevtiveness : Setiap langkah dalam algortima dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya didapatkan solusi sesuai dengan yang diharapkan.
  6. Generality : Langkah-langkah algoritma berlaku untuk setiap himpunan input yang sesuai dengan persoalan yang diberikan, tidak hanya untuk himpunan tertentu.
 III. Kriteria Pemilihan Algoritma

      -. 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 :
  1. Bagian kepala (header) : memuat nama algoritma serta informasi atau keterangan tentang algoritma yang ditulis
  2. Bagian Deklarasi ( definisi variable ) : memuat definisi nama variable, nama tetapan, nama prosedur, nama fungsi, tipe data yang akan digunakan dalam algoritma.
  3. 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 :
  1. Algoritma mempunyai awal dan akhir, suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas. Dengan kata lain, suatu algoritma memiliki langkah yang terbatas.
  2. Setiap langkah harus didefinisikan dengan tepat, sehingga tidak memiliki arti ganda, tidak membingungkan (not ambiguous)
  3. Memiliki masukan (input) atau kondisi awal
  4. Memiliki keluaran (output) atau kondisi akhir
  5. 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.
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