BAHASA C


Bahasa pemrograman berkembang sangat pesat dewasa ini. Hal ini terbukti dari semakin banyaknya bahasa pemrograman hadir seiring perkembangan teknologi informasi. Bahasa pemrograman dibuat dengan tujuan membantu manusia dalam membuat program menggunakan editor tertentu. Untuk dapat dijalankan di komputer tertentu, kode program harus dikomplikasi atau diinterpretasi terlebih dahulu. Kini bahasa pemrograman tidak hanya dibuat untuk satu platform saja, melainkan bisa antar platform, yaitu platform desktop, web dan mobile. Bahkan kini bahasa pemrograman juga dapat dijalakan pada mesin komputer dan sistem operasi yang berbeda (Rahmat, 2010).
Sebelum melangkah lebih jauh, perlu diketahui terlebih dahulu sejarah perkembangan bahasa pemrograman ditinjau dari generasinya:
1.      Bahasa Pemrograman Generasi Kesatu (Bahasa Mesin)
Bahasa pemrograman generasi kesatu merupakan bahasa pemrograman yang sangat dasar dan kuno. Kini bahasa pemrograman ini sudah hampir tidak lagi digunakan oleh para programmer karena sangat sulit untuk menggunakannya. Bahasa generasi pertama ini sering disebut dengan istilah bahasa mesin (machine code) yang berarti bahasa biner: kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh mesin komputer berarsitektur tertentu. Kumpulan kode dalam bahasa mesin itu dapat digabungkan, disebut sebagai microcode.
Kelebihan : Eksekusi cepat
Kelemahan : Sulit dipelajari manusia
2.      Bahasa Pemrograman Generasi Kedua (Bahasa Assembly)
Bahasa pemrograman generasi kedua ini juga sudah mulai ditinggalkan oleh para programmer yang tidak langsung berhubungan dengan perangkat keras. Bahasa pemrograman ini dikenal dengan istilah bahasa assembly (assembly language) dan banyak digunakan pada pemrograman perangkat keras seperti robotika. Pada dasarnya bahasa ini merupakan bahasa mesin yang disimbolkan dengan bahasa Inggris sederhana sehingga memudahkan programmer. Beberapa operator, misalnya MUL untuk perkalian, SUB untuk perkurangan, ADD untuk penjumlahan, DIV untuk pembagian, dan lain – lain. Dengan menggunakan bahasa ini, programmer dapat membuat standar yang cukup baku untuk arsitektur komputer yang beraneka ragam sehingga dapat dibuat instruksi-instruksi bahasa assembly yang generik untuk semua arsitektur komputer.
Kelebihan : Eksekusi cepat, lebih mudah dipelajari dibanding bahasa mesin, file kecil.
Kelemahan : Sulit dipelajari, program sangat panjang.
3.      Bahasa Pemrograman Generasi Ketiga
Bahasa pemrograman generasi ketiga sampai saat ini masih sering digunakan oleh para programmer untuk membuat berbagai aplikasi aras tinggi maupun rendah. Bahasa pemrograman ini dibuat dengan maksud untuk mengatasi kelemahan bahasa assembly, sehingga ditulis dengan bahasa yang dapat dimengerti oleh manusia, yaitu bahasa Inggris. Pada bahasa pemrograman generasi ini mulai dikenal istilah sintaks (syntax). Bahasa pemrograman ini menyediakan banyak kemudahan dalam pembuatan program, seperti variabel, tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur, dan lain-lain. Contoh bahasa pemrograman generasi ketiga ini adalah C, Basic, Fortan, dan Pascal.
Kelebihan : Mudah dipelajari, mendekati permasalahan yang akan dipecahkan, kode program pendek.
Kelemahan : Eksekusi lambat.
4.      Bahasa Pemrograman Generasi Keempat
Bahasa pemrograman generasi keempat dibuat untuk menyelesaikan berbagai persoalan pemrograman yang kompleks dan spesifik. Bahasa pemrograman ini dikenal sebagai specific problem oriented. Bahasa pemrograman generasi ini ada yang bersifat visual, memiliki tool builder yang canggih, dapat berkomunikasi dengan peralatan lain yang spesifik, misalnya basis data. Contoh bahasa pemrograman generasi ini adalah SQL, HTML, Visual Basic, Delphi dan Fox Pro.
Ada beberapa jenis bahasa pemrograman generasi keempat ini, yaitu:
a.       Report Generators, yaitu bahasa pemrograman yang dipakai untuk membuat laporan tercetak atau dalam bentuk kode HTML maupun file PDF, dengan format yang dapat diatur sesuai kebutuhan. Contoh : Oracle Reports dan Crystal Reports.
b.      Forms Generators, yaitu bahasa yang dipakai untuk membuat antarmuka (form) yang dipakai untuk komunikasi antara manusia dan komputer. Bahasa pemrograman ini sering disebut bahasa pemrograman antar muka (GUI Creator). Contoh : Visual Basic, Form Builder, Visual Foxpro, Borland Delphi dan Visual Studio.NET.
c.       Computer Aided Software Engineering (CASE), yaitu bahasa yang dibuat dengan mendefenisikan suatu spesifikasi di atas layar (semacam diagram) dan menspesifikasikan suatu proses tertentu. Contoh : Relational Rose, Oracle Designer, Poseidon dan sebagainya.
d.      Database Query Language, yaitu bahasa yang dipakai untuk berkomunikasi dengan mesin database, yang berupa pendefenisian data (DDL), manipulasi data (DML), kontrol data (DCL), dan sebagainya. Contoh : SQL, Oracle SQL*Plus, Progress 4GL dan sebagainya.
Kelebihan : Berorientasi pada masalah secara langsung.
Kelemahan : Sangat spesifik sehingga hanya bisa berfungsi untuk suatu hal tertentu saja.
5.      Bahasa Pemrograman Generasi Kelima
Bahasa pemrograman ini berbasis pada pemecahan masalah dengan batasan-batasan (constraints) yang diberikan pada sebuah program, tidak menggunakan algoritma tertentu. Bahasa pemrograman ini dipakai agar komputer dapat menyelesaikan suatu masalah berdasarkan constraint yang diberikan. Pemrograman cukup mendefenisikan masalah yang akan diselesaikan beserta kondisinya tanpa perlu memikirkan cara mengimplementasikan program atau algoritma pemecahannya. Bahasa program ini pada umunya digunakan pada penelitian kecerdasan buatan. Pada tahun 1990 bahasa pemrograman generasi kelima ini diprediksi akan menjadi bahasa pemrograman masa depan, bahkan ada yang memprediksi bahwa bahasa pemrograman ini akan menyingkirkan bahasa-bahasa pemrograman lain, terutama untuk pengembangan sistem, kecuali bahasa pemrograman aras rendah. Contoh : Prolog, OPSS, dan sebagainya.
Kelebihan : Sangat sesuai untuk pemecahan masalah sistem cerdas.
Kekurangan : Membutuhkan pengetahuan lebih untuk membuat program dengan bahasa level ini (Rahmat, 2010).
Bahasa C merupakan bahasa pemrograman tingkat menengah. Pada tahun 1972 bahasa C pertama kali dirancang oleh Dennis M. Ritchie di Bell Laboratories. Pada tahun 1978 Dennis dan Brian W. Kernighan mempublikasikan bahasa C melalui The C Programming Language sehingga bahasa C dikenal banyak orang. Pada tahun 1989 akhirnya bahasa C distandarisasi ANSI (American National Standard Institute) sehingga menjadi bahasa pemrograman standar hingga saat ini. Kompilernya dapat dibuat pada beberapa platform berbeda (Rahmat, 2010).
Bahasa C disebut sebagai bahasa pemrograman terstruktur, fungsional karena strukturnya menggunakan fungsi–fungsi sebagai program bagian (subroutine/module). Fungsi selain fungsi utama disebut subroutine/module dan ditulis setelah fungsi utama (main) atau diletakkan pada file pustaka (library). Jika fungsi-fungsi diletakkan pada file pustaka dan akan dipakai pada suatu program, maka nama file header-nya harus dilibatkan dalam program menggunakan preprocessor derictive #include. Suatu program C minimal harus memiliki fungsi main(). Tanpa fungsi itu maka program C tidak akan dapat dieksekusi, walau dapat dikomplikasi (Rahmat, 2010).
Program Bahasa C tidak mengenal aturan penulisan di kolom tertentu, jadi bisa dimulai dari kolom manapun. Namun demikian, untuk mempermudah pembacaan program dan untuk keperluan dokumentasi, sebaiknya penulisan bahasa C diatur sedemikian rupa sehingga mudah dan enak dibaca (Sangdedi, 2009).

