ALGORITMA & PEMROGRAMAN-1 Sekreningsih Nita
KETENTUAN PERKULIAHAN Bobot = 2 sks Pertemuan Total = 16x (-2x ujian) Tengah Semester-I = 7x (8) UTS Tengah Semester-II = 7x (8) UAS Ujian (UTS+UAS) = 2x Tugas/Quiz (min) = 2x
UTS = 30 % UAS = 40 % ABSEN = 10 % TUGAS/ QUIZ = 20 % Total = 100 % Bobot Penilaian UTS = 30 % UAS = 40 % ABSEN = 10 % TUGAS/ QUIZ = 20 % Total = 100 %
Pertemuan-I SEJARAH ALGORITMA Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu : Abu Ja’far Muhammad Ibnu Musa Al-Khwarizmi.
SEJARAH ALGORITMA Al-Khwarizmi dibaca orang barat menjadi Algorism. Al-Khwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, shg akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.
Tentang Al-Khawarizmi (1) Kata Algoritma diambil dari nama ilmuwan muslim : “Abu Ja’far Muhammad bin Musa Al-Khwarizmi (780-846 M) “ Lahir di Khwarizmi, Uzbeikistan , thn 194 H/ 780 M. Masuk kelingkungan Dar al-Hukama (Rumah Kebijaksanaan) , sebuah lembaga penelitian dan pengembangan ilmu pengetahuan yg didirikan oleh Ma’mun Ar-Rasyid (seorang khalifah Abbasiyah yg terkenal). Karya yg dihasilkan dibidang : Matematika ; Geografi (Buku : surat Al-Ardi , bentuk rupa bumi,sebagai dasar geografi Arab),karya ini disimpan di Strassberg Jerman) ; Musik ; Sejarah
Tentang Al-Khawarizmi (2) Karya Al-Khwarizmi dlm bid.matematika ada 2 : Hisab al-Jabr wa al-Mugabla (Pengutuhan Kembali dan Pembandingan) Al-Jama’ wa at-Tafriq bi Hisab al-Hind (Menambah& Mengurangi dlm matematika Hindu) Kedua karya tsb menguraikan ttg persamaan linier & kuadrat ; penghitungan integrasi & persamaan dg 800 contoh yg berbeda ; tanda-tanda negatif yg sblmnya blm dikenal oleh bangsa Arab .
Tentang Al-Khawarizmi (3) Dlm karya Al-Jama’ wa at-Tafriq,Al-Kwarizmi menjelaskan ttg seluk beluk kegunaan angka2,termasuk angka NOL dlm kehidupan sehari-hari ,yg kemudian diterjemakan kedalam Bhs Latin . Oleh karenanya Al-Khwarizmi diyakini sbg penemu “Angka NOL” Selain sbg ahli dlm bid.matematika juga sebagai “Astronom” sebuah tim (Khalifah Ma’mun) yg dipimpinnya berhasil menentukan ukuran dan bentuk bundaran bumi . Al-Kwarizmi meninggal thn 262 H/ 846 M di Bagdad
ALGORITMA Definisi Algoritma 1. Algoritma adalah urutan langkah-langkah utk menyelesaikan masalah yang disusun secara sistematis dan logis . 2. Suatu metode/cara yg terdiri dari satu / beberapa langkah yg harus diikuti untuk menyelesaikan masalah . 3. Spesifikasi urutan langkah2 utk melakukan pekerjaan tertentu.
KARAKTERISTIK /SYARAT ALGORITMA Algoritma harus tidak ambigu (unambiguous); deskripsi langkah2 dlm algoritma harus dan hanya mempunyai tafsiran tunggal . Algoritma harus tepat (precise) ; algoritma hrs menyatakan dg jelas kapan berhenti dr sebuah langkah utk meneruskan kelangkah berikutnya Algoritma harus pasti (definite) ; jika serangkaian langkah yg sama dilakukan 2x maka hasilnya harus selalu sama Algoritma harus berhingga (finite) ; serangkaian algoritma harus dpt dilaksanakan pd rentang waktu ttt spt yg telah ditetapkan.
Sub-masalah hasil dekomposisi disebut “Modul” TOP-DOWN DESIGN [1] Pemecahan sebuah masalah pd hakekatnya adalah menemukan langkah2 tertentu yg jika dijalankan efeknya akan memecahkan masalah tsb . Top-Down Design mendekomposisi /memecah masalah menjadi lebih sederhana/sub-masalah dan memeriksa hubungan antara submasalah2 tsb sblm dikembangkan dlm spesifikasi yg lebih rinci . Sub-masalah hasil dekomposisi disebut “Modul”
Ada 2 karakteristik dr Modul yg harus dipenuhi : TOP-DOWN DESIGN [2] Ada 2 karakteristik dr Modul yg harus dipenuhi : Sebuah modul harus menjalankan tugas2 yg spesifik . Sebuah modul harus tidak terlalu panjang. Contoh-1 : Pemecahan masalah “menelpon” ,langkah2 sbb : Angkat gagang telpon Masukkan koin Tekan no yg akan dihubungi Bicara Letakkan gagang telepon
TOP-DOWN DESIGN [3] Langkah tsb apabila dlm kondisi normal,telp dlm keadaan baik, telp yg dihubungi ada yg mengangkat masalah menelpon dpt dipecahkan . Tetapi utk keadaan yg tidak normal , maka langkah2 tsb tdk akan memecahkan masalah . Oleh karena itu langkah (1) harus dikembangkan menjadi : Angkat gagang telepon a. Jika terdengar nada panggil , masukkan koin b. Jika tidak terdengar nada panggil ,ke langkah 5 3. Tekan nomor yg akah dihubungi a. Jika telepon yg dihubungi ada yg mengangkat, bicara b. Jika telepon yg dihubungi tidak ada yg mengangkat ke langkah 5 5. Letakkan gagang telepon .
CONTOH-2 : TOP-DOWN DESIGN Algoritma mengirimkan pesan singkat (sms) : Ambil Handphone Masuk menu SMS Pilih Sub-Menu Tulis SMS Tuliskan isi SMS Tekan menu Masukkan nomor yang dituju Tekan ok Tunggu report Apabila SMS terkirim, Selesai Jika sms tak terkirim, lompat ke langkah 5
RUMUSAN TOP-DOWN DESIGN [4] Langkah2 dlm Top-Down Design dapat dirumuskan sbb : Dekomposisi masalah utama menjadi submasalah2 scr tepat . Periksa bhw setiap submasalah dipecahkan scr tepat Pemecahan dr setiap submasalah digabungkan dg cara tertentu shg masalah utama terpecahkan . Ulangi langkah 1 sampai 3 sampai submasalah dibagi menjadi sub-submasalah yg sederhana dan dapat dipecahkan dg program yg cukup singkat .
KEUNTUNGAN ALGORITMA Pembuatan algoritma mempunyai banyak keuntungan diantaranya: 1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yg melaksanakannya. 2. Notasi algoritma dapat diterjemahkan kedalam berbagai bahasa pemrograman. 3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
ALGORITMA merupakan JANTUNG ILMU INFORMATIKA Banyak cabang ilmu komputer yg diacu dlm terminologi algoritma . NAMUN , tidak semua algoritma identik dgn ilmu komputer saja . Dlm kehidupan sehari-haripun bnyk terdapat proses yg dinyatakan dlm bentuk algoritma . Contoh: [proses masak] - proses pembuatan kue/masakan yg dinyatakan dlm suatu resep (resep=algoritma) , krn dlm setiap resep selalu ada urutan/langkah- langkah/cara membuatnya. Bila langkah2nya tdk logis, maka tidak akan dihasilkan masakan yg diinginkan . Scr umum pihak (benda) yg mengerjakan proses disebut pemroses (processor). Pemroses dapat berupa manusia , komputer, robot/alat-alat elektronik lainnya . * Pemroses melakukan suatu proses dgn melaksanakan atau mengeksekusi algoritma yg menjabarkan proses tsb .
Melaksanakan Algoritma, berarti melaksanakan langkah2 didlm suatu proses. Pemroses mengerjakan proses sesuai dengan algoritma(tata cara) yg diberikan kpdnya . Juru masak membuat kue berdasarkan resep yg diberikan kpdnya , pianis memainkan lagu berdasarkan papan not balok . Oleh krn itu ALGORITMA harus dinyatkaan dlm bentuk yg dpt dimengerti oleh pemroses. PEMROSES harus ; - mengerti setiap langkah dlm algoritma. - mengerjakan operasi yg bersesuaian dgn langkah tsb .
NOTASI ALGORITMA Notasi Algoritma , dapat diterjemahkan kedlm berbagai bhs pemrograman. Analoginya sama dengan resep membuat kue . Sebuah resep dapat ditulis dlm bhs apapun , bisa dgn bhs Jepang , Inggris , Perancis , Indonesia,dll . Apapun bhs nya,kue yg dihasilkan tetap sama asalkan semua aturan pd resep diikuti . Mengapa demikian ? Krn setiap jurus masak (sbg pemroses) dpt melakukan operasi dasar yg sama,spt mengocok telur,menimbang berat gula,dsb
Metode Algoritma Ada 2 cara dlm penulisan Algoritma yaitu : 1. Tulisan : a. Algoritma dg Struktur Bahasa Fundamental (deskriptif) . b. Pseudo-Code (kode/tanda yg menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah) 2. Gambar Diagram Alir (Flowchart)
Metode Algoritma dg TULISAN Algoritma dg Struktur Bahasa Fundamental (deskriptif) .
CONTOH(1) : PROGRAM BELI BAJU Algoritma (struktur bahasa) ; 1. Masuk toko pakaian 2. Lihat ukuran , ulangi jika ukuran tdk sesuai , cari ukuran yg lain 3. Lihat baju lain 4. Periksa harga , apakah harga sesuai ? - jika ya , beli - jika tidak , langkah-3 5. Selesai , pulang .
CONTOH(2) : PROGRAM NONTON FILM Algoritma (struktur bahasa) ; 1. Apakah usia > 21 th - jika ya , boleh nonton silahkan duduk - jika tidak , tidak boleh nonton pulang 2. Selesai.
CONTOH(3) : MENCARI BIL.TERBESAR (A,B,C) Beri nilai awal pd A,B,C Baca A,B,C Apakah A>B ? ; - Jika ya , apakah A>C ? Jika ya : cetak , A = Bil. Terbesar Jika tdk : cetak , C = Bil. Terbesar 4. Apakah B>C ? ; Jika ya : cetak , B = Bil.Terbesar Jika tdk : cetak , C = Bil.Terbesar 5. Selesai .
PR ALGORITMA DLM URAIAN DESKRIPTIF : 1. Ambil sebungkus mie instan dan pelajari cara memasaknya ! (pelajari cara memasak tsb menjadi sebuah algoritma) . 2. Buat algoritma menjalankan sepeda motor (apakah algoritma yg telah dibuatt sudah mencakup semua kemungkinan kejadian ?) .
Sampai ketemu minggu depan METODE ALGORITMA (PSEUDO CODE)