Pemrograman Prosedural Dasar Pemrograman (DasPro) Teknik Informatika S-1 UDINUS PENDAHULUAN Paradigma Pemrograman • Paradigma Sudut Pandang Sudut pandang tertentu yg diprioritaskan terhadap kelompok problema, realitas, keadaan, dsb Paradigma Pemrograman 1. 2. 3. 4. Paradigma Prosedural atau Imperatif Paradigma Fungsional Paradigma Deklaratif Paradigma Berorientasi Object Paradigma Pemrograman 1. Paradigma Prosedural atau Imperatif • Didasari konsep mesin von Neumann (sekelompok tempat penyimpanan / memori) • Instruksi dieksekusi satu per satu secara sekuensial oleh sebuah pemroses tunggal • Efisiensi eksekusi karena dekat dengan mesin Algoritma + Struktur Data = Program Paradigma Pemrograman 2. Paradigma Fungsional • Didasari oleh konsep pemetaan dan fungsi matematika • Dasar pemecahan persoalan = Transformasional • Tidak mempermasalahkan memorisasi dan struktur data • Tidak ada pemilahan antara data & program Paradigma Pemrograman 3. Paradigma Deklaratif, Prediktif atau Lojik • Didasari oleh pendefinisian relasi antar individu yang dinyatakan sebagai predikat • Sebuah program lojik adalah kumpulan aksioma (fakta dan aturan deduksi) • Pemrogram menguraikan sekumpulan fakta dan aturan-aturan (inference rules) Paradigma Pemrograman 4. Paradigma Berorientasi Objek • Didasari oleh objek (sebuah objek mempunyai atribut dan perilaku) • Objek satu dan lainnya dapat berkomunikasi melalui pesan (message) • Menawarkan konsep class, generic, inheritence, polymorphism Bahasa Pemrograman • Setiap paradigma tersedia bahasa pemrogramannya • Contoh bahasa-bahasa pemrograman & paradigmanya: 1. 2. 3. 4. Prosedural: Algol, Pascal, Fortran, Basic, Cobol, C Fungsional: LOGO, APL, LISP Deklaratif/Lojik: Prolog Object Oriented: Smalltalk, Eifel, Java, C++ Bahasa Pemrograman • Dalam implementasi program, tersedia pemrograman visual atau tesktual • Ada dua kategori pemroses bahasa, yaitu kompilator dan interpreter Belajar Pemrograman vs Belajar Bahasa Pemrograman Pemrograman Bahasa Pemrograman Fokus Pembelajaran Belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah tsb Belajar memakai suatu bahasa, aturan sintaks (tata bahasa), dan setiap instruksi yang ada Sifat Lebih bersifat pemahaman Lebih bersifat ketrampilan persoalan, analisis, sintesis daripada analisis dan sintesa Proses Proses memprogram memerlukan kepakaran Proses koding lebih merupakan proses semi otomatik dgn aturan pengkodean Titik berat Membentuk seorang perancang “designer” program Membentuk seorang “coder” juru kode Belajar Pemrograman vs Belajar Bahasa Pemrograman • Pada prakteknya rancangan harus dapat dikodekan untuk dieksekusi dengan mesin • Program yang dihasilkan oleh seorang pemrogram adalah: (program yang baik) – program dengan rancangan yang baik (metodologis, sistematis), – berfungsi dengan benar, – sanggup melayani segala kemungkinan masukan – didukung oleh adanya dokumentasi Program: Produk vs Proses • Pandangan usang: yang terpenting dalam sebuah pengembangan program adalah produk • PROSES YANG BAIK PASTI DAPAT MENJAMIN KEHADIRAN SUATU PRODUK YANG BAIK Program Skala Kecil vs Skala Besar • Realita: perangkat lunak yang dibutuhkan ‘berukuran’ besar • Pembangunan program skala besar tidak sama dengan program skala kecil – Tidaklah sama membangun gedung dengan membangun rumah Program Skala Kecil vs Skala Besar • Sesuatu yang besar biasanya terdiri dari komponen-komponen kecil – Program yang besar dan ‘baik’ biasanya terdiri dari banyak modul/komponen ‘kecil’ yang dikerjakan banyak orang • Dua kategori pemrogram: – Penyedia modul/komponen – Pemakai modul/komponen Pemrogram Individu vs Tim • Programmer ‘eksetrik’, suka menyendiri, jenius, menghasilkan kode-kode ‘misterius ‘ yang hanya dipahami sendiri sudah berlalu [Hoare-84] • Skala program yang dibuat saat ini sudah jauh lebih besar dari zaman dahulu Pemrogram Individu vs Tim • Pemrograman adalah sebuah orkestra yang harus dipimpin seorang konduktor – Membutuhkan kerjasama tim – Mengikuti standar atau aturan main DASAR PEMROGRAMAN PROSEDURAL Program Prosedural • Program = Algortima + Struktur Data • Pemrograman Prosedural – Dihasilkan berdasarkan dekomposisi “aksional”, menjadi Aksi yang akan dijalankan secara berurutan • Aksi adalah kejadian yang terjadi pada selang waktu terbatas Program Prosedural • Aksi – Jelas Initial state, Final state dan harus dalam waktu terbatas – Dapat didekomposisi menjadi sub aksi • Aksi diterjemahkan menjadi sederetan instruksi (aksi primitif) yang dapat dijalankan mesin • Ilustrasi mengupas kentang (diktat hal 17-25) Aksi Mengupas Kentang (1) Aksi Mengupas Kentang (2)