Tipe Data
Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif.
Tabel 1. Tipe data dasar (Sangdedi, 2009)
No
Tipe Data
Ukuran
Range (Jangkauan)
Format
Keterangan
1
char
1 byte
128 s/d 127
%c
Karakter/string
2
int
2 byte
32768 s/d 32767
%i , %d
Integer/bilangan bulat
3
float
4 byte
3.4E-38 s/d 3.4E+38
%f
Float/pecahan
4
double
8 byte
1.7E-308 s/d 1.7+308
%lf
Pecahan presisi ganda
5
void
0 byte
-
-
Tidak bertipe

Konstanta
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program
berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter dan string. Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ‘Bahasa C’. Selain itu, bahasa C juga menyediakan beberapa karakter khusus yang disebut karakter escape, antara lain :
\a : untuk bunyi bell (alert)
\b : mundur satu spasi (backspace)
\f : ganti halaman (form feed)
\n : ganti baris baru (new line)
\r : ke kolom pertama, baris yang sama (carriage return)
\v : tabulasi vertical
\0 : nilai kosong (null)
\’ : karakter petik tunggal
\” : karakter petik ganda
\\ : karakter garis miring

Variable
Variabel adalah suatu nama yang menyatakan tempat dalam memori komputer yang digunakan untuk menyimpan suatu nilai dan nilainya dapat diubah sewaktu-waktu ketika program sedang dieksekusi (Kadir, 2005).

