DASAR ALGORITMA DAN PEMROGRAMAN KOMPUTER Pertemuan 1
Target Setelah menempuh materi ini, mahasiswa hendaknya mampu: Memahami tentang konsep dasar pemrograman komputer Memahami tentang dasar algoritma dan tahap pengembangannya
Pokok Bahasan Konsep Dasar Pemrograman Definisi Algoritma Tahap Pengembangan Algoritma Langkah membuat algoritma
Dasar Pemrograman Komputer
Prinsip Kerja Komputer
Program Program merupakan Sederetan instruksi yang dikerjakan oleh komputer, untuk memproses data hingga menghasilkan output yang diinginkan Untuk membuat program, sebelumnya perlu dirancang langkah-langkah penyelesaian masalah algoritma Program ditulis dengan menggunakan bahasa pemrograman tertentu
Program Program = Algoritma + Bahasa Pemrograman Belajar membuat Program, berarti belajar untuk membuat algoritma dan mentranslasikan algoritma tersebut ke bahasa pemrograman, hingga program bisa jalan dan didapatkan hasil yang diinginkan
Bahasa Pemrograman Tingkat tinggi Tingkat rendah Lebih dekat dengan bahasa manusia Lebih mudah dipahami Contoh: C, C++, Java, Pascal, dsb Tingkat rendah Lebih dekat dengan bahasa mesin Lebih sulit dipahami Contoh: bahasa asembly
Langkah dalam Membuat Program Pamahi masalah/definisi masalah Buat model Buat algoritma Tulis program Compile Running Dokumentasi
Langkah Membuat Program
Langkah Membuat Program (1. Definisi Masalah)
Langkah Membuat Program (2. Buat Model)
Langkah Membuat Program (3. Rancang Algoritma)
Langkah Membuat Program (4. Tulis Program)
DASAR ALGORITMA
Posisi Algoritma
Sejarah Dari nama penulis buku Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi Buku Al Jabar Wa Muqobbala (Pemugaran dan Pengurangan) Awal dari istilah Aljabar Al-Khuwarizmi Algorism Karena Algorism sering disalah artikan dengan aritmatika, maka diubah jadi Algorithm
Definisi Algortima : urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Sistematis : urutan langkah-langkah yang disusun harus jelas, memiliki pola tertentu Logis : masuk akal, bisa dibaca dan diterima oleh akal Bisa dinila benar salahnya
Penilaian Algoritma Hasilnya harus benar, sesuai dengan yang diinginkan Seberapa baik hasil dari algoritma tersebut Efisiensi algoritma waktu dan memori Dimungkinkan antara orang satu dengan yang lain, dari masalah yang sama, akan mendapatkan algoritma yang berbeda. Semuanya dianggap benar, asal hasil yang dikeluarkan sesuai dengan harapan. Namun demikian, diantara perbedaan algoritma tersebut, bisa dipilih mana yang lebih efisien
Struktur Dasar Algoritma Struktur runtutan/sekuensial : Digunakan untuk program yang pernyataannya sequential atau urutan. Struktur pemilihan Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. Struktur perulangan Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.
Langkah membuat Algoritma Pahami masalah Tentukan kondisi awal Data Input Tentukan kondisi akhir Data output Data lain (jika ada) Data pendukung lain yang dibutuhkan pada proses penyelesaian masalah Tentukan langkah penyelesaian masalah mulai dari kondisi awal, hingga bisa tercapai kondisi akhir. Dalam menyusun langkah mungkin melibatkan: Urutan/sequence Pemilihan Perulangan
Contoh Masalah: memasak nasi menggunakan rice cooker Input : beras, air Output : nasi Data lain : rice cooker, listrik Proses : Cuci beras Masukan ke ricecooker, tambah air Dinyalakan Nasi masak
Contoh Masalah: mengupas kentang Input: kentang Outut: kentang yang sudah terkupas Data lain: pisau Proses: Ambil kentang Ambil pisau kupas
Contoh Menghitung biaya percakapan melalui HP Input : durasi pembicaraan Output : biaya yang harus dibayar Data lain: biaya bicara per menit = 1000 Proses: Masukan durasi Kalikan bayar = durasi*biaya bicara per menit Output bayar
Contoh Masalah: mencari luas lingkaran (tanpa memperhitungkan satuan) Input: jari-jari, Output: luas lingkaran, Data lain: nilai phi = 3.14 Langkah: Masukan/input jari-jari/tentukan nilai jari2 Hitung rumus, luas = phi*jari2*jari2 Output luas
Contoh Masalah: menghitung luas lingkaran sesuai dengan satuan yang diinginkan (memperhitungkan satuan jari2 dan satuan luas) Input: jari2, satuan jari2, satuan luas Output: nilai luas dengan satuan yg ditentukan Data lain: phi = 3.14 Proses: Masukan jari2, satuan jari2, satuan luas Konversi jari2 ke satuan luas Hitung luas = phi*jari2*jari2 Tampilkan nilai luas dengan satuan yg diinginkan
Contoh Masalah : Ada 2 gelas. Gelas A berisi kopi, gelas B berisi susu. Pindahkan sehingga B berisi kopi dan A berisi susu. Input: gelas A (kopi), gelas B (susu) Output: gelas A (susu), gelas B (kopi) Data lain: gelas kosong C Proses: A ke C B ke A C ke B
Contoh A B C 1 2 3 Masalah: Pindahkan cakram dari tiang A ke tiang B. Yang tersedia adalah 3 tiang tersebut. Aturannya, setiap pemindahan, hanya boleh 1 cakram saja, dan tidak ada cakram yang lebih kecil berada di bawah cakram yang lebih besar
Contoh (lanjutan) Input: Cakram (3buah), tiang (3buah) Output: ketiga cakram semua pindah ke B Data lain: - Proses: Cakram 1 ke B Cakram 2 ke C Cakram 1 dari B ke C Cakram 3 dari A ke B Cakram 1 dari C ke A Cakram 2 dari C ke B Cakram 1 dari A ke B
Contoh Masalah: mengupas kentang tanpa mengotori pakaian Input: kentang Output: kentang yang sudah terkupas Data lain: pisau, celemek Proses: Pakai celemek Ambil kentangnya dari karung Ambil pisau Kupas Output kentang yang sdh terkupas
Contoh Masalah: mengupas kentang, tanpa mengotori baju warna cerah. Jika baju warna gelap, maka kotor tidak apa2. Input: kentang Output: kentang yang sudah terkupas Data lain: pisau, celemek Proses: Ambil kentang Ambil pisau Jika warna baju cerah, maka Pakai celemek Jika tidak Tidak perlu pakai celemek Kupas kentang Output kentang terkupas
Contoh Mencari hasil bagi dari 2 bilangan Input: 2 bilangan (bilangan1, bilangan2 atau pembiagi, yang dibagi atau pembilang, penyebut) Output: hasil bagi Data lain: / Proses: Input pembilang, input penyebut Jika penyebut tidak sama dengan 0, maka Hitung pembilang/penyebut Output hasil
Contoh Masalah: mengupas 3 buah kentang Input: 3 kentang Output: 3 kentang terkupas Data lain: pisau Proses: Ambil 3 kentang Ambil pisau Kupas kentang 1 Kupas kentang 2 Kupas kentang 3 Selama masih ada kentang yang belum dikupas, lakukan Kupas kentang Lebih efisien diganti dengan
Contoh Masalah: membagi kentang dalam karung ke 4 anak. Tiap anak harus dapat bagian yang sama, dan jika masih sisa dan sisa tersebut tidak cukup utk dibagi, maka dibiarkan saja/tdk dibagi Input : Kentang dalam karung Output : kentang terbagi ke 4 anak masing2 dengan jumlah sama Proses: Selama kentang di karung lebih besar atau sama dengan 4 maka, lakukan: Ambil 4 kentang Bagi ke masing-masing anak
Contoh Masalah: membagi kentang dalam karung ke 4 anak. Kentang terdiri dari 3 jenis kentang merah, kentang mentega, kentang biasa dan kentang kecil. Tiap anak harus dapat jumlah dan tipe yang sama, dan jika masih sisa dan sisa tersebut tidak cukup utk dibagi, maka dibiarkan saja/tdk dibagi Input : Kentang dalam karung Output : kentang terbagi ke 4 anak masing2 dengan jumlah dan jenis yang sama Proses: Selama kentang di karung lebih besar atau sama dengan 4 dan jenisnya sama, maka lakukan: Ambil 4 kentang yang jenisnya sama Bagi ke masing-masing anak
Latihan Seberangkan Orang, Kambing, Serigala dan Sayur dari satu sisi sungai (A) ke sisi sungai lain (B) menggunakan perahu. Perahu hanya bisa mengangkut satu jenis barang saja dan perahu hanya bisa dikendalikan oleh Orang. Serigala tidak dapat ditinggalkan sendirian dengan Kambing. Dan Kambing tidak dapat ditinggalkan sendirian dengan Sayur. Buat algoritmanya.
Latihan Terdapat 2 buah ember, masing-masing memiliki volume 5 liter dan 3 liter. Buat algoritma untuk mendapatkan air sebanyak 1 liter
Latihan Tiga pasang suami istri yang sedang menempuh perjalanan sampai ke sebuah sungai. Di situ mereka menemukan sebuah perahu kecil yang hanya bisa membawa tidak lebih dari dua orang setiap kali menyeberang. Penyeberangan sungai dirumitkan oleh kenyataan bahwa para suami sangat pencemburu dan tidak mau meninggalkan istri- istri mereka jika ada lelaki lain. Tulislah algoritma untuk menunjukkan bagaimana penyeberangan itu bisa dilakukan.