PERTEMUAN 1
SEJARAH KATA ALGORITMA Algoritma (algorithm) memiliki sejarah yang cukup unik. Kata tersebut tidak muncul dalam kamus Webster hingga akhir tahun 1957. Kata yang dikenal saat itu adalah algorism. Ditemukannya istilah Algorism yang berarti proses menghitung dengan angka arab Istilah Algorism ditemukan berasal dari kata Al-Khuwarizmi yakni nama terakhir penulis buku arab terkenal, Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Salah satu bukunya, Kitab Al Jabar Wal Muqabala/Buku Pemugaran dan Pengurangan
Dalam bahasa Indonesia kata algorithm diserap sebagai algoritma Gambar 1. Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi Istilah algorism sering dikelirukan dengan arithmetic, sehingga algorism berubah menjadi algorithm Penghitungan dengan angka arab menjadi hal yang biasa/lumrah, sehingga istilah algorithm dipakai sebagai metode penghitungan (komputasi) secara umum dan lalu kehilangan makna aslinya Dalam bahasa Indonesia kata algorithm diserap sebagai algoritma
Definisi algoritma “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.
Pertimbangan dalam pemilihan algoritma adalah: algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik. 2. harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
3. efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut.
Beda algoritma dan program Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberi formula bahwa: Program = Algoritma + Bahasa (Struktur Data) Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya
Keuntungan membuat algoritma: 1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya. 2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. 3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Ciri-ciri algoritma: Menurut Donald E. Knuth dalam bukunya yang berjudul “The Art of Computer Programming”, sebuah algoritma memiliki 5 (lima) ciri-ciri penting, yakni : Algoritma harus berhenti setelah melakukan sejumlah langkah terbatas Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak bermakna ganda (ambiguous) Algoritma memiliki nol atau lebih masukan (input) Algoritma memiliki satu atau beberapa keluaran (output) Algoritma harus efektif.
Bahasa pemograman Bahasa Pemrograman adalah alat bantu untuk membuat program. Berdasarkan aplikasi penggunaannya, bahasa pemrograman dikelompokkan menjadi dua, yaitu : Bahasa pemrograman bertujuan khusus (specific purpose programming language) Bahasa pemrograman bertujuan umum (general purpose programming language)
Berdasarkan “kedekatan” bahasa pemrograman dikelompokkan atas dua bagian : 1. Bahasa tingkat rendah Yaitu bahasa yang lebih “dekat” dengan mesin dibandingkan manusia. Artinya bahasa ini menyebabkan program akan langsung dieksekusi karena sudah dipahami oleh mesin (komputer), sedangkan manusia sangat sulit memahami bahasa ini. Contohnya bahasa mesin dan bahasa rakitan. 2. Bahasa tingkat tinggi Yaitu bahasa yang lebih “dekat” dengan manusia dibandingkan dengan mesin. Artinya bahasa ini lebih mudah dipahami oleh manusia tetapi sulit dipahami oleh mesin. Karena itu, sebelum program dieksekusi oleh komputer, program harus diubah/diterjemahkan menjadi bahasa yang dipahami oleh mesin (proses kompilasi). Contohnya adalah C, Perl, Matlab, Java, dan sebagainya.
Berikut ini diberikan langkah-langkah pelaksanaan program oleh komputer dari sudut pandang bahasa pemrograman
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien
Contoh-contoh algoritma Algoritma Pengurutan N buah kartu Diasumsikan terdapat N buah kartu yang tersusun secara acak. Kartu akan diurutkan dari yang terkecil hingga terbesar (ascending). Berikut algoritmanya : 1. Cari kartu dengan nomor terbesar 2. Tempatkan kartu di posisi yang tepat 3. Ulangi langkah 1 untuk N-1 buah kartu yang lain
Algoritma Tukar Isi Dua Buah Bejana Terdapat dua buah bejana A dan B yang berisi cairan berbeda. Kedua cairan tersebut akan dipertukarkan. Dalam hal ini akan digunakan bejana bantu C. Berikut bentuk algoritmanya : Tuangkan isi bejana A ke dalam bejana C Tuangkan isi bejana B ke dalam bejana A Tuangkan isi bejana C ke dalam bejana B
Algoritma Menyeberang Sungai Terdapat seorang pemuda (P) dengan ketiga barang bawaannya, yaitu serigala (S), kambing (K), dan sayur (R). Pemuda tersebut akan membawa barang bawaannya menyeberangi sebuah sungai dengan menggunakan sebuah perahu. Perahu hanya menyediakan dua tempat. Di sisi lain, barang bawaan pemuda tersebut merupakan rantai makanan, artinya sayur adalah makanan kambing, dan kambing adalah makanan serigala.
Keadaan Awal : A (Awal) B(Seberang Sungai) P, S, K, R -, -, -, - Algoritma Menyeberang_Sungai: Pemuda menyeberangkan kambing dari sisi A ke B A : {-, S, -, R} B : {P, -, K, -} 2. Pemuda menyeberang sendiri dari sisi B ke A A : {P, S, -, R} B : {- , -, K, -} 3. Pemuda menyeberangkan serigala dari sisi A ke B A : {-, -, -, R} B : {P, S, K, -}
4. Pemuda menyeberangkan kambing dari sisi B ke A A : {P, -, K, R} B : {-, S, -, -} 5. Pemuda menyeberangkan sayur dari sisi A ke B A : {-, -, K, -} B : {P, S, -, R} 6. Pemuda menyeberang sendiri dari sisi B ke A A : {P, -, K, -} B : {-, S, -, R} 7. Pemuda menyeberangkan kambing dari sisi A ke B A : {-, -, -, -} B : {P, S, K, R}
Algoritma mengirim surat Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah: Menulis surat Surat dimasukkan ke dalam amplop tertutup Amplop ditempeli perangko secukupnya. Pergi ke Kantor Pos terdekat untuk mengirimkannya
Algoritma menghitung luas persegi panjang Masukkan panjang (P) Masukkan lebar (L) Luas ←P * L Tulis Luas Sifat: Umum Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman Tidak tergantung pada suatu bahasa pemrograman Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun
Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. Masukkan sebuah bilangan sembarang Bagi bilangan tersebut dengan bilangan 2 Hitung sisa hasil bagi pada langkah 2. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.
Sebutkan ciri-ciri algoritma? Darimana istilah algoritma berasal? Latihan Sebutkan ciri-ciri algoritma? Darimana istilah algoritma berasal? Buatlah contoh algoritma dalam kehidupan sehari-hari. Minimal 2? Dimanakah letak kesalahan lojik algoritma memutar kaset tape recorder dibawah ini: ALGORITMA: Pastikan tape recorder berada dalam keadaan POWER ON Tekan tombol PLAY Masukkan kaset ke dalam tape recorder