Algoritma dan pemograman modul 2

Algoritma dan pemograman modul 2

BAB 2
Kompleksitas Algoritma

Jenis algoritma
         Divide and conquer : menyederhanakan problem yang besar.
         Greedy methode : mencari yang optimal pada saat itu.
Algoritma : jumlah langkah yang berhingga (finite) instruksinya jelas
Contoh : for i do 10 then .....

Tujuan Menganalisis Algoritma

         Efisiensi waktu
         Efisiensi storage

Analisis algoritma
ü  Menentukan karakteristik kinerja (memprediksi sumber daya)
ü  Mengapa ?
ü  Memilih algoritma yang paling efisien dari beberapa alternatif penyelesaian untuk kasus yang sama
ü  Mencari waktu yang terbaik untuk keperluan praktis
ü  Apakah algoritma itu optimal untuk beberapa kasus atau ada yang lebih baik

Runing time
         fungsi dari input size
         Memanggil instruksi sederhana dan mengakses ke memory word sebagai “primitive operation” atau “step”
         Jumlah step eksekusi algoritma pada input tersebut
         Dikenal juga “complexity and input”

Kompleksitas tergantung
Ø  Ukuran input à bergantung pada problem
Ø  Misalkan jumlah data yang diurutkan
Ø  Karakter lain dari input
Ø  Apakah data sudah terurut
Ø  Apakah ada lingkaran dalam grafik
Algoritma dan pemograman modul 1

Algoritma dan pemograman modul 1

BAB 1
Algoritma & Pemrograman


Algoritma

Kata ‘algoritma’ diturunkan dari nama belakang seorang tokoh matematikawan Persia bernama Muhammad ibn Musa al-Khuwarizmi (lahir tahun 730an, meninggal antara tahun 835 dan 850). Al-Khuwarizmi berasal dari propinsi Khorasan di negara yang saat ini bernama Uzbekistan. Uni Soviet menghormati jasa-jasa Al-Khuwarizmi dengan membuat gambar dirinya sebagai perangko.
Algoritma merupakan metode umum yang digunakan untuk menyelesaikan kasus-kasus tertentu [1]. Dalam menuliskan algoritma, dapat digunakan bahasa natural atau menggunakan notasi matematika, sehingga masih belum dapat dijalankan pada komputer.
Dalam kehidupan sehari-hari, kita sudah melakukan penyusunan algoritma untuk menyelesaikan permasalahan atau tantangan yang dihadapi. Sebagai contoh, pada saat diminta untuk membuat telur dadar. Sebelum membuat algoritmanya, kita perlu mendefinisikan masukan (input) dan luaran (output) terlebih dahulu, dimana input berupa telur mentah, dan output berupa telur dadar yang sudah matang.
Susunan algoritmanya sebagai berikut:
1.    Nyalakan api kompor
2.    Tuangkan minyak ke dalam wajan
3.    Pecahkan telur ayam ke dalam mangkok
4.    Tambahkan garam secukupnya
5.    Aduk campuran telur dan garam
6.    Tuang adonan telur ke dalam wajan
7.    Masak telur hingga matang

Algoritma akan lebih baik jika ditulis secara sistematis menggunakan beberapa skema, dalam buku ini akan dibahas mengenai skema Flowchart dan Pseudocode.

Program

Program adalah formulasi sebuah algoritma dalam bentuk bahasa pemrograman[1], sehingga siap untuk dijalankan pada mesin komputer. Membuat program seperti memberitahukan apa yang harus dilakukan kepada orang lain. Sebagai contoh, pada saat kita memberitahukan algoritma membuat telur dadar kepada orang lain, kita sudah melakukan pemrograman.
Pemrograman membuat telur dadar kepada orang lain akan lebih mudah karena orang tersebut sudah mengetahui apa itu telur dadar. Pada langkah yang ke-3 diminta untuk memecahkan telur, bagaimana cara orang tersebut memecahkan telur tentunya sudah diketahui dan kita tidak perlu menjelaskan terlalu detil.
Lain halnya jika kita harus menyuruh komputer untuk melakukan apa yang kita inginkan. Komputer sebenarnya hanyalah sebuah mesin bodoh yang tidak memiliki emosi dan kemampuan bersosialisasi. Oleh karena itu, untuk membuatnya menjadi mudah, diperlukan penyusunan algoritma yang benar.
Mendesain algoritma yang benar dan menterjemahkannya ke dalam bahasa pemrograman bukanlah hal yang mudah karena bahasa pemrograman memiliki tata penulisan sendiri.