Dasar Algoritma & Pemrogramn KUG1C3 PROLOG
ATURAN PERKULIAHAN
KREDIT KUG1C3 3 SKS 3 jam teori + 1 jam responsi Ada asisten untuk responsi Silabus KUG1C3
KOMPONEN PENILAIAN Quiz (15%) Others: tugas kecil, pre-test (5%) Komponen nilai Quiz (15%) Others: tugas kecil, pre-test (5%) Tugas besar (20%) UTS (30%) UAS (30%) Keaktifan Kehadiran Keterlambatan <=30 menit >30menit = tidak mengisi presensi
References
Discussion Name : Untari Novia Wisesty Email: untarimail@gmail.com Hp : 0856 3580 458 Office room: E109
Introduction to algorithm
Contoh 1 Terdapat dua jenis minuman dalam 2 gelas berukuran sama A dan B, kedua minuman akan ditukarkan tempatnya. {status awal: gelas A berisi minuman a, gelas B berisi minuman b status akhir: gelas A berisi minuman b, gelas B berisi minuman a} {Dibutuhkan sebuah gelas kosong yaitu gelas C} Algoritma Tuangkan minuman a ke gelas C Tuangkan minuman b ke gelas A Tuangkan minuman a ke gelas B
Penjelasan Contoh 1 Aksi 1 {status awal: gelas A berisi minuman a, gelas C kosong} Tuangkan minuman a ke gelas C {status akhir: gelas A kosong, gelas C berisi minuman a } Aksi 2 {status awal: gelas A kosong, gelas B berisi minuman b } Tuangkan minuman b ke gelas A {status akhir: gelas A berisi minuman b, gelas B kosong } Aksi 3 {status awal: gelas B kosong, gelas C berisi minuman a } {status akhir: gelas B berisi minuman a, gelas C kosong, } Perhatikan contoh 1. Contoh 1 terdiri dari 3 instruksi. Status awal dan status akhir dari algoritma ditulis pada 2 baris teratas. Untuk setiap aksi yang dilakukan masing-masing instruksi bisa ditentukan status awal dan status akhir seperti pada slide. Perhatikan bahwa status akhir dari sebuah aksi menjadi status awal bagi aksi berikutnya
Contoh 2 Misalkan terdapat sebuah atau sejumlah bola berwarna merah, kuning, hijau pada kotak A. Akan diambil secara acak sebuah bola dari kotak A dan dimasukkan ke kotak B yang kosong. {status awal: kotak A berisi sejumlah bola, kotak B kosong status akhir: Bola pada kotak A berkurang 1, kotak B berisi sebuah bola} Algoritma Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B
Latihan 1 Terdapat 4 buah bola yang tampilannya sama. Tiga (3) bola mempunyai berat yang sama dan sebuah bola lebih ringan atau lebih berat. Untuk mencari bola mana yang beratnya berbeda disediakan sebuah timbangan tanpa skala yang hanya bisa menunjukkan 2 benda beratnya sama atau tidak. Buat algoritma untuk persoalan ini.
Contoh 3 {status awal: kotak A berisi sejumlah bola, kotak B kosong Berdasarkan contoh 1, dimana setelah bola diambil dari kotak A, bola tersebut disimpan di kotak B jika berwarna merah. {status awal: kotak A berisi sejumlah bola, kotak B kosong status akhir: bola pada kotak A berkurang 1, kotak B kosong atau berisi sebuah bola merah} Algoritma Ambilkan 1 bola dari kotak A if bola berwarna merah then Masukkan bola terambil ke kotak B Adakalanya sebuah aksi dilakukan jika kondisi tertentu terpenuhi. Perhatikan algoritma berikut.
Perhatikan pemilihan kondisi pada baris ke-2 Perhatikan pemilihan kondisi pada baris ke-2. Skema pemilihan yang digunakan memiliki pola: if kondisi then aksi Notasi if menunjukkan “jika terpenuhi” dan then berarti “maka”. Aksi aksi hanya dilakukan jika kondisi terpenuhi. Pada algoritma di atas, bola yang terambil pada instruksi pertama akan dimasukkan ke kotak B jika berwarna merah. Jika bola terambil tidak berwarna merah, tidak ada aksi yang dilakukan.
Contoh 4 {status awal: kotak A berisi sejumlah bola, kotak B dan C kosong status akhir: Bola pada kotak A berkurang 1, kotak B atau kotak C kosong atau berisi sebuah bola} Algoritma Ambilkan 1 bola dari kotak A if bola berwarna merah then Masukkan bola terambil ke kotak B else Masukkan bola terambil ke kotak C Jika persoalan diperluas yaitu dengan menempatkan bola terambil yang bukan berwarna merah ke kotak lain maka algoritma menjadi seperti di bawah ini:
Perhatikan pemilihan kondisi pada baris ke-2 Perhatikan pemilihan kondisi pada baris ke-2. Skema pemilihan yang digunakan memiliki pola: if kondisi then aksi 1 else aksi 2 else menunjukkan “jika tidak terpenuhi”. Pada contoh dia atas, jika tidak terpenuhi kondisi bola berwarna merah maka yang dilakukan adalah memasukkan bola ke kotak C.
Contoh 5 {status awal: kotak A berisi 5 bola, kotak B kosong status akhir: kotak A kosong, kotak B berisi 5 bola} Algoritma Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B Sering terjadi aksi yang sama perlu dilakukan beberapa kali. Perhatikan contoh 5 berikut: Kotak A berisi 5 bola berwarna merah, kuning, hijau. Satu per satu bola akan dipindahkan ke kotak B sampai kotak A kosong Pada algoritma di atas terjadi pengulangan aksi sebanyak 5 kali, bagaimana jika bola yang harus dipindahkan berjumlah besar, misalkan 100, haruskah instruksi ditulis 100 kali?
Contoh 6 {status awal: kotak A berisi 100 bola, kotak B kosong status akhir: kotak A kosong, kotak B berisi 100 bola} Algoritma repeat 100 times Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B
Pada algoritma di atas digunakan struktur: repeat n times Aksi
Bagaimana jika jumlah bola pada kotak A tidak diketahui? Nilai n menunjukkan berapa kali aksi harus dilakukan. Masalahnya bagaimana jika jumlah bola pada kotak A tidak diketahui? yang diketahui adalah kondisi akhir kotak A setelah aksi-aksi dilakukan yaitu kotak kosong.
Contoh 7 {status awal: kotak A berisi bola, kotak B kosong status akhir: kotak A kosong, kotak B berisi bola} Algoritma repeat Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B Until kotak A kosong Pada contoh di atas aksi mengambil bola dari kotak A dan menyimpannya di kotak B akan berlangsung terus sampai kondisi berhenti yaitu kotak A kosong terpenuhi.
Bagaimana jika kotak A KOSONG ?
Contoh 8 {status awal: kotak A kosong atau berisi bola, kotak B kosong status akhir: kotak A kosong, kotak B berisi bola atau tetap kosong} Algoritma If kotak A tidak kosong then repeat Ambil 1 bola dari kotak A Masukkan bola terambil ke kotak B until kotak A kosong Jika persoalan diperluas dimana kotak A mungkin kosong maka algoritma akan berubah seperti pada slide
Latihan 2 Persoalan pada contoh 7 sedikit diubah dimana bola-bola dari kotak A akan dipindahkan ke 3 kotak lain berdasarkan warnanya sehingga kotak A kosong dan 3 kotak lain terisi dengan bola berwarna sejenis.
Syarat Algoritma Algoritma harus berhenti. Setiap instruksi dan spesifikasi harus didefinisikan dengan tepat dan tidak ambigu. Contohnya ketika kita membuat algoritma yang melibatkan bilangan positif, harus jelas apakah nol bilangan positif atau bukan.
Syarat Algoritma Memiliki nol atau lebih masukan Memiliki nol atau lebih keluaraan Efektif, yaitu urutan instruksi sesederhana mungkin
Belajar memrogram = Belajar bahasa pemrograman ? Belajar memprogram adalah belajar tentang strategi pemecahan masalah, metodologi, dan sistematika pemecahan masalah kemudian menuangkannya dalam suatu notasi yang disepakati bersama. Belajar memprogram lebih bersifat belajar pemahaman persoalan, analisis, dan sintesis. Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan sintaks (tatabahasa), setiap instruksi yang ada dan tata cara pengoperasian kompilator bahasa yang bersangkutan pada mesin tertentu. Lebih lanjut, belajar bahasa pemrograman adalah belajar untuk memanfaatkan instruksi-instruksi dan kiat yang dapat dipakai secara spesifik hanya pada bahasa itu. Belajar pemrograman lebih bersifat keterampilan. Proses memprogram adalah proses yang memerlukan kepakaran. Termasuk di dalamnya adalah memilih merancang paradigma dan merancang strategi pemecahan masalah. Pengkodean merupakan bagian dari proses memprogram. Yang dilakukan pada proses pengkodean merupakan proses translasi algoritma ke dalam bentuk program dengan bahasa pemrograman tertentu. Pengajaran pemrograman titik beratnya adalah membentuk seorang perancang (designer) program, sedangkan pengajaran bahasa pemrograman adalah membentuk seorang coder. Pada kenyataannya belajar memprogram dan belajar bahasa pemrograman tidak bisa dilepaskan satu sama lain. Seorang pemrogram harus membuat rancangan program yang mungkin ditranslasikan ke bahasa pemrograman.
Objektif Matakuliah Kuliah ditekankan pada belajar memprogram dan bukan untuk mempelajari bahasa pemrograman tertentu. Matakuliah Pemrograman Komputer di STT Telkom diberikan dalam 3 SKS bagi mahasiswa program sarjana pada tahun pertama. Kuliah diberikan dalam bentuk perkuliahan di kelas dan praktek di laboratorium. Di luar itu mahasiswa sangat dianjurkan untuk banyak membaca algoritma dan program.
Setelah menyelesaikan matakuliah ini mahasiswa diharapkan mampu mendefinisikan langkah-langkah sistematis untuk menyelesaikan persoalan-persoalan yang perlu diselesaikan dengan program dan mentranslasikannya ke dalam bahasa Pascal.
Pada kuliah ini digunakan compiler Pascal dengan pertimbangan “kekakuan” skema program Pascal yang dipandang baik bagi pemrogram pemula.
Notasi Algoritmik
Teks Algoritma Terdiri atas tiga bagian Judul Kamus Algoritma
Contoh teks algoritma
Pada setiap bagian akan didefinisikan & dituliskan NAMA atau komentar Komentar dituliskan diantara tanda kurung kurawal. Teks yang dituliskan diluar tanda kurung kurawal adalah teks algoritma
NAMA
Aturan pemberian NAMA Dalam bahasa pemrograman, setiap nama mempunyai aturan penulisan. Pada teks algoritma tidak ada aturan ketat. Pemilihan nama harus interpretatif, tidak menimbulkan kerancuan, jika singkat harus disertai penjelasan. contoh: x-y akan membingungkan sebab mungkin “x minus y”
Aturan pemberian NAMA Nama merupakan satu kesatuan leksikal, maka sebuah nama harus dituliskan secara utuh (tidak dipisah blank) supaya satu nama dapat dibedakan dengan nama lainnya (besaran leksikal lain)
Aturan pemberian NAMA Semua nama dalam program harus unik, artinya suatu nama hanya didefinisikan satu kali saja Semua nama yang dipakai dalam teks algoritma harus sudah didefinisikan pada salah satu bagian teks algoritma
Setelah judul tuliskan spesifikasi singkat dari teks algoritma. Bagian teks algoritma tempat mendefinisikan apakah teks tsb adalah program, prosedur, fungsi, atau modul Setelah judul tuliskan spesifikasi singkat dari teks algoritma. Bagian judul identik dengan judul buku dan intisari pada suatu teks ilmiah dalam suatu makalah berbahasa Indonesia
KAMUS
Contoh pendefinisian kamus
ALGORITMA
Komponen Algoritma
Referensi Liem, Inggriani. Diktat kuliah Algoritma & Pemrograman. ITB. 2003
Tipe dasar dan komposisi Topik berikutnya.. Tipe dasar dan komposisi