Pemrograman Komputer Oleh : Agus Priyanto, M.Kom Tujuan Pembelajaran 1. Memahami bagaimana komputer menangani data elektronik 2. Memahami komponen yang terlibat dalam memproduksi informasi 3. Memahami perbedaan bahasa pemrograman di setiap tingkatan Algoritma Dan Pemrograman Algoritma adalah jantung ilmu komputer dan informatika. Banyak cabang dari ilmu komputer yang diacu dalam terminology algoritma. Algoritma berasal dari kata algorism yang berarti proses menghitung. Kata algorism berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’afar Muhammad Ibnu Musa al-Khuwarizmi 3 Definisi Algoritma Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis Urutan logis pengambilan keputusan untuk pemecahan masalah 4 Ciri Penting Algoritma Memiliki Input Algoritma dapat memiliki nol atau lebih inputan dari luar. Memiliki Output Algoritma harus memiliki minimal satu buah output keluaran. 5 Definiteness (pasti) Algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu atau memilikuiarti ganda. Finiteness (ada batas atau berakhir) Algoritma harus memiliki titik berhenti (stopping role). Effectiveness(efektif dan efisien) • Algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. • Contoh instruksi yang tidak efektif adalah : A = A + 0 atau A = A * 1. 7 Belajar Memprogram dan Belajar Bahasa Pemrograman Belajar Memprogram : Pemahaman persoalan, analisis, dan sintesis Pemecahan Masalah -Strategi -Metodologi -Sistematika Notasi yang telah disepakati Belajar Bahasa Pemrograman : • Belajar memakai suatu bahasa • Aturan sintaks (tata bahasa) 8 Bahasa Pemrograman Bahasa pemrograman adalah bahasa buatan yang digunakan untuk mengendalikan perilaku dari sebuah mesin, biasanya berupa mesin komputer, sehingga dapat digunakan untuk memberitahu komputer tentang apa yang harus dilakukan Struktur bahasa ini memiliki kemiripan dengan bahasa natural manusia Klasifikasi menurut generasi 1. First Generation Language (1GL) Bahasa pemrograman ini berupa kode-kode mesin yang hanya bisa dipahami oleh mikroprosesor. 2. Second Generation Language (2GL) • • Bahasa pada generasi ini adalah assembly language, dimana bahasa ini masih menggunakan kode-kode yang disebut dengan mnemonic. Bahasa assembly disebut sebagai generasi kedua karena bahasa ini bukan bahasa asli mikroprosesor, meskipun begitu programer tetap harus mengetahui keunikan dari masing masing mikroprosesor (registe r dan jenis instruksi). 3. Generasi ketiga • • • Bahasa pemrograman generasi ketiga sengaja didesain supaya mudah dipahami oleh manusia. Pada generasi ini mulai dikenalkan istilah variabel, tipe data, ekspresi aljabar dan sudah mendukung pemrograman terstruktur.C Contoh bahasa: FORTRAN, COBOL, ALGOL, BASIC, C, C++, Pascal, Java. 4. Generasi keempat • • • • Pada generasi ini, bahasa pemrograman didesain untuk mengurangi effort dan mempercepat proses pembuatan program. Pada 3GL, pembuatan program membutuhkan waktu yang lama dan mudah sekali didapati error. Pada 4GL, telah menggunakan metod ologi dimana sebuah perintah dapat menghasilkan beberapa instruksi 3GL yang kompleks dengan sedikit error. Contoh bahasa: • Contoh bahasa : Pemrograman umum : DataFlex, WinDev, PowerBuilder Basis data : SQL, Progress 4GL Manipulasi data, analisis dan pelaporan : ABAP, Matlab, PL/SQL. 5. Generasi kelima • • • Bahasa pemrograman generasi kelima disebut sebagai constraintprogramming atau declarative-programming. Dalam membuat program tidak dituliskan dalam bentuk algoritma melainkan dituliskan batasan atau fakta dari sebuah lingkup masalah, sehingga program akan menghasilkan luaran dalam bentuk solusi. Bahasa pemrograman ini digunakan untuk membangun sistem kecerdasan buatan dan belum digunakan secara meluas di dunia industri. Contoh bahasa: Prolog, LISP, Mercury Klasifikasi menurut tingkatan 1. Low -level programming language • • • Tingkat bahasa pemrograman ini disebut rendah bukan karena posisinya berada di bawah, melainkan karena kurangnya abstraksi (penggambaran kode instruksi) antara bahasa natural dengan bahasa mesin Oleh karena itu, bahasa di tingkat ini sering disebut sebagai ’bahasa mesin’ Bahasa pemrograman yang masuk kategori ini adalah bahasa mesin itu sendiri (1GL) dan bahasa assembly (2GL). 2. High-level programming l anguage (HLL) Bahasa pemrograman di tingkat ini memiliki abstraksi yang lebih banyak dan terdapat kemiripan dengan bahasa natural (bahasa Inggris), lebih mudah untuk digunakan dan mudah untuk dipindahkan antar platform 3. Very high-level programming language (VHLL) • • Bahasa ini memiliki abstraksi yang lebih tinggi dibandingkan HLL, dan digunakan untuk menunjang produktifitas programer profesional. Biasanya VHLL digunakan hanya untuk tujuan yang spesifik, misalnya untuk keperluan bisnis: mengolah data, membuat laporan, dsb. TIOBE Index for August 2015 Flowchart Dalam membuat algoritma, diperlukan suatu mekanisme atau alat bantu untuk menuangkan hasil pemikiran mengenai langkah –langkah penyelesaian masalah yang sistematis dan terurut Pada dasarnya untuk bisa menyusun solusi diperlukan kemampuan problem-solving yang baik Secara formal, flowchart didefinisikan sebagai skema penggambaran dari algoritma atau proses Tabel berikut menampilkan simbol -simbol yang digunakan dalam menyusun flowchart Flowchart Simbol Berikut ini adalah flowchart untuk menggambarkan kegiatan membuat telur dadar : Pseudocode • Skema lain yang dapat digunakan untuk menyusun algoritma adalah pseudocode • Pseudocode adalah bentuk informal untuk mendeskripsikan algoritma yang mengikuti struktur bahasa pemrograman tertentu • Tujuan dari penggunaan pseudocode adalah supaya : 1. lebih mudah dibaca oleh manusia 2. lebih mudah untuk dipahami 3. lebih mudah dalam menuangkan ide/hasil pemikiran • Pseudocode lebih cocok digunakan untuk menyusun algoritma dengan kasus yang besar dan kompleks • Sangat dianjurkan kepada programmer pemula untuk mulai menggunakan pseudocode dalam menyelesaikan masalah Pseudocode if sales > 1000 then bonus sales * 25% salary 2000000 + bonus output(salary) C++ if (sales > 1000) bonus = sales * 25% salary = 2000000 + bonus cout(salary)