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 memiliki arti 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) Algoritma Pengerjaan didalam Resep Makanan 1. 2. 3. 4. 5. Tuangkan satu gelas santan ke dalam wajan. Masukkan bumbu-bumbu yang sudah dihaluskan. Aduk hingga merata. Tambahkan garam, merica dan kecap asin. Masak dengan api sedang, sambil diaduk-aduk. Algoritma Dalam Mengerjakan Praktikum Kimia 1. Siapkan tabung reaksi ukuran 100cc. 2. Teteskan 50 cc larutan H2SO4 ke dalam tabung. 3. Campurkan 20 cc larutan NaOH kedalamnya, aduk hingga tercampur merata. Algoritma Mengirim Surat Kepada Teman 1. 2. 3. 4. 5. Tulis surat pada secarik kertas surat. Ambil sampul surat. Masukkan surat ke dalam sampul. Tutup sampul surat menggunakan perekat. Jika kita ingat alamat teman tersebut, maka tulis alamat pada sampul surat. 6. Jika tidak ingat, lihat buku alamat, kemudian tulis alamat pada sampul surat. 7. Tempel perangko pada surat. 8. Bawa surat ke kantor pos untuk diposkan. Algoritma Mencari Kuadrat Suatu Bilangan 1. Masukkan bilangan A yang akan dkuadratkan 2. Kalikan A dengan A 3. Selesai Latihan Soal 1. Buatlah algoritma dalam mengganti ban mobil yang pecah, tanpa masalah atau syarat. 2. Dari soal nomor 1, ban serep kempes. 3. Dari soal nomor 1, ban serep bocor dan harus ditambal. Algoritma Dalam Mengganti Ban Mobil Yang Pecah,Tanpa Masalah Atau Syarat 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Start Parkirkan mobil ditempat yang aman Pasang segitiga pengaman pada sisi mobil Ambil dongkrak dan kunci T Ambil ban serep Dongkrak mobil Buka baut ban menggunakan kunci T Lepas ban mobil yang pecah Pasang ban serep Pasang kembali baut ban Lepaskan dongkrak Simpan ban pecah, kunci T, dan segitiga pengaman End. Tugas Buatlah algoritma untuk menghitung luas dan keliling lingkaran. Dengan masukan jarijari lingkaran. Menghitung Luas Lingkaran 1. 2. 3. 4. Start Menetapkan nilai Phi yaitu 3.14 Masukan jari-jari lingkaran Menghitung luas lingkaran dengan rumus L=phi x r x r 5. Mencetak nilai Luas 6. Finish Menghitung Keliling Lingkaran 1. 2. 3. 4. Start Menetapkan nilai Phi yaitu 3.14 Masukan jari-jari lingkaran Menghitung keliling lingkaran dengan rumus K=2 x phi x r 5. Mencetak nilai Keliling 6. Finish