Deklarasi Variable
Pendeklarasian variabel digunakan untuk memesan lokasi dalam memori komputer dan menentukan tipe dari data yang dapat disimpan dalam variabel. Bentuk pendeklarasiannya adalah sebagai berikut:
            tipe_data nama variabel;
Tabel 2. Contoh deklarasi Variabel (Kadir, 2005)
Deklarasi
Keterangan
Int n;
Variabel n bertipe int (untuk menyimpan bilangan bulat)
Char ch;
Variabel ch bertipe char (dipakai untuk menyimpan sebuah karakter)
Long int jum_penduduk;
Variabel jum_penduduk bertipe long int (dipakai untuk menyimpan bilangan bulat dengan nilai mencapai sekitar 2 milyar)
Double jarak;
Variabel jarak bertipe double (dipakai untuk menyimpan sebuah bilangan real dengan kepresisian tinggi
Jika ada beberapa variabel dengan tipe yang sama, pendeklarasian dapat dilakukan dengan menggunakan sebuah pernyataan (Kadir, 2005).
Di dalam melakukan pemrograman tentu saja programmer akan melakukan input dan output program. Input berarti programmer memasukkan data ke dalam program atau melakukan inisialisasi, sedangkan output berarti program akan menghasilkan keluaran berupa data yang ditampilkan ke layar, tercetak di printer, keluar di speaker, dan keluaran lainnya. Suatu program yang dibuat pasti menghasilkan ouput. Di dalam bahasa C sudah terdapat fungsi-fungsi bawaan (standard function) yang berkaitan dan mengatur input dan output sehingga programmer hanya perlu menggunakan saja (Rahmat, 2010).
Dalam input tak terformat, programmer tidak bisa memasukkan data dengan bentuk tertentu, misalnya dalam bentuk desimal dengan ketelitian 2 angka di belakang koma. Input tak berformat pada bahas C merupakan struktur input yang paling sederhana dan mudah dilakukan. Pemasukan data dilakukan dengan menggunakan fungsi-fungsi pustaka dari file header stdio.h, yaitu
1.      scanf()
Jika kita ingin memasukkan data dari keyboard, kita dapat menggunakan fungsi scanf ini. Data selanjutnya akan didefenisikan sebagai data variabel. Jika fungsi scanf ini digunakan untuk membaca data dengan tipe array, karakter yang selanjutnya kita sebut dengan istilah string, maka fungsi ini hanya akan membaca data sampai ditemukan blank. Dengan demikian nilai setelah blank dianggap bukan lagi nilai dari variabel yang akan mengisi variabel tersebut. Fungsi scanf lebih cocok digunakan untuk data-data numerik. Fungi scanf jika digunakan maka harus disertai operator penanda alamat & didepan nama variabel yang digunakan untuk menyimpan data tersebut. Jika tidak mempergunakan operator alamat & ini maka ketika data diinputkan akan muncul pesan error Segmentation fault. Sedangkan untuk data string tidak perlu menggunakan operator ini. Tetapi jika digunakan tidak menjadi masalah. Fungsi scanf biasanya digunakan bersama-sama dengan fungsi printf (Maing, 2008).
2.      gets()
Jika kita menggunakan fungsi scanf untuk membaca data yang bertipe string, maka data tersebut hanya akan dibaca sampai ditemukan spasi. Misalnya nama “naufal rasendriya” hanya kata “naufal” yang akan dibaca oleh program, sedangkan kata “resendriya” tidak terbaca karena sebelum kata tersebut program telah menemukan spasi yang mengakibatkan data ke varibel yang menyimpan nama dianggap selesai (Maing, 2008).
Penulisan data pula dapat dilakukan dengan  menggunakan fungsi-fungsi pustaka dari file header conio.h, yaitu getche(), getchar() dan getch(). Dalam struktur input terformat, programmer dapat memasukkan data ke dalam program dalam bentuk tertentu yang telah didefenisikan oleh bahasa C. Dengan menggunakan bentuk ini, maka programmer dapat memasukkan data yang lebih baik, rapi dan tertib. Struktur input terformat sedikit lebih kompleks dibanding struktur input tidak terformat. Memasukkan data terformat berarti data yang diterima akan diatur bentuk dan lebarnya dengan kode-kode format menggunakan fungsi scanf(). Fungsi scanf() menggunakan pengiriman nilai secara acuan, yang dalam bahasa C dilakukan dengan pointer. Oleh karena itu variabel-variabel yang dipakai harus berupa variabel pointer  yaitu diawali dengan “&” (Rahmat, 2010).

0 komentar:

Posting Komentar