Kontrak Perkuliahan & Introduction Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008 Deskripsi Mata Kuliah Mata Kuliah : Algoritma dan Pemrograman Jumlah SKS : 4 SKS Dosen : Ir. Tahar Agastani, MSc. Semester/Prodi : 2/ TI Tahun Akademik : 2007/2008 Mata kuliah Algoritma dan Pemrograman adalah termasuk komponen pokok keahlian untuk jurusan Teknik Informatika pada UIN Syarif Hidayatullah Jakarta. Mata kuliah ini merupakan dasar bagi pemahaman selanjutnya untuk pembuatan suatu Algoritma Pemrograman, mata kuliah ini diletakan pada semester kedua karena merupakan mata kuliah yang menjadi dasar mata kuliah lain dan sangat terkait yaitu Struktur Data dan Basis data. 1
Evaluasi dan Tugas Jenis Evaluasi: Ujian Mid Semester : 30% Ujian Akhir Semester : 40% Evaluasi Alternatif : 30 % Keaktifan dikelas + Kehadiran = 10 % Tugas Presentasi + Laporan = 20 % Bentuk Evaluasi: Essay dan Multiple Choice Tugas Kelompok (max 5 orang), membuat Program Aplikasi, Presentasi masing-masing kelompok Nilai Akhir Angka Mutu dan Huruf dikelompokan sebagai berikut: 80 <= Nilai adalah A 70 <= Nilai <= 79 adalah B 60 <= Nilai <= 69 adalah C Nilai <= 59 adalah G ( Tidak Lulus) 2
Struktur Sistem Komputer KOMPUTER Hardware Sistem Operasi Bhs. Pemrograman Software Program Aplikasi PENGGUNA Brainware Instruksional 1 (LO1) menentukan kapan menggunakan struktur perulangan (repetition) pada suatu kasus menentukan kapan menggunakan struktur seleksi (selection) pada suatu kasus menunjukkan elemenelemen dasar pada bahasa pemrograman C menjelaskan konsep dasar struktur data (tipe data, abstraksi tipe data dan elemen struktur data (SD) menjelaskan konsep dasar algoritma & menggunakan cara penyajian algoritma 3
Instruksional 2 (LO2) menggunakan I/O stream beserta format I/O (Input/Output) menjelaskan penggunaan fungsi rekursif menjelaskan penggunaan tipe data terstruktur Array mengembangkan sebuah program utama menjadi beberapa fungsi menjelaskan penggunaan Pointer menjelaskan penggunaan tipe data terstruktur Record (Structure) Instruksional 3 (LO3) memahami dasar-dasar Algoritma dan pemrograman, memahami prinsip kerja program dan mampu menggambarkan logika jalannya program secara tertulis atau dilengkapi dengan flow chart serta menerapkannya dalam bahasa pemrograman C menjelaskan penggunaan Struktur gabungan (composite) menggunakan teknik Pengurutan (Sorting): Quick dan Merge Sort dalam array menggunakan algoritma proses matriks (Array 2 dimensi) menggunakan teknik Pengurutan (Sorting): Selection, Buble, dan Insertion dalam array menggunakan teknik Pencarian: Linear Search, dan Binary Search dalam array menggunakan pemrosesan sequential file 4
Reference 1. Antonie Pranata, Algoritma dan Pemrograman, J&J Learning Yogyakarta, 2000 2. Jogianto H.M, Konsep Dasar Pemrograman Bahasa C, Penerbit Andi, 2000. 3. Fathul Wahid, 2004, Dasar-dasar Algoritma dan Pemrograman, Penerbit Andi, Yogyakarta 4. Rinaldi Munir, 1999, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Penerbit Informatika, Bandung 5. Al Kelley and Ira Pohl, 1990, A Book on C: Programming in C, The Benjamin/Cummings Publishing Company, Inc 6. Herbert Schildt, 1990, C: The Complete Reference, The Benjamin/Cummings Publishing Company, Inc. I II III IV Time Line Kontrak perkuliahan Introduction Dasar-dasar Algoritma Definisi algoritma Algoritma pemrograman yang baik Jenis proses (konstruksi) Algoritma Penyajian Algoritma: Pseudocode dan Flowchart Contoh Algoritma Konsep Dasar Struktur Data Definisi Struktur Data Tipe data dan Struktur Data Level Abstraksi dari Tipe Data Tipe Data Abstrak Elemen dan struktur data Pemrograman dan Bahasa Pemrograman Definisi Pemrograman Paradigma Pemrograman Perkembangan bahasa pemrograman Pengantar Bahasa C 5
Time Line (Cont.) V VI VII VIII Elemen-elemen dasar bahasa pemrograman C Tipe data Konstanta Variable Operator Struktur Seleksi (Conditional) IF tunggal dan bertingkat Switch Case Struktur Perulangan (Looping) Konstruksi For Konstruksi While dan DoWhile Input / Output Statement Input Statement Output IX X XI XII Time Line (Cont.) Fungsi (Prosedur) Definisi Fungsi (Subprogram) Deklarasi fungsi Argumen (parameter fungsi) Variabel local dan variable global Fungsi Rekursif Konsep rekursi Iteratif vs rekursif Pointer Konsep dasar Pointer Deklarasi Pointer Operasi Pointer Tipe Data Terstruktur: Array Karakteristik array Operasi pada Array Dimensi Array Pencapaian/Access data String dan character Pointer dan array / string 6
Time Line (Cont.) XIII XIV XV XVI XVII Tipe Data Terstruktur: Record (Structure) Karakteristik Record Deklarasi dan operasi record Presentasi Tugas Kelompok UTS (Ujian Tengah Semester) Composite Structures (Struktur Gabungan) Structure of Arrays Array of Structures Array of Pointers Pengurutan (Sorting) Selection sort Bubble sort Time Line (Cont.) XVIII XIX XX XXI XXII Pengurutan (Sorting) Insertion sort Pengurutan Lanjut Quick sort Pengurutan Lanjut Merge sort Pencarian (Searching) Linear search Binary search Pencarian (Searching) Interpolation search 7
Time Line (Cont.) XXIII XXIV XXV XXVI Dasar Analisa Algoritma Definisi matematik untuk analisa kompleksitas waktu dari algoritma Notasi Big-Oh (O) dan implikasinya Matriks Inisialisasi matriks Membaca Elemen Matriks Menulis Matriks Proses (Aritmatika) Matriks Sequential File Membuat Sequential File Membaca Sequential File Menyalin File Penggabungan File UAS (Ujian Akhir Semester) Introduction (1) Contoh: Memecahkan masalah matematik yaitu menghitung luas lingkaran dengan masukan berupa jari-jari lingkaran Rumus: L = πr 2 Langkah pemecahan (Algoritma) 1. Masukkan R 2. Pi 3.14 3. L Pi * R * R 4. Tulis L 8
Introduction (2) Diagram Alir (Flow chart) Mulai Masukkan R Pi 3.14 L Pi * R * R Tulis L Selesai Introduction (3) Implementasi dengan bahasa pemrograman C #include <stdio.h> void main() { float R,L; float Pi; printf( Masukkan nilai jari-jari lingkaran: ); scanf( %d,&r); Pi = 3.14; L = Pi * R * R; printf( Luas Lingkaran: %d,l); } 9
SAMPAI JUMPA DI PERTEMUAN KE 2 10