BAHASA PEMROGRAMAN Pertemuan I
Deskripsi Matakuliah Matakuliah ini mengajarkan tentang : Konsep dan logika berpikir komputer, Cara perancangan dan analisis masalah, yang kemudian dipecahkan dengan menggunakan komputer menggunakan algoritma dan pemrograman terstruktur, Selain itu juga diperkenalkanpenggunaan bahasa pemrograman Bahasa C, LISP, Prolog, OOP dengan C++. Membuat Program perhitungan Teknik Sipil (Microsoft Excel)
Kompetensi Matakuliah Mahasiswa mampu : Menjelaskan Memahami logika berpikir komputer dan memahami prinsip kerja program, Mengetahui dan mengidentifikasi penggunaan bahasa program Fortran, jenis-jenis variabel, bagan alur program Mengidentifikasi bentuk format variabel free format, formatted, penulisan format berbagai jenis variabel Mengidentifikasi dan membuat program dengan menggunakan Function ekternal dilengkapi dengan diagram alir (flowchart) menggunakan suatu bahasa pemrograman tertentu. Mengidentifikasi dan membuat program dengan menggunakan Subroutine dan variabel berindeks 1 dimensi Mengidentifikasi dan membuat program dengan menggunakan Subroutine dan variable berindeks 2 dimensi dan program yang kompleks
Pengantar Sebelum Anda belajar pemrograman Anda harus menjawab pertanyaan ini:
PC/ Personal Komputer Menurut kamus bahasa inggris Komputer adalah: A computer is an electronic device capable of performing computations
Sistem Komputer Sebuah sistem komputer terdiri dari : Hardware (perangkat keras) Software (perangkat lunak) dan Brainware. Sedangkan Software dapat dikelompokan menjadi : Operating System Software, Programming Language Software, Dan Application Program Software.
Coba Pikirkan! Gambar Video dan Audio Teks / simbol • Bagaimana komputer mengetahui? bisa mengenal/ Teks / simbol Gambar Video dan Audio
Sinyal Elektronik • Komputer dapat mengenal sinyal elektronik. • 5 Volt 0 Volt Binary 1 Binary 0 • Komputer dapat mengenal sinyal elektronik. • 8 bit signal dikelompokan menjadi satu pola. Teks, angka, symbol diidentifikasi dengan pola yang unik.
Contoh Sinyal Elektronik Simbol / huruf 01011010 • “Z” direpresentasikan Z 01011010 menjadi 1 1 1 1
Bagaimana Caranya???
Manusia - Komputer Pelaksana algoritma adalah komputer Manusia dan komputer berkomunikasi dengan cara : Manusia memberikan perintah-perintah pada komputer berupa instruksi-instruksi yang disebut program. Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman. Bahasa pemrograman sangat bermacam-macam : C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++, dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.
Sejarah Bahasa Pemrograman 1830 - 1840, Charles Babbage, Analytical Engine Programmer pertama: Ada Byron Countess Of Lovelace 1940, John von Neumann, Komputer pertama dengan stored programs Bahasa Pemrograman –
Era 1950 an FORTRAN (FORmula TRANslation), 1954~1957, IBM, John Backus, arrays, loops, if-statements COBOL (Common Business-Oriented Language), 1959~1960, US DOD, Grace Hopper, records, output formatting Algol60 (ALGOrithmic Language), 1958~1960,, structured statements, begin-end blocks, type declarations, recursion, pass-by-value parameters LISP (LISt Processor), akhir 1950s, MIT, John McCarthy, functions dan garbage collection APL (A Programming Language), akhir 1950s, Harvard University dan IBM, K. Iverson, arrays and matrices Bahasa Pemrograman –
Era 1960 an PL/I, 1963-1964, IBM, concurrency, exception handling Algol68, 1963-1968, general type system, orthogonal language SNOBOL (StriNg Oriented symBOlic Language), awal 1960s, Bell Labs, R. Griswold, string processing, pattern matching Simula67, 1965~1967, Norwegian Computing Center, Kristen Nygaard dan le-Johan Dahl, simulations, classes ISWIM, Peter Landin, functional language murni BASIC, 1964, Dartmouth College, John Kemeny dan Thomas Kurtz, bahasa instructional yang sederhana dan interaktif Bahasa Pemrograman –
Era 1970 an Pascal, 1971, Niklaus Wirth, bahasa instruksional sederhana dengan pernyataan terstruktur C, 1972, Bell Labs, Dennis Ritchie, type system sederhana dan runtime environment CLU, 1974~1977, MIT, Barbara Liskov, pendekatan konsisten untuk mekanisme abstraksi, data abstraction, control abstraction, and exception handling Euclid, 1976~1977, University of Toronto, abstract data types, program verification Mesa, 1976~1979, Xerox, module facility, exception handling, concurrency Bahasa Pemrograman –
Era 1980 an Ada, 1983, DOD, abstract data types, concurrency Modula-2, 1982, Niklaus Wirth, modules, coroutine Smalltak, 1980, Xerox, Alan Kay and Dan Ingalls, a complete object-oriented programming system C++, 1980, Bell Labs, Bjarne Stroustrup, classes, library Scheme, 1975~1978, MIT, Gerald Sussman dan Guy Steele, versi baru dari LISP ML, 1978, Edinburgh University, Robin Milner, a syntax and type checking similar to Pascal Prolog, 1972~1980, A. Colmerauer, mathematical logic Bahasa Pemrograman –
Era 1990 an Java, 1995, Gosling, bahasa pertama yang dikeluarkan dengan API yang sudah dikembangkan Bahasa-bahasa Scripting seperti : Perl, Tcl, Javascript, VBScript, Python, dan PHP Bahasa Pemrograman –
Era 2000 an .NET framework yang dikembangkan oleh Microsoft Mono yang mengadopsi .NET framework. Awalnya dikembangkan pada platform Linux Bahasa Pemrograman –
Komputer berkerja dengan beberapa tahapan/tingkatan Jika manusia memberikan perintah pada komputer, komputer tidak bekerja secara langsung, tetapi bekerja dengan beberapa kali menterjemahkan perintah. Terdapat beberapa tingkat Bahasa Pemrograman: • • – Bahasa tingkat • Contoh: Java • Contoh: C tinggi / High level language – menengah / Mid level language – rendah / Low level language • Contoh: Assembly Bahasa Mesin • Contoh: 01010101 –
5 Generasi Bahasa Pemrograman
Bahasa Mesin Diawali dengan ENIAC dan EDVAC, komputer generasi pertama yang dikembangkan oleh John W. Mauclhy dan John von Neumann pada Agustus 1944 ENIAC menggunakan decimal arithmetic EDVAC menggunakan binary arithmetic Mengalami perubahan sangat besar setelah 4 dekade sejak EDVAC Bahasa Pemrograman –
Bahasa Rakitan (Assembly) Dimulai sejak awal 1950 Disebut juga sebagai symbolic machine languages Symbol yang dipergunakan untuk memfasilitasi aspek pemrograman : Mnemonic Opcodes Symbolic Names Memory Address Automatic Assignment Addressing Modes Bahasa Pemrograman –
High Level languages Dimulai sejak akhir 1950 Memiliki kemampuan untuk merepresentasikan algoritma yang kompleks Human-oriented readability Machine-independent Bahasa Pemrograman –
Perbandingan Penambahan dua buah integer Machine Language Assembly 10100101 00000001 11100101 00000010 10000101 00000011 Assembly LOAD A ADD B STO C High Level (contoh dengan Pascal) C := A + B; Bahasa Pemrograman –
Definisi • Program Algoritma (algorithm) ~ pseudocode • Bahasa Program – instruksi untuk komputer yang dibuat dengan algoritma Algoritma (algorithm) ~ pseudocode – Langkah-langkah/ aturan logis dideskripsi tekstual dengan pola baku untuk menyelesaikan suatu masalah. Bahasa Program • • – Sebuah notasi untuk mendeskripsi sebuah program. Bahasa yang berfungsi untuk menghubungkan manusia dengan mesin / komputer. Dapat diartikan juga sebagai teknik untuk berkomunikasi dengan mesin / komputer. –
Definisi (2) Pemrograman = aktifitas runut pembuatan program: • – Pendefinisian masalah [Deskripsi metoda formal] Penyusunan algoritma [/flowchart] Penulisan instruksi (coding) menggunakan sebuah bahasa formal Uji coba & perbaikan kesalahan (debugging) Run program Dokumentasi –
Sekilas tentang Pemrograman Pemrograman tidak sekedar coding. • Pemrograman: membuat spesifikasi, implementasi, debugging, testing. Belajar pemrograman ≠ belajar bahasa pemrograman. – Analogi : belajar [tatabahasa, kosa kata] Indonesia dengan belajar menulis makalah ilmiah dalam bahasa Indonesia Programming : art or science ? • •
Bahasa Pemrograman Adalah alat untuk membuat program Cotoh : C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll. Perbedaan : cara memberikan instruksi Persamaan : bertujuan menghasilkan output yang sama.
Algoritma Asal kata algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi Ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) Tahun 825 m Berasal dari Iran
Definisi Algoritma Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.
Contoh Algoritma Memasak Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah : Menulis surat Surat dimasukkan kedalam amplop tertutup Amplop ditempeli perangko secukupnya Pergi ke kantor pos terdekat untuk mengirimkannya Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Tools yang digunakan dalam Pemrograman [1] Editor • Merupakan software untuk menulis dan mengedit program. Co: notepad, notepad++, vim
Tools yang digunakan[2] • Compiler : menghasilkan object code, kemudian di-link oleh linker menjadi executable Code. – Contoh: gcc, tc, cc, javac Interpreter : menerjemahkan dan melaksanakan instruksi demi instruksi – Contoh: BASIC, MATLAB *Masing-masing punya kelebihan dan kekurangan. yang • •
Tools yang digunakan[3] Debugger: Proses untuk menemukan kesalahan program atau proses pencarian bug. – Istilah proses ini disebut dengan debug. IDE (Integrated Development Environment): menggabungkan fungsi editor, Interpreter + kompilator, dan kadang juga ditambah dengan debugger. – Contoh IDE: Code Blocks, Dev C++, Tu • • rbo C
Sekilas Tentang Pemrogaman[1] Programming tidak sekedar coding. Programming : membuat spesifikasi, implementasi, debugging, testing. Belajar pemrograman ≠ belajar bahasa pemrograman. Analogi : belajar [tatabahasa, kosa kata] Indonesia dengan belajar menulis makalah ilmiah dalam bahasa Indonesia Programming : art or science ? • • •
Sekilas Tentang Pemrogaman[2] Kegiatan dalam pemrograman : • – utak atik, simulasi mencari solusi analisis, pembuatan spesifikasi program testing) writing (coding) execution (observation, debugging, – reading correctness & complexity analysis
Perhatikan video dibawah ini:
Paradigma Pemrograman(1) Bagaimana cara pandang kita terhadap penyelesaian masalah pemrograman tertentu. • Diprioritaskan terhadap kelompok problema, realitas, keadaan, dan sebagainya. •
Paradigma Pemrograman (2) Paradigma Objek Prosedural/ Imperative/ . Prosedural/ Imperative/ Algoritmic Paradigma Pemrograman Deklaratif Objek (Oriented) Fungctional / Apllicative Logic/ Programing
Paradigma Pemrograman Pemrograman Prosedural Berdasarkan urutan-urutan, sekuensial Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan. Pemrograman Fungsional Berdasarkan teori fungsi matematika Fungsi merupakan dasar utama program Pemrograman Terstruktur Secara berurutan dan terstruktur Program dapat dibagi-bagi menjadi prosedur dan fungsi Contoh : Pascal dan C
Paradigma Pemrograman Pemrogramam Modular Pemrograman ini membentuk banyak modul Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri Sebuah program dapat merupakan kumpulan modul-modul Contoh : MODULA-2 atau ADA Pemrograman Berorientasi Obyek Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan method/event/prosedur yang dapat dimanipulasi Contoh : C++, Obyek Pascal, dan Java.
Paradigma Pemrograman Pemrograman Berorientasi Fungsi Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini. Contoh : SQL, HTML, XML, dll. Pemrograman Deklaratif Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma. Contoh : Prolog
MENGENAL BAHASA C
Bahasa C Populer (banyak digunakan pada program-program besar) Cikal bakal / dasar program-program yang ada saat ini Powerful dan flexible (dapat menyelesaikan program- program besar) Portable (dapat dijalankan pada macam-macam OS) Bersifat modular Merupakan mid level (mudah untuk membuat antarmuka ke harware) • • •
Sejarah Bahasa C • • • • Dikembangkan oleh Dennis Ritchie dan Brian Kernighan pada awal 1970an. Awalnya berkembang di lingkungan Unix – ±90% sistem operasi Unix ditulis dalam bahasa Pada 1986 dikembangkan superset C yaitu C++ yang dilengkapi kemampuan pemrograman berorientasi objek. Tahun 90an digunakan untuk mengembangkan Windows dan Linux C • • • •
Contoh Program C • Apakah program diatas dapat dikenali komputer? oleh Tidak, dibutuhkan proses kompilasi agar komputer mengenal
Proses Kompilasi dalam Bahasa C Kompiler Kode Sumber/ Bahasa C Berkas Objek Lain Berkas Objek Linker Executable File
Compile & Running Program Berikut merupakan proses kompilasi dengan kompilator gcc dan program dijalankan lewat windows command prompt •
Interpreter & Kompiler Interpreter merupakan sebuah program yang dapat mengerti sebuah bahasa dan mengeksekusi program yang ditulis dengan bahasa tersebut Compiler merupakan program yang menterjemahkan program yang ditulis dengan sebuah bahasa menjadi program yang ditulis oleh bahasa lain Bahasa Pemrograman –
Interpreter Input Source Interpreter program Output Bahasa Pemrograman –
Compiler Source program Compiler Target program Input Output Bahasa Pemrograman –
Referensi http://www.javatutorialhub.com/java- platform.html IF-ITB/Santika WP/2003 IL -Rev Tim Penyusun Materi KU1071/Pengantar Teknologi Informasi A Inggriani Liem, IF-ITB, Diktat Pemrograman Prosedural (2007) I Made Joni, Budi Raharjo, Pemrograman C dan Implementasinya (2011) Abdul Kadir: Mudah menjadi programer C++ (2009) • • • •