Pendahuluan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT Hp: 0853 6581 8665 Email: abdill01@gmail.com Website: www.abdill01.wordpress.com
Tujuan Mata Kuliah Mahasiswa memahami dasar-dasar pemrograman komputer, meliputi algoritma dan pemrograman , yang bertujuan untuk pemecahan masalah.
Sasaran Mata Kuliah Sasaran mata kuliah ini adalah mahasiswa belajar memprogram, bukan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, yakni menuliskan pemecahan masalah dalam sebuah algoritma dan menerjemahkan algoritma tersebut ke dalam program.
Bukan Sasaran Mata Kuliah Belajar bahasa pemrograman adalah belajar memakai suatu bahasa pemrograman, aturan tata bahasanya, instruksinya, dan tata cara pengoperasian kompilatornya, kemudian menggunakan instruksi tersebut untuk membuat program yang ditulis dalam bahasa pemrograman tersebut.
Kode Etik Perkuliahan Sebelum mulai kuliah, mahasiswa telah mengisi absensi, kehadiran minimal 75%. Jika dosen terlambat > 30 menit, maka mahasiswa boleh pulang. Jika mahasiswa terlambat > 30 menit, maka mahasiswa tidak boleh mengikuti kuliah. Jika dosen berhalangan hadir, maka dosen harus memberitahu mahasiswa (melalui kosma).
Kode Etik Perkuliahan Mahasiswa harus membawa handout materi kuliah ke ruang kuliah sebagai buku catatan kuliah. Handout materi kuliah di-download di situs www.abdill01.wordpress.com Mahasiswa tidak dianjurkan menggunakan laptop di ruang kuliah.
Kode Etik Perkuliahan Sebelum kuliah, mahasiswa harus membaca handout dan menandai materi kuliah yang belum dipahami. Mahasiswa datang tepat waktu, menyimak penjelasan dosen tentang materi yang belum dipahami, dan bertanya jika masih belum paham. Setelah kuliah, mahasiswa harus membaca catatan kuliah dan berlatih menulis algoritma dan program tanpa komputer.
Buku Referensi 1 Rinaldi Munir Algoritma dan Pemrograman dalam bahasa Pascal dan C Informatika, 2009.
Buku Referensi 2 Kernighan & Ritchie, The C Programming Language, Prentice Hall, Inc. 2011.
Silabus Mata Kuliah Pekan 1. Pendahuluan Tujuan dan Sasaran Mata Kuliah Kode Etik Perkuliahan Buku Referensi & Silabus Mata Kuliah Sistem Penilaian Konsep Algoritma dan Pemrograman 10
Silabus Mata Kuliah Pekan 2. Struktur Dasar Algoritma Pernyataan Konstruksi Dasar Runtunan Pemilihan Pengulangan 11
Silabus Mata Kuliah Pekan 3. Notasi Algoritma Struktur Teks Pseudocode Judul Deklarasi Algoritma Kompilator Bahasa C 12
Silabus Mata Kuliah Pekan 4. Tipe, Operator dan Ekspresi Tipe Dasar Tipe Bentukan Nama Nilai Terjemahan pseudocode ke Bahasa C 13
Silabus Mata Kuliah Pekan 5. Runtunan Pendahuluan Contoh-contoh Runtunan Membaca dari Arsip Membaca ke Arsip 14
Silabus Mata Kuliah Pekan 6. Pemilihan Menganalisis Kasus Pernyataan dan Blok If – Else If - Else – If Switch - Case 15
Silabus Mata Kuliah Pekan 7. Pengulangan Struktur Pengulangan While - For Do - While Break - Continue Goto - Label 16
Silabus Mata Kuliah Pekan 8. Ujian Tengah Semester Materi Pekan 2 s/d 7 17
Silabus Mata Kuliah Pekan 9. Prosedur Deklarasi Prosedur Pemanggilan Prosedur Nama Global dan Nama Lokal Parameter Terjemahan pseudocode ke Bahasa C 18
Silabus Mata Kuliah Pekan 10. Fungsi Deklarasi Fungsi Pemanggilan Fungsi Penggunaan Fungsi Terjemahan pseudocode ke Bahasa C 19
Silabus Mata Kuliah Pekan 11. Larik Deklarasi Larik Mengacu Elemen Larik Pemrosesan Larik Larik Bertipe Terstruktur Terjemahan pseudocode ke Bahasa C 20
Silabus Mata Kuliah Pekan 12. Algoritma Pengurutan Proses Pengurutan Pengurutan Apung Penggabungan Dua Larik Pengurutan pada Larik Terstruktur Terjemahan pseudocode ke Bahasa C 21
Silabus Mata Kuliah Pekan 13. Algoritma Rekursif Proses Rekursif Skema Umum Rekursif dengan List Berkait Terjemahan pseudocode ke Bahasa C 22
Silabus Mata Kuliah Pekan 14. Ujian Akhir Semester Materi Pekan 9 s/d 13 23
Penilaian Aktifitas Persentase Tugas Mandiri (quiz) 20 Tugas Terstruktur Ujian Tengah Semester 30 Ujian Akhir Semester Total 100
Tugas Mandiri (Quiz) Bobot Total 20 % Openbook selama 15 menit. Diberikan pada pekan ke-6 dan 12. Berupa satu soal algoritma dan program. Diambil dari contoh-contoh algoritma dan program yang telah dibahas di ruang kuliah.
Tugas Terstruktur Bobot Total 20 % Ditulis tangan di kertas A4 polos plus cover. Diberikan pada pekan ke-7 dan 13. Berupa satu soal algoritma dan program. Pengembangan dari contoh-contoh algoritma dan program yang telah dibahas di ruang kuliah.
Ujian Semester Bobot Total 60 % Closebook selama 60 menit. Diberikan pada pekan ke-8 dan 14. Berupa tiga soal algoritma dan program. Pengembangan dari contoh-contoh algoritma dan program yang telah dibahas di ruang kuliah.
Apakah Algoritma dan Pemrograman itu? Pemrograman sudah menjadi kegiatan yang sangat penting di era teknologi informasi. Program yang terdapat di HP, komputer, ATM, kalkulator, dll tidak tercipta begitu saja, tapi ditulis melalui proses analisis dan perancangan yang cermat. Sebuah program komputer pada dasarnya mengimplementasikan sebuah algoritma.
Masalah Masalah adalah pertanyaan atau tugas yang kita ingin cari jawabannya. Untuk memecahkan masalah yang berukuran besar kita perlu menuliskan prosedur yang berisi langkah-langkah pengurutan. Algoritma adalah urutan logis langkah- langkah untuk pemecahan masalah.
Definisi Algoritma Algoritma adalah deretan langkah-langkah komputasi yang mentransformasikan data masukan menjadi keluaran. (Thomas Carmen, Introduction to Algorithm, 1989) Algoritma adalah deretan instruksi yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas. (Anany Lavitin, Introduction to the Design and Analysis of Algorithms, 2003)
Sejarah Algoritma Kata algoritma merupakan kata serapan dari bahasa Inggris algorithm, yang berarti metode perhitungan atau komputasi. Algorithm berasal dari kata algorism, nama latin seorang cendekiawan muslim dari Uzbek yang bernama Abu Ja’far Muhammad bin Musa al-Khuwarizmi. Al-Khuwarizmi menulis buku berjudul Al-Jabar wal-Muqabala atau The Book of Restoration and Reduction, yang artinya Buku Pemugaran dan Pengurangan.
Contoh Masalah 1 Tinjaulah sebuah masalah sederhana yakni mempertukarkan isi dari dua ember, A dan B, berisi air yang berbeda warna. Ember A berisi air warna hitam dan ember B berisi air warna putih. Kita ingin mempertukarkan isi kedua ember itu sedemikian hingga ember A akan berisi air warna putih dan ember B berisi air warna hitam.
Pemecahan Masalah
Algoritma ALGORITMA menukar isi dua buah ember, A dan B. Sediakan ember kosong C Tuang air dari ember A ke dalam ember C Tuang air dari ember B ke dalam ember A Tuang air dari ember C ke dalam ember B
Contoh Masalah 2 Misalkan Anda mempunyai dua ember yang masing-masing berukuran 5 liter dan 3 liter. Dengan hanya menggunakan 2 ember tsb dapatkan air sebanyak 4 liter. Bagaimana algoritmanya? 5 liter 3 liter
Algoritma ALGORITMA mendapatkan air bervolume 4 liter. Isi penuh ember 3-liter dengan air Tuang air dari ember 3-liter ke dalam ember 5-liter Tuang air dari ember 3-liter ke dalam ember 5-liter hingga penuh Buang seluruh air dari ember 5-liter Isi penuh ember 3-liter
Contoh Masalah 3 Misalkan Anda mempunyai dua batang kayu yang masing-masing berukuran 4 meter dan 3 meter. Dengan hanya menggunakan dua batang tsb dapatkan tali sepanjang 5 meter. Bagaimana algoritmanya? 4 meter 3 meter
Algoritma 4 meter 5 meter 900 3 meter ALGORITMA mendapatkan tali sepanjang 5 meter. Susun batang 3-meter dan batang 4-meter membentuk sudut 900 Hubungkan tali dari kedua ujung batang 3-meter dan 4-meter 4 meter 5 meter 900 3 meter
Tahap Algoritma dan Pemrograman
Notasi Algoritma Notasi algoritma bersifat independen terhadap bahasa pemrograman dan perangkat keras yang mengeksekusinya. Ada tiga jenis notasi algoritma: Kalimat deskriptif Diagram alir (flowchart) Pseudocode
Bahasa Pemrograman Bahasa pemrograman merupakan suatu himpunan dari aturan sintaks dan semantik yang digunakan untuk mendefinisikan program komputer. Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri atas: Bahasa Mesin Bahasa Tingkat Rendah Bahasa Tingkat Tinggi
Proses Pembuatan Program Proses pembuatan program adalah menulis kode sumber (source code) pada teks editor, kemudian mengubahnya menjadi bahasa mesin yang bisa dieksekusi oleh prosesor (CPU). Terdapat 2 macam proses pengubahan source code menjadi bahasa mesin: Kompilasi Interpretasi
Kompilasi Dalam proses kompilasi semua source code dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan menghasilkan program kode mesin yang bisa dieksekusi (executable). Program yang melakukan tugas kompilasi ini disebut kompilator (compiler). Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++, Pascal, Assembly, dll.
Interpretasi Bahasa yang menggunakan teknik interpretasi akan membaca source code dan mengeksekusi per baris. Jika ditemukan kesalahan dalam penulisan program maka di baris kesalahan itulah program akan dihentikan. Program yang melakukan tugas ini disebut interpreter. Interpreter tidak menghasilkan program yang dapat dieksekusi, tapi untuk menjalankan program diperlukan interpreter. Bahasa yang menggunakan teknik interpretasi misalnya bahasa perl, Phyton, Ruby, dll.
Soal Latihan Tulislah algoritma untuk memindahkan seluruh cakram pada batang besi A ke batang besi B. Setiap kali hanya satu cakram yang boleh dipindahkan, tapi pada setiap perpindahan tidak boleh ada cakram yang lebih besar berada di atas cakram kecil. Gunakan batang besi C sebagai bantuan. A B C