Anda di halaman 1dari 54

Modul CPP MAARIF1 - 07/08

MODUL PEMROGRAMAN BERORIENTASI OBYEK DENGAN C++ KELAS X RPL SEMESTER II

YUDWI ANTORO WIBOWO @ 2007/2008

SMK MAARIF 1 TEMON

Yudwi @ 2008 [ 1 ]

Modul CPP MAARIF1 - 07/08

PENDAHULUAN
ALGORITMA
Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan dan mempunyai efek tertentu. Yang menjadi pertanyaan adalah apakah algoritma yang kita susun tersebut telah logis? Logis berarti dapat diterima akal baik dari segi efisiensi dan keefektifannya. Sesuai dengan perkembangannya, teknik penulisan algoritma pada suatu masalah juga berkembang, diantaranya: definisi algortima, pseudocode yang menjadi cikal bakal bahasa inggris terstruktur (structured english), flow chart (digram alir), data flow diagram (diagram arus data), dll. Semuanya alat tersebut memiliki keunggulannya masing-masing. Cara penggunaannya tergantung kepada pembuatannya (state of art). Jadi kita tidak dapat memaksakan bahwa algoritma yang kita buat dengan suatu alat adalah terbaik. Hanya saja perlu diperhatikan bahwa algoritma yang kita buat logis (ada input, proses, output, efisien dan efektif). Algoritma yang telah kita buat berdasarkan salah satu cara di atas, selanjutnya diterjemahkan ke dalam salah satu bahasa pemrograman, misalnya Pascal, Cobol, C, Delphi, VB, C, C++, dan lain-lain. Agar algoritma yang kita buat berjalan dengan baik pada suatu bahasa pemograman, maka kita harus mengetahui struktur program tersebut secara jelas.

SEJARAH C++
Berawal dari bahasa BCPL yang diciptakan oleh Martin Richards. BCPL dapat dikatakan cukup sederhana karena tidak memiliki tipe data (typeless language). Pada tahun 1970 bahasa B diciptakan oleh Ken Thompson dengan menggunakan Mikrokomputer DEC PDP-7 di BELL LABORATORIES dengan tujuan utamanya adalah untuk mengembangkan sistem operasi dengan menggunakan bahasa Asembler. Pada saat itu, bahasa B masih dalam bentuk interpreter. Pada tahun 1972, bahasa C diciptakan oleh Dennis Ritchie dan Ken Thompson dengan tujuan untuk memperbesar kemampuan bahasa B di AT&T BELL LABORATORIES. *** Bell Laboratories (juga dikenal dengan nama Bell Labs dan sebelumnya dengan nama AT&T Bell Laboratories dan Bell Telephone Laboratories) adalah bagian dari organisasi riset dan pengembangan dari Alcatel-Lucent dan sebelumnya dari United States Bell System. Bell Labs bermarkas di Murray Hill, Amerika Serikat, dan memiliki fasilitas riset dan pengembangan di berbagai tempat di dunia. Konsentrasi utama fasilitasnya adalah di utara New Jersey. *** Bahasa pemrograman C adalah salah satu bahasa pemrograman komputer. Dibuat pada tahun 1970-an untuk Sistem Operasi Unix oleh Bell Labs (Ken Thompson dan Dennis M. Ritchie). Merupakan kelanjutan dari bahasa BCPL. Bahasa Pemrograman C merupakan salah satu bahasa pemrograman yang paling sering dipakai oleh pemrogram di seluruh dunia, terutama karena C memperbolehkan pengaksesan memori secara manual.

Yudwi @ 2008 [ 2 ]

Modul CPP MAARIF1 - 07/08

C telah mempengaruhi bahasa-bahasa pemrograman yang lain, terutama C++. Bahkan C seringkali dipakai untuk membuat bahasa-bahasa pemrograman yang lain. Umumnya C dipakai untuk membuat program sistem dan jaringan, walaupun tidak jarang juga dipakai untuk membuat program aplikasi. Sebenarnya bahasa C diciptakan untuk diimplementasikan pada sistem operasi UNIX pada DEC PDP-11. Bahasa C tidak langsung menjadi populer seperti sekarang ini. Perjalanan yang dilalui bahasa C cukup panjang. Sampai akhirnya Brian Kerninghan dan Denis Ritchie menulis sebuah buku yang berjudul The C Programming Language (Prentice Hall). Buku tersebut dapat dikatakan sebagai buku ajaib karena dengan buku inilah bahasa C menjadi perhatian para pembuat software. Impian menjadi kenyataan. Bahasa C kemudian diimplementasikan pada komputer 8-bit dengan menggunakan sistem operasi CP/M. Pada tahun 1981, IBM memperkenalkan PC (Personal Computer). Revolusi PC menyebabkan bahasa C menjadi bahasa pemrograman yang paling populer dan fleksibel. Karena banyaknya perusahaan yang kemudian mengembangkan bahasa C tanpa adanya standar tertentu sehingga revolusi bahasa C mengarah pada tidak adanya kompatibilitas. American National Standard Institute (ANSI) kemudian menciptakan versi standar untuk bahasa C yang dikenal dengan ANSI C. Hingga saat ini hampir semua aplikasi program yang sangat canggih ditulis dalam bahasa C. walaupun bahasa C dapat dikatakan sebagai bahasa pemrograman yang hampir sempurna namun para developer software masih merasakan adanya kesukaran dalam mengembangkan program-program mereka. Setelah bahasa C menjadi populer dan menjadi bahasa andalan, masih dirasakan adanya kesukaran pada proyek-proyek besar dalam mengembangkan software. Atas dasar inilah pada tahun 1983 Bjarne Stroustrup menciptakan bahasa C++ untuk mengatasi kekurangan pada C. Bahasa C++ diciptakan oleh Bjarne Stroustrup di AT&T Bell Laboratories awal tahun 1980an berdasarkan bahasa ANSI C sehingga C++ cukup kompatibel dengan bahasa pendahulunya yaitu bahasa C. Pertama kali, prototype C++ muncul sebagai C yang dipercanggih dengan fasilitas kelas. Bahasa tersebut disebut C dengan kelas (C with class). *** Bjarne Stroustrup (lahir 30 Desember 1950 di Aarhus, Denmark) adalah seorang ilmuwan komputer dan profesor di bidang ilmu komputer di Texas A&M University. Dia dikenal lewat jasanya dalam mengembangkan bahasa pemrograman C++. Stroustrup meraih pendidikan master di bidang matematika dan ilmu komputer pada tahun 1975 dari Universitas Aarhus, Denmark, dan menyelesaikan doktornya di Universitas Cambridge, Inggris pada tahun 1979. Ia juga sempat bekerja sebagai kepala departemen riset pemrograman skala-besar di AT&T Lab hingga akhir tahun 2002. Selama tahun 1983-1984, bahasa C dengan kelas disempurnakan dengan menambahkan fasilitas pembebanlebihan operator dan fungsi yang kemudian melahirkan apa yang disebut C++. Nama C++ diberikan oleh Rick Mascitti pada tahun 1983. Simbol ++ merupakan operator C untuk operasi penaikan (increment), muncul untuk menunjukkan bahwa bahasa baru ini merupakan versi yang lebih canggih dari C.

Yudwi @ 2008 [ 3 ]

Modul CPP MAARIF1 - 07/08

C++ diciptakan untuk mendukung pemrograman berorientasi pada objek (Object Oriented Pragramming/OOP) yang tidak dimiliki C. Sementara C merupakan bahasa pemrograman terbaik di lingkungannya, bahasa ini tidak memiliki kemampuan OOP. Reputasi tetap C tidak diragukan lagi dalam menghasilkan program .exe (executeble) berukuran kecil, eksekusi yang cepat, antarmuka (interfacing) yang sederhana dan fleksibilitas pemrograman dibandingkan bahasa lain. Apa yang membuat C tampak sukar dipelajari mungkin karena tiadanya pemeriksaan tipe. Sebagai contoh, C dapat mencampur bilangan bulat dengan string untuk menghasilkan karakter. Namun, justru di situlah letak fleksibilitas C, dapat mengolah data C sebebas mengolah data dalam bahasa assembly.

KOMPILER C++
Kompiler untuk C++ telah banyak beredar di pasaran. Software developer yang paling diminati adalah Borland Inc. dan Microsoft Corp. Produk dari Borland untuk kompiler C+ + adalah Turbo C++, Borland C++, Borland C++ Builder. Sedangkan dari Microsoft adalah Ms. Visual C++. Walaupun banyak kompiler yang tersedia, namun pada intinya bahasa pemrograman yang dipakai adalah C++. Dibandingkan kompiler C++ yang lain, Borland C++ memiliki keunggulan terutama dalam hal kecepatan dan efisiensi kompilasi. Di samping itu, Borland C++ mendukung beberapa Sistem Operasi yaitu DOS, Windows 16 bit (Window 3.0) dan windows 32 bit (Windows NT). Meskipun demikian kompiler Borland C++ juga memiliki kelemahan bila dibandingkan kompiler C++ yang lain, misalnya pemrograman dengan Borland C++ terutama yang menyangkut tampilan jauh lebih sulit daripada pemrograman dengan Microsoft Visual C++. Selain Borland International dan Microsoft Corporation, beberapa perusahaan lain juga merilis compiler C++, seperti Topspeed C++ dan Zortech C++.

Yudwi @ 2008 [ 4 ]

Modul CPP MAARIF1 - 07/08

PENGENALAN C++
Setiap program C++ mempunyai bentuk umum seperti di bawah, yaitu: #prepocessor directive //deklarasi variabel global & fungsi void main() { //deklarasi variabel lokal // Batang Tubuh Program Utama } Penjelasan : 1. Preprocessor Directive (pengarah preprosesor) pernyataan yang diawali dengan tanda (#) merupakan pernyataan untuk menyertakan preprocessor. Pernyataan ini bukan untuk dieksekusi. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Misalnya #include<nama file> Include Adalah salah satu pengarah prepocessor directive yang tersedia pada C++. Bentuk umumnya : #include<nama file> tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan (statemen), tetapi merupakan prepocessor directive. Baris tersebut menginstrusikan kepada kompiler yang menyisipkan file lain dalam hal ini file yang berakhiran .h (file header) yaitu file yang berisi sebagai deklarasi contohnya: #include<iostream.h> dalam file header ini, terdapat beberapa fungsi standar yang dipakai dalam proses input dan output. Seperti misalnya perintah cout yang dipakai untuk menuliskan teks di layar monitor. # include<conio.h> diperlukan bila melibatkan clrscr(),yaitu perintah untuk membersihkan layar, getch() untuk membaca sebuah karakter keyboard #include <iomanip.h> diperlukan oleh fungsi-fungsi pengaturan output, misalnya setw() yang bermanfaat untuk mengatur lebar dari suatu tampilan. #include<math.h> diperlukan pada program yang menggunkan operasi matematika, seperti sin(), cos(), sqrt() dll.

2. Fungsi Main Program C++ memang tidak akan pernah lepas dari suatu fungsi/fungsi. Hal ini karena merupakan ciri OOP. Sebuah program C++ minimal memiliki satu fungsi yaitu main().

Yudwi @ 2008 [ 5 ]

Modul CPP MAARIF1 - 07/08

Fungsi ini merupakan awal program utama. Tulisan main merupakan nama fungsi, sedangkan bagian yang diapit dengan { dan } disebut blok (tubuh fungsi). Dalam hal ini { merupakan tanda awal blok dan } adalah tanda akhir blok. Seperti halnya dalam Pascal, { dalam Pascal identik dengan BEGIN, sedangkan } identik dengan END. Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main( ). Berarti dalam setiap pembuatan program utama, maka dapat dipastikan seorang pemrogram menggunakan minimal sebuah fungsi. Pembahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Yang sekarang coba ditekankan adalah kita menuliskan program utama kita di dalam sebuah fungsi main(). Contoh Program C++ sederhana: main(){ } Program di atas tidak melakukan hal apapun kecuali memunculkan layar konsol (berwarna hitam) selama beberapa saat sebelum akhirnya menutup kembali. 3. Komentar Komentar adalah catatan-catatan yang dibuat oleh programmer (si pembuat program) sebagai keterangan / pengingat tentang hal-hal tertentu. Dengan adanya komentar, programmer / orang lain yang membaca akan tahu maksud dan tujuan program tersebut. Komentar tidak pernah dikompile (dijalankan) oleh kompiler. Dalam C++, terdapat 2 cara penulisan komentar: Komentar dalam satu baris Komentar diletakkan setelah tanda // contoh: // komentar ditulis di sini Komentar berisi lebih dari satu baris Komentar diletakkan diantara tanda /* dan */ Contoh /* komentar baris pertama Komentar baruis kedua Komentar baris selanjutnya */

Contoh Program C++ dengan komentar: /* program C++ pertamaku Program ini masih belum melakukan apa-apa */ main(){ // statemen akan saya tuliskan di sini }

Yudwi @ 2008 [ 6 ]

Modul CPP MAARIF1 - 07/08

4. Statemen (Pernyataan) Statemen adalah perintah-perintah dalam bahasa C++ yang dimengerti dan dapat dijalankan oleh kompiler C++. Statemen diletakkan (ditulis) di antara tanda { dan }. main(){ statemen ditulis di sini... } Statemen C/C++ ada dua, yaitu statemen yang tidak dapat dieksekusi / non-executable (bila dikompilasi tidak menghasilkan kode objek dan biasanya digunakan untuk mengatur alur program), dan statemen yang dapat dieksekusi / executable (bila dikompilasi akan menghasilkan kode objek). Setiap pemanggilan fungsi maupun statemen executable dalam C/C++ harus diakhiri dengan tanda semikolon / titik koma ( ; ). Contoh Berikut ini contoh sebuah program dengan statemen: #include <iostream.h> int main() { cout << "Hello world"; return 0; } Perintah cout << "Hello world.\n"; merupakan salah satu contoh statemen. Perintah tersebut digunakan untuk mencetak tulisan pada layar. Hal yang menjadi catatan penting di sini bahwa program C++ bersifat case sensitive, artinya huruf besar dan kecil dianggap beda. Jadi cout akan berbeda dengan Cout. Pada contoh di atas, iostream.h disebut file header. File header tersebut diperlukan agar perintah cout bisa dijalankan. Apabila file header tersebut dihapus, maka akan terjadi error. #include <iostream.h> pernyataan yang diawali dengan tanda (#) merupakan pernyataan menyertakan preprocessor. Pernyataan ini bukan untuk dieksekusi. #include<iostream.h> berarti memerintahkan kompiler menyertakan file header iostream.h. Dalam file header ini, terdapat beberapa fungsi standar yang dipakai proses input dan output. Seperti misalnya perintah cout yang dipakai program utama. untuk untuk dalam dalam

Yudwi @ 2008 [ 7 ]

Modul CPP MAARIF1 - 07/08

MENAHAN PROGRAM
Program pada CONTOH 1 memunculkan layar konsol selama beberapa saat lalu menutup kembali. Untuk menahan program supaya tidak segera menutup, kita bisa menggunakan trik yaitu dengan fungsi getch() yang menunggu pengguna untuk menekan sembarang tombol keyboard dan membacanya sebelum program keluar. Contoh #include <conio.h> main(){ getch(); } Pada contoh di atas, conio.h disebut file header. File conio.h diikutkan ke dalam program sehingga fungsi getch() bisa dijalankan. Tulisan getch(); adalah salah contoh dari sebuah statemen. Perhatikan statemen tersebut diakhiri dengan tanda titik koma. conio.h merupakan sebuah modul yang berisi kumpulan fungsi-fungsi C++ yang dapat diakses (digunakan) salah satunya adalah fungsi getch(). Apabila file header tersebut dihapus, maka kita tidak dapat menggunakan fungsi getch() dan akan terjadi error. Untuk mengakses file header, digunakan perintah #include <nama file header> atau #include "nama file header" Sebuah program bisa jadi melibatkan lebih dari satu file header. Fungsi getch() digunakan untuk membaca sebuah karakter tunggal dari pengetikan (penekanan) tombol pada keyboard tanpa menampilkannya di layar. Program akan berhenti pada statemen getch(); yaitu menunggu user (pengguna) untuk menekan sembarang tombol keyboard untuk dibaca. Hasilnya program tidak akan keluar (menutup) sebelum pengguna menekan sembarang tombol tersebut.

Yudwi @ 2008 [ 8 ]

Modul CPP MAARIF1 - 07/08

KEYWORD C++
C++ mempunyai 32 buah kata yang dicadangkan (reserved words). Kata kunci kelompok pertama merupakan turunan dari bahasa C, di antaranya: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

Kata yang dicadangkan kelompok kedua berjumlah 30. Kata-kata ini adalah baru dan hanya ada di bahasa C++. asm bool catch class const_cast delete dynamic_cast explicit false friend inline mutable namespace new operator private public protected reinterpret_cast static_cast template this throw true try typeid typename using virtual wchar_t

Kata-kata yang dicadangkan tersebut di atas tidak boleh dipakai sebagai nama variabel, class, enum, macro, dan struct. Berikut ini daftar definisi keyword di C++: asm auto bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum explicit export extern false float insert an assembly instruction declare a local variable declare a boolean variable break out of a loop a block of code in a switch statemen handles exceptions from throw declare a character variable declare a class declare immutable data or functions that do not change data cast from const variables bypass iterations of a loop default handler in a case statemen make memory available looping construct declare a double precision floating-point variable perform runtime casts alternate case for an if statemen create enumeration types only use constructors when they exactly match allows template definitions to be separated from their declarations tell the compiler about variables defined elsewhere the boolean value of false declare a floating-point variable
Yudwi @ 2008 [ 9 ]

Modul CPP MAARIF1 - 07/08

for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while

looping construct grant non-member function access to private data jump to a different part of the program execute code based off of the result of a test optimize calls to short functions declare a integer variable declare a long integer variable override a const variable partition the global namespace by defining a scope allocate dynamic memory for a new variable create overloaded operator functions declare private members of a class declare protected members of a class declare public members of a class request that a variable be optimized for speed change the type of a variable return from a function declare a short integer variable modify variable type declarations return the size of a variable or type create permanent storage for a variable perform a nonpolymorphic cast define a new structure execute code based off of different possible values for a variable create generic functions a pointer to the current object throws an exception the boolean value of true execute code that can throw an exception create a new type name from an existing type describes an object declare a class or undefined type a structure that assigns multiple variables to the same memory location declare an unsigned integer variable import complete or partial namespaces into the current scope create a function that can be overridden by a derived class declare functions or data with no associated data type warn the compiler about variables that can be modified unexpectedly declare a wide-character variable looping construct

Yudwi @ 2008 [ 10 ]

Modul CPP MAARIF1 - 07/08

ELEMEN-ELEMEN C++
TIPE DATA
Untuk menyimpan suatu variabel diperlukan tempat khusus di dalam memori komputer. Besar dan tipe dari variabel-variabel di dalam standar program C++ dispesifikasikan sebagai berikut: Terdapat 5 tipe data bawaan dari bahasa C, yaitu : void, int, float, double, dan char.
TIPE KETERANGAN

void int float double char

Diartikan sebagai tanpa tipe data dan tanpa pengembalian nilai Bilangan bulat (integer) Bilangan pecahan (floating point) Bilangan pecahan dengan jangkauan data yang lebih luas Karakter

Sedangkan C++ sendiri menambahkan dua buah tipe data lagi, yakni : bool dan wchar_t.
TIPE

KETERANGAN Abjad/karakter atau untuk bilangan bulat kecil Bilangan bulat dengan jangkauan pendek Bilangan bulat Integer dengan jangkauan panjang Boolean, dapat bernilai benar atau salah (true or false) Angka dengan titik mengambang (bilangan cacah) Bilangan cacah dengan ketelitian ganda Bilangan cacah dengan ketelitian ganda panjang Karakter lebar, biasa dipakai untuk Unicode karakter

UKURAN 1 byte 2 byte 4 byte 4 byte 1 byte 4 byte 8 byte 8 byte 2 byte

JANGKAUAN signed: -128 to 127 unsigned: 0 to 255 signed: -32768 to 32767 unsigned: 0 to 65535 signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 true or false 3.4e +/- 38 (7 digit)

char short int (short) int long int (long) bool float double long double wchar_t

1.7e +/- 308 (15 digits) 1.7e +/- 308 (15 digits) 1 karakter lebar

Tipe data diklasifikasikan berdasarkan bagaimana keadaan data disimpan dalam memori, dan jenis operasi yang dapat dilakukan. CHAR

Yudwi @ 2008 [ 11 ]

Modul CPP MAARIF1 - 07/08

Adalah sembarang huruf, angka, tanda baca tunggal. Ada dua macam tipe char, yaitu : 1. signed Signed (bertanda) mendeklarasikan char bertanda, digunakan untuk nilai negatif. Rentang nilai mulai -128 sampai 127 2. unsigned Unsigned (tak-bertanda) mendeklarasikan char tidak bertanda, untuk nilai positif. Rentang nilai mulai 0 sampai 255 contoh deklarasi char : char letter = 'A'; unsigned char number = 245; signed char value = -71; SHORT, INT, LONG Digunakan untuk menyatakan bilangan bulat. Seperti pada char, perubah tipe signed dan unsigned dapat ditambahkan. Rentang nilai short int mulai -32.768 sampai 32.767 Rentang nilai long atau int mulai -2.147.483.648 sampai 2.147.483.647 Contoh deklarasi int : int nilai, total; int jumlah = 90 ; FLOAT, DOUBLE Menyatakan bilangan pecahan/real, maupun eksponensial. Dalam keadaan default, bilang floting point dianggap bertipe double. Rentang nilai float mulai 3,410-38 sampai 3,410+38 Rentang nilai double mulai 1,710-308 sampai 1,710+308 ENUMERATION / ENUM Adalah serangkaian symbol berurutan yang menspesifikasikan konstanta bertipe integer. Dalam C++ tidak terdapat tipe Boolean, sehingga untuk merepresentasikan TRUE dengan nilai integer bukan nol ( 1, 2, dst ), Sedangkan FALSE dengan nilai nol ( 0 ). Contoh deklarasi enum : Enum BOOLEAN { False, True }; Enum BOOLEAN { Benar = 3, Salah = 0 }; VOID Menyatakan tipe kosong untuk : 1. mendeklarasikan fungsi yang tidak mengembalikan nilai apapun. 2. mendeklarasikan fungsi yang tidak menerima parameter apapun. 3. bila diawali dengan operator *, menyatakan penunjuk terhadap sembarang tipe data. Contoh deklarasi void : void cctrputs (char*, int ); atau main (void) ; atau void* action ; int ivalue = 100 ; action = &ivalue ;

Yudwi @ 2008 [ 12 ]

Modul CPP MAARIF1 - 07/08

PENUNJUK / POINTER Adalah variabel yang berisi nilai alamat suatu lokasi memori tertentu. Deklarasi penunjuk dilakukan dengan menspesifikasikan *, sebelum nama varabel / konstanta. ARRAY Adalah sekelompok data bertipe sama yang menduduki lokasi memori yang berurutan. Jumlah elemen array dinyatakan dengan cara mengapit jumlah yang di maksud dengan tanda [] Bentuk umum : tipe namaArray [jumlahelemen] ; Untuk menyatakan array berdimensi lebih dari 1 (satu), tambahkan tanda [ ] sebanyak dimensi yang diinginkan. Contoh deklarasi array 2 dimensi : int matrix [2][3] ; STRING Deretan karakter yang diakhiri dengan sebuah karakter kosong. String ditulis dengan mengapit string dengan tanda petik dua (" .") Contoh deklarasi string : char text [] = "C++"; puts (text); STRUCT, UNION Digunakan untuk mendeklarasikan sekelompok data yang memiliki tipe yang berlainan. struct : elemennya ada dilokasi memori yang berbeda, dan union : elemennya ada dilokasi memori yang sama. Bentuk umum : struct tipestruktur { tipeanggota1 namaanggota1 ; tipeanggota2 namaanggota2 ; ... } namaStruktur; DATA OBJEK Data objek adalah bagian dari memori yang digunakan untuk menampung nilai dari variabel.

VARIABEL
Variabel adalah suatu wadah yang dapat digunakan untuk menyimpan nilai (value) dan diberi nama. Variabel umumnya digunakan untuk data objek yang nilainya dapat diubah selama pemrosesan berlangsung. Berbeda dengan pendeklarasian variabel di bahasa pemrograman lain, dalam C++ sebelum mendeklarasikan variabel, hal pertama yang harus dideklarasikan adalah tipe data yang akan digunakan untuk menampung data. Format penulisannya adalah: Tipe_data pengenal = nilai ;

Sebagai contoh :

Yudwi @ 2008 [ 13 ]

Modul CPP MAARIF1 - 07/08

int a; float nomor; atau dapat juga pemberian nilai awal untuk variable dilakukan pada saat deklarasi, Contoh int a=10; char s= 'a'; Jika hendak mendeklarasikan beberapa variabel sekaligus dengan tipe data yang sama, dapat dilakukan dengan 2 cara, yaitu : int a; int b; int c; atau dapat disederhanakan dengan deklarasi : int a,b,c; Contoh, Perhatikan contoh berikut: // bekerja dengan variabel #include <iostream.h> int main () { // inisialisasi variabel : int a, b; int hasil; // proses : a = 5; b = 2; a = a + 1; hasil = a - b; // tampilkan hasilnya : cout << hasil; // menghentikan program : return 0; } Dalam C++ pendeklarasian termasuk statemen, sehingga pendeklarasian dapat diletakkan pada sembarang tempat dalam program.

KONSTANTA
Konstanta mirip dengan variable, namun memiliki nilai tetap. Konstanta dapat berupa nilai integer, float, karakter dan string. Pendeklarasian konstanta dapat dilakukan dengan 2 cara : 1. Menggunakan (#define) deklarasi konstanta dengan cara ini, lebih gampang dilakukan karena akan menyertakan #define sebagai preprocessor directive. Dan sintaknya diletakkan bersama sama dengan pernyataan #include ( di atas main()). Format penulisannya adalah : #define pengenal nilai Contoh penggunaan :

Yudwi @ 2008 [ 14 ]

Modul CPP MAARIF1 - 07/08

#define phi 3.14159265 #define Newline '\n' #define lebar 100 pendeklarasian dengan #define tanpa diperlukan adanya tanda = untuk memasukkan nilai ke dalam pengenal dan juga tanpa diakhiri dengan tanda semikolon (;). 2. Menggunakan (const) Sedangkan dengan kata kunci const, pendeklarasian konstanta mirip dengan deklarasi variable yang ditambah kata depan const. Contoh const int lebar = 100; const char tab = '\t'; const zip = 212; Untuk contoh terakhir, deklarasi variable zip yang tanpa tipe data, maka compiler akan secara otomatis memasukkannya ke dalam tipe int. Konstanta data objek adalah variabel yang nilainya tidak dapat diubah selama pemrosesan berlangsung. Contoh deklarasi konstanta : const double pi = 3.14 ;

IDENTIFIER
Indentifier adalah nama yang diberikan untuk nama objek, nama fungsi, nama variabel, dll ( sifatnya case sensitive). Identifier pada C++ terdiri dari : 1. huruf 'A' sampai 'Z' 2. huruf 'a' sampai 'z' 3. underscore ( _ ) 4. bilangan antara '0' sampai '9' Identifier ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut : 1. Terdiri dari gabungan huruf dan angka. Bahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda. 2. Karakter pertama harus huruf atau underscore ( _ ) 3. Tidak boleh mengandung spasi. 4. Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain $, ?, %, #, !, &, *, (, ), -, +, =, dsb. 5. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai. 6. identifier harus tidak sama dengan keyword yang sudah dipakai oleh C++ contoh identifier : yang benar nilai, folder23atas, no8, nilaiSaya, rata_rata yang salah 3buah, %nilai_mahasiswa, penting!, data saya, rata-rata, nomor-data, if SCOPE IDENTIFIER Ruang lingkup / scope adalah bagian mana dari program, identifier tersebut dapat diakses. Scope dari suatu identifier dimulai dari pendeklarasian sampai dengan akhir dari suatu blok. Scope identifier ada 2, yaitu :

Yudwi @ 2008 [ 15 ]

Modul CPP MAARIF1 - 07/08

1. local identifier dideklarasikan di dalam blok { } 2. global identifier dideklarasikan di luar dari blok Scope relolution operator ( :: ) dapat digunakan untuk mengakses variabel global secara langsung. Contoh pendeklarasian variabel global : int x; fungsiku(void){ int x ; ::x = 4; // pemberian nilai untuk variabel global x }

ASSIGNMENT
Proses assignment adalah proses pemberian nilai kepada suatu variabel yang telah dideklarasikan. Berikut adalah contoh assignment: Jumlah = 10; Harga_satuan = 23.456; Saya = 'B'; Kamu = '2'; Berikut ini contoh program yang menggambarkan deklarasi variabel dan assignment. #include <iostream.h> #include <conio.h> void main(){ int var1, var2, var3; char karakter; var1 = 10; var2 = 5; var3 = var1 + var2; karakter = 'D'; cout << "Nilai var3 = " << var3 << "\n"; cout << "Nilai karakter = " << karakter; getch(); } contoh berikutnya yang melibatkan tipe data real dan memformat tampilan presisi. #include "conio.h"; #include "iostream.h"; #include "iomanip.h"; void main(){ double real; real = 182.2182713674821746; cout << setprecision(12); cout << "Nilai real = " << real; getch(); }

Yudwi @ 2008 [ 16 ]

Modul CPP MAARIF1 - 07/08

OPERATOR
Operator merupakan simbol yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi, misalnya untuk: menjumlahkan dua nilai memberikan nilai ke suatu variabel (assignment) membandingkan kesamaan dua nilai.

OPERATOR ARITMATIKA
Operator ini digunakan untuk perhitungan dasar aritmatika. Operator ini antara lain
Operator Keterangan
Perkalian Pembagian Modulo Penjumlahan Pengurangan

Contoh

* / % + -

2*3 7/2 7%2 5+4 5-4

TINGKAT PRESEDENSI OPERATOR ARITMATIKA


Operator yang mempunyai prioritas tinggi akan diutamakan dalam hal pengerjaan dibandingkan dengan operator yang memiliki prioritas lebih rendah. Berikut ini tingkat presedensi operator aritmatika (semakin ke bawah prioritas makin rendah): - (operator unary negatif) * / % + -

ASSIGNMENT LANJUT
Assignment merupakan proses pemberian nilai pada suatu variabel. Berikut ini contohcontohnya: a = 1; a = 2 + b; a = 2 + (b = 1); Contoh di atas prosesnya adalah mula-mula b diberi nilai 1, kemudian variabel a diisi dengan nilai penjumlahan 2 dan 1. a = b = c = d = e = 1; Contoh tersebut identik dengan: e d c b a = = = = = 1; e; d; c; b;

Yudwi @ 2008 [ 17 ]

Modul CPP MAARIF1 - 07/08

OPERATOR INCREMENT DAN DECREMENT


Bahasa C++ menyediakan operator yang disebut increment dan decrement. Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel sebesar 1.
Operator Keterangan Operator increment Operator decrement

++ --

Penempatan operator tersebut dapat di awal variabel atau di belakangnya. Contoh: x = x + 1; y = y 1; dapat ditulis ++x; --y; atau x++; y--; Secara sekilas tak ada perbedaan antara ++x dan x++ atau --y dan y--. Perhatikan contoh berikut ini: r = 10; s = 10 + r++; cout << "Nilai r = "<< r << "\n"; cout << "Nilai s = "<< s << "\n"; bandingkan dengan r = 10; s = 10 + ++r; cout << "Nilai r = "<< r << "\n"; cout << "Nilai s = "<< s << "\n";

OPERATOR MAJEMUK
C++ menyediakan operator yang dimaksudkan untuk memendekkan penulisan operasi assignment, misalnya: x y z w dapat ditulis x y z w += *= /= -= 2; 4; 5; 8; = = = = x y z w + * / 2; 4; 5; 8;

Yudwi @ 2008 [ 18 ]

Modul CPP MAARIF1 - 07/08

OPERATOR RELASIONAL
Operator ini digunakan untuk membandingkan dua buah nilai. Berikut ini macam-macam operator yang termasuk jenis ini.
Operator Keterangan
Sama dengan (bukan assignment) Tidak sama dengan Lebih besar Lebih kecil Lebih besar atau sama dengan Lebih kecil atau sama dengan

== != > < >= <=

Hasil operasi relasi ini dihasilkan nilai benar atau salah. Contoh: nilai1 = 3 > 2; nilai2 = 15 == 16; cout << "Nilai1 = "<< nilai1 << "\n"; cout << "Nilai2 = "<< nilai2 << "\n"; setelah dijalankan dihasilkan nilai1 adalah 1 (benar) dan nilai2 adalah 0 (salah).

OPERATOR LOGIKA
Operator ini digunakan untuk menghubungkan 2 atau lebih statemen. Biasanya statemen yang dihubungkan merupakan operasi relasional. Operator logika juga menghasilkan nilai logika benar atau salah. Macam-macamnya adalah:
Operator Keterangan
AND OR NOT (negasi)

&& || ! Contoh

nilai1 = (3 > 2) && (4 < 10); nilai2 = !(15 == 15); cout << "Nilai1 = "<< nilai1 << "\n"; cout << "Nilai2 = "<< nilai2 << "\n"; Setelah di run, dihasilkan nilai1 adalah 1 (benar) dan nilai2 adalah 0 (salah)

Yudwi @ 2008 [ 19 ]

Modul CPP MAARIF1 - 07/08

FUNGSI-FUNGSI MATEMATIKA
C++ menyediakan beberapa fungsi khusus untuk perhitungan matematika. Fungsi-fungsi ini memerlukan file header math.h
Fungsi Keterangan
Mencari nilai mutlak dari x Mencari nilai cos, sin, tan (x dalam radian) Mencari nilai ex Mencari nilai log x Mencari nilai xy Mencari nilai akar kuadrat dari x

abs(x) cos(x), sin(x), tan(x) exp(x) log(x) pow(x,y) sqrt(x)

Yudwi @ 2008 [ 20 ]

Modul CPP MAARIF1 - 07/08

INPUT - OUTPUT
Di ANSI C, operasi input dan output dilakukan dengan menggunakan fungsi-fungsi yang ada di header file stdio.h. Contohnya untuk input dan output ke layar monitor digunakan perintah seperti printf, scanf, putch, dsb. Untuk input dan output ke file digunakan perintah seperti fread, fwrite, fputc, dsb. C++ mempunyai teknik input dan output yang baru, yaitu menggunakan stream. Header file untuk input dan output stream adalah iostream.h dan beberapa file lain, seperti strstrea.h, fstream.h, dan constrea.h. Stream adalah suatu logika device (peralatan logika) yang menghasilkan dan menerima informasi atau suatu wadah yang digunakan untuk menampung keluaran dan menampung aliran data. Stream adalah nama umum untuk menampung aliran data (contoh : file, keyboard, mouse), maupun untuk keluaran (contoh : layar, printer). Dalam C++ input berarti membaca dari stream dan output berarti menulis ke stream. Bentuk Umum operator output: cout << ekspresi; Bentuk umum operator input: cin >> variabel;

Dalam C++, menggunakan escape sequences untuk merepresentasikan suatu karakter yang tidak terdapat dalam simbol tradisional. Beberapa diantaranya : \n : linefeed (baris baru) \r : carriage return (awal baris) \" : petik ganda

OUTPUT
Dalam c++, perintah cout digunakan untuk menampilkan suatu informasi ke piranti output (layar). Contoh-contoh penggunaannya telah banyak diberikan di bab-bab sebelumnya. Output Menampilkan Bilangan CONTOH 4 Menampilkan sebuah bilangan di layar: /* program menampilkan sebuah bilangan */ #include <conio.h> #include <iostream.h> main(){ cout << 212; getch(); } Perintah cout << berfungsi untuk menampilkan sesuatu di layar.

Yudwi @ 2008 [ 21 ]

Modul CPP MAARIF1 - 07/08

Pada contoh di atas, cout << diikuti oleh angka 212 sehingga di layar akan muncul teks bertuliskan 212. cout dapat digunakan jika kita mengikutkan file / modul iostream.h. Untuk itu kita harus menuliskan file header #include <iostream.h> supaya perintah cout dapat digunakan. Output Menampilkan Teks Contoh Menampilkan teks di layar /* program menampilkan kalimat sederhana */ #include <conio.h> #include "iostream.h" main(){ cout << "selamat pagi"; getch(); } Perintah cout << berfungsi untuk menampilkan sesuatu di layar. Pada contoh di atas, cout << diikuti oleh kalimat "selamat pagi" sehingga di layar akan muncul teks berbunyi selamat pagi. Tanda " dan " yang mengapit tulisan selamat pagi menandakan bahwa selamat pagi adalah data bertipe string (teks) dan bukan bilangan atau tipe data yang lain. NB: Tanda " dan " tidak ikut ditampilkan di layar. Output Menampilkan Teks Dan Bilangan Menampilkan teks dan bilangan di layar Contoh // program menampilkan teks dan bilangan #include <conio.h> #include "iostream.h" main(){ cout << "Aku memiliki uang " << 7000 << " rupiah"; getch(); } Untuk menampilkan lebih dari satu tpe data, masing-masing data dipisahkan oleh tanda <<. Output Escape Sequence Escape sequence adalah karakter-karakter yang tidak tampak di layar atau tidak terdapat dalam simbol tradisional (misalnya: Enter, Tab dll.) atau karakter-karakter yang sudah digunakan untuk tujuan tertentu (misalnya: tanda ,tanda ?, tanda \, tanda / dll.).

Yudwi @ 2008 [ 22 ]

Modul CPP MAARIF1 - 07/08

Untuk menggunakan karakter-karakter tersebut, diperlukan penulisan khusus sesuai tabel berikut: Sequence \a \b \f \n \r \t \v Karakter BELL Backspace Ganti halaman Ganti baris Ke awal baris Tab horizontal Tab vertikal Sequenc e \\ \' \" \? \O \xH \XH Karakter Backlash Tanda petik tunggal Tanda petik ganda Tanda tanya any any any

Misalnya untuk menuliskan Ima berkata: "Apakah hari sudah pagi?" Maka harus dituliskan sbb. Contoh Menggunakan Escape Sequence #include <conio.h> #include "iostream.h" main(){ cout << "Ima berkata: \"Apakah hari sudah pagi\?\""; getch(); } Pada contoh di atas " diganti dengan \" dan tanda ? diganti dengan \?. NB: Perhatikan bahwa pada akhir kalimat terdapat tanda \" dan ". Output Berganti Baris Untuk berganti baris digunakan perintah endl atau escape sequence \n. Menggunakan perintah endl: #include <conio.h> #include "iostream.h" main(){ cout << "Ima berkata: \"Apakah hari sudah pagi\?\"" << endl; cout << "\"Belum, sekarang baru jam dua\", jawab Mia"; getch(); } atau menggunakan escape sequence \n: #include <conio.h> #include "iostream.h" main(){ cout << "Ima berkata: \"Apakah hari sudah pagi\?\"\n"; cout << "\"Belum, sekarang baru jam dua\", jawab Mia"; getch(); }

Yudwi @ 2008 [ 23 ]

Modul CPP MAARIF1 - 07/08

Output Formatting Berikut ini perintah-perintah tambahan untuk mengatur tampilan output. - endl Perintah ini berfungsi sama dengan \n (ganti baris), contoh: cout << "Hallo" << endl; - setw() Perintah ini digunakan untuk mengatur lebar tampilan data (rata kanan), contoh: A = 123; B = 98; C = 1; cout << "Nilai A = " << setw(6) << A << endl; cout << "Nilai B = " << setw(6) << B << endl; cout << "Nilai C = " << setw(6) << C << endl; Bandingkan bila tanpa menggunakan setw(). - setfill() Perintah setfill digunakan untuk menambahkan suatu karakter tertentu pada field yang kosong pada suatu data. Perhatikan contoh berikut ini A = 123; B = 98; cout<< "Nilai A = "<< setw(6) << setfill('*') << A << endl; cout<< "Nilai B = "<< setw(6) << setfill('.') << B << endl; Perintah setfill() biasanya digunakan setelah penggunaan setw(). - setprecision() Telah dijelaskan di bab sebelumnya. NB Perintah-perintah tambahan pada cout di atas memerlukan file header iomanip.h supaya dapat digunakan.

INPUT
- cin Dalam C++, perintah cin digunakan untuk menginput suatu nilai dari suatu piranti masukan (keyboard) untuk selanjutnya diproses oleh program. Sintaknya adalah: cin >> variabel; contohnya: cout << "Masukkan suatu bilangan : "; cin >> bil; cout << "Anda memasukkan bilangan " << bil "\n";

Yudwi @ 2008 [ 24 ]

Modul CPP MAARIF1 - 07/08

- getch() Perintah getch() berfungsi sama seperti cin (perintah input), akan tetapi getch() khusus untuk input berupa karakter. Disamping itu getch() dapat membaca input berupa spasi atau tab, sedangkan cin tidak bisa. Sintaksnya: variabel = getch(); Fungsi ini juga dapat digunakan apabila tidak diinginkan penekanan ENTER ketika input data karakter. - getche() Perintah getche() kegunaannya sama dengan getch(), bedanya adalah: - getch() tidak menampilkan karakter yang diiinput - getche() menampilkan karakter yang diinput fungsi getch() dan getche() sama-sama membutuhkan file header conio.h Berikut ini contoh penggunaan getch() dan getche() char karakter; cout << "masukkan sebuah karakter karakter = getch(); cout << "Anda mengetik karakter : cout << "masukkan sebuah karakter karakter = getche(); cout << "Anda mengetik karakter : NB Untuk input berupa string, akan dibahas di bab yang lain. Lab. Session 1. Buatlah program menggunakan C++ untuk menentukan harga barang setelah di diskon dengan tampilan sbb: Masukkan harga barang : Rp. 150000 Masukkan discount (%) : 12.5 ---------------------------------------------Harga barang : Rp. 150000 Besar diskon : Rp. 18750 --------------------------- Harga bersih : Rp. 131250 2. Buatlah program C++ untuk menghitung jarak peluru yang ditembakkan dari suatu lokasi dengan sudut penembakan xo, dan kecepatan awal peluru Vo. Diketahui besar Pi = 3.141593 dan besar percepatan gravitasi (g) adalah 9.8 m/s2. Input : x (dalam derajad), Vo (dalam m/s). Output : jarak peluru (dalam meter) Hint: Gunakan rumus S = 2 Vo sin(x) cos(x)/g : "; " << karakter; : "; " << karakter;

Yudwi @ 2008 [ 25 ]

Modul CPP MAARIF1 - 07/08

STATEMEN KONTROL
BAGIAN 1 PENCABANGAN
IF
Seperti halnya Pascal, perintah IF dalam C++ juga digunakan untuk menyatakan pernyataan kondisional (bersyarat). Sintaks sederhana IF adalah if (kondisi) statemen; Statemen pada sintaks di atas akan dilakukan jika kondisinya bernilai TRUE (tidak sama dengan nol). Apabila statemen yang akan dilakukan lebih dari satu, maka sintaksnya menjadi if (kondisi){ statemen1; statemen2; ..} Contoh sederhana penggunaan IF adalah untuk menentukan boleh tidaknya seseorang melihat film bioskop. Seseorang diperbolehkan menonton jika usianya 17 tahun ke atas. Berikut ini program C++ nya: #include <iostream.h> #include <conio.h> void main(){ int usia; clrscr(); cout << "Berapa usia Anda : "; cin >> usia; if (usia < 17) cout << "Anda tidak boleh menonton bioskop"; getch(); } Statemen IF juga dapat ditambahkan ELSE sebagai konsekuensi alternatif jika kondisi tidak dipenuhi (FALSE). Sintaksnya: if (kondisi){ statemen1; statemen2; ... } else { statemen1; ... }
Yudwi @ 2008 [ 26 ]

Modul CPP MAARIF1 - 07/08

Anda dapat modifikasi program C++ untuk menentukan boleh tidaknya seseorang menonton bioskop seperti di bawah ini: #include <iostream.h> #include <conio.h> void main(){ int usia; clrscr(); cout << "Berapa usia Anda : "; cin >> usia; if (usia < 17) cout << "Anda tidak boleh menonton bioskop"; else cout << "Anda boleh menonton bioskop"; } Untuk menyatakan kondisi (syarat) yang akan dicek pada IF, Anda dapat menggunakan operator logika dan operator relasional seperti yang telah dijelaskan pada bab sebelumnya. Perhatikan contoh di bawah ini! if ((a >= 2) && (b == 3)) { ... } Jangan Anda tuliskan if (a >= 2) && (b == 3) { ... } Atau if ((a >= 2) && (b = 3)) { ... } Perintah b = 3 merupakan assignment bukan relasional. Catatan penting! C++ selalu memperlakukan nilai tidak sama dengan nol sebagai TRUE dan nilai nol sama dengan FALSE. Oleh karena itu, dua perintah di bawah ini adalah identik. if (bil % 2 != 0) cout << "Bilangan ganjil"; if (bil % 2) cout << "Bilangan ganjil" Selain itu, IF juga dapat berbentuk seperti di bawah ini. if (kondisi1) statemen1; else if (kondisi2) statemen2; else if (kondisi3) statemen3; ... else statemen; Anda tahu kan maksudnya?

Yudwi @ 2008 [ 27 ]

Modul CPP MAARIF1 - 07/08

Latihan Buatlah program dengan C++ untuk menentukan hari menggunakan IF. Desain tampilannya sbb: PROGRAM MENENTUKAN NAMA HARI Pilihan: A = SENIN B = SELASA C = RABU D = KAMIS E = JUMAT F = SABTU G = AHAD Masukkan Kode Hari (A..G) : Skenario Apabila kode hari yang dimasukkan A s/d G, maka selanjutnya akan tampil nama hari sesuai kodenya. Tapi apabila selain A s/d G, maka akan tampil MAAF KODE HARINYA SALAH. Kode hari harus bisa juga membaca huruf kecil, artinya jika kode harinya a, maka akan tampil SENIN, dst.

SWITCH
Statemen SWITCH juga berfungsi sama dengan IF. Perintah SWITCH sama dengan perintah CASE OF dalam PASCAL. Sintaks: switch (variabel){ case value1 : statemen1; break; case value2 : statemen2; break; ... default : statemen; /* optional */ break; } contoh penggunaan: #include <iostream.h> #include <conio.h> void main(){ int bil; clrscr(); cout << "Masukkan bilangan : "; cin >> bil switch (bil){ case 1 : cout << "Anda memasukkan break; case 2 : cout << "Anda memasukkan break; case 3 : cout << "Anda memasukkan break; default: cout << "Anda memasukkan break; } }

bil. satu"; bil. dua"; bil. tiga"; bil selain 1, 2, dan 3";

Yudwi @ 2008 [ 28 ]

Modul CPP MAARIF1 - 07/08

Selanjutnya coba kalian hapus semua break program di atas dan kalian jalankan. Apa yang terjadi?? Keanehan akan muncul. Why ?? Latihan Dengan soal yang sama dengan latihan sebelumnya, kalian coba buat program C++ nya menggunakan switch.

BAGIAN 2 PERULANGAN
FOR
Statemen for digunakan untuk menyatakan perulangan (seperti PASCAL). Sintaksnya: for (ungkapan1; ungkapan2; ungkapan3){ ... ... } Ungkapan1 merupakan statemen awal (inisialisasi) Ungkapan2 merupakan kondisi/syarat perulangan dilakukan Ungkapan3 merupakan statemen control untuk perulangan for (int a = 1; a <= 5; a++){ cout << "Hello world \n"; } NB tipe data variabel a adalah integer Perintah di atas akan menampilkan teks Hello World sebanyak 5 buah. Perhatikan tanda a++. Apa maksudnya? Selain berupa angka, pencacah perulangan juga dapat berupa karakter. Contoh for (int huruf = 'Z'; huruf >= 'A'; huruf--){ cout << "Huruf abjad= " << huruf << "\n"; } Perintah di atas akan menampilkan teks Huruf abjad = ... mulai dari Z sampai dengan A. Perhatikan perintah huruf-for (int angka = 1; angka <= 6; angka+=2){ cout << "Isi dari angka = " << angka << endl; } Perintah di atas akan menampilkan angka 1, 3, 5. Kok bisa? Perhatikan perintah angka+=2.

Contoh:

Yudwi @ 2008 [ 29 ]

Modul CPP MAARIF1 - 07/08

Di bawah ini adalah program untuk mencetak bilangan genap yang kurang dari n (n diperoleh dari input). #include <iostream.h> #include <conio.h> void main(){ int bil, n; cout << "Masukkan n = "; cin >> n; for (bil = 0; bil < n; bil++){ if (bil % 2 == 0) cout << bil << " "; } } Latihan Buatlah program C++ untuk membuat tampilan segitiga seperti di bawah ini menggunakan for. * * * * * * * * * * * * * * * ... dst Inputnya merupakan tinggi segitiga.

WHILE
Statemen while juga digunakan untuk menyatakan perulangan. Penggunaannya mirip pada PASCAL. Sintaksnya: while (kondisi){ ... ... } contoh: Dua perintah di bawah ini adalah identik. for (a = 1; a <= 5; a++){ cout << "Hello world \n"; } dengan a = 1; while (a <= 5){ cout << "Hello world \n"; a++; } Penting!!! Jika Anda menggunakan while, pastikan bahwa suatu saat bagian kondisi sampai bernilai FALSE. Apabila tidak, proses perulangan akan terus berjalan selamanya.

Yudwi @ 2008 [ 30 ]

Modul CPP MAARIF1 - 07/08

Contoh program di bawah ini digunakan untuk menjumlahkan sejumlah data angka. Angka yang akan dijumlahkan diinputkan satu-persatu. Proses pemasukan data angka akan berhenti ketika dimasukkan angka 1. Setelah itu tampil hasil penjumlahannya. #include <iostream.h> #include <conio.h> void main(){ int data, jumlah,cacah; jumlah = 0; data = 0; cacah = 0; while (data != -1){ cout << "Masukkan data angka : "; cin >> data; jumlah += data; cacah++; } cout << "Jumlah data adalah : " << jumlah << endl; cout << "Rata-rata : " << jumlah/cacah; } Kondisi dalam WHILE juga dapat menggunakan operator logika. Misalnya while ((kondisi1) && (kondisi2)){ ... ... } Latihan Buatlah simulasi menu program dengan tampilan di bawah ini menggunakan WHILE. MENU PILIHAN 1. Baca Data 2. Ubah Data 3. Hapus Data 4. Exit Pilihan Anda (1/2/3/4) ? ... Apabila dipilih menu no 1, maka akan tampil teks Anda memilih menu 1. Demikian pula untuk menu 2 dan 3. Kemudian setelah itu muncul teks Tekan ENTER untuk kembali ke menu utama. Artinya begitu kita tekan ENTER menu pilihan akan muncul kembali, dst. Akan tetapi bila yang dipilih menu 4 (EXIT), program langsung berhenti.

DO ... WHILE
Perintah DO ... WHILE hampir sama dengan WHILE sebelumnya. Sintaknya: do{ ... ... } while (kondisi); Perbedaan dengan WHILE sebelumnya yaitu bahwa pada DO WHILE statemen perulangannya dilakukan terlebih dahulu baru kemudian di cek kondisinya. Sedangkan WHILE kondisi dicek dulu baru kemudia statemen perulangannya dijalankan. Akibat dari hal

Yudwi @ 2008 [ 31 ]

Modul CPP MAARIF1 - 07/08

ini adalah dalam do while minimal terdapat 1x perulangan. Sedangkan while dimungkinkan perulangan tidak pernah terjadi yaitu ketika kondisinya langsung bernilai FALSE. Contoh: a = 1; do { cout << Hello world \n; a++; } while(a==0) Perintah di atas akan muncul satu buah Hello World. Bandingkan dengan yang berikut ini: a = 1; while(a==0) { cout << Hello world \n; a++; } Perintah di atas sama sekali tidak menampilkan Hello World, karena kondisinya langsung FALSE. TUGAS 1. Buatlah program dengan C++ untuk menampilkan semua penyelesaian dari persamaan x + y + z = 20, dengan x, y, z bilangan bulat >= 0. Contoh tampilan outputnya: ----------------------------x y z ----------------------------0 0 20 0 1 19 0 2 18 dst 24 2. Seseorang punya rekening tabungan di bank sebesar Rp. 10.000,- (saldo awal). Selanjutnya ia dapat menyetor atau mengambil tabungannya. Buatlah program dengan C++ untuk keperluan transaksi di bank tsb. Tampilan menu utamanya sbb: -------------------------------------PT. BANK SYARIAH BENERAN -------------------------------------Saldo : .... Menu Transaksi 1. Setor Tabungan 2. Ambil Tabungan 3. Exit Pilihan menu (1/2/3) ? ... Ketentuan

Yudwi @ 2008 [ 32 ]

Modul CPP MAARIF1 - 07/08

Bank membuat kebijakan bahwa saldo minimum yang harus disisakan di rekening adalah Rp. 10.000,-

Yudwi @ 2008 [ 33 ]

Modul CPP MAARIF1 - 07/08

FUNGSI
Sebuah fungsi berisi sejumlah pernyataan yang dikemas dalam sebuah nama.Nama ini selanjutnya dapat dipanggil beberapa kali di beberapa tempat dalam program. Tujuannya: 1. memudahkan dalam mengembangkan program. Program dibagi menjadi beberapa subprogram kecil, sehingga hal ini menjadi kunci dalam pembuatan program terstruktur. 2. menghemat ukuran program, karena beberapa perintah yang sama dan dijalankan beberapa kali dalam program dapat dijadikan satu kali saja dalam suatu fungsi, kemudian fungsi tersebut dapat dipanggil berulang kali. Contoh Fungsi I: #include <iostream.h> #include <conio.h> void garis(); // prototype fungsi // main fungsi void main() { clrscr(); garis(); // panggil fungsi cout << "NIM NAMA MAHASISWA" << endl; garis(); // panggil fungsi cout << "M0197001 AMIR HAMZAH " << endl; cout << "M0197002 PAIMAN" << endl; garis(); // panggil fungsi } // detail fungsi void garis(){ int i; for(i=0;i<=40;i++){ cout << "-"; } cout << endl; getch(); } Contoh di atas menggambarkan bagaimana membuat fungsi untuk membuat garis. Nama fungsinya adalah garis. Untuk membuat suatu fungsi, diperlukan suatu prototype dari fungsi tersebut. Prototype fungsi memiliki sintaks sbb: returned_value_data_type nama_fungsi(argumen); Seperti halnya dalam Pascal, suatu fungsi dapat mengembalikan (return) suatu nilai (value) yang tergantung tipe datanya. Tipe data value yang dikembalikan inilah yang dimaksud dengan returned_value_data_type. Sedangkan argumen merupakan parameterparameter yang akan diolah dalam fungsi tersebut. Argumen boleh ada boleh tidak, sesuai kebutuhan. Apabila parameter argumennya lebih dari satu, cara penulisannya sbb: (tipe_data param1, tipe_data param2, ...)

Yudwi @ 2008 [ 34 ]

Modul CPP MAARIF1 - 07/08

Contoh penulisan prototype fungsi: - double kuadrat(int x); - float luas_segitiga(float alas, float tinggi); - int jumlah_bil(int x, int y, int z); Apabila suatu fungsi tidak mengembalikan nilai, maka returned_value_data_type nya diisi void. Setelah prototype fungsi dibuat, selanjutnya membuat fungsi tersebut secara detail. Suatu fungsi disebut juga subprogram, oleh karena itu strukturnya juga sama dengan struktur program utama. Pada contoh fungsi garis() di atas, detail dari fungsi tersebut adalah: void garis(){ int i; for(i=0;i<=40;i++){ cout << "-"; } cout << endl; } Kalau diperhatikan, strukturnya sama dengan program utama main(). Contoh Fungsi II: #include <iostream.h> #include <conio.h> float luas(float alas, float tinggi); void main(){ clrscr(); a = 10.5; t = 11; cout << "HITUNG LUAS SEGITIGA" << endl; cout << "Panjang alas : " << a << endl; cout << "Tinggi : " << t << endl; cout << "Luasnya : " << luas(a,t) << endl; } float luas(float alas, float tinggi){ float luas_segitiga; luas_segitiga = alas * tinggi * 0.5; return luas_segitiga; } Detail fungsi luas di atas dapat ditulis sbb: float luas(float alas, float tinggi){ return (alas * tinggi * 0.5); } Perintah return adalah untuk mengembalikan hasil operasi di sebelah kanannya ke perintah pemanggilan fungsi.

Yudwi @ 2008 [ 35 ]

Modul CPP MAARIF1 - 07/08

VARIABEL GLOBAL DAN LOKAL


Setiap kali kita deklarasikan suatu variabel, belum tentu variabel tersebut dikenal di setiap fungsi yang kita buat. Contoh: #include <iostream.h> #include <conio.h> void cetak(); void main(){ int a; a = 10; cout << "Nilai a = " << a << endl; cetak(); } void cetak(){ a++; cout << "Nilai a = " << a << endl; } Ketika program di atas dicompile, akan terdapat error yaitu variabel a dalam fungsi cetak() undefined. Artinya bahwa variabel a tidak dikenal dalam cetak(). Variabel a hanya dikenal dalam program utama/ fungsi main() saja. Maka dalam hal ini variabel a disebut variabel lokal (hanya dikenal dalam fungsi yang di dalamnya didefinisikan a tersebut). Selanjutnya program di atas diubah sbb: #include <iostream.h> #include <conio.h> int a; void cetak(); void main(){ a = 10; cout << "Nilai a = " << a << endl; cetak(); } void cetak(){ a++; cout << "Nilai a = " << a << endl; } Apabila program di atas dijalankan maka akan tampil: Nilai a = 10 Nilai a = 11 Pada program di atas, variabel a disebut variabel global karena variabel tersebut dapat dikenali di setiap fungsi yang ada.

Yudwi @ 2008 [ 36 ]

Modul CPP MAARIF1 - 07/08

Bagaimana dengan yang ini??? #include <iostream.h> #include <conio.h> void cetak(); void main(){ int a; a = 10; cout << "Nilai a = " << a << endl; cetak(); } void cetak(){ int a; cout << "Nilai a = " << a << endl; } Apabila program di atas dijalankan, hasilnya adalah: Nilai a = 10 Nilai a = 747 Hasil di atas menunjukkan bahwa meskipun nama variabelnya sama-sama a, tapi kedua variabel a tersebut berbeda. Setiap variabel a tersebut hanya dikenali di fungsinya masingmasing (tidak terkait satu dengan yang lain). Latihan 1. Buatlah fungsi yang akan memberikan nilai 1 jika nilai parameter yangdimasukkan huruf a, dan akan memberikan nilai 0 jika nilai parameter yang dimasukkan selain huruf a. 2. Buatlah fungsi untuk mencari nilai fungsi f(x) = 2x2 3x + 1; Parameter fungsinya adalah nilai x (tipe data float/double). Return valuenya adalah nilai f(x). 3. Buatlah fungsi untuk membuat tampilan seperti di bawah ini: * * * * * * * * * Tampilan di atas muncul apabila dimasukkan n = 3. * * * * * * * * * * * * * * * * Tampilan di atas muncul apabila dimasukkan n = 4. Parameter fungsinya adalah n (tipe datanya integer).

Yudwi @ 2008 [ 37 ]

Modul CPP MAARIF1 - 07/08

STRINGS
Dalam pemrograman, string merupakan kumpulan dari beberapa karakter. Untuk membedakan string dengan karakter, dalam C++ dibedakan penulisannya. Suatu nilai merupakan string apabila diapit dengan tanda petik ganda "...", misalnya "SAYA". Sedangkan karakter (char) diapit dengan tanda petik tunggal, misal 's'. Dalam pemrograman C++, karena string merupakan kumpulan dari karakter maka untuk inisialisasi string, dapat dilakukan dengan cara sebagai berikut: char namaku[20] ; maka dari pernyataan di atas, dapat digambarkan sebagai deklarasi sebuah variabel string (array dari karakter) dengan panjang hingga 20 karakter, termasuk diakhiri dengan karakter null. namaku Ukuran maksimum 20 karakter untuk pernyataan di atas, dalam pengisiannya tidak harus penuh. Contoh, variabel namaku, dapat diisi dengan string Rachmat yang panjangnya 7 karakter , atau dapat digantikan dengan string Johny yang memiliki panjang 5 karakter. Dari contoh tersebut, suatu string dapat menyimpan karakter kurang dari panjang totalnya. Dan untuk mengakhiri string, di tiap-tiap akhir akan ditambahkan sebuah karakter NULL yang dapat ditulis sebagai karakter konstan '\0'. Contoh berikut akan memberikan string Rachmat dan Johny pada variabel namaku. namaku R J a o c h h n m y a \0 t \0

Lantas bagaimana dengan "s" ?? Dalam hal ini "s" juga merupakan string, meskipun karakter penyusunnya terlihat hanya satu. Akan tetapi pada kenyataannya, "s" disusun tidak hanya karakter 's' saja, melainkan terdapat pula karakter NULL atau '\0' , yang berfungsi sebagai tanda akhir dari string. Untuk mendeklarasikan suatu variabel merupakan string, maka perintahnya: char variabel[maks karakter]; contoh: char teks[50]; Perintah di atas bermakna bahwa teks merupakan variabel string dengan jumlah karakter yang dapat disimpan maksimal adalah 50 (sudah termasuk karakter NULL).

Yudwi @ 2008 [ 38 ]

Modul CPP MAARIF1 - 07/08

INISIALISASI STRING
Misalkan suatu variabel string katakanlah kalimat[30] akan diberi nilai SAYA BELAJAR C++, maka perintahnya: char kalimat[30] = "SAYA BELAJAR C++"; Program lengkapnya sbb: #include <iostream.h> #include <conio.h> void main(){ int a; a = 20; char kalimat[30] = "SAYA BELAJAR C++"; cout << "Nilai a = " << a << endl; cout << "Nilai kalimat = " << kalimat << endl; } Tidak boleh seperti di bawah ini!! void main(){ int a; char kalimat[30]; a = 20; kalimat = "SAYA BELAJAR C++"; // atau kalimat[30] = "SAYA BELAJAR C++"; cout << "Nilai a = " << a << endl; cout << "Nilai kalimat = " << kalimat << endl; }

MEMBACA STRING DARI KEYBOARD


Selanjutnya bagaimana cara membaca string yang berasal dari keyboard? Berikut ini contohnya: #include<iostream.h> #include<conio.h> void main(){ char nama[20]; char alamat[30]; cout << "Masukkan nama Anda : "; cin.getline(nama, sizeof(nama)); cout << "Masukkan alamat Anda : "; cin.getline(alamat, sizeof(alamat)); cout << "Nama Anda : " << nama << endl; cout << "Alamat Anda : " << alamat << endl; }

Yudwi @ 2008 [ 39 ]

Modul CPP MAARIF1 - 07/08

MENGCOPY STRING
Kemudian bagaimana untuk mengassign suatu string dari variabel ke variabel lain? Misalnya kata1 diberi string HALLO. Selanjutnya kata2 akan diberi string dari kata1. Untuk melakukan hal ini, Anda tidak bisa memberikan perintah kata2 = kata1; Perintah yang digunakan untuk keperluan di atas adalah dengan: strcpy(kata2, kata1); // mengcopy isi dari kata1 ke kata2 Contoh: #include<iostream.h> #include<conio.h> #include<string.h> void main(){ char kata1[20] = "HALLO"; char kata2[20]; strcpy(kata2, kata1); cout << "Kata1: " << kata1 << endl; cout << "Kata2: " << kata2 << endl; }

FUNGSI UNTUK OPERASI STRING


Fungsi-fungsi berikut ini dapat digunakan untuk memanipulasi string. Sebelum fungsi digunakan, tambahkan file header string.h pada include. a. Mengetahui panjang string dengan strlen() sintaks: strlen(string) akan me-return bilangan bulat yang menyatakan panjang string. Contoh: int panjangteks; char kalimat[30] = "BELAJAR C++ TIDAKLAH SULIT"; panjangteks = strlen(kalimat); cout << "Panjang string : " << panjangteks; b. Menggabungkan string dengan strcat() sintaks: strcat(string1, string2) Contoh menambahkan string2 ke string1: char kata1[5] = "SATU "; char kata2[5] = "DUA"; strcat(kata1, kata2); // nilai kata1 menjadi "SATU DUA"

Yudwi @ 2008 [ 40 ]

Modul CPP MAARIF1 - 07/08

c. Mengkonversi ke huruf kapital dengan strupr() sintaks: strupr(string) Contoh mengubah huruf kecil dari string ke huruf kapital: char string1[30] = "aBcDefgHIJKLmno"; strupr(string1); //nilai string1 menjadi "ABCDEFGHIJKLMNO" d. Mengkonversi ke huruf kecil dengan strlwr() sintaks: strlwr(string) Fungsi ini kebalikan dari strupr() e. Mencari Substring dengan strstr() Misalkan diberikan suatu string JAKARTA KOTA METROPOLITAN. Apakah string METRO terdapat dalam string tersebut? Untuk mengetahui hal ini dengan C+ +, kita dapat menggunakan fungsi strstr(). sintaks: strstr(string1, string2); Fungsi tersebut akan me-return nilai 1 jika string2 merupakan substring dari string1, dan akan mereturn 0 jika tidak. Contoh: if(strstr("JAKARTA KOTA METROPOLITAN", "METRO")==1) cout << "Merupakan substring"; else cout << "Bukan merupakan substring"; f. Membalik string dengan strrev() Bagaimana cara membalik string C++ supaya diperoleh ++C? Berikut ini perintah dalam C++, sintaks: strrev(string); Contoh: char kata[10] = "C++"; strrev(kata); cout << kata;

Yudwi @ 2008 [ 41 ]

Modul CPP MAARIF1 - 07/08

ARRAY
Array adalah kumpulan data yang bertipe sama yang menggunakan nama yang sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan nomor elemen (subscript). Contoh 1. Penggunaan array dalam C++: Program di bawah ini untuk membaca data kemudian menampilkannya. #include<iostream.h> #include<conio.h> void main(){ int data[10]; // array dengan 10 elemen bertipe integer int elemen; clrscr(); // entri 10 data for (elemen=0;elemen <= 9;elemen++){ cout << "Data ke - " << elemen << ": "; cin >> data[elemen]; } // tampilkan data setelah entri for (elemen=0;elemen <= 9;elemen++){ cout << "Data ke - " << elemen << ": " << data[elemen]; } } NB: Dalam C/C++ elemen array dimulai dari 0. Contoh 2. Program untuk menampilkan data array dari hasil inisialisasi: #include<iostream.h> #include<conio.h> void main(){ int data[5] = {4, 1, 0, -9, 8}; int elemen; clrscr(); // tampilkan data for (elemen=0;elemen <= 4;elemen++){ cout << "Data ke - " << elemen << ": " << data[elemen]; } } Contoh 3. Program untuk mencari data dari array, dan menampilkan nomor elemennya. #include<iostream.h> #include<conio.h> void main(){ int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7}; int elemen, ketemu; cout << "Data yang dicari : "; cin >> x; ketemu = 0;

Yudwi @ 2008 [ 42 ]

Modul CPP MAARIF1 - 07/08

for(elemen=0; elemen<= 9; elemen++){ if (data[elemen] == x) {ketemu = ! ketemu; break; } } if (ketemu == 0) cout << "Data tidak ditemukan "; else cout << "Data ada di elemen : " << elemen; } Contoh 4. Program untuk menampilkan data terbesar (maks) dari suatu array. #include<iostream.h> #include<conio.h> void main(){ int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7}; int elemen, max; max = data[0]; for(elemen=0; elemen<= 9; elemen++){ if (data[elemen]>max) max = data[elemen]; else max = max; } cout << "Nilai maksimum adalah : " << max; } Array di atas adalah array dimensi satu. Bagaimana dengan array dimensi dua? Berikut ini contoh penggunaan array dua dimensi: #include<iostream.h> #include<conio.h> void main(){ int j, k; int data[5][3] = { {3, 4, -1}, {2, 3, 0}, {1, 1, 2}, {5, 9, -4}, {6, 6, 2} }; 0; j<=4; j++){ = 0; k<=2; k++) << "data[" << j << "]["<< k << "] = "; << data[j][k] << endl;

for (j = for (k cout cout } }

Latihan 1. Diberikan suatu array bertipe integer yang berukuran 10 ruang/elemen yang setiap elemen sudah ada nilainya yang sudah terurut. Buatlah program untuk mencari jangkauan (range) dari nilai dalam array tersebut.

Yudwi @ 2008 [ 43 ]

Modul CPP MAARIF1 - 07/08

STRUKTUR
Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan. Perhatikan contoh struktur berikut ini: struct data_tanggal{ int tahun; int bulan; int tanggal; }; Struktur di atas bernama data_tanggal, yang tersusun atas 3 unit penyusunnya yaitu tahun, tanggal, dan bulan. Setelah dibuat struktur tanggal, selanjutnya struktur tersebut dapat digunakan sebagai tipe data suatu variabel, dalam hal ini disebut tipe data abstrak. Berikut contoh programnya. Contoh #include<iostream.h> #include<conio.h> void main(){ struct data_tanggal{ int tanggal; int bulan; int tahun; }; data_tanggal tanggal_lahir; tanggal_lahir.tanggal = 1; tanggal_lahir.bulan = 9; tanggal_lahir.tahun = 1979; cout << tanggal_lahir.tanggal << '/'; cout << tanggal_lahir.bulan << '/' << tanggal_lahir.tahun; } Misalkan terdapat 2 buah variabel tgl1 dan tgl2 sama-sama bertipe data_tanggal. Selanjutnya diinginkan mengcopy isi dari tgl1 ke tgl2, maka dapat dilakukan dengan perintah assignment biasa. Contoh #include<iostream.h> #include<conio.h> void main(){ struct data_tanggal{ int tanggal; int bulan; int tahun; }; data_tanggal tgl1, tgl2; tgl1.tanggal = 1; tgl1.bulan = 9; tgl1.tahun = 1979; tgl2 = tgl1; // atau tgl2.tanggal = tgl1.tanggal; tgl2.bulan = tgl1.bulan;

Yudwi @ 2008 [ 44 ]

Modul CPP MAARIF1 - 07/08

tgl2.tahun = tgl2.tahun; cout << tgl1.tanggal << '/' << tgl1.bulan; cout << '/' << tgl1.tahun << endl; cout << tgl2.tanggal << '/' << tgl2.bulan; cout << '/' << tgl2.tahun << endl; } Untuk membandingkan 2 buah struktur, masing-masing unit harus dibandingkan sendirisendiri, contoh: if ((tgl1.tanggal==tgl2.tanggal)&&(tgl1.bulan==tgl2.bulan)&& (tgl1.tahun==tgl2.tahun)) cout << "Isi strukturnya sama"; else cout << "Isi struktur tak sama"; Suatu struktur juga dapat digunakan untuk argumen/parameter suatu fungsi. Contoh 3. #include<iostream.h> #include<conio.h> struct data{ int x; int y; }; void tampilkan(data nilai) void main(){ data nilaiku; nilaiku.x = 10; nilaiku.y = 16; tampilkan(nilaiku); } void tampilkan(data nilai){ cout << "Nilai x = " << nilai.x << endl; cout << "Nilai y = " << nilai.y << endl; } Latihan: 1. Buatlah program menggunakan fungsi untuk menentukan selisih antara dua waktu (jam). Misalkan selisih antara pukul 4.30 dengan 6.00 adalah 90 menit. Terdapat 2 argumen fungsi yaitu jam pertama dan jam kedua (lebih besar dari jam pertama). hint: buat struktur jam (dengan unit jam, dan menit). 2. Bilangan kompleks memiliki format a+b i, dengan a dan b adalah bilangan real. Notasi a disebut juga bagian real, dan b disebut juga bagian imajiner. Buatlah program menggunakan struktur untuk menjumlahkan, mengurangkan, dan mengalikan 2 buah bilangan kompleks. Contoh: (2+3 (2+3 (2+3 -2 i) i) i) 3i + . + (-1 + 3i) = 1+6 i (-1 + 6i) = 3 3i (-1 + 3i) = -2 3i + 6i + 9 i2 = 6i 9 = -11 + 3i

Yudwi @ 2008 [ 45 ]

Modul CPP MAARIF1 - 07/08

OPERASI FILE
Operasi dasar file pada prinsipnya terbagi menjadi 3 tahap, yaitu: - membuka atau mengaktifkan file - melaksanakan pemrosesan file - menutup dile

MEMBUKA FILE
Sebelum suatu file dapat diproses, file harus dibuka terlebih dahulu. Sebelum file dibuka, terlebih dahulu obyek file harus didefinisikan. Sintaksnya: ofstream nama_obyek; perintah ofstream dapat dijalankan dengan menyertakan file header fstream.h Setelah itu, suatu file dapat dibuka dengan perintah nama_obyek.open("nama file dan path");

MENULIS KE FILE
Salah satu jenis pemrosesan pada file adalah menulis atau merekam data ke file. Sintaknya: nama_obyek << ... ;

MENUTUP FILE
Setelah pemrosesan file selesai, file dapat ditutup menggunakan perintah nama_obyek.close(); Contoh 1 Program berikut ini untuk menulis teks ke dalam file #include<iostream.h> #include<fstream.h> void main(){ ofstream fileteks; fileteks.open("C:/algo.txt"); fileteks << "Untuk mencapai tujuan yg besar, maka tujuan itu" << endl; fileteks << "harus dibagi-bagi menjadi tujuan kecil"<< endl; fileteks << "sampai tujuan itu merupakan tujuan yg dapat " << "dicapai" << endl; fileteks << "berdasarkan kondisi dan potensi yg dimiliki saat " << itu " << endl; fileteks.close(); } perintah fileteks.open("C:/algo.txt"); akan membuka file algo.txt yang ada di C:\ Apabila file tersebut belum ada maka akan dibuat secara otomatis, dan apabila sudah ada isi file algo.txt akan terhapus.

MENAMBAH DATA PADA FILE


Suatu file yang sudah ada sebelumnya dapat ditambah data yang baru (tidak menghapus data lama). Caranya dengan menambahkan perintah ios::app pada open(). nama_obyek.open("nama file", ios::app);

Yudwi @ 2008 [ 46 ]

Modul CPP MAARIF1 - 07/08

Contoh 2 #include<iostream.h> #include<fstream.h> void main() { ofstream fileteks; fileteks.open("C:/algo.txt", ios::app); fileteks << endl; fileteks << "Oleh: Al Khowarizmi << endl; fileteks.close(); }

MEMERIKSA KEBERHASILAN OPERASI FILE


Tidak selamanya jalan yang mulus ditemui. Ada kemungkinan terjadi saat file dibuka, ternyata file tidak ada. Dalam C++ tersedia fungsi untuk memeriksa kondisi-kondisi pada operasi file, sehingga kesalahan saat eksekusi dapat dikendalikan. Fungsi yang dimaksud adalah fail(). Contoh 3 #include<iostream.h> #include<fstream.h> void main(){ ifstream fileteks; { ifstream digunakan u/ membaca file } fileteks.open("C:/algo.txt"); if (fileteks.fail()) cout << "Maaf file takdapat dibuka/" << "tidak ditemukan"; fileteks.close(); }

OPERASI BERBASIS KARAKTER


Operasi file dapat dilakukan dalam bentuk karakter. Misalnya proses penyimpanan data ke file dilakukan setiap karakter, atau membaca data file karakter per karakter. Operasi ini didukung oleh fungsi put() dan get(). Contoh 4 Program untuk menyimpan data karakter per karakter ke dalam file. #include<iostream.h> #include<fstream.h> void main(){ ofstream fileteks; fileteks.open("C:/contoh.txt"); fileteks.put('A'); fileteks.put('B'); fileteks.put('C'); fileteks.close(); }

Yudwi @ 2008 [ 47 ]

Modul CPP MAARIF1 - 07/08

Contoh 5 Program untuk membaca file karakter per karakter #include<iostream.h> #include<fstream.h> void main(){ char karakter; ifstream fileteks; {} fileteks.open("C:/contoh.txt"); while(!fileteks.eof()){ fileteks.get(karakter); cout << karakter; } fileteks.close(); } Latihan. 1. Buatlah program C++ untuk menghitung jumlah karakter dalam suatu file. Inputnya adalah nama file dan pathnya. 2. Buatlah program C++ untuk menghitung jumlah karakter tertentu, misalnya karakter 'A'. Input berupa nama file dan karakter yang akan dihitung. 3. Misalkan suatu file teks berisi listing program C++. Buatlah program untuk menghitung pasangan kurung kurawal yang ada pada file teks tersebut. 4. Buatlah program C++ untuk melakukan enkripsi shift chiper suatu file teks (dengan asumsi semua karakter huruf adalah huruf kapital). Inputnya adalah file teks yang akan dienkripsi dan besar pergeseran (integer). Outputnya adalah file teks hasil enkripsi. Hint: Ide dasar shift chiper adalah mengubah setiap karakter huruf ke karakter huruf lain. Misalkan pergeserannya 2, maka berikut ini karakter hasil enkripsiawal A B C D E F G H I J K L M N O P Q R S T U V W X Y Z hasil C D E F G H I J K L M N O P Q R S T U V W X Y Z A B Sehingga misal diberikan suatu teks C++ IS EASY, maka hasil enkripsinya adalah E++ KU GCUA

Yudwi @ 2008 [ 48 ]

Modul CPP MAARIF1 - 07/08

CLASS
Class merupakan struktur data dari obyek. Untuk menjelaskan tentang class, lihat perbandingannya dengan struktur berikut ini: Contoh #include <iostream.h> #include <conio.h> #include <string.h> struct mahasiswa { char nim[8]; char nama[20]; int umur; }; void main() { mahasiswa mhsd3; strcpy(mhsd3.nim, "M0197001"); strcpy(mhsd3.nama, "Burhanudin Harahap"); mhsd3.umur = 20; cout << mhsd3.nim << endl; cout << mhsd3.nama << endl; cout << mhsd3.umur << endl; } Setelah program di atas dicompile, error tidak ada. Berikutnya struktur di atas kita ganti dengan class, menjadi Contoh #include <iostream.h> #include <conio.h> #include <string.h> class mahasiswa { char nim[8]; char nama[20]; int umur; }; void main() { mahasiswa mhsd3; strcpy(mhsd3.nim, "M0197001"); strcpy(mhsd3.nama, "Burhanudin Harahap"); mhsd3.umur = 20; cout << mhsd3.nim << endl; cout << mhsd3.nama << endl; cout << mhsd3.umur << endl; } setelah program di atas di compile, ternyata error muncul. Error tersebut muncul karena class tidak dikenal dalam main(). Kesalahan ini sekaligus menunjukkan perbedaan dengan struktur.

Yudwi @ 2008 [ 49 ]

Modul CPP MAARIF1 - 07/08

Penggunaan PUBLIC Agar program di atas dapat dicompile, ditambahkan perintah public diikuti dengan tanda titik dua (:), sehingga programnya menjadi Contoh #include <iostream.h> #include <conio.h> #include <string.h> class mahasiswa{ public: char nim[8]; char nama[20]; int umur; }; void main(){ mahasiswa mhsd3; strcpy(mhsd3.nim, "M0197001"); strcpy(mhsd3.nama, "Burhanudin Harahap"); mhsd3.umur = 20; cout << mhsd3.nim << endl; cout << mhsd3.nama << endl; cout << mhsd3.umur << endl; } Perintah PUBLIC menyatakan bahwa perintah-perintah yang ada di bawahnya dapat diakses diluar class. Perintah PUBLIC merupakan termasuk access specifier (penentu akses). Selain PUBLIC, terdapat perintah lain yang termasuk access specifier, yaitu PRIVATE. Contoh 4 #include <iostream.h> #include <conio.h> #include <string.h> class mahasiswa{ private: char nim[8]; char nama[20]; int umur; }; void main(){ mahasiswa mhsd3; strcpy(mhsd3.nim, "M0197001"); strcpy(mhsd3.nama, "Burhanudin Harahap"); mhsd3.umur = 20; cout << mhsd3.nim << endl; cout << mhsd3.nama << endl; cout << mhsd3.umur << endl; } Setelah dicompile, error yang sama dengan sebelumnya muncul yaitu class tidak dapat diakses di main(). Perintah PRIVATE memberi pengertian bahwa perintah yang ada dibawahnya hanya dapat diakses dalam class tersebut, yang dalam hal ini adalah class mahasiswa. variabel nim, nama, dan umur dalam class mahasiswa disebut data anggota. Selain data anggota, kita juga dapat menambahkan fungsi anggota.

Yudwi @ 2008 [ 50 ]

Modul CPP MAARIF1 - 07/08

Contoh #include <iostream.h> #include <conio.h> #include <string.h> class mahasiswa{ private : char nim[8]; char nama[20]; int umur; public : void inisialisasi(char *NIMMHS, char *NAMAMHS, int UMURMHS){ strcpy(nim, NIMMHS); strcpy(nama, NAMAMHS); umur = UMURMHS; } void tampilkan(){ cout << nim << endl; cout << nama << endl; cout << umur << endl; } }; void main(){ mahasiswa mhsd3; mhsd3.inisialisasi("M0197001", "Burhanudin Harahap", 20); mhsd3.tampilkan(); } Pada program di atas, fungsi inisialisasi() dan tampilkan() merupakan fungsi anggota dari class mahasiswa. Keduanya dibuat public karena akan diakses dari luar class, sedangkan data anggotanya (nim, nama, umur) dibuat private. Mungkin Anda berpikir mengapa program terakhir (contoh 5) terlalu panjang, padahal akan diperoleh hasil yang sama dengan program sebelumnya (contoh 1). Anda memang benar, tapi contoh 5 ini merupakan cara pemrograman berorientasi obyek (PBO). Perhatikan program contoh 5, khususnya pada kedua fungsi anggota. Kedua fungsi tidak punya prototype. Kita juga dapat memberikan prototype yang merupakan cara kedua dalam penulisan. Contoh #include <iostream.h> #include <conio.h> #include <string.h> class mhs{ private : char nim[8]; char nama[20]; int umur; public : void inisialisasi(char UMURMHS); void tampilkan(); };

*NIMMHS,

char

*NAMAMHS,

int

Yudwi @ 2008 [ 51 ]

Modul CPP MAARIF1 - 07/08

void main(){ mhs mhsd3; mhsd3.inisialisasi("M0197001", "Burhanudin Harahap", 20); mhsd3.tampilkan(); } void mhs::inisialisasi(char *NIMMHS, char *NAMAMHS, int UMURMHS){ strcpy(nim, NIMMHS); strcpy(nama, NAMAMHS); umur = UMURMHS; } void mhs::tampilkan(){ cout << nim << endl; cout << nama << endl; cout << umur << endl; } Cara kedua inilah yang sering dipilih oleh para programmer C++. Berikut ini contoh-contoh program yang memanfaatkan class Contoh Program untuk menyimpan data n data mahasiswa kemudian menampilkannya. #include <iostream.h> #include <conio.h> #include <stdlib.h> class mahasiswa{ public: char nim[20]; char nama[50]; int umur; void tampilkan(char *NIMMHS, char *NAMAMHS, int UMURMHS){ cout << "NIM MHS : " << NIMMHS << endl; cout << "NAMA MHS : " << NAMAMHS << endl; cout << "UMUR : " << UMURMHS << endl; } }; void main(){ mahasiswa mhsd3[50]; { tipe data array } char temp[10]; int n, i; clrscr(); cout << "<< ENTRI DATA MAHASISWA D3 " << endl; cout << endl; cout << "Jumlah mahasiswa : "; cin.getline(temp, sizeof(temp)); n = atoi(temp); for (i=0;i<=n-1;i++){ cout << "DATA - " << i+1 << endl; cout << "NIM MAHASISWA : " ; cin.getline(mhsd3[i].nim, sizeof(mhsd3[i].nim)); cout << "NAMA MAHASISWA : " ; cin.getline(mhsd3[i].nama, sizeof(mhsd3[i].nama)); cout << "UMUR : "; cin.getline(temp, sizeof(temp)); mhsd3[i].umur = atoi(temp); cout << endl; }

Yudwi @ 2008 [ 52 ]

Modul CPP MAARIF1 - 07/08

// tampilkan semua data cout << "-------------------------" << endl; cout << "DATA YANG MASUK" << endl; cout << "-------------------------" << endl; for (i=0;i<=n-1;i++){ cout << "DATA MAHASISWA " << i+1 << endl; mhsd3[i].tampilkan(mhsd3[i].nim, mhsd3[i].umur); cout << endl; } getch(); }

mhsd3[i].nama,

Contoh Program untuk menjumlahkan dan mengurangkan 2 buah bilangan kompleks. #include <iostream.h> #include <conio.h> class kompleks{ private: float real; float imajiner; public: void tambah(float real1, float imajiner1, float real2, float imajiner2){ real = real1 + real2; imajiner = imajiner1 + imajiner2; } void kurangi(float real1, float imajiner1, float real2, float imajiner2){ real = real1 - real2; imajiner = imajiner1 - imajiner2; } void tampilkan(){ cout << "Hasilnya adalah : " << real << "+ "; cout << imajiner << 'i' << endl; } }; void main(){ clrscr(); kompleks bilkompleks; float el_real1, el_real2, el_imaj1, el_imaj2; cout << "Bilangan Kompleks pertama" << endl; cout << "Elemen real : "; cin >> el_real1; cout << "Elemen imajiner : "; cin >> el_imaj1; cout << "Bilangan Kompleks kedua" << endl; cout << "Elemen real : "; cin >> el_real2; cout << "Elemen imajiner : "; cin >> el_imaj2; bilkompleks.tambah(el_real1,el_imaj1,el_real2,el_imaj2); bilkompleks.tampilkan(); bilkompleks.kurangi(el_real1,el_imaj1,el_real2,el_imaj2); bilkompleks.tampilkan(); getch();}

Yudwi @ 2008 [ 53 ]

Modul CPP MAARIF1 - 07/08

... TO BE CONTINUED AND EDITED

Yudwi @ 2008 [ 54 ]

Anda mungkin juga menyukai