Materi Informatika SMA/MA X - Algortima dan Pemrograman
A.
Mengenal
Bahasa Pemrograman C
Pada
pembahasan sebelumnya, Anda telah mengenal cara menuliskan algoritma dalam
bentuk pseudocode, namun pseudocode hanyalah notasi algoritma untuk mempermudah
dibaca oleh manusia. Akan tetapi bagaimana pseudocode itu diterapkan kedalam
bahasa pemgroaman? Maka selanjutnya akan membahas sebuah mengenai Bahasa
Pemrograman C.
1.
Sejarah
Bahasa C
Awal mula
dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada
tahun 1967. Bahasa ini memberikan sebuah ide kepada Ken Thompson yang kemudian
mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan
selanjutnya dari bahasa pemrograman B adalah bahasa pemrograman C oleh Dennis
Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (Sekarang
adalah AT&T Bell Laboratories). Bahasa C pertama kali digunakan pada
komputer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi
UNIX.
Bahasa C
sendiri mulai dikenal luas pada tahun 1978 yang bekerja di lingkungan UNIX pada
komputer DEC-PDP7, dimana UNIX sendiri dikembangkan dengan bahasa pemrograman
C. Pada tahun 80-an, seiring dengan perkembangan mikrokomputer utamanya dari
keluarga IBM, maka makin banyak varian C yang tidak hanya bekerja di lingkungan
UNIX, namun sudah merambah pada DOS & WINDOWS, hal ini ditandai oleh
hadirnya beberapa varian dari bahasa C, antara lain :
·
Borland C & Turbo C
·
Borland C++ For DOS/WINDOWS & Borland C
Builder
·
Microsoft C & Microsot Quick C
·
Microsoft C++ For DOS/WINDOWS
·
Power C dan Zortech C
Meskipun
banyak varian C dari berbagai vendor software, tetapi pada intinya bahasa
pemrograman C yang berkembang didasarkan pada standart nasional Amerika ANSI C
(American National Standart Institute) yang mulai diberlakukan pada tahun 1989.
Gambar 3.6
Bahasa C
Bahasa C++
merupakan bahasa pemrograman yang dikembangkan dari bahasa C atau lebih sering
disebut sebagai anaknya bahasa C. bahasa C++ dikembangkan oleh ahli computer
yang bernama Bjarne Stroustrup di Bong Labs pada tahun 1980-an yang dirancang
bertujuan untuk mendukung fitur-fitur yang sudah ada pada bahasa C sebelumnya.
Berbeda dengan bahasa C yang merupakan bahasa pemrograman tingkat menengah
(middle level language) C++ merupakan bahasa pemrograman tingkat rendah (Low
level Language).
Meski
memiliki garis keturunan yang sama, bahasa C dan C++ berbeda. Berikut pebedaan
bahasa C dan C++.
·
C merupakan bahasa pemrograman prosedural,
sementara C++ merupakan bahasa pemrograman object oriented (OOP).
·
C menggunakan pendekatan top-down, sedangkan
C++ menggunakan pendekatan bottom-up.
·
C tidak mendukung fungsi virtual, sementara
C++ mendukung fungsi virtual.
·
C tidak mendukung fitur orientasi objek,
sementara C++ mendukung fitur orientasi objek.
·
Keamanan data di C kurang baik, sementara di
C++ lebih baik.
·
C merupakan bahasa middle level, sedangkat
C++ merupakan bahasa high level.
·
Program C dibagi menjadi module, sementara
program C++ dibagi menjadi class dan function.
·
Di C, Main tidak dapat dipanggil dari fungsi
lain, sedangkan di C++ Main dapat dipanggi dari fungsi lain
·
Namespaces tidak tersedia di C, sementara C++
mendukung Namespaces.
·
Exception handling tidak didukung di C,
sementara C++ mendukung Exceptiom handling.
·
Function overloading tidak dapat terjadi di
C, sementara di C++ Function overloading dapat terjadi.
·
Snanf() dan print() digunakan untuk Input /
output, sementara di C++ menggukanan cin dan cout untuk input output.
·
Ekstensi file dalam bentuk .c, sedangkan c++
ekstensi filenya adalah .cpp.
2.
Pemrograman
Prosedural dengan Pemrograman Berorientasi Ojek
Pemrograman
Prosedural adalah dilakukan dengan memberikan serangkaian perintah yang
berurutan. Paradigma ini didasari oleh konsep mesin Von Newman (stored program
concept) sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memori
instruksi dan memori data, masing-masing memori tersebut dapat diberi nama dan
nilai, selanjutnya instruksi akan dieksekusi satu persatu secara sekuensial
oleh sebuah proses tunggal. Program dalam paradigma ini berdasarkan pada
struktur informasi di dalam memori dan manipulasi dari informasi yang disimpan
tersebut. Kata kunci yang sering digunakan dalam paradigma ini adalah:
Algoritma + Struktur Data = Program
Contoh
bahasa pemrogaman yang menggunakan paradigma prosedural atau imperatif adalah:
Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran, dan C/C++
mendukung kegiatan pemrograman prosedural, karena itu mereka dinamakan juga
bahasa prosedural.
Berikut adalah Bahasa Pemograman Prosedural antara lain :
·
Cobol Turbo Prologproglanguages
·
C
·
Pascal
·
Delphi
·
Borland Delphi
Kelebihan
Prosedural :
§ Memiliki
algoritma pemecahan masalah yanag sederhana, standar dan efektif.
§ Penulisan
program memiliki struktur logika yang benar dan mudah dipahami
§ Program
hanya terdiri dari 3(tiga) struktur dasar, yaitu struktur berurutan, struktur
seleksi dan struktur perulangan.
§ Memiliki
dokumentasi yang baik.
§ Menghindari
penggunaan pernyataan GOTO, yang akan menjadikan program tidak terstruktur
dengan baik.
Kekurangan
Prosedural :
§ Program
cukup sulit untuk proses perawatan
§ Fungsi yang
tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara
keseluruhan.
§ Butuh usaha
yang keras untuk menterjemahkan Business Models dalam programming models.
§ Mungkin
dapat bekerja dengan baik pada saat terisolasi tapi tidak pada saat
terintegrasi dengan sistem lain.
Pemrograman berorientasi objek (PBO)
Pemrograman berorientasi objek merupakan paradigma pemrograman
yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini
dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika
pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan
mengirim pesan ke objek lainnya.
Sebagai
contoh, manusia adalah suatu objek yang memikiki data-data (misalnya: nama,
jenis kelamin, tinggi badan, berat badan, dan yang lainnya) dan juga method
(misalnya: cara bicara, cara berjalan, cara marah, dan sebagainya). Sehingga
dapat diambil suatu pokok dasar bahwa titik berat pemrograman berorientasi objek
adalah pembagian tanggung jawab kepada masing masing objek dan bukan pembagian
berdasarkan proses kerja.
Pemrograman berorientasi objek (Inggris: object-oriented
programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan
kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam
kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur.
Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek
lainnya.
Berikut adalah Bahasa Pemograman yang mendukung OOP antara lain :
·
Visual Foxpro
·
Java
·
C++
·
Pascal (bahasa pemrograman)
·
Visual Basic.NET
·
SIMULA
·
Smalltalk
·
Ruby
·
Python
·
PHP
·
C#
·
Delphi
·
Eiffel
·
Perl
·
Adobe Flash AS 3.0
Kelebihan
PBO:
§ Dalam
menggunakan sebuah class cukup sekali tidak perlu dituis berkali-kali.
§ Dapat
menambahkan fitur pada class tanpa mengedit class asal.
§ Menggunakan
objek tanpa harus tahu teknis yang ada didalamnya.
§ Data yang
digunakan dalam bentuk private hanya bisa di akses oleh fungsi lokasi, sehingga
tidak perlu khawatir untuk berpengaruh pada fungsi lainnya.
§ Dalam
pembuatan library sangat mudah dalam penggunaan. Library java kian bertambah
karena meningkatnya dalam pembangunan aplikasi sehingga library juga ikut
meningkat untuk memudahkan programer dalam pembangunan aplikasi. Serta tampilan
yang cukup rapi.
§ Memiliki
sintak seperti bahasa C maupun C++.
§ Dapat
mengatur memori secara langsung tanpa programer mengatur memori secara manual.
Kelemahan
PBO:
§ Memiliki
memori lebih besar dibandingkan dengan program terstruktur.
§ Mudah
mengembalikan kode jadi menjadi kode sumber sehingga algoritma yang digunakan
pun sulit untuk disembunyikan dan mudah dibajak.
Perbedaan Pemrograman Prosedural dengan Pemrograman Berorientasi
Object
Bagaimana kita membedakan mana yang pemrograman prosedural dan
mana yang pemrograman berorientasi object. Berikut sekilas perbedaannya :
Prosedural
|
PBO
|
Ø Diselesaikan
dalam bentuk prosedur atau struktur
Ø Program
merupakan urutan instruksi
Ø Program
dibagi ke dalam sub program atau
function
Ø Fokus utama
prosedur dan fungsi
Ø Fungsi dan
prosedur digunakan untuk memanipulasi data
Ø Data
bersifat pasif.
|
Ø Fungsi
data menjadi satu kesatuan yang disebut objek
Ø Objek-objek
dalam PBO bersifat aktif
Ø Program
bukan merupakan urutan-urutan tetapi terdiri atas objek-objek yang
bekerjasama untuk menyelesaikan masalah.
|
Dilihat dari pengertian diatas, pemrograman
terstruktur memilki beberapa sifat-sifat seperti :
Ø Memuat
teknik pemecahan masalah yang logis dan sistematis
Ø Memuat
algoritma yang efisien, efektif dan sederhana
Ø Program
disusun dengan logika yang mudah dipahami
Ø Tidak
menggunakan perintah GO-TO
Ø Biaya
pengujian program relatif rendah
Ø Memiliki
dokumentasi yang baik
Ø Biaya
perawatan dan dokumentasi yang dibutuhkan relatif rendah
3.
Struktur
Pemrograman Bahasa C
Bahasa C memiliki struktur pemrograman terdiri dari beberapa
bagian, yaitu : header, komentar, deklarasi konstanta dan atau variabel, fungsi
dan/atau prosedur dan program utama.
a. Header,
berisi include file(.hex),yaitu library (pustaka) yang akan digunakan dalam
pemrograman. header disini fungsinya adalah untuk memanggil fungsi library yang
akan kita gunakan.
b. Komentar
adalah sebagai detail, penanda, atau sebuah keterangan dari sebuah program atau
fungsi yang akan kita tulis. dalam bahasa C terdapat dua macam cara penulisan
komentar. yang pertama adalah "//" (tanpa tanda petik), yaitu
penulisan komentar dalam lingkup satu baris saja. dan yang kedua adalah
"/**/" (tanpa tanda petik),yaitu penulisan komentar untuk beberapa
baris.
c. Deklarasi
konstanta dan atau variabel, dalam bahasa C penulisan deklarasi suatu konstanta
maupun variabel ada dua macam, yang pertama adalah deklarasi kontanta dan
variabel global. deklarasi yang satu ini seperti namanya (global) yaitu
deklarasi yang isinya dapat kita panggil dalam jangkauan yang lebih luas, dan
yang kedua adalah deklarasi konstanta dan variabel lokal. deklarasi ini hanya
bisa diakses oleh satu program saja.
d. Fungsi atau
prosedur, sebuah sub program. dalam pembuatan sebuah program yang memiliki
fungsi banyak, atau membangun suatu program yang besar, fitur sub program akan
sangat membantu programmer maupun pengembang dalam proses maintenance program
tersebut. karena sub program disini bekerja sendiri dan kita hanya perlu
memanggil fungsi sub program dalam program utama sesuai dengan kebutuhan.
e. Program
utama adalah inti dari semua pemrograman dalam bahasa C. jika tidak ada program
utama maka program tidak akan bisa dijalankan. contoh penulisan bagian dari
struktur pemrograman bahasa C umumnya seperti diatas. supaya anda bisa lebih
paham tentang artikel diatas, anda bisa melihat contoh penulisan sebuah program
awal berbasis bahasa C dibawah ini.
#include “studio.h” // Memanggil Librabry
|
void belajarC()
//Fungsi atau sub program
{
prinft(“Senang beajar C\n\n”);
}
|
int main() //program
utama
{
int
i;
i =
12;
belajarC();
print(“Selamat
Beajar C\n”);
return
0;
}
|
Gambar 3.7 Struktur Bahasa C