1 BAB III BAHASA PEMROGRAMAN DAN FLOWCHART PERKEMBANGAN BAHASA PEMROGRAMAN Pada dasarnya bahasa pemrograman dapat dibedakan menjadi: 1. Bahasa Mesin (...
BAB III BAHASA PEMROGRAMAN DAN FLOWCHART PERKEMBANGAN BAHASA PEMROGRAMAN Pada dasarnya bahasa pemrograman dapat dibedakan menjadi: 1. Bahasa Mesin (Mnemonic Code) Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh mesin komputer. Bahasa ini merupakan bahasa level terendah dan berupa kode numerik 0 dan 1. Sekumpulan instruksi dalam bahasa mesin dapat membentuk microcode (semacam prosedur dalam bahasa mesin). Keuntungan: Eksekusi sangat cepat Kerugian: Sangat sulit dan rumit dipelajari dan dipahami sebagian besar akademisi 2. Bahasa Assembly Bahasa assembly adalah bahasa simbol dari bahasa mesin. Setiap kode bahasa mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya ADD untuk penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain. Sekumpulan kode-kode bahasa assembly dapat membentuk makroinstruksi. Bahasa assembly juga memiliki program untuk men-debugnya tidak seperti bahasa mesin. Misalnya: Turbo Assembler dan debug pada DOS. Assembler akan mencocokkan token dari awal dengan akhir dan dikodekan menjadi bahasa mesin. Kelebihan: Eksekusi cepat, lebih mudah dipelajari daripada bahasa mesin, file kecil Kekurangan: Tetap sulit dipelajari, listing program sangat panjang. 3. Bahasa Tingkat Tinggi (High Level Language) Bahasa tingkat tinggi adalah bahasa pemrograman yang lebih tinggi daripada bahasa assembly. Bahasa ini lebih dekat dengan bahasa manusia. Bahasa inilah yang akan dibahas pada matakuliah ini. Bahasa ini juga memberikan banyak sekali fasilitas kemudahan pembuatan program, misalnya: variabel, tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur dan lain-lain. Contoh: Pascal, Fortran, C++, dan Java. Keuntungan: - Mudah dipelajari (Sintaks bahasanya mirip bahasa manusia /bahasa Inggris) - Menyediakan banyak modul yang mendekati permasalahan yang akan dipecahkan - Kode program lebih pendek - Tersedia IDE (Integrated Development Environment), sebagian besar bahasa pemrograman tingkat tinggi saat ini menyediakan IDE, yaitu program interface/ antarmuka pengguna yang mudah digunakan (berbasis GUI). IDE menyediakan Editor (tools untuk menulis program), Debug (untuk menelusuri kesalahan penulisan program, serta kompiler (untuk membuat program aplikasi/ siap pakai berupa executable program, yang langsung bisa dieksekusi dan dilihat hasilnya) Kerugian: - Eksekusi lambat, karena harus menggunakan API (menumpang pada proses eksekusi yang sebagian dilakukan oleh rutin-rutin program OS), sehingga mengalami eksekusi yang bertingkat-tingkat dari level GUI – API/Aplikasi – OS – BIOS – Mesin. - Ukuran program executable yang dihasilkan cukup besar, sehingga membutuhkan pemakaian memori (RAM) yang besar. Bahasa dari jenis inilah yang akan kita pakai untuk praktikum Algoritma Pemrograman, dikenal dengan bahasa generasi ke-3 ( 3rd Generation Programmming Language ).
Algoritma dan Pemrograman I
Bag-2
7
4. Bahasa yang berorientasi pada masalah spesifik (specific problem oriented). Bahasa ini adalah bahasa yang digunakan langsung untuk memecahkan suatu masalah tertentu. Misalnya SQL untuk database, Regex untuk mencocokkan pola string tertentu. Bahasa ini juga masuk ke bahasa tingkat tinggi. Bahasa ini disebut juga bahasa generasi ke-4 (4th Generation Programmming Language). Translator Translator melakukan pengubahan source code ke dalam target code/object program. Source code ditulis dengan suatu bahasa pemrograman tertentu sedangkan object code bisa bermacam-macam outputnya tergantung pada translatornya. Ada beberapa translator: 1. Assembler Source code adalah bahasa assembly, object code adalah bahasa mesin
2. Interpreter Input berupa source code yaitu bahasa scripting seperti PHP, VBscript, Perl, Javascript, actionscript(Adobe), Java bytecode, dan Basic. Interpreter tidak menghasilkan object code, jadi hasilnya langsung tampil. Hanya menghasilkan translasi internal. Input dapat berasal dari source code maupun dari inputan program dari user. Source code dan inputan data user diproses pada saat yang bersamaan. Pada interpreter: program tidak harus dianalisis seluruhnya dulu, tapi bersamaan dengan jalannya program. Keuntungan: mudah bagi user, debuging cepat Kekurangan: eksekusi program lambat, tidak langsung menjadi program executable.
3. Kompiler Input berupa source code program seperti Pascal, C, C++. Object code adalah bahasa assembly. Source code dan data input diproses pada saat yang berbeda. Compile time adalah saat pengubahan dari source code menjadi object code, sedangkan Runtime adalah saat eksekusi object code dan mungkin menerima input data dari user. Output : bahasa assembly. Hasil berupa file EXE Kekurangan: debugging lebih lambat Keuntungan: eksekusi program lebih cepat, menghasilkan file executable yang berdiri sendiri. Compile Time : Runtime Library FILE EXECUTABLE
Link Editor
Pre-Processor
Source Code
Object Code Compiler
Assembly Code
Algoritma dan Pemrograman I
Bag-2
Assembler
8
Algoritma dan Pemrograman I
Bag-2
9
Paradigma Pemrograman 1. Pemrograman Prosedural Berdasarkan urutan-urutan, sekuensial Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan. Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah. 2. Pemrograman Fungsional Berdasarkan teori fungsi matematika Fungsi merupakan dasar utama program. Contoh : MatLAB. 3. Pemrograman Terstruktur Secara berurutan dan terstrukrtur. Program dapat dibagai-bagi menjadi prosedur dan fungsi. Contoh: PASCAL dan C 4. Pemrograman 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 5. Pemrograman Berorientasi Obyek (Object Oriented Programming – OOP) Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/ property dan method/event/prosedur yang dapat dimanipulasi Contoh: C++, Object Pascal, dan Java. 6. Pemrograman Berorientasi Fungsi Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini. Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain. 7. Pemrograman Deklaratif Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma. Contoh: PROLOG
FLOWCHART Flowchart adalah bentuk gambar/diagram yang mempunyai aliran satu atau dua arah secara sekuensial. Flowchart digunakan untuk merepresentasikan maupun mendesain program. Oleh karena itu flowchart harus bisa merepresentasikan komponen-komponen dalam bahasa pemrograman.
Algoritma dan Pemrograman I
Bag-2
10
Baik flowchart maupun algoritma bisa dibuat sebelum maupun setelah pembuatan program. Flowchart dan Algoritma yang dibuat sebelum membuat program digunakan untuk mempermudah pembuat program untuk menentukan alur logika program, sedangkan yang dibuat setelah pembuatan program digunakan untuk menjelaskan alur program kepada orang lain.
Algoritma dan Pemrograman I
Bag-2
11
MENGENAL C/C++ C adalah bahasa pemrograman paling populer di lingkungan pengembang software sistem (developer). Pada awalnya dikembangkan oleh Dennis M. Ritchie di Bell Laboratories pada tahun 1972, diterapkan untuk mendayagunakan komputer DEC PDP-11 dengan Sistem Operasi UNIX. Kemudian tahun 1978 Dennis dan Brian W.Kernighan mempublikasikannya melalui buku : C Programming Language. Pada akhirnya C distandarisasi oleh Badan Standar Amerika Sserikat, yaitu ANSI C pada tahun 1989. Bahasa C bahasa yang general, tidak dikhususkan untuk suatu bidang/aplikasi tertentu. Contoh program C: #include <stdio.h> #include void main() { clrscr(); char nama[20]; int umur; printf(“Hallo Selamat Belajar C”); printf(“Masukkan nama : “); scanf(“%s”,nama); printf(“Masukkan umur: “); scanf(“%d”,&umur); printf(“Anda bernama : %s dan berumur %d”,nama,umur); if(umur < 20) { for(int i=0;i 50) { printf(“Anda sudah berumur!\n”); } else printf(“Lainnya\n”); getch(); }
Algoritma dan Pemrograman I
Bag-2
12
C++ adalah bahasa pemrograman yang merupakan turunan langsung dari C. Secara historis C++ mulai lahir pada tahun 1979, dimana Bjarne Stroustrup dari laboratorium AT&T Bell Corp. mulai mengerjakan C dengan fitur Class, dan 1982, C with Classes dipublikasikan secara luas, hingga akhir tahun 1983 kemudian diberi nama dengan C++.. Kemduian pada Juli 1998, bahasa C++ distandarisasi secara internasional, dengan nama : ISO/IEC 14882 : 1998, "Programming Language -- C++" C++ adalah bahasa pemrograman multi-orientasi dengan penggunaan Class, hingga mampu menyusun sendiri pustaka Class, namun kemudian muncul STL (Standard Tempalte Library) yang sangat bermanfaat untuk penyelesaian permasalahan nyata dengan lebih sederhana. Adanya class merupakan suatu cara untuk memberi suatu obyek atau kumpulan obyek yang sejenis berbagai type data sekaligus menetapkan perilaku obyek yang diinginkan. Saat ini C++ menganut multi paradigma programming. - Mendukung model Data Abstraction Dapat menyusun type data obyek sesuai definisi yang diinginkan bahkan lebih dari itu, dengan adanya pembentukan Class. - Mendukung Object-Oriented Programming - Mendukung Procedural Programming Dapat disusun prosedure-prosedur program yang diinginkan, dengan menggunakan algorithma yang tepat. - Mendukung Modular Programming Dapat disusun berbagai modul yang diinginkan, membagi program dalam modul-modul untuk menyembunyikan datanya. Kelompokkan data dalam fungsi-fungsi yang sama. - Mendukung Generic Programming Tetapkan Class mana yang diinginkan, sediakan sekumpulan jenis perilaku dan operasi yang diinginkan untuk setiap Class. Contoh program C++ (hasil yg sama dari contoh untuk C sebelumnya) : #include using namespace std; int main() { char nama[20]; int umur; cout <<" Hallo Selamat Belajar C++" << endl; cout <<" Masukkan nama : "); cin >> nama; cout << endl <<" Masukkan Umur : "); cin >> umur; cout << endl << nama << "," << "usiamu " << umur << " tahun" << endl; return 0; }
Algoritma dan Pemrograman I
Bag-2
13
Bentuk dan Sintax bahasa C++ dapat dilihat pada setiap contoh dibawah ini. //////////////////////////////////////////////////////// // Program C++ : Algoritma dan Pemrograman I // // Mempelajari perilaku Looping // // - menggunakan perintah for // // - memahami cara menetapkan awal dan akhir loop // //////////////////////////////////////////////////////// #include using namespace std; int main() { int A; int i, j; cout<<"Input bilangan A : "; cin>>A; for (i=0; i
// Memanggil pustaka program I/O // Penggunaan fungsi standar I/O // awal program utama, wajib ada // // // // // //