Sabtu, 11 Desember 2010

Pengertian Dasar Logika & Algoritma

Sejarah Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa al-Khowarizmi, ilmuan  Persia yang menulis kitab al  jabr  w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M.
Bahasa pemrograman
Program harus ditulis dalam suatu bahasa  yang dimengerti oleh komputer yaitu  dalam Bahasa pemrogram dibedakan  menjadi :
  • Bahasa tingkat rendah (low level language) : bahasa yang berorientasi ke mesin.
  • Bahasa tingkat  tinggi (high level language) :  bahasa yang berorientasi ke manusia (seperti bahasa inggris). Contoh bahasa Pascal, bahasa C dll.
Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke  dalam bahasa mesin (kenal dengan biner  digit) dengan menggunakan penterjemah.
  Penterjemah :
  – Interpreter : menterjemahkan baris per baris
      instruksi. Contoh bahasa Basic.
  – Compiler : menterjamahkan setelah seluruh
     instruksi ditulis. Contoh bahasa Pascal, C,
     C++, dll.
Definisi Algoritma
          Urutan langkah-langkah untuk memecahkan masalah
          Urutan logis pengambilan keputusan untuk  memecahkan masalah
     urutan langkah logis, berarti algoritma harus mengikuti suatu  urutan tertentu, tidak boleh melompat-lompat.
          Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
     alur pikiran, yang artinya algoritma  seseorang dapat berbeda dari algoritma orang lain. 
tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.


Kriteria Pemilihan Algoritma
  1. Ada Output
  2. Efektifitas dan Efisiensi
  3. Jumlah Langkahnya Berhingga
  4. Berakhir
  5. Terstruktur
Suatu Algoritma yg terbaik (The Best): “Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan diperoleh suatu solusi ataupun tdk ada solusinya.“
Contoh:
Sebuah prosedur ketika akan mengirimkan surat kepada teman:
    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 yg dituju, jika tdk ingat, lebih dahulu ambil buku alamat & cari alamat yg dituju, lalu tulis alamat tsb pd amplop surat.
    6. Tempelkan perangko pada amplop surat
    7. Bawa surat ke kantor pos utk diserahkan pd pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dlm kotak/bis surat.
Penulisan Algoritma
·         Menggunakan bahasa natural  (Bahasa manusia: Indonesia, Inggris)
Kelemahannya  masih sering membingungkan (ambigu) / sulit dipahami.
·         Menggunakan Flowchart
Baik karena alur algoritma dapat dilihat secara visual, tetapi  repot pembuatannya jika algoritma panjang 
·         Menggunakan Pseudocode
Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang belum tahu pemrograman
Tahap Analisa Algoritma
  1. Bagaimana merencanakan algoritma
  2. Bagaimana menyatakan suatu algoritma (menulis algoritma)
  1. Bagaimana validitas suatu algoritma.
  2. Bagaimana Menganalisa suatu Algoritma.
  3. Bagaimana Menguji  Program dari suatu Algoritma
Ad.1.     Bagaimana merencanakan algoritma
Dengan Mendefinisikan masalah.
Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran.
Rumus :  ∏ . r2 dengan  Phi =  3.14 atau 22/7.


Ad.2.     Bagaimana menyatakan suatu algoritma (menulis algoritma)

Dengan psudocode  

suatu cara  penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu.







Dengan flowchart / diagram alir 
Program Flowchart, yaitu bagan yang menggambar-kan urutan logika dari suatu prosedur pemecahan masalah.
 
 
 Tahap Proses Uji Algoritma
1.    Pengujian Tahap Debuging
Untuk mengecek kesalahan program, Baik sintaksis maupun logika.
2.    Pengujian Tahap Profiling
Untuk menentukan waktu tempuh dan banyak nya memori program yang digunakan.
Analisis Suatu Algoritma
Untuk melihat effisiensi dan  efektifitas dari suatu algoritma, dapat dilihat dari:
1.       Waktu Tempuh dari Suatu Algoritma
2.       Jumlah memori yang digunakan
Hal-hal yang dapat mempengaruhi waktu tempuh adalah :
1.       Banyaknya langkah.
2.       Besar dan jenis input data
3.       Jenis Operasi.
4.       Komputer dan kompilator
Sifat - Sifat Algoritma
Aspek Penting Algoritma :
  • Finite = algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas
  • Definite = setiap langkah didefinisikan secara  tepat, tidak boleh membingungkan (ambigu)
  • Input = sebuah algoritma memiliki nol/lebih input sebelum dijalankan
  • Output = algoritma memiliki satu/lebih output, yang biasanya bergantung kepada input
  • Effective = setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana  dan sehingga dapat dikerjakan dalam waktu yang masuk akal)
Langkah-langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses:
1.    Sequence Process, instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah pertama sampai terakhir.
2.    Selection Process,  instruksi pemilihan proses (percabangan),  sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan.
Contoh :
jika pembayaran tunai diberi diskon 10%
Jika dilakukan secara kredit maka diskon 0 %.
(dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.
3.   Iteration Process, suatu instruksi yang dikerjakan berulang-ulang selama beberapa kali selama masih memenuhi suatu kondisi.
What is Algoritma
Definisi Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Contoh :
Algoritma TUKAR ISI BEJANA
Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna 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
  • Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil pertukaran yang terjadi  adalah percampuran kedua larutan tersebut.
  • Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahan sebagai tempat penampungan sementara, misalnya bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah sebagai berikut :
Tuangkan larutan dari bejana A ke dalam bejana C
– Tuangkan larutan dari bejana B ke dalam bejana A.
– Tuangkan larutan dari bejana C ke dalam bejana B.
Ciri penting Algoritma
  • Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
  • Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
  • Algoritma memiliki nol atau lebih masukkan.
  • Algoritma memiliki nol atau lebih keluaran.
  • Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).
Notasi Algoritma
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

0 komentar:

Posting Komentar