Pendahuluan Dr. Anto Satriyo Nugroho, M.Eng Web: Mata Kuliah: Dasar Pemrograman
Penentuan nilai akhir Bobot tiap nilai –Quiz:30% –UTS:30% –UAS:40%
Cara Belajar (1) 1.Datang tepat waktu 2.Baca basmalah 3.Membuat catatan: misalnya dengan mem-print slide dan membuat catatan pada slide 4.Ketinggalan sekali saja, akan berakibat fatal. Cukup berat memahami kuliah berikutnya. 5.Kalau tidak faham segera bertanya 6.Kalau terlalu cepat, jangan segan minta agar diperlambat 7.Kalau terlalu lambat, jangan segan minta agar dipercepat 8.Mengulang materi yang diajarkan di rumah 9.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
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 Definisi
1.Analisa masalah 2.Memilih algoritma dan struktur data untuk menyelesaikan masalah itu 3.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 Tahapan dalam Pemrograman
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 inputalas inputtinggi luas ← ( alas x tinggi ) / 2 printluas 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 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)
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 Hubungan antara Algoritma & Struktur Data
Status controller head Pita 1 dimensi dengan panjang tak terhingga … Head bergeser ke kiri- kanan dengan kecepatan tak terbatas Head membaca/menulis data pada pita Panjang pita tak terbatas Turing Machine
Di dunia nyata, kemampuan komputer maupun memory sangat terbatas Hubungan antara Algoritma & Struktur Data
Performa algoritma yang ideal –Memory yang diperlukan kecil , running time singkat Tradeoff antara waktu dan ruang (memory) BesarKecil Lama Singkat Memory Running time Hubungan antara Algoritma & Struktur Data
Bagaimana data harus direpresentasikan saat membuat program ? Algoritma yang baik + Struktur data yang tepat = program yang baik –Pemilihan algoritma dan struktur data yang tepat harus mempertimbangkan skala data, CPU, memori, dsb. –Perlu pengetahuan algoritma dan struktur apa saja yang ada dan mungkin dipakai Struktur data List, stack, queue, tree, dll Hubungan antara Algoritma & Struktur Data
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