Pages

Selasa, 29 Mei 2012

ALGORITMA

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

Algoritma
Arti umum adalah serangkaian urutan langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan suatu masalah yang disusun secara sistematis.
1.  Algoritma adalah inti dari ilmu komputer
2.  Algoritma adalah urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu masalah
3.  Algoritma adalah blueprint dari program
4.  Sebaiknya disusun sebelum membuat program
5.  Kriteria suatu algoritma:
  • Ada input dan output
  • Efektifitas dan efisien
  • Terstruktur
Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna biru dan bejana B berisi larutan berwarna merah.

Deskripsi:
1.  Tuangkan larutan dari bejana A ke dalam bejana B
2.  Tuangkan larutan dari bejana B ke dalam bejana A

Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana, diperlukan sebuah tambahan sebagai tempat penampungan sementara, misalnya bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah sebagai berikut:
Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1.  Tuangkan larutan dari bejana A ke dalam bejana C.
2.  Tuangkan larutan dari bejana B ke dalam bejana A.
3.  Tuangkan larutan dari bejana C ke dalam bejana B.

Ciri Penting Algoritma
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).

Memrogram dan Bahasa Pemrograman:
1.  Belajar memrogram adalah belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami.

2.  Belajar bahasa pemrograman adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam bahasa itu saja.

Notasi Algoritma:
1.  Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat diterjemahkan ke dalam berbagai bahasa pemrograman.

2.  Notasi algoritma dapat berupa:
•    Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.

Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai <= 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.

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:
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
Konsep Algoritma Pemrograman
Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami terlebih dahulu langkah-langkah pembuatan suatu program. Terdapat beberapa langkah umum dalam pembuatan suatu program yaitu:

1.    Mendefinisikan masalah
2.    Mencari solusinya
3.    Menentukan algoritma
4.    Menulis program
5.    Menguji program
6.    Mendokumentasikan program

Tipe Data
Dalam algoritma, kita harus bias menentukan tipe-tipe data yang sesuai digunakan dalam penyelesaian masalah. Sehingga computer dapat mengolah dan mendapatkan hasil yang sesuai menurut kebutuhan data.

Ada beberapa tipe data yang harus kita ketahui antara lain :

1.    Tipe data Char dan String
Ini merupakan tipe data dasar, tipe data ini didefinisikan pada deklarsi var dibagian algoritma/program.
Example :
Var Nama : String
Nilai    : Char
Keterangan :
  • Nama merupakan sebuah variabel didefinisikan sebagai variabel bertipe string, maksudnya pada variabel tersebut digunakan untuk menerima masukan sebuah nama yang terdiri dari sekumpulan huruf, dapat berupa huruf besar, kecil, atau campuran kedua-duanya.
  • Nilai, didefinisikan sebagai variabel yang bertipe data char, maksudnya variabel tersebut hanya dapat digunakan untuk memasukkan sebuah huruf dari huruf besar, seperti A, B, C,.. atau huruf kecil, a, b, c, ….
     
2. Tipe data Boolean
Tipe data ini digunakan untuk pengambilan keputusan dalam operasi logika. Terdiri dari true disimbolkan ‘T’ dan False yang disimbolkan ‘F’. Ketika kita ingin mendapatklan hasil yang valid/pasti, kita menggunakan tipe data boolean untuk memperoleh keputusan dalam suatu penyelesaian yang pasti.
     
3. Tipe Data Integer
Merupakan tipe data bilangan bulat.
    
4. Tipe Data Real
Merupakan tipe data bilangan pecahan seperti real, single, double, comp, extend.
     
5. Tipe Data Subrange
Merupakan tipe data bilangan yang punya jangkauan nilai tertentu sesuai dengan definisi pada pemrogram.
Example:
Type Variabel=Nilai_awal…Nilai_akhir
     
6. Tipe Data Enumerasi
Merupakan tipe data yang memiliki elemen-elemen tertentu yang disebut satu/satu dari bernilai konstanta integer sesuai dengan urutannya. Pada tipe data ini elemen masukan diwakili oleh suatu nama variable yang ditlis di dalam kurung.
Example :
Indeks_Hari = (Nol, Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu)
     
7. Tipe Data Array (Larik)
Tipe data ini sudah terstruktur dengan baik, walaupun masih sederhana. Tipe data ini menampung sejumlah data dengan tipe data sama (homogen) dalam sebuah variabel.

Cara mendefinisikan tipe data array:
  • Berdimensi satu
Var
     Nama_Variabel_Array[1...N]of tipe_data
     1 buah Nomor Indeks
  • Berdimensi dua
            Var
    Nama_Variabel_Array=Array[1...N,1...M]of tipe_data
    2 buah Nomor Indeks
    
8. Tipe Data Record
Tipe data komposit yang sudah terstruktur dengan baik. Tipe data ini digunakan untuk menampung data suatu obyek. Datanya berupa campuran dari tipe data seperti string, numerik, char, boolean, atau tipe data lainnya. Tipe data ini merupakan struktur dasar dari suatu sistem database.
     
9. Tipe Data Array Record
Tipe data array yang dibangun dari tipe data record.
     
10. Tipe Data Citra
Berisi grafik/gambar yang banyak digunakan pada aplikasi video.

Kesulitan dalam Pemrograman:
  • harus mampu menghafal banyak syntax pemrograman
  • sulit menyelesaikan masalah dengan kondisi tepat
  • sering terjadi error hingga harus melakukan debugging untuk menemukan bug yang membuat error proses kerja

Kemudahan dalam Pemrograman:
  • jika kita bias menguasai satu bahasa pemrograman kita dapat mempelajari bahasa pemrograman lainnya dengan lebih mudah


0 komentar: