UNIVERSITAS GADJAH MADA PROGRAM STUDI FISIKA FMIPA
Bahan Ajar 2:
Proses Pemrograman (Minggu ke-3)
PEMROGRAMAN DAN METODE NUMERIK Semester 2/ 2 sks/ MFF 1024 Oleh Dr. Fahrudin Nugroho Didanai dengan dana BOPTN P3-UGM Tahun Anggaran 2013 November 2013
2
BAB 3 Proses Pemrograman
3.1 Program dan Bahasa Pemrograman Program dalam istilah komputer mempunyai arti sebagai kumpulan perintah yang digunakan untuk mengatur komputer untuk melaksanakan suatu pekerjaan. Melalui program inilah kemudian manusia dapat berinteraksi dengan "mesin" komputer. Tanpa sebuah program maka komputer tidak akan dapat melakukan sesuatu sesuai dengan yang dikehendaki. Jadi ketika suatu program dibuat dan dijalankan, terjadi interaksi antara manusia dan komputer. Seperti halnya interaksi antar manusia diperlukan suatu bahasa agar setiap ungkapan dapat difahami dan setiap perintah ataupun informasi dapat ditindak lanjuti. Karenanya untuk bisa membuat program, seorang programer (orang yang biasa membuat program komputer) yang ingin berinteraksi dengan komputer memerlukan bahasa pemrograman (lihat ilustrasi yang diambil dari http://fooyoh.com/iamchiq_living lifestyle/5062933 berikut).
Gambar 1: Ilustrasi interaksi programer (manusia) dengan komputer.
3
Agar dapat difahami maka seorang programer harus mengikuti kaidah bahasa program tertentu yang kemudian disebut sebagai bahasa pemrograman. Bahasa pemrograman dapat dikategorikan kedalam 1. Bahasa beraras tinggi 2. Bahasa beraras rendah Bahasa beraras tinggi adalah bahasa pemrograman yang berorientasi pada manusia (programer). Artinya bahasa program jenis ini lebih mudah difahami karena mendekati bahasa manusia dan menggunakan kata-kata yang biasa digunakan oleh manusia khususnya bahasa Inggris. Contoh bahasa jenis adalah bahasa Basic, Pascal, Fortran, C, C++, Java. Sedangkan bahasa beraras rendah adalah bahasa yang berorientasi pada mesin. Bahasa ini menggunakan kode biner yang hanya mengenal angka 0 dan 1. Yang tergolong dalam bahasa ini adalah bahasa Asembler (rakitan). Bahasa semacam ini sulit untuk dibaca dan difahami langsung oleh manusia dan programer yang biasa menggunakan bahasa beraras tinggi. Biasanya bahasa mesin hanya bekerja pada satu jenis mesin tertentu karenanya disebut machine dependent.
3.2 Penerjemah Bahasa Sebagaimana dijelaskan sebelumnya bahwa sebenarnya ada perbedaan antara bahasa manusia dan bahasa mesin. Bahasa mesin sulit dimengerti oleh manusia dan sebaliknya mesin tidak bisa memahami bahasa manusia. Singkatnya bahasa program yang di buat dengan bahasa program beraras tinggi tidak bisa difahami langsung oleh mesin. karenanya diperlukan penerjemah bahasa, yang menerjemahkan setiap perintah dari bahasa aras tinggi kedalam bahasa mesin, agar mesin dapat menjalankan perintahperintah tersebut. Penerjemah bahasa ini kemudian dikelompokan menjadi: 1. Interpreter. Yaitu penerjemah bahasa yang mengerjakan satu baris intruksi bahasa kedalam bahasa mesin untuk kemudian dijalankan oleh mesin Instruksi berikutnya akan diterjemahkan selanjutnya jika instruksi pertama telah selesai diinstruksikan. Dengan kata lain interpreter menterjemahkan dan menginstruksikan semua perintah satu persatu.
4
2. Compiler. Berbeda dengan interpreter, Compiler bekerja secara lebih kompak yaitu menerjemahkan semua instruksi kedalam bahasa mesin sekaligus menjadi kode objek. Dan tidak ada proses penerjemahan lagi ketika kode objek dijalankan oleh mesin. Hasil dari proses kompilasi ini biasanya adalah program yang dapat dijalankan tanpa ada translator, atau sering disebut sebagai executable. Sekarang ini program yang executable ini sering disebut sebagai aplikasi. Dengan menggunakan Interpreter seseorang dapat melakukan proses pencarian kesalahan pada kode sumber dengan lebih mudah. Namun kelemahanya adalah bahwa setiap kali menjalankan program dengan interpreter maka kode sumber harus selalu tersedia dan jika jumlah instruksi besar maka proses pengeksekusian menjadi lambat, dan proses ini selau berulang setiap kali program digunakan. Sedangkan dengan Compiler, pengerjaan instruksi bisa berjalan dengan cepat karena setiap kali hanya diperlukan satu program executable yang telah dihasilkan. Program executable ini juga bisa diduplikasi dan dijalankan pada komputer yang lain dengan platform yang sama. Namun secara kebahasaan program yang diproses dengan compiler harus betul secara keseluruhan sebelum benar-benar bisa dikompilasi dan distribusikan.
3.3 Merancang sebuah program Sebuah program dirancang dan dibuat untuk menyelesaikan secara khusus sebuah permasalahan. Terdapat tiga langkah penting dalam menyelesaikan permasalahan: 1. Menganalisa masalah, dan merancang urutan penyelesaian (Algoritma) 2. Menuangkan Algoritma kedalam bentuk program 3. Mengeksekusi dan menguji program
3.3.1 Menganalisa, dan merancang urutan penyelesaian masalah (Algoritma) Pada dasarnya permasalahan yang dapat dikerjakan melalui proses pemrograman sangatlah luas. Mulai dari suatu permasalahan yang sederhana sampai dengan permasalahan yang kompeks. Biasanya permasalahan yang komplekslah yang perlu dikerjakan dengan program komputer. Akan tetapi dalam catatan kuliah kali ini akan
5
dijelaskan beberapa permasalahan yang sederhana dengan tujuan mahasiswa dapat memahami dengan lebih mudah proses mengalisa masalah dan proses merancang suatu urutan kerja (Algoritma)1. Sebelum merancang suatu urutan kerja, maka biasanya dillakukan identifikasi masalah dan penyaringan informasi. Berdasarkan hasil identifikasi masalah dan penjaringan informasi maka kemudian langkah kerja dapat dirancang dan untuk selanjutnya dapat dituangkan kedalam bentuk program. Sebagai contoh sederhana, kali ini akan diselesaikan suatu permasalahan menghitung luas lingkaran. Jelas permasalahan ini adalah permasalahan matematik biasa dan melibatkan rumus perhitungan biasa. Sedangkan informasi yang diperlukan untuk dapat menyelesaikan masalah ini adalah yaitu data besarnya nilai
dan panjang jejari
lingkaran. Dengan logika sederhana maka rancangan penyelesaian permasalahan ini dapat dituliskan sebagai berikut Luas = nilai pi x panjang jejari x panjang jejari Algoritma bagi penyelesaian masalah ini kemudian dapat dituliskan sebagai berikut: 1. Peroleh panjang jejari 2. Hitung luas lingkaran sesuai dengan rumus 3. Tampilkan nilai luas lingkaran Ada banyak cara untuk menuliskan Algoritma dan Algoritma tidak selalu dituangkan seperti layaknya bahasa manusia. Diantaranya dengan menuangkan kedalam kode semu (pseudocode). Untuk permasalahan luas lingkaran maka pseudocode yang mungkin adalah sebagai berikut luas <-- pi x panjang jejari x panjang jejari
Untuk suatu program yang lebih kompleks maka diperlukan ungkapan kode semu yang lebih panjang dan kompleks, untuk kasus seperti ini maka biasanya kode semu lebih
1
Istilah Algoritma diambil dari nama seorang ilmuwan Arab bernama Abu Ja'far Mohammed Ibn Musa al Khowarizmi.
6
berorientasi dan lebih mirip pada bahasa program dimana permasalahan tersebut akan diselesaikan. Selain kode semu kadangkala Algoritma di tuangkan kedalam bentuk diagram alir (Flow Chart). Sebagai contoh diagram alir untuk menghitung luas lingkaran diberikan pada gambar berikut:
Gambar 2: Contoh penulisan algoritma dalam bentuk diagram alir (Flow Chart). Dari gambar di atas dapat kita lihat berbagai macam bentuk yang digunakan dalam diagram alir. Bentuk oval menandakan memulai dan akhir. Bentuk persegi empat yang digunakan untuk melambangkan proses perhitungan. Bentuk jajaran genjang menandakan masukan atau keluaran suatu proses. Bentuk layang-layang menandakan pengambilan keputusan.
3.3.2 Menuangkan Algoritma kedalam Kode Sumber Setelah proses analisa masalah dan pembuatan Algoritma selesai dibangun maka proses selanjutnya adalah pembuatan kode sumber. Untuk kasus permasalahan luas lingkaran maka kode sumber dalam bahasa C kurang lebih dapat dilihat sebagai berikut:
7
#include <stdio.h> #define PI 3.1415926535897932385E0 main() { double radius, area; /* mendefiniskan variabel-veriabel */ printf("Enter the radius of a circle \n"); /* perintah memasukan input radius */ scanf("%lf", &radius); /* membaca input radius */ area = radius * radius * PI; /* rumus area */ printf("radius=%f, area=%f\n", radius, area); /* mencetak hasil */ }
3.3.3 Mengeksekusi program dan menguji program Setelah kode sumber diatas di buat dalam editor, maka dapat disimpan dengan extension c. Dan selanjutnya dapat dikompilasi dengan kompiler c. Diantara kompiler c yang dapat digunakan adalah gcc yang telah tersedia pada sistem operasi Linux. Dengan proses kompilasi akan dapat diketahui apakah program tersebut sudah benar secara sintaks atau belum. Jika terdapat peringatan error (kesalahan) maka dapat dicari bagian/baris mana yang mengakibatkan adanya error tersebut. Setelah diketahui baris yang menyebabkan error dan dilakukan perbaikan maka program dapat kembali dikompilasi. Demikian seterusnya sampai program benar-benar selesai dikompilasi tanpa ada peringatan error. Stelah itu program executable yang diperoleh dapat dijalankan dan nilai keluaran dapat diuji kebenarannya. Khusus untuk kasus sederhana seperti luas lingkaran maka uji keluaran tersebut dapat diperoleh dengan membandingkan dengan hasil perhitungan analitik. Untuk program yang dirancang menyelesaikan permasalahan yang kompleks seringkali pencarian kesalahan baik dalam program maupun keluaran tidaklah sederhana. Dalam konteks program kesalahan dalamkode sumber sering disebut dengan disebut dengan bug, dan proses pencarian kesalahan ini sering disebut sebagai debugging.