200 likes | 828 Views
Dr. Anto Satriyo Nugroho, M.Eng Email: asnugroho@gmail.com Web: http://asnugroho.net/lecture/dp.html. Pendahuluan. Mata Kuliah: Dasar Pemrograman. Penentuan nilai akhir. Bobot tiap nilai Quiz: 30% UTS: 30% UAS: 40%. Cara Belajar (1). Datang tepat waktu Baca basmalah
E N D
Dr. Anto Satriyo Nugroho, M.Eng Email: asnugroho@gmail.com Web: http://asnugroho.net/lecture/dp.html Pendahuluan Mata Kuliah: Dasar Pemrograman
Penentuan nilai akhir • Bobot tiap nilai • Quiz: 30% • UTS: 30% • UAS: 40%
Cara Belajar (1) • Datang tepat waktu • Baca basmalah • Membuat catatan: misalnya dengan mem-print slide dan membuat catatan pada slide • Ketinggalan sekali saja, akan berakibat fatal. Cukup berat memahami kuliah berikutnya. • Kalau tidak faham segera bertanya • Kalau terlalu cepat, jangan segan minta agar diperlambat • Kalau terlalu lambat, jangan segan minta agar dipercepat • Mengulang materi yang diajarkan di rumah • Melatih SENDIRI kemampuan programming dari materi yang diajarkan
Cara belajar (2) • Materi dari dosen sifatnya hanya pengantar • Tidak semua hal diajarkan dalam kelas • Siswa dituntut untuk belajar sendiri • Utamakan banyak latihan ! • Pemrograman lebih mudah dikuasai lewat memperbanyak jam terbang, tidak sekedar menghafal materi yang diajarkan
Definisi • Algoritma • sejumlah langkah komputasi yang mengubah masukan • (input) menjadi keluaran (output) yang benar. • Struktur data • cara pengaturan data agar bisa disimpan • memory komputer secara efisien Program algoritma yang diimplementasikan dalam bahasa pemrograman tertentu
Tahapan dalam Pemrograman • Analisa masalah • Memilih algoritma dan struktur data untuk menyelesaikan masalah itu • Coding (implementasi algoritma memakai bahasa pemrograman tertentu)
Tahapan dalam Pemrograman • Analisa masalah • Mendefinisikan masalah • Membuat model Memilih algoritma dan struktur data untuk menyelesaikan masalah itu 3. Merancang algoritma Coding (implementasi algoritma memakai bahasa pemrograman tertentu) 4. Menulis program 5. Kompilasi: source code diubah menjadi executable code 6. Memeriksa hasil kompilasi 7. Menjalankan dan menguji program 8. Perbaikan kesalahan 9. Dokumentasi
Contoh Algoritma • GCD: Greatest Common Divisor (Faktor Persekutuan Terbesar) • Menguji apakah sebuah bilangan adalah bilangan prima • Menghitung luas segitiga
Contoh 1: Menghitung Luas Segitiga • Definisi masalah: bagaimana menghitung luas sebuah segitiga jika diketahui alas dan tingginya • Membuat model matematika untuk menghitung luas segitiga luas = alas x tinggi 2 Masalah telah diketahui dan diformulasikan secara matematis. Formulasi tsb. bisa berupa tulisan tangan, ketikan, dsb.
Menuliskan algoritma memakai Pseudocode • input alas • input tinggi • luas ← ( alas x tinggi ) / 2 • print luas Formulasi itu dituangkan ke dalam langkah-langkah Implementasi. Ada standardisasi cara penulisan yang dipakai yang lebih dekat ke arah bahasa pemrograman. Misalnya flowchart, bahasa indonesia terstruktur, pseudo code, dsb.
Menuliskan program • Mengubah algoritma menjadi program (source code) dalam bahasa tertentu (Contoh bahasa pemrograman: C, Pascal, Basic, dsb) #include <stdio.h> main() { float alas, tinggi, luas; alas=10.0; tinggi=3.5; luas = alas*tinggi/2; printf(“luas: %f\n”,luas); } Flowchart atau pseudocode diterjemahkan ke bahasa pemrograman tertentu dengan mematuhi kaidah penulisan syntax (kalimat) pada bahasa tersebut. Hasilnya berupa source code.
Kompilasi dan Eksekusi • Pada tahap ini source code (kode sumber) diubah menjadi kode yang bisa dijalankan oleh komputer (executable). • Kode yang executable inilah yang kemudian dieksekusikan.
Syarat-syarat Algoritma • Finiteness Algoritma harus berakhir setelah melakukan sejumlah langkah proses • Definiteness Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda • Input Setiap algoritma memerlukan data sebagai masukan untuk diolah • Output Setiap algoritma memberikan satu atau beberapa hasil keluaran • Effectiveness Langkah-langkah algoritma dikerjakan dalam waktu yang “wajar” (Donald E. Knuth)
Hubungan antara Algoritma & Struktur Data • Wirth: algoritma + struktur data = program • Algoritma →penyelesaian satu masalah secara matematis • Turing machine • Model matematika komputer • Memiliki tape dengan panjang tak terhingga sebagai alat penyimpan ingatan (memory) • Running time, kecepatan tak terhingga • Padahal komputer yang ada sangat terbatas baik memory maupun kecepatannya
Turing Machine • Head bergeser ke kiri-kanan dengan kecepatan tak terbatas • Head membaca/menulis data pada pita • Panjang pita tak terbatas Status controller head … … Pita 1 dimensi dengan panjang tak terhingga
Hubungan antara Algoritma & Struktur Data • Di dunia nyata, kemampuan komputer maupun memory sangat terbatas 1234.345 42.0 12.4 19.902 14.5 17.8
Urutan pelajaran pemrograman • Dasar Pemrograman : Mempelajari bahasa pemrograman C • Struktur kendali proses (if-else, for, while, do-while, …) • Fungsi • Array • Pointer • Structure • Struktur Data • Linear List • Stack • Queue • Doubly Linked List • Tree structure • Hash • Algoritma • Sequential & Binary Search • Sort (Bubble, Selection, Insertion, Quick, Merge) • Dll.
Apakah bahasa C ? • Dikembangkan sekitar tahun 1970, oleh Brian W. Kernighan & Dennis M. Ritchie (peneliti pada Bell Laboratory) untuk dipakai pada UNIX Operating System • Procedural Programming Language • Compiled Language : C compiler diperlukan untuk mengubah source code (human readable) ke dalam bahasa yang difahami oleh hardware komputer • C sering dipakai dalam system programming (memanage & control hardware agar software aplikasi dapat dijalankan) • Recursion • Akses ke memory lewat pointer