Kamis, 29 November 2012

c dan c++



mengenal C atau C++
Bahasa C di rancang oleh Dennis M. Ritchie & Brian W Kernighan pada tahun 1972 dan dituangkan pada ‘C Reference Manual’ yang diterbitkan oleh Bell laboratories tahun 1974.
Bahasa C merupakan perkembangan bahasa BCPL (Basic combined Programming Langguage) yang dibuat oleh Dr. Martin Richard dari Cambridge University di Inggris, kemudian dikembangkan oleh Ken Thompson menjadi bahasa yang disebut dengan B. Dennis M. Ritche tertarik oleh Interpreter bahasa B yang ditulis oleh Ken Thompson tersebut dan mengembangkannya menjadi suatu compiter yang disebut dengan C.
Saat ini muncul bahasa C++ yang merupakan perkembangan dari C tersebut.
C++ diciptakan satu dekade setelah C. diciptakan oleh Bjarne Stroustrup, Laboratorium Bell, AT&T, pada tahun 1983. bahasa ini bersifat kompatibel dengan bahasa pendahulunya, C. pada mulanya  C++ disebut “a better C”. Nama C++ sendiri diberikan oleh Rick Mascitti pada musim panas 1983. adapun tanda ++ berasal dari nama operator penaikan pada bahasa C. Keistimaan yang sangat berarti pada C++ adalah karena bahasa ini mendukung pemrograman yang berorientasi obyek (PBO).Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrogram dalam membuat aplikasi.
Program C++ biasa ditulis dengan nama ekstensi .CPP (dari kata C plus plus). Pada saat pengkompilasian, program sumber (.CPP) bersama file-file header (berekstensi .H atau .HPP) akan diterjemahkan oleh oleh kompiler C++ menjadi kode objek (.OBJ). file obyek ini berupa dalam format biner (berkode 0 & 1)
Sebuah contoh program C yang sangat sederhana dapat dilihat dibawah ini.
#include <iostream.h>
#include <conio.h>
void main()
{
printf(“Hai…ini program C pertamaku…”) ;
}
Kalau yang ini bahasa C++
#include <iostream.h>
#include <conio.h>
void main()
{
cout << “Hai…ini program C++ pertamaku…” ;
}



Mengenal Tipe Data (Data Type)
Data type adalah sebuah aliran listrik yang memiliki karakteristik. Kenapa berkarakteristik? Dikarenakan akan digunakan sebagai addressing (pengalokasian) ketika suatu instruksi berjalan. Untuk memahami data type, Anda harus mulai mengenal jenis-jenis data type yang tersedia, berikut ini penjelasannya:


Jenis

Nama

Keterangan
 Integer
Byte 
Mengkonsumsi 8bit integer.

Int16
Mengkonsumsi 16bit integer. 

Int32 
Mengkonsumsi 32bit integer. 

Int64
Mengkonsumsi 64bit integer. 

SByte
Sama seperti byte, bedanya tidak termasuk cls compliant.

SInt16
Sama seperti Int16, bedanya tidak termasuk cls compliant. 

SInt32
Sama seperti Int32, bedanya tidak termasuk cls compliant. 

SInt64
Sama seperti Int64, bedanya tidak termasuk cls compliant.
Floating Point
Single
Mengkonsumsi nilai pecahan sebesar 32bit.

Double
Mengkonsumsi nilai pecahan sebesar 64bit.
Logical
Boolean 
Mengkonsumsi nilai sebesar 1bit. Dan itu sifatnya true atau false.
Lain-lainnya
Char
Mengkonsumsi 16bit character. Anda mungkin lebih mengenalnya dengan istilah symbol, semisal: ¶, Ã, à, dan lain-lainnya.

Decimal
Mengkonsumsi nilai pecahan sebesar 128bit.

IntPtr
Hanya mengkonsumsi nilai integer yang sesuai dengan platform yang ditempatinya, entah 32bit atau 64bit.

UIntPtr
Sama seperti IntPtr, bedanya tidak termasuk cls compliant.
Class Object
Object
Level tertinggi dari data type, dan mampu menampung apapun.

String
Sama seperti char. Bedanya lebih bersifat terbatas (fixed-length). Dan juga tidak bisa menampung symbol.

Sampai disini, Anda telah mengetahui secara umum mengenai data type. Dan mengenai penggunaannya, maka akan disesuaikan dengan logika yang berlaku. Contoh yang paling gampang adalah ketika menghitung diskon, berikut ini contoh kasusnya:

Soal:
Diketahui ada sebuah baju seharga Rp. 185,000,-. Dan baju tersebut didiskon sebesar 27%. Berapakah harga baju tersebut setelah didiskon?

Jawaban versi 1
185,000 – (185,000 x 27/100)
185,000 – 49,950
135,050
Jawaban versi 2
185,000 x (1 - 27/100) alias 185,000 x (1 - 0,27)
185,000 x 0,73
135,050

Pada contoh soal diatas, saya memberikan dua versi jawaban. Jawaban versi satu berkisar seputar penggunaan data type integer, anggaplah seperti itu, dikarenakan Anda tidak melihat adanya angka pecahan. Dan sekarang coba Anda bandingkan dengan jawaban versi dua, anggaplah dimana Anda sedang menggunakan data type floating-point. Dan bila Anda bingung darimana munculnya angka 1? Itu dikarenakan angka tertinggi dalam persentase adalah 100%, yang artinya 100% adalah 100/100 alias 1.

Dan sekarang kita akan membahas mengenai presisi. Dalam dunia pemrograman, suatu instruksi akan dikerjakan bila inputnya sudah ada, dan tentunya Anda sudah mengetahuinya bahwa input tersebut akan diproses secara berulang-ulang, sesuai dengan kondisi yang berlaku. Dan sekarang kita kembali lagi ke jawaban versi 1 dan 2. Pada jawaban versi 1, angka 185,000 akan selalu diulang-ulang. Beruntung angka yang dimasukan kecil, bagaimana kalau angka yang dimasukan besar, misal 1 milyar/triliyun. Kemungkinannya hanya ada dua. Pertama, kinerjanya akan mulai melambat, dikarenakan menampung angka yang cukup banyak. Dan yang kedua, kalau sudah tidak kuat menampung, jelas akan overheat atau hang.

Dan sekarang bandingkan dengan jawaban versi 2. Yang pertama kali dijadikan sasaran adalah kisaran diskonnya. Dan memang secara logika tidak ada orang yang berani memberi diskon 100% alias gratis. Dikarenakan bermain pada kisaran 100, maka angka pecahan dibelakang komanya juga tidak banyak, hanya 2 digit dibelakang koma. Dengan begini, setelah ketahuan persentase diskonnya, maka akan mudah mengalikannya ke harga baju, sekalipun seharga 1 milyar/triliyun.

Bilamana kedua rumus ini diperlombakan, dalam waktu yang lama dan juga input yang dimasukkan kian meninggi. Maka rumus dari jawaban versi 2 akan unggul, dikarenakan memiliki kadar presisi yang tinggi. Itu sebanya logika sangat penting. Bila Anda menganggap remeh suatu logika, maka bersiap-siaplah. Program yang Anda buat akan lelet ketika dijalankan, dan nantinya tidak ada yang mau merespon program buatan Anda.