BLOGGER TEMPLATES AND TWITTER BACKGROUNDS »

Selasa, 03 November 2009

history bahasa C

1. Sejarah perkembangan bahasa C
Bahasa C dirancang oleh Dennis M. Ritchie pada tahun 1972 dan dituangkan pada “C Reference Manual” yang diterbitkan oleh Bell Laboratories pada tahun 1974. Bahasa C merupakan perkembangan bahasa BCPL (Basic Combined Programming Language) yang dibuat oleh Dr. Martin Richard dari Cambridge University di Ingggris, kemudian dikembangkan oleh Ken Thompson menjadi bahasa yang disebut dengan B. Dennis M. Ritchie tertarik oleh interpreter bahasa B yang ditulis Ken Thompson tersebut dan mengembangkannya menjadi suatu compiler yang disebut dengan C. Nama C ini dipilih karena merupakan urutan selanjutnya dari B pada alphabetic. Definisi dari bahasa C dikelurkan pada tahun 1979 dalam buku “The Programming Language” oleh Brian Kerninghan dan Dennis M. Ritchie. Sejak saaat itu masyarakat mulai mengenal adanya suatu bahsa yang baik yaitu C. Hingga sekarang telah hadir puluhan versi dari compiler C.
Perkembangan bahasa di komputer mikro dimulai tahun 1978 yaitu Tiny-C yang ditulis oleh Tom Gibson. Seperti versi dari C sebelumnya, Tiny-C ditulis bukan untuk tujuan komersial melainkan digunakan Tom Gibson untuk mengajarkan anaknya mengenai bahasa C. Tom menyadari nilai komersial dari usahanya dan mulai memasarkan produknya. Tetangga Tom Gibson yaitu George Eberhart (penulis bahasa CI-C68) menulis compiler tiny-c tersebut. Tiny-c kemudian banyak dikembangkan versi bahasa C lainnya yaitu Small-C, C-80, QC, CW/C dan banyak lainnya.
Jenis bahasa C lain yang ditulis untuk komputer mikro adalah BD system C (BDS C). Compiler dari BDS C merupakan hasil kerja dari Leor Zolman. Sewaktu dia berumur 17 tahun Leor Zolman menulis suatu permainan Othello di system operasi UNIX. Pertama kali program Othello dijalankan kurang sempurna, kemudian Leor Zolman menulis bagian dari bahasa C untuk menunjang program Othello tersebut. Setelah mencoba compiler C tersebut Leor Zolman menyadari produknya dapat dipasarkan, yang kemudian banyak digunakan di komputer mikro. Sehingga mulai banyak ditulis versi lain bahasa C yang didasarkan pada BDS C.Versi-versi yang paling popular untuk koputer mikro adalah MS-C (Microsoft C) dan Turbo C.
Sampai tahun 1982 sistem operasi CP/M dan MP/M merupakan system operasi yang dominan pada komputer mikro. Mulai awal tahun 1983 sistem operasi yang mulai banyak dipergunakan oleh komputermikro adalah MS-DOS dan bahsa C juga dapat dijanlankan denagn system operasi ini. Jadi untuk mikro komputer, system operasi yang dapat menjalankan bahasa C adalah CP/M dan MP/M, MS-DOS dan PC-DOS serta UNIX.

Bahasa pemrograman C merupakan bahasa pemrograman yang bersifat umum (General Purpose Language), tidak dikhususkan untuk bidang aplikasi tertentu. Bahasa pemrograman ini digolongkan sebagai bahasa pemrograman tingkat menengah (medium level language). Hal ini dikarenakan Bahasa C memiliki kemampuan dalam mengakses mesin komputer yang mendekati kemampuan bahasa rakitan, tetapi mudah dipelajari dan digunakan seperti halnya bahasa pemrograman tingkat tinggi. Selain itu bahasa pemrograman C memilki karakteristik lain seperti : hemat ekspresi, alur kontrol, menggunakan struktur data modern, dan kaya dengan operator.


Versi Bahasa C
C K&R
Pada tahun 1978, Dennis Ritchie dan Brian Kernighan menerbitkan edisi pertama dari buku yang berjudul The C Programming Language. Buku ini hingga sekarang diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang dicontohkan dalam buku ini.
Versi bahasa C yang ditampilkan dalam buku ini kemudian dikenal dalam kalangan pemrogram sebagai C K&R. Pada buku The C Programming Language edisi kedua kemudian melingkupi ANSI C yang diperkenalkan belakangan.
ANSI C & ISO C
Pada perkembangannya, muncul versi-versi C lain yang pada akhirnya membuat kebingungan di kalangan pemrogram. Karena itu, pada tahun 1983, American National Standards Institute (ANSI) membuat sebuah komite untuk membuat sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI X3.159-1989, versi ini seringkali dinamakan ANSI C, atau kadang-kadang C89.
Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization (ISO) dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini seringkali dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama.
C99
Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk memperbanyak dukungan kepada pemrograman berorientasi objek, terutama setelah C++, yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemrogram

Beberapa alasan mengapa memakai bahasa C

1. C adalah bahasa pemrograman yang paling populer saat ini, Dengan banyaknya programmer bahasa C, membawa pengaruh semakin mudahnya kita menemukan pemecahan masalah yang kita dapatkan ketika menulis program dalam bahasa C. Pengaruh positif lain adalah semakin banyaknya kompiler yang dikembangkan untuk berbagai platform (berpengaruh ke portabilitas).

2. C adalah bahasa pemrograman yang memiliki portabilitas tinggi, Program C yang kita tulis untuk satu jenis platform, bisa kita kompile dan jalankan di platform lain dengan tanpa ataupun hanya sedikit perubahan. Ini bisa diwujudkan dengan adanya standarisasi ANSI untuk C.

3. C adalah bahasa pemrograman yang fleksibel, Dengan menguasai bahasa C, kita bisa menulis dan mengembangkan berbagai jenis program mulai dari operating system, word processor, graphic processor, spreadsheets, ataupun kompiler untuk suatu bahasa pemrograman.

2. Variabel bahasa C

a. variabel lokal

Variabel lokal,yaitu variabel yang dideklarasikan di dalam fungsi.
Variabel lokal mempunyai sifat :
a. Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan hilang (dari memori) ketika eksekusi fungsi berahir.
b. Hanya dikenal oleh fungsi tempat variabel dideklarasikan.
c. Tidak ada inisialisasi secara otomatis(saat variabel diciptakan nilainya tidak tentu).
Contoh variabel lokal :


void fungsi y(void)
{
int x; —> x adalah variable lokal untuk fungsi y.
:
:
}

b. variabel Global

Variabel Global, yaitu variabel yang dideklarasikan diluar fungsi.
Variabel global mempunyai sifat :
a. Dapat diakses/dipanggil oleh semua fungsi.
b. Jika tidak di beri nilai awal,secara otomatis diinisialisasikan dengan nilai 0.
Contoh variabel lokal :

int i=10; —> variabel global
void tambah (void)
{
i++;
}

main()
{
:
tambah();
:
getch();

3. Tipe data bahasa C

Bahasa C menyediakan lima macam tipe data dasar, yaitu tipe data integer (nilai numerik bulat yang dideklarasikan dengan int), floating-point (nilai numerik pecahan ketepatan tunggal yang dideklarasikan dengan float), double-precision (nilai numerik pecahan ketepatan ganda yang dideklarasikan dengan double), karakter (dideklarasikan dengan char), dan kosong (dideklarasikan dengan void). Int, float, double dan char dapat dikombinasikan dengan pengubah (modifier) signed, unsigned, long, dan short. Hasil dari kombinasi tersebut diantaranya dapat dilihat pada tabel berikut :

Tipe Data


Length


Range

unsigned char


8 bit


0 s/d 255

char


8 bit


-128 s/d 127

enum


16 bit


-32,768 s/d 32,767

unsigned int


16 bit


0 s/d 65,535

short int


16 bit


-32,768 s/d 32,767

int


16 bit


-32,768 s/d 32,767

unsigned long


16 bit


0 s/d 4,294,967,295

long


32 bit


-2,147,483,648 s/d 2,147,483,647

float


32 bit


3.4*(10**-38) s/d 3.4*(10**+38)

unsigned char


32 bit


1.7*(10**-308) s/d 1.7*(10**+308)

unsigned char


32 bit


3.4*(10**-4932 s/d 1.1*(10**+4932)

Tipe Data Numerik Integer

Karakteristik dari nilai numerik integer adalah sebagai berikut :

· Nilai numerik pecahan yang disimpan di tempat nilai integer akan dibulatkan ke bawah. Misalkan nilai 34.56 disimpan dan ditampilkan sebagai nilai 34 untuk variabel numerik integer.

· Nilai numerik integer negatif disimpan di memori dengan cara komplemen dua. Misal nilai numerik 7 akan disimpan di memori untuk tipe numerik integer 16 bit dalam bentuk nilai binary 111 dengan perhitungan :

1X22 = 1 x 4 = 4
1X21 = 1 x 2 = 2
1X20 = 1 x 1 = 1
---------------- +
7

· Nilai variabel yang melebihi jangkauannya akan dipotong sepanjang jumlah bit yang tersedia.
Tipe Data Karakter

Variabel tipe karakter dideklarasikan dengan tipe char atau signed char atau unsigned char dan dimaksudkan untuk menampung nilai sebuah huruf (karakter). Kode format “%c” digunakan untuk menampilkan nilai tipe char. Karakter yang disimpan dimemori dengan deklarasi tipe char menempati posisi 1 byte (8 bit) yang diwakili kode ASCII. Misal karakter “A” dalam memori akan diwakilkan dengan nilai biner 01000001. Nilai binari itu dalam desimal bernilai 65.
Tipe Data String

Bahasa C tidak menyediakan deklarasi variabel untuk tipe string. Nilai string adalah kumpulan dari nilai- nilai karakter yang berurutan dalam bentuk larik dimensi satu. Larik dimensi satu dideklarasikan dengan menyebutkan jumlah dari elemnnya yang ditulis diantara operator “[]” (bahasa C menganggap “[]” sebagai operator. Kode format untuk menampilkan nilai strng adalah “%s”.

4. Konstanta bahasa C

Konstanta bahasa C Konstanta adalah suatu nilai yang tidak berubah selama proses dari program. Misalnya suatu statemen ungkapan sebagai berikut :

Fahrenheit=Celcius*1.8+32;

Celcius dan Fahrenheit adalah variabel yang nilainya dapat berubah selama proses program. Nilai Celcius dapat berubah tergantung dari nilai yang dimasukkan sebagai input data dan nilai Fahrenheit akan berubah tergantung nilai dari Celcius. Nilai 1.8 dan 32 sebaliknya tidak akan pernah berubah di dalam proses program, karena nilai- nilai ini adalah nilai- nilai konstanta.
Konstanta Numerik Integer

Konstanta numerik integer merupakan nilai numerik bilangan bulat. Konstantakonstanta inetegr dapat ditulis dalam bentuk desimal, heksadesimal, maupun oktal. Berikut contoh dalam bentuk nilai desimal :

123


(integer bertanda)

-123


(integer bertanda)

37000U


(integer tidak bertanda)

-75000L


(integer panjang bertanda)

418598821UL


(integer panjang tidak bertanda)

Bila user ingin suatu konstan diinterpretasikan sebagai oktal,tambahkan digit 0 didepan.

Contoh :
015 ekivalen dengan 13 dalam decimal

Jika yang diinginkan bilangan hexadesimal, tambahkan 0x di depan.

Contoh :
0x20 ekivalen dengan 32
Konstanta Numerik Pecahan

Merupakan nilai numerik yang dapat mempunyai nilai pecahan dibelakang titik desimal. Konstanta numerik pecahan juga dapat ditulis dengan notasi saintifik (dengan notasi e atau E). Berikut contoh-contoh konstanta numerik pecahan :

123.

-123.00

12.34e29
Konstanta Karakter dan Konstanta String

Konstanta karakter merupakan nilai sebuah karakter yang ditulis diantara tanda petik tunggal. Konstanta string merupakan nilai sebuah atau lebih karakter yang ditulis dalam tanda petik ganda. Pengertian karakter adalah semua karakter yang sah seperti yang didefinisikan oleh kode ASCII, yaitu dapat meliputi huruf(a samapi z), digit (0 sampai 9), karakter-karakter khusus(misal +=$). Berikut contoh dari konstanta-konstanta karakter dan string :

‘a’


konstanta karakter huruf a bernilai ASCII 97

‘7′


konstanta karakter huruf a bernilai ASCII 55

“a”


konstanta string huruf a
Konstanta Karakter Escape

Konstanta ini banyak digunakan distatemen-statemen untuk menampilkan hasil, misal membuat kursor kemablike kolom pertama(carriage return).

Karakter


Keterangan

\n


pindah kursor ke baris baru

\t


horizontal tab, pindah kursor ke posisi tab

\a


membunyikan bel sistem atau beep

\


mencetak atau menampilkan tanda \ (backslash)

\”


mencetak atau menampilkan “

5. Struktur dasar kode pemrograman

Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari program harus dimengerti terlebih dahulu. Tiap bahasa komputer mempunyai struktur program yang berbeda. Jika struktur dari program tidak diketahui, maka akan sulit bagi pemula untuk memulai menulis suatu program dengan bahasa yang bersangkutan.

Struktur dari program C terdiri dari koleksi satu / lebih fungsi-fungsi. Fungsi pertama yang harus ada di program C sudah ditentukan namanya, yaitu bernama main(). Suatu fungsi didalam program C dibuka dengan kurung kurawal buka ({) dan ditutup dengan kurung kurawal tutup (}). Diantara kurung kurawal dapat dituliskan statemen-statemen program C dan pada setiap statemen diakhiri dengan tanda titik koma (;). Berikut adalah struktur dari program C :

http://elearning.gunadarma.ac.id/integrated-lab/assets/ebook/c/gbr1-2.jpg

Bahasa C dikatakan sebagai bahasa pemrograman terstruktur, karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagian (subroutine). Fungsi-fungsi selain fungsi utama merupakan program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan pada file pustaka dan akan dipakai di suatu program, maka nama judulnya (header file) harus dilibatkan di dalam program yang menggunakan preprocessor directive #include.

Header file merupakan file yang berisi dengan prototype (judul, nama, sintak) dari sekumpulan fungsi- fungsi pustaka tertentu. Jadi file ini hanya berisi dengan prototype dari fungsi- fungsi pustaka, sedangkan fungsi-fungsi pustakanya sendiri disimpan dalam file pustaka (library file dengan nama extension file-nya adalah .LIB) Misalnya prototype dari fungsi- fungsi pustaka printf() dan scanf() terdapat di file stdio.h, sehingga jika fungsi-fungsi ini digunakan di program, maka nama file judulnya harus dilibatkan dengan menggunakan preposcessor #include. File judul stdio.h berisi prototype fungsifungsi pustaka untuk operasi input dan output standar. Ada dua cara melibatkan file judul disuatu program C, yaitu :

#include
atau
#include”stdio.h”

File judul selain berisi dengan prototype dari fungsi-fungsi pustaka, juga umumnya berisi dengan konstanta-konstanta terdefinisi dan makro-makro. Misalnya nama konstanta terdefinisi M_PI telah didefinisikan di file judul math.h oleh Turbo-C. Selanjutnya untuk menggunakan nilai phi, nama konstanta M_PI dapat digunakan yang telah berisi dengan nilai konstanta 3.14159265358979323846.

0 komentar: