Selasa, 13 Oktober 2009

Input Output Strem (I/O C++)

Mengapa C++ memiliki sistem I/O sendiri
jika anda telah memprogram bahasa lain,anda tahu bahwa C memiliki satu sisitem I/O yang sangat kuat ,(kenyataannya mungkin bisa dikatakan di antara bahasa struktur dunia,sistem I/O C tidak pararel ). Melihat kekuatan fungsi I/O C, anda mungkin bertanya mengapa C++ menjelasakan fungsi I/O nya sendiri, yang sebagian besar meniru apa yg telas ada di dalam C. Jawabannya adalah sisitem I/O C tidak memberikan dukungan kepada objek yang diminta oleh pemakai. Misalnya,dalam C,jika anda menciptakan truktur berikut :

struct my struct {
int count;
char s [80];
double balance;
}crust;

Maka tidak ada cara untuk membiasakan atau memperluas sisitem I/O C sehingga dia akan tahu atau bisa melakukan operasi I/O secara langsung pada satu variable my struct. Yaitu anda tidak dapat menciptakan suatau specifier format baru yang dijelaskan untuk data jenis My_struct dan menggunakannya untuk memanggil printf().Namun dengan menggunakan pendekatan C++ I/O,kita mungkin bisa mengoverload operator <> sehingga mereka tahuu mengenai kelas yg sedang anda ciptakan.ini mencakup kedua operasi I/O console yang telah anda gunakan dalam 4 bab terdahulu dan file I/O.(Console dan file I/O berhubungan dalam C++ seperti halnya dalam C dan sebenarnya dua sisi dari satu koin).
Meskipun tidak ada operasi I/O yang bisa anda lakukan dengan menggunakan sistem C, kenyataannya bahwa sistem C++ bisa meningkatkan fleksibilitaas dan membantu mencegah adanya bugs.untuk melihat bagaimana kerjanya,perhatikan panggilan pada printf():

printf ("%d%s","hello",10);

Dalam panggilan ini string dan interger dimasukkan kedalam daftar argument; %d akan cocok dengan hello dan %d dengan 10. Namun secara tekhnis ini bukan eroro dari C. Bisa dimengerti bahwa didalam beberapa situasi yang sangat luar biasa anda ingin menggunakan panggilan pada printf() seperti yang ditunjukkan .(Bagaimanapu juga , C dirancang untuk memungkinkan anda melakukan apa yang anda inginkan ,apakah itu mempunyai makna atau tidak). Namun mungkin juga panggilan pada printf() ini suatu eror. Singkatnya, jika kita memanggil printf(),C tidak mempunyai cara untuk melakukan pengecekkantipe yang kuat. Namun dalam C++operasi I/O untuk semua tipe terpasang dijelaskan berkaitan dengan operator <> ,sehingga tidak akan pembalikan(inversi) seperti yang terlihat pada pangilan printf().Melainkan operasi yang benar secara otomatis ditentukan oleh tipe operand. bentuk ini bisa juga diperluas ke objek yang mengarah pada pemakai.

Fasilitas I/O tidak merupakan bagian dari bahasa C++, tetapi diiplementasikan sebagai
suatu library dalam C++.Pada level paling bawah, suatu file diinterpretasikan sebagai suatu barisan atau stream dari bytes. Pada level ini konsep tipe data tidak ada. Sedangkan pada level user, suatu
file terdiri dari suatu barisan data dari satu atau lebih tipe karakter karakter, nilai-nilai
numerik, dan obyek-obyek kelas.
Pustaka iostream menyadiakan sejumlah operasi untuk menangani baca dan tulis tipe-tipe
data baku. Pemrograman dapat memperluas operasi-operasi itu untuk menangani tipe
tipe kelas yang dibuatnya. Operasi input dan output didukung oleh kelas istream (input
stream ) dan kelas ostream (output stream). Operasi output dilakukan oleh operator leftshift
atau operator insertion (<<), sedangkan operasi input dilakukan oleh operator rightshift atau operator extraction (>>).

Empat objek stream tersedia bagi pengguna:
1. cin, suatu objek dari kelas istream yang dikaitkan dengan standard-input.
2. cout, suatu objek dari kelas ostream yang dikaitkan dengan standard-output.
3. cerr, suatu objek dari kelas ostream yang dikaitkan dengan standard-error dengan
unbuffered output
4. clog, suatu objek dari kelas ostream yang dikaitkan dengan standard-error dengan
buffered output

Program yang memakai pustaka iostream harus meng-include file iostream.h. Pengguna
dapat mengaitkan suatu file tertentu ke program dengan mendefinisikan suatu objek dari
salah satu kelas berikut ini:
1. ifstream
- turunan dari istream.
- mengaitkan suatu file ke program untuk input.
2. ofstream
- turunan dari ostream
- mengaitkan suatu file ke program untuk output.
3. fstream
- turunan dari iostream
- mengaitkan suatu file ke program untuk input dan output.

Pustaka iostream juga mendukung pengaturan array karakter. Ada dua kelas untuk itu,
yaitu:
1. istrstream
- turunan dari ostream
- menyimpan karakter ke suatu array.
2. ostrstream
- turunan dari ostream
- menyimpan karakter ke suatu array.


Jumat, 09 Oktober 2009

Coding sederhana

#include
#include

void main()
{
clrscr();
int x = 10;
float y = 10.1;
char z = 'a';
cout << "x = " << x << endl; cout << "y = " << y << endl; cout << "z = " << z << endl; getch();
}

Selasa, 15 September 2009

Paradigma Pemrograman

Paradigma pemrograman adalah bagaimana cara pandang kita terhadap penyelesaian masalah pemrograman (atau sudut “serang” kita dalam menyelesaikan suatu masalah pemrograman). Ada banyak cara untuk menyelesaikan suatu masalah, sehingga ada banyak paradigma yang ada.

Beberapa contoh paradigma pemrograman yang ada saat ini adalah: prosedural, fungsional, deklaratif, dan objek. Secara singkat dapat dikatakan bahwa:

paradigma prosedural memandang penyelesaian masalah sebagai hasil dari serangkaian langkah yang menyelesaikan sub masalah.

Didasari konsep Von Newmann [stored program concept]:

Terdapat memori yang dibedakan menjadi instruksi dan data. Memori ini dapat diberi nama dan harga. Dalam paradigma ini, kita memberikan instruksi yang akan diproses secara berurutan. Dalam instruksi ini, dapat juga terdapat percabangan, yang akan menentukan proses selanjutnya.

Pemrograman ini “gak manusia banget”, karena kita harus berpikir dalam batasan mesin. Namun, keuntungan dengan paradigma ini adalah efisiensi eksekusi, karena dekat dengan mesin.

Contoh : Algol, Pascal, Fortran, Basic, Cobol, C, dll…

paradigma fungsional memandang penyelesaian masalah sebagai komposisi fungsi yang memetakan masalah ke jawaban

Didasari fungsi [seperti dalam matematika]

Terdapat fungsi–fungsi dasar yang dapat dilakukan oleh mesin. Fungsi-fungsi tersebut dapat membentuk komposisi yang disebut sebagai primitif. Untuk menyelesaikan masalah, kita menyusun primitif sedemikian rupa untuk menyelesaikan masalah yang ada, untuk memunculkan solusi. Dengan demikian, kekurangan paradigma ini adalah efisiensi serta kinerjanya, karena pengolahan dilakukan lebih lama.

Contoh : LISP, APL, LOGO

paradigma deklaratif memandang penyelesaian masalah adalah pekerjaan komputer yang dilakukan melalui inferensi terhadap fakta

Didasari oleh predikat, yakni pendefinisian relasi antar individu yang merupakan kumpulan dari fakta.

Pada paradigma ini, diuraikan sejumlah fakta dan aturan [inference rules]. Ketika program dieksekusi, pemakai program mengajukan pertanyaan [query]. Selanjutnya, program akan menyocokkan pertanyaan dengan fakta-fakta yang ada untuk menyelesaikan masalah.

Contoh : Prolog

paradigma objek memandang penyelesaian masalah sebagai hasil interaksi dari objek (objek dalam konsep ini merupakan representasi objek di dunia nyata)

Didasari oleh objek.

Sebuah objek mempunyai atribut [sifat ], serta memberikan reaksi yang khusus. Sesama objek dapat saling berinteraksi, sehingga mengandung sedikit paradigma imperatif.

Contoh : C++, Java, Smalltalk, Eiffel, dll…

Selain paradigma di atas, terdapat juga paradigma konkruen[cth : OCCAM, Ada], yang memungkinkan pemrosesan secara paralel, dan paradigma relasional[cth : SQL pada basis data relasional] yang berdasarkan entity [kesatuan yang lahir] dan relasi.



Paradigma prosedural merupakan paradigma yang sangat intuitif sehingga mudah dipelajari. Dalam paradigma prosedural masalah diselesaikan dengan menggunakan langkah-langkah yang berurutan yang disebut sebagai suatu algoritma. Selain sangat intuitif bagi programmer, cara penyelesaian prosedural ini juga merupakan cara yang paling alami bagi komputer (secara hardware, komputer bekerja secara sekuensial atau berurutan).