Konsep Pemrograman Belajar memrogram adalah belajar mengenai strategi pemecahan persoalan/masalah, juga metodologi dan sistematika pemecahan tersebut kemudian menuliskannya dalam notasi yang disepakati bersama. Belajar memrogram lebih bersifat pemahaman persoalan, analisis, dan sintesis Program harus dihasilkan dari proses pemahaman masalah, analisis, sintesis dan baru kemudian dituangkan menjadi kode dalam bahasa komputer secara sistematis dan metodologis. @2005 Electrical Engineering Department UGM Slide 1 Lanjutan … Ilmu pemrograman berkembang menggantikan seni memrogram dan memrogram secara cobacoba (trial and error) Produk yang dihasilkan oleh seorang pemrogram adalah program dengan rancangan yang baik (metodologis dan sistematis) yang dapat dieksekusi oleh mesin, berfungsi dengan benar, sanggup melayani segala kemungkinan masukan /input, dan didukung dengan adanya dokumentasi @2005 Electrical Engineering Department UGM Slide 2 Proses vs Produk Proses pembuatan program yang baik akan menjamin dihasilkannya produk yang baik Proses pembuatan program yang kurang baik atau buruk mungkin saja menghasilkan produk yang baik tapi setelah adanya poles sana sini secara tambal sulam @2005 Electrical Engineering Department UGM Slide 3 dari Problem menjadi Program Problem ada untuk dipecahkan Kebanyakan problem bersifat tidak sederhana dan tidak memiliki spesifikasi yang tepat Banyak problem yang tidak mungkin diformulasikan dalam bentuk yg berlaku dalam pemecahan masalah di dunia komputer Kalaupun bisa dipecahkan oleh komputer biasanya tergantung pada beberapa parameter yang nilai layaknya hanya bisa didapatkan dengan jalan eksperimen. @2005 Electrical Engineering Department UGM Slide 4 Lanjutan … Formulasi baku atau Pemodel dan penggunaan properti model tersebut akan membantu dalam mengkontruksi sebuah solusi yang baik Cabang-cabang dalam matematika dan sain dapat digunakan sebagai layanan untuk membantu pemodelan Bila aspek-aspek tertentu dari problem dapat dinyatakan dalam model formal akan sangat bermanfaat karena sekali problem dirumuskan, maka pencarian solusi dalam model yg tepat dan tertentu sudah tersedia untuk memecahkan problem tersebut. @2005 Electrical Engineering Department UGM Slide 5 Lanjutan … Problem pada dasarnya bersifat numerik dan dapat dimodelkan dengan konsep matematik umum seperti persamaan linier simultan (menemukan arus atau tegangan dalam rangkaian listrik), persamaan diferensial (prediksi pertumbuhan populasi atau laju reaksi kimia). Problem pemrosesan simbol dan teks dapat dimodelkan dengan string karakter dan grammar baku Problem pemrosesan grafik dapat dimodelkan dengan format piksel dan spasial @2005 Electrical Engineering Department UGM Slide 6 Langkah pemrograman untuk memecahkan masalah 1. 2. 3. 4. 5. Identifikasi problem dan analisis kebutuhan Perancangan solusi Implementasi Testing dan dokumentasi Evaluasi @2005 Electrical Engineering Department UGM Slide 7 Identifikasi Problem Analisis Kebutuhan Identifikasi penyebab dan titik problem sehingga problem dapat didefinisikan /ditentukan untuk kemudian dapat diformulasikan Menganalisis adalah proses mengurai masalah sehingga akan diidentifikasi kebutuhankebutuhan untuk menyelesaikan masalah tersebut @2005 Electrical Engineering Department UGM Slide 8 Analisis Masalah 1. 2. 3. 4. 5. Identifikasi dan jelaskan proses apa saja yang dibutuhkan Identifikasi dan jelaskan masukan / input apa saja yang diperlukan Identifikasi dan jelaskan keluaran / output apa saja yang dihasilkan Jelaskan bagaimana tipe dan struktur data yang akan dipakai Tetapkanlah batasan-batasan dan aturan-aturan untuk menyelesaikan masalah @2005 Electrical Engineering Department UGM Slide 9 Perancangan solusi Perancangan dilaksanakan dengan membuat algoritma dan diagram alir (flowchart) sesuai dengan poin-poin hasil dari proses identifikasi dan analisis @2005 Electrical Engineering Department UGM Slide 10 Implementasi Implementasi dengan jalan coding dengan salah satu bahasa pemrograman yang menerapkan salah satu paradigma pemrograman tertentu @2005 Electrical Engineering Department UGM Slide 11 Paradigma Pemrograman Paradigma pemrograman adalah sudut pandang/pendekatan yang diprioritaskan atau strategi analisis yang diprioritaskan dalam pemecahan persoalan 1. 2. 3. 4. 5. 6. Paradigma Paradigma Paradigma Paradigma Paradigma Paradigma Prosedural / Imperatif Fungsional Deklaratif/Logik/Predikatif berorientasi obyek Konkuren Relasional @2005 Electrical Engineering Department UGM Slide 12 Paradigma Prosedural Paradigma ini didasarkan pada konsep mesin Von Newmann (stored program concept) yaitu : sekelompok tempat penyimpanan /memori yang dibedakan menjadi memori instruksi dan memori data, masing-masing dapat diberi nama dan harga. Instruksi akan dieksekusi satu persatu secara sekuensial oleh sebuah pemroses tunggal. Beberapa instruksi menentukan instruksi berikutnya yang akan dieksekusi (percabangan kondisional). Data diperiksa dan dimodifikasi secara sekuensial juga. @2005 Electrical Engineering Department UGM Slide 13 Lanjutan … Program dalam paradigma ini berdasarkan pada strukturasi informasi di dalam memori dan manipulasi dari informasi yang tersimpan tersebut Program = Algoritma + struktur data Kelebihan : efisiensi eksekusi karena dekat dengan mesin Kekurangan : tidak manusiawi / tidak alamiah karena harus berpikir dalam batasan mesin/komputer dan batasan ini lebih megikat daripada problematikannya sendiri @2005 Electrical Engineering Department UGM Slide 14 Paradigma Fungsional Paradigma fungsional didasari atas konsep pemetaan dan fungsi pada matematika. Fungsi dapat berbentuk sebagai fungsi primitif atau komposisi dari fungsifungsi lain yang telah terdefinisi. Pemrogram mengasumsikan adanya fungsi-fungsi dasar yang dapat dilakukan Penyelesaian masalah didasari atas aplikasi fungsifungsi tersebut Jadi dasar pemecahannya adalah transformasional Semua kelakuan program adalah suatu rantai transformasi dari satu keadaan awal menuju ke rantai keadaan akhir yang mungkin melelui keadaan antara @2005 Electrical Engineering Department UGM Slide 15 Lanjutan Yang menjadi perhatian di sini adalah keadaan awal dan akhir, tidak perlu mengetahui bagaimana mesin mengeksekusi instruksi dan bagaimana data di simpan dan dimanipulasi karena pada dasarnya sebuah fungsi adalah sebuah kotak hitam @2005 Electrical Engineering Department UGM Slide 16 Paradigma Logic Paradigma ini didasari dari pendefinisian relasi antar individu yang dinyatakan sebagai predikat Sebuah pemrograman logic adalah kumpulan aksioma (fakta dan aturan deduksi) Pada paradigma ini pemrogram menguraikan sekumpulan fakta-fakta dan aturan-aturan (inference rules) Ketika program dieksekusi, pemakai mengajukan pertanyaan (Query) dan program akan menjawab apakah pernyataan itu dapat dideduksi dari aturan dan fakta yang ada @2005 Electrical Engineering Department UGM Slide 17 Lanjutan … Program akan memakai aturan deduksi dan mencocokkan pertanyaan dengan fakta-fakta yang ada untuk menjawab pertanyaan @2005 Electrical Engineering Department UGM Slide 18 Paradigma Berorientasi Obyek Paradigma ini didasari oleh obyek Tiap obyek memiliki atribut (kumpulan sifat) dan kelakuan (kumpulan relasi dan methoda) Obyek yang satu dapat berkomunikasi dengan obyek yang lain lewat pesan dengan tetap terjaga integritasnya Kelas adalah obyek yang mempunyai atribut sama dan diturunkan ke semua obyek yang memiliki kelas yang sama Kelas memiliki hierarki, anggota dari sebuah kelas akan mendapatkan turunan atribut dari kelas di atasnya @2005 Electrical Engineering Department UGM Slide 19 Lanjutan … Paradigma ini menawarkan class, generic, inheritance, polymorphism dan menekankan pentingnya pendefinisian statik kelas untuk menciptakan obyek pada saat runtime yang kemudian dimanipulasi atau saling berinteraksi Definisi kelas memungkinkan adanya penurunan kelas dengan obyek pada saat runtime yang dapat berubah bentuk dengan bentuk kelakuan yang disesuaikan @2005 Electrical Engineering Department UGM Slide 20 Paradigma Konkuren Paradigma konkuren erat kaitannya dengan arsitektur perangkat keras yang memungkinkan pemrosesan secara paralel atau perangkat lunak sistem terdistribusi yang mengelola akses konkuren @2005 Electrical Engineering Department UGM Slide 21 Paradigma Relasional Paradigma Relasional yang didasari atas entity dan relasi dan pemrograman dalam bahasa Query yang memungkinkan diperolehnya suatu himpunan nilai @2005 Electrical Engineering Department UGM Slide 22 Bahasa Pemrograman 1. 2. 3. 4. 5. 6. Bahasa pemrograman mulai berkembang sekitar tahun enampuluahan Untuk tiap paradigma pemrograman tersedia bahasa pemrograman yang mempermudah implementasi rancangan penyelesaian masalahnya Contoh : Prosedural : Fortran, Algol, Pascal, Basic, C, Cobol Fungsional : LOGO, APL, LISP Logic : Prolog Berorientasi Obyek : Eifel, Java, C++, Smalltalk Konkuren : Java, C#, Ada, OCCM Relasional : SQL pada basisdata relasional @2005 Electrical Engineering Department UGM Slide 23 Lanjutan … Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan sintaksnya tiap instruksi yang ada, dan tata cara pengoperasian compiler pada bahasa yang bersangkutan Belajar bahasa pemrograman adalah belajar memanfaatkan instruksi-instruksi dan kiat yang spesifik yang ada bahasa tersebut Belajar bahasa pemrograman lebih bersifat ketrampilan daripada kepakaran karena proses coding lebih bersifat semi otomatikdengan aturan pengkodean @2005 Electrical Engineering Department UGM Slide 24 Contoh sederhana read three numbers, add them together and print their total. @2005 Electrical Engineering Department UGM Slide 25 Contoh Membaca dua buah bilangan pecahan yang masingmasing direpresentasikan sebagai dua buah bilangan integer yang menyatakan pembilang dan penyebut, mengalikan dua bilangan pecahan tadi dan menuliskan hasil perkaliannya Input Bil1 Bil2 Proses Output Baca 2 bilangan pecahan Hasil Perkalian Kalikan kedua bilangan tersebut Cetak Hasil Perkalian @2005 Electrical Engineering Department UGM Slide 26 Lanjutan … Aturan dan batasan Penyebut tidak boleh bernilai 0 @2005 Electrical Engineering Department UGM Slide 27