afwancode

Archive for 2008|Yearly archive page

Aplikasi Retail Sanitair

In Product on October 22, 2008 at 4:34 pm

Aplikasi pengolahan data untuk stok barang dan transaksi yang mencakup sampai transaksi akuntansi, sehingga memudahkan user untuk mengolah data – data yang ada, membuat lebih efisien dan tidak membutuhkan waktu yang lama dalam pengolahan datanya.

keunggulan

  • Stok Barang
  • Transaksi Barang
  • Stok Opname
  • Transaksi Akuntansi
  • Laporan

Dengan hanya 2jt an anda sudah bisa memiliki aplikasi tersebut, dengan garansi 3 bulan.

Instalasi Netbeans pada OpenSUSE

In Java on October 21, 2008 at 4:42 pm

Netbeans adalah IDE (Integrated Development Environment) untuk bahasa Pemrogramman Java. Selain Eclipse dan Sun Java Creator, Netbeans adalah salah satu IDE Java yang populer dan banyak digunakan. Ikuti panduan berikut untuk melakukan instalasi Netbeans pada OpenSUSE :

1. Instalasi Java SE. Kalau belum, silakan melakukan instalasi Java SE terlebih dahulu. Ikuti panduannya dari artikel “Instalasi Java pada OpenSUSE”.

2. Download Netbeans dari http://www.netbeans.info/downloads/index.php. Karena menggunakan Linux, pilih file instalasi untuk Linux. Pilih yang tanpa bundel dengan JEE, kecuali memang menginginkannya.

3. Lewat Konsole, masuk ke folder download (mislanya di /opt, sesuaikan dengan folder download anda).

4. Pastikan file binari tersebut merupakan file executable

# chmod +x netbeans.bin (ganti netbeans.bin dengan nama file yang didownload, misalnya : netbeans-5_5-linux.bin, tanda # berarti saya menggunakan prompt root)

5. Lakukan instalasi

# ./netbeans.bin (titik slash namafile)

6. Proses instalasi berjalan, ikuti wizardnya. Netbeans akan melakukan proses instalasi dengan terlebih dahulu mendeteksi lokasi JDK seperti yang dilakukan pada tahap 1. Jika JDK tidak terdeteksi padahal sudah diinstalasikan (JDK diinstall pada folder tertentu), gunakan opsi JavaHome sebagai berikut :

# ./netbeans.bin -is:javahome lokasiJDK

7. Jalankan Netbeans. Setelah diinstall, Netbeans dapat dijalankan dari Start Menu desktop yang digunakan, baik pada KDE maupun Gnome. Jika tidak ada shortcut, pada bagian akhir instalasi biasanya ada pemberitahuan, dimana lokasi executable netbeans dan bagaimana menjalankannya, misalnya :

# /opt/netbeans5.5/bin/netbeans

Setelah proses instalasi, kita dapat memulai menggunakan Netbeans untuk proyek-proyek Java kita. Bagi pengguna bahasa pemrogramman Visual (VB, Delphi, PowerBuilder, etc), IDE Netbeans akan dirasa sangat familiar karena model dan bentuknya tidak terlalu jauh berbeda. Bagi pengguna PHP atau C, dengan model kode yang agak mirip, pemrogramman Java dengan Netbeans mungkin hanya butuh penyesuian beberapa waktu saja.

sumber http://opensuse.or.id/

Program C++

In C++ on October 21, 2008 at 4:28 pm

LEBIH JAUH DENGAN C++

C++ Sumber http://web.itb.ac.id/irwan

I. PENDAHULUAN

1.1 C & C++

Berbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972, dan sekitar satu dekade setelahnya diciptakanlah C++, oleh Bjarne Stroustrup dari Laboratorium Bell, AT&T, pada tahun 1983. C++ cukup kompatibel dengan bahasa pendahulunya C. Pada mulanya C++ disebut “ a better C “. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun 1983, yang berasal dari operator increment pada bahasa C.Keistimewaan yang sangat berari dari C++ ini adalah karena bahasa ini mendukung pemrograman yang berorientasi objek ( OOP / Object Oriented Programming).

1.2 PEMROGRAMAN BERORIENTASI OBJEK

Sampai saat ini, program dianggap sebagai sekumpulan procedure yang melakukan aksi terhadap data. Procedure, atau function, adalah suatu set instruksi khusus yang dieksekusi secara bergantian. Data terpisah dari procedure, dan trik pemrogramannya adalah menjaga urutan pemanggilan fungsi, dan data apa yang diubah. Dalam demikian terciptalah program yang terstruktur.Ide dari pemrograman terstruktur adalah memecah program yang besar menjadi kecil sehingga lebih mudah dipahami. Program-program lama memaksa pengguna untuk melakukan langkah-perlangkah melalui layar monitor. Sedangkan program modern menyajikan semua pilihan sekaligus dan merespon aksi pengguna.OOP berusaha untuk memenuhi kebutuhan itu, menyediakan teknik untuk mengelola kompleksitas, mencatat penggunaan ulang komponen software dsb. Inti dari OOP adalah memperlakukan data dan procedure sebagai sebuah objek berisi entitas dengan identitas dan ciri yang khusus.

1.3 C++ & OBJECT ORIENTED PROGRAMMING

Tiga karakteristik utama dari bahasa yang berorientasi objek adalah 1. Encapsulation 2. Inheritance 3. Polymorphisme.Tiga ciri diatas mendukung reusability, yang merupakan salah satu factor penentu kualitas software. C++ mendukung karakteristik encapsulation dengan menggunakan konsep class. Setelah terbentuk, maka class akan bertindak sebagai entitas yang tenkapsulasi.Dengan adanya konsep inheritance, maka C++ mendukung ide penggunaan ulang suatu object.

Polymorphisme ( Banyak Bentuk ) merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku yang berbeda.

1.4 MENYIAPKAN PROGRAM

Source code C++ dapat ditulis pada text editor apapun. Baik itu digunakan pada sistem operasi Windows atau Unix (Linux, BSD, dsb).

Walaupun demikian, lebih disarankan apabila digunakan dengan editor khusus C++, agar penggunaan tools yang lain lebih mudah.

1.5 KOMPILASI

Untuk mengubah source code menjadi sebuah program, kita gunakan compiler. Setelah source code tercompile, terbentuklah sebuah file objek dengan ekstension “ .obj “. File “ .obj “ ini belum merupakan sebuah program executable. Untuk membentuk program executable linker harus dijalankan. Jika program executable sudah diperoleh, walaupun di komputer anda tidak terinstall compiler C++ namun program masih tetap dapat dijalankan. Saat ini banyak compiler C++ yang berada di pasaran, contohnyaa Borland C++, Turbo C++, Microsoft C++, C++ Builder, Visual C++ sampai pada compiler gratis seperti g++ di Unix.

II. ELEMEN DASAR

Untuk membuat suatu program ada baiknya kita mengenal terlebih dahulu apa yang disebut dengan prepocessor directive. Propocessor ditandai dengan adanya awalan # . Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi.Setiap program C++ mempunyai bentuk seperti di bawah , yaitu: #prepocessor directivemain(){ // Batang Tubuh Program Utama} 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 didalam sebuah fungsi main(). Jangan lupa bahwa C++ bersifat case sensitive, sehingga, nama hallo dan Hallo berbeda artinya.

2.1 CARA PENULISAN
· Komentar

Komentar tidak pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis komentar, yaitu:

Jenis 1 : /* Komentar anda diletakkan di dalam ini Bisa mengapit lebih dari satu baris */Jenis 2 : // Komentar anda diletakkan disini ( hanya bisa perbaris ) · Semicolon Tanda semicolon “;” digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon. Baris yang diawali dengan tanda #, seperti #include tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive

2.2 MASUKAN DAN KELUARAN DASAR
Pada C++ terdapat 2 jenis I/O dasar, yaitu:a. cout (character out), standard keluaranb. cin (character in), standard masukanUntuk dapat menggunakan keyword diatas, maka harus ditambahkan #include pada prapocessor directive. Contoh : #include main() { char nama[100]; // Dekalarasi variable nama cout<>nama; // Meminta user untuk menginisialisasi variable nama cout<<”Nama anda adalah “<<nama; return 0; }

2.3 KARAKTER & STRING LITERAL
String adalah gabungan dari karakterContoh : “ Belajar “ à Literal String “ B “ à Karakter Panjang String strlen() à nama fungsi untuk menghitung panjang string Fungsi strlen() dideklarasikan dalam file string.hJadi bila anda ingin menggunakan fungsi strlen(), maka prepocessor directive #include harus dimasukkan dalam program diatas main(). Contoh : #include #include main(){ cout<<strlen(”Selamat Pagi.\n”)<<endl; cout<<strlen(”Selamat Pagi.”)<<endl; cout<<strlen(”Selamat”)<<endl; cout<<strlen(”S”)<<endl; cout<<strlen(””); return 0;} Keluarannya:1413710 Perhatikan, bahwa disetiap akhir baris pernyataan diakhiri dengan tanda titik – koma (semicolon) “ ; “.Perhatikan, bahwa ‘ \n ‘ dihitung satu karakter. \n disebut newline karakterEndl juga merupakan newline karakter ( sama kegunaannya seperti \n ).Dalam C++, selain \n terdapat juga beberapa karakter khusus yang biasa dsebut escape sequence characters, yaitu

Karakter
Keterangan
Karakteeer ber-ASCII nol ( karakter null )
\a Karakter bell
\b Karakter backspace
\f Karakter ganti halaman ( formfeed )
\n Karakter baris baru ( newline )
\r Karakter carriage return ( ke awal baris )
\t Karakter tab horizontal
\v Karakter tab vertika
\\ Karakter \
\’ Karakter ‘
\” Karakter “
\? Karakter ?
\ooo Karakter yang nilai oktalnya adalah ooo ( 3 digit octal )
\xhh Karakter yang nilai heksadesimalnya adalah hh (2 digit heksadesimal )

2.4 KEYWORD & IDENTIFIER
Dalam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaks individual yang disebut token, yang memuat nama variable, konstanta, keyword, operator dan tanda baca. Contoh : #include main(){ int n=66; cout<<n<<endl; // n sebagai variabel return 0;} Keluarannya:66 Program diatas memperlihatkan 15 token, yaitu main, (, ), {, int, n, =, 66, ;, cout, <<, endl, return, 0 dan }Token n adalah suatu variableToken 66,0 adalah suatu konstantaToken int, return dan endl adalah suatu keywordToken = dan << adalah operatorToken(, ), {, ;, dan } adalah tanda bacaBaris pertama berisi suatu prepocessor directive yang bukan bagian sebenarnya dari program

2.5 VARIABEL, DEKLARASI & INISIALISASI
Variabel adalah symbol dari suatu besaran yang merepresentasikan suatu lokasi di dalam memori komputer. Informasi yang tersimpan di dalam lokasi tersebut disebut nilai variable. Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan ( assignment statement ), yang mempunyai sintaks sebagai berikut variable = ekspresi ;Yang akan diolah terlebih dahulu adalah ekspresi, baru hasilnya dimasukkan kedalam variableTanda “=” adalah operator penugasan. Contoh : #include main(){ int n; n=66; // sama juga jika ditulis int n=66; cout<<n<<endl; // n sebagai variabel cout<<’n’<<endl; // end sebagai karakter return 0;} Keluarannya :66n Deklarasi dari suatu variable adalah sebuah pernyataan yang memberikan informasi tentang variable kepada compiler C++. Sintaksnya adlah type variable ;dengan type adalah tipe data yang didukung oleh C++, beberapa contohnya yaitu:

Tipe Data
Ukuran Memori (byte) Jangkauan Nilai Jumlah Digit Presisi
char 1 -128 hingga +127 -
Int 2 -32768 hingga +32767 -
Long 4 -2.147.438.648 hingga 2.147.438.647 -
float 4 3,4E-38 hingga 3,4E38 6-7
double 8 1.7E-308 hingga 1.7E308 15-16
Long double 10 3.4E-4932 hingga 1.1E4932 19

NB : Untuk mengetahui ukuran memori dari suatu tipe digunakan fungsi sizeof(tipe) Tipe data dapat diubah ( type cast ), misalkan: float x = 3.345; int p = int(x); maka nilai p adalah 3 ( terjadi truncating ). Contoh Deklarasi dan Inisialisasi int a,b,c; int p = 55;Dalam contoh, kita mendeklarasikan tiga variable yaitu variable a,b dan c namun belum kita inisialisasi. Sedangkan variable p kita inisialisasi ( diberikan nilai ).Dalam C++, untuk dapat menggunakan suatu variable, variable tersebut minimal kita deklarasikan terlebih dahulu. Apa yang terjadi, jika suatu variable telah dideklarasikan namun belum kita inisialisasi lalu kita mencetak nilai variable tersebut ? Contoh : #include main(){ int n; cout<<n<> Jika variable tidak diinisialisai, namun nilai keluarannya diminta, maka compiler dengan bijak akan menampilkan nilai acak yang nilainya tergantung dari jenis compilernya.

2.6 KONSTANTA
1. Konstanta Oktal, digit yang digunakan 0-72. Konstanta Heksadesimal, digit yang digunakan 0-9, A-F3. Konstanta Bernamaa. Menggunakan keyword const Contoh : const float PI = 3.14152965; Berbeda dengan variable, konstanta bernama tidak dapat diubah jika telah diinisialisasib. Menggunakan #define Contoh : #define PI 3.14152965 Keuntungan menggunakan #define apabila dibandingkan dengan const adalah kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama kali mencari symbol #define ( oleh sebab itu mengapa # dikatakan prepocessor directive ) dan mengganti semua PI dengan nilai 3.14152965.

III. OPERATOR
Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi. Contoh : a = b + c * d / 4 a, b, c, d à disebut operand =, +, *, / à disebut operator

3.1 OPERATOR ARITMATIKA

Operator
Deskripsi Contoh
+ Penjumlahan ( Add ) m + n
- Pengurangan ( Substract ) m – n
* Perkalian ( Multiply ) m * n
/ Pembagian ( Divide ) m / n
% Sisa Pembagian Integer ( Modulus ) m % n
- Negasi ( Negate ) -m

NB : Operator seperti operator negasi (-) disebut unary operator, karena membutuhkan hanya satu buah operand Contoh :#include void main(){ int m = 82, n = 26; cout<<m<<” + “<<n<<” = “<<m+n<<endl; cout<<m<<” – “<<n<<” = “<<m-n<<endl; cout<<m<<” * “<<n<<” = “<<m*n<<endl; cout<<m<<” / “<<n<<” = “<<m/n<<endl; cout<<m<<” % “<<n<<” = “<<m%n<<endl; cout<<”-”<<m<<” = “<<-m<<endl;} Keluarannya :82 + 26 = 10882 – 26 = 5682 * 26 = 213282 / 26 = 382 % 26 = 4-82 = -82Karena tipe datanya adalah int, maka 82/26=3, supaya dapat merepresentasikan nilai yang sebenarnya, gunakan tipe data float. Cara lain penulisan dengan menggunakan operator aritmatika : m = m + n ó m += nm = m – n ó m -= nm = m * n ó m *= nm = m / n ó m /= nm = m % n ó m %= n

3.2 OPERATOR NAIK DAN TURUN ( INCREMENT DAN DECREMENT )

Operator increment à ++Operator decrement à – Contoh : #include main(){ int m = 44, n = 66; cout<<”m = “<<m<<”, n = “<<n<<endl; ++m; –n; cout<<”m = “<<m<<”, n = “<<n<<endl; m++; n–; cout<<”m = “<<m<<”, n = “<<n<<endl; return 0;} Keluarannya : m = 44, n = 66m = 45, n = 65m = 46, n = 64 Terlihat bahwa operator pre-increment dan post-increment memiliki akibat yang sama, yaitu manambah nilai satu pada m dan memasukkan nilai tersebut kembali ke m ( m = m+1). Hal yang sama juga terjadi pada operator pre-decrement dan post-decrement yang memberikan akibat yang sama, yaitu mengurangi nilai satu dari n ( n = n – 1). Tetapi bila digunakan sebagai sub-ekspresi, operator post-increment dan pre-increment menunjukkan hasil yang berbeda Contoh : #include main(){ int m = 66, n ; n = ++m; cout<<”m = “<<m<<”, n = “<<n<<endl; n = m++; cout<<”m = “<<m<<”, n = “<<n<<endl; cout<<”m = “<<m++<<endl; cout<<”m = “<<m<<endl; cout<<”m = “<<++m<<endl; return 0;} Keluarannya : m = 67, n = 67m = 68, n = 67m = 68m = 69m = 70 Penjelasan : Dalam penugasan yang pertama, m adalah pre-increment, menaikkan nilainya menjadi 67, yang selanjutnya dimasukkan ke n. Dalam penugasan kedua, m adalah post-increment, sehingga 67 dimasukkan dahulu ke n baru kemudian nilai m-nya dinaikkan, itu sebabnya mengapa nilai m = 68 dan n = 67.Dalam penugasan ketiga, m adalah post-increment, sehingga nilai m ( = 68 ) ditampilkan dahulu ( ke layar ) baru kemudian nilai m dinaikkan menjadi 69.Dalam penugasan keempat, m adalah pre-increment, sehingga nilai m dinaikkan dahulu menjadi 70 baru kemudian ditampilkan ke layar.Supaya lebih paham, perhatikan pula contoh dibawah. Contoh : #include main(){
int m = 5, n; n = ++m * –m; cout<<”m = “<<m<<”, n = “<<n<<endl; cout<<++m<<” “<<++m<<” “<<++m<<endl; return 0;} Keluarannya : m = 5, n = 258 7 6 Penjelasan : Dalam penugasan untuk n, pertama kali m dinaikkan (++m) menjadi 6, kemudian m diturunkan kembali menjadi 5, karena adanya –m. Sehingga nilai m sekarang adalah 5 dan nilai m = 5 inilah yang dievaluasi pada saat penugasan perkalian dilakukan.Pada baris terakhir, ketiga sub-ekspresi dievaluasi dari kanan ke kiri.

3.3 OPERATOR BITWISE

Operator
Deskripsi Contoh
<< Geser n bit ke kiri ( left shift ) m <> Geser n bit ke kanan ( right shift ) m >> n
& Bitwise AND m & n
| Bitwise OR m | n
^ Bitwise XOR m ^ n
~ Bitwise NOT ~m

NB : Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau char Berikut ini diberikan tabel kebenaran untuk operator logika P = A operator B

AND
OR
A B P
0 0 0
1 0 0
1 1 1

A B P
0 0 0
1 0 1
1 1 1

A B P 0 0 0 1 0 1 1 1 0

Contoh : #include void main(){ int m = 82, n = 26; cout<<m<<” << 2″<<” = “<<(m<<2)<<endl; cout<<m<> 2″<<” = “<>2)<<endl; cout<<m<<” & “<<n<<” = “<<(m&n)<<endl; cout<<m<<” | “<<n<<” = “<<(m|n)<<endl; cout<<m<<” ^ “<<n<<” = “<<(m^n)<<endl; cout<<”~”<<m<<” = “<<~m<<endl; } Keluarannya : 82 <> 2 = 2082 & 26 = 1882 | 26 = 9082 ^ 26 = 72~82 = 83 Penjelasan :Nilai keluaran diatas, tergantung dari jenis compiler yang digunakan. Hasil diatas merupakan keluaran dari compiler Turbo C++.Pada Turbo C++ besar dari integer adalah 2 byte atau sama dengan 16 bit, untuk mengetahuinya digunakan perintah cout<<sizeof(int)<<endl; // Untuk mengetahui besar dari intMaka :8210 = 00000000010100102 dan2610 = 00000000000110102Sehingga :82 <> 2 à 00000000000101002 = 201082 & 26 à 00000000010100102 00000000000110102 —————————————— & 00000000000100102 = 1810dan begitu juga untuk operasi OR dan XOR.~82 à digunakan 2’s complement, yaitu 8210 = 00000000010100102 lalu dinegasikan tiap bitnya menjadi 11111111101011012 kemudian LSB ditambah 1 menjadi 1111111110101110 = 6545410 nilai ini melebihi jangkauan maksimum int yang berkisar di -32768 sampai 32767, sehingga nilai yang keluar yaitu 83. Cara lain penulisan dengan menggunakan operator bitwise : m = m << n ó m <> n ó m >>= nm = m & n ó m &= nm = m | n ó m |= nm = m ^ n ó m ^= n

3.4 OPERATOR RELASI

Operator relasi digunakan untuk membandingkan dua buah nilai. Operator ini biasa digunakan dalam instruksi percabangan.

Operator
Deskripsi
== Sama dengan ( bukan assignment )
!= Tidak sama dengan
> Lebih besar
= Lebih besar atau sama dengan
<= Lebih kecil atau sama dengan

Contoh:#include main(){
int m = 5, n =7; if(m == n) cout<<m<<” sama dengan ”<<n<<endl; else if(m != n) cout<<m<<” tidak sama dengan ”<<n< n) cout<<m<<” lebih besar dari ”<<n<<endl; else if(m < n) cout<<m<<” lebih kecil dari ”<<n<<endl; return 0;} Keluarannya :5 lebih kecil dari 7

3.5 OPERATOR LOGIKA

Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi sebuah ungkapan berkondisi.

Operator
Deskripsi Contoh
&& logic AND m && n
|| logic OR m ||n
! logic NOT !m

Contoh : #include void main(){
int m = 166; cout<=0 && m<=150) à “<=0 && m<=150)<<endl; cout<=0 || m<=150) à “<=0 || m<=150)<=0 && m=0 || m<=150) à 1 Penjelasan :Hasil / keluaran dari operator logika adalah 0 dan 1.0 jika keluarannya salah dan 1 jika keluarannya benar.

3.6 OPERATOR KONDISI

Operator kondisi digunakan untuk memperoleh nilai dari dua kemungkinan ungkapan1 ? ungkapan2 : ungkapan3Bila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak maka nilainya sama dengan ungkapan3 Contoh :#include main(){ int m = 26, n = 82; int min = m < n ? m : n; cout<<”Bilangan terkecil adalah “<<min<<endl; return 0;} Keluarannya : Bilangan terkecil adalah 26 Operator relasi, logika dan kondisi akan banyak digunakan pada pernyataan berkondisi

IV. PERNYATAAN ( STATEMENTS )

Pernyataan digunakan untuk melakukan suatu tindakan, yaitu

4.1 PERNYATAAN UNGKAPAN

Pernyataan ini merupakan bentuk pernyataan yang paling sering digunakan. Pernyataan ini diakhiri dengan semicolon “ ; “. Contoh : var = 166; var++;

4.2 PERNYATAAN DEKLARASI

Untuk menggunakan suatu variable minimal variable tersebut dideklarasikan terlabih dahulu Contoh : int var;Merupakan contoh deklarasi sebuah variable var dengan tipe data integer (int).

4.3 PERNYATAAN KOSONG

Pernyataan ini tidak melaksanakan apapun. Contoh : while(ada);

4.4 PERNYATAAN MAJEMUK

Merupakan sejumlah pernyataan yang berada di dalam sebuah blok { } Contoh : for(var = 0 ; var <10 ; var++) { nilai1 = 100; if(!nilai2) nilai2 = 0; nilai 3 = nilai1 + nilai2; }

4.5 PERNYATAAN BERLABEL

Pernyataan goto, diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel yang ditandai dengan tanda “ : “. Contoh : goto bawah; pernyataan1; pernyataan2; :bawah pernyataan 3; Pada contoh diatas, pada saat goto ditemukan maka program akan melompat pernyataan berlabel bawah dan melakukan pernyataan 3.

4.6 PERNYATAAN KONDISI ( CONDITIONAL EXPRESSION )

Pertanyaan Kondisi dibagi menjadi,

4.6.1 Pernyataan if

Digunakan dalam pengambilan keputusan Bentuk umum: if(kondisi) pernyataan1 ; else pernyataan2; Pernyataan1 dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak, lakukan pernyataan2. Jika anda tidak mempergunakan pernyataan else program tidak akan error, namun jika anda mempergunakan pernyataan else tanpa didahului pernyataan if, maka program akan error. Jika pernyataan1 atau pernyataan2 hanya terdiri dari satu baris, maka tanda { } tidak diperlukan, namun jika lebih maka diperlukan. Bentuknya menjadi : if(kondisi) { pernyataan1; pernyataan1a; pernyataan1b; } else { pernyataan2; pernyataan2a; pernyataan2b; } Contoh : #include void main() {
int m = 166; if(m == 0)cout<<”Nilainya sama dengan nol\n”; else { cout<<”Nilainya tidak sama dengan nol\n”; cout<<”Nilainya sama dengan “<<m<<endl; } } Selain dari if … else, juga dikenal bentuk if … else if. Adapun perbedaannya diilustrasikan oleh dua contoh dibawah ini. Contoh 1 :#include void main(){
int m = 166; if(m > 1000) cout<<m< 100) cout<<m< 10) cout<<m<<” lebih besar dari 10\n”;} Keluarannya :166 lebih besar dari 100166 lebih besar dari 10 Contoh 2 :#include void main(){
int m = 166; if(m > 1000) cout<<m< 100) cout<<m< 10) cout<<m<<” lebih besar dari 10\n”;} Keluarannya :166 lebih besar dari 100 Mengapa ? Karena contoh 2 sama saja jika ditulis seperti dibawah ini #include void main(){ int m = 166; if(m > 1000) cout<<m< 100) cout<<m< 10) cout<<m<<” lebih besar dari 10\n”; }} Contoh diatas disebut juga nested conditional

4.6.2 Pernyataan switch

Pernyataan if…else if jamak dapat dibangun dengan pernyataan switch. Bentuk umumnya adalah sebagai berikut. switch(ekspresi){ case konstanta1 : pernyataan1; case konstanta2 : pernyataan2; case konstanta3 : pernyataan3; : : case konstantaN : pernyataanN; default : pernyataanlain;} Hal – hal yang perlu diperhatikan adalah :1. Dibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh diikuti oleh ekspresi ataupun variable.2. Konstanta yang digunakan bertipe int atau char3. Jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan konstanta2 maka pernyataan2, pernyataan3 sampai dengan pernyataanlain dieksekusi. Untuk mencegah hal tersebut, gunakan keyword break;. Jika keyword break digunakan maka setelah pernyataan2 dieksekusi program langsung keluar dari pernyataan switch. Selain digunakan dalam switch, keyword break banyak digunakan untuk keluar dari pernyataan yang berulang ( looping ).4. pernyataanlain dieksekusi jika konstanta1 sampai konstantaN tidak ada yang memenuhi ekspresi. Contoh :// Program untuk melihat nilai akhir test// Nilai A jika nilai diatas 80, B jika 70<= nilai <80// C jika 50<= nilai <70, D jika 30<=nilai <50// E jika nilai < 30#include void main(){
int nilai; cout<>nilai; switch(nilai/10) { case 10: case 9: case 8:cout<<’A’<<endl;break; case 7:cout<<’B’<<endl;break; case 6: case 5:cout<<’C’<<endl;break; case 4: case 3:cout<<’D’<<endl;break; case 2: case 1: case 0:cout<<’E’<<endl;break; default:cout<<”Salah, nilai diluar jangkauan.\n”; }} Keluaran :Masukkan nilai test : 45DMasukkan nilai test : 450Salah, nilai diluar jangkauan.Masukkan nilai test : nilai_testSalah, nilai diluar jangkauan. Ket : 45, 450 dan nilai_test adalah hasil input dari user

4.6.3 Pernyataan while

Digunakan untuk pengambilan keputusan dan looping. Bentuk : While(kondisi) { pernyataan }

Jika kondisi tidak terpenuhi, maka pernyataan tidak akan dieksekusi.

Contoh:#include #include #define TINGGI 5#define LEBAR 10// Program menggambarkan karakter khusus pada sebuah// koordinat yang ditentukanvoid main(){ char matrix[TINGGI][LEBAR]; int x,y; for(y=0;y<TINGGI;y++) for(x=0;x<LEBAR;x++)matrix[y][x]=’.’; cout<<”Ketik koordinat dalam bentuk x y(4 2).\n”; cout<=0 && y>=0) { for(y=0;y<TINGGI;y++) { for(x=0;x<LEBAR;x++) cout<<matrix[y][x]; cout<<”\n\n”; } cout<>x>>y; matrix[y-1][x-1]=’\xBO’; } getch();} Penjelasan :P rogram ini adalah program menggambar karakter [] jika dicompile di Turbo C++ atau mengambar ♂ jika dicompile di Borland C++. ( ditunjukkan oleh karakter ’xBO’ ). Karena adanya pernyataan while(x>=0 && y>=0), maka programakan langsung mengeksekusi pernyataan cout<>x>>y; matrix[y-1][x-1]=’\xBO’;jika user memasukkan bilangan negatif.Pada program diatas terdapat fungsi getch(). Gunanya adalah untuk memberhentikan keluaran program sampai user menekan tombol keyboard. Untuk menggunakannya, file conio.h harus diinclude.

4.6.4 Pernyataan do…while

Pernyataan do…while mirip seperti pernyataan while, hanya saja pada do…while pernyataan yang terdapat didalamnya minimal akan sekali dieksekusi.

Bentuk :

do{

pernyataan;

} while(kondisi);

Terlihat, walaupun kondisi tidak terpenuhi, maka pernyataan minimal akan dieksekusi sekali.

Contoh :

#include

#include

#include

// Program konversi bilangan desimal ke biner

void main()

{

int p,n,i=0;

cout<>p;

double A[100];

do

{

A[++i]=p%2;

p=p/2;

floor(p);

} while (p>1);

cout<<”Nilai binernya : “;

cout<

=1;n–)

{

cout<<A[n];

}

getch();

}

Penjelasan :

Coba anda masukkan bilangan negatif.

Itulah letak kesalahan program ini ( sekaligus untuk menunjukkan sifat dari do…while )

Jika anda memasukkan bilangan positif, maka program ini akan menghasilkan nilai biner yang bersesuaian dengan nilai desimal yang anda masukkan.

4.6.5 Pernyataan for

Pernyataan for digunakan untuk melakukan looping. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Bentuk : for( inisialisasi ; kondisi ; perubahan) { pernyataan;

}

Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi. Bila pernyataan hanya terdiri atas satu baris pernyataan, maka tanda kurung { } tidak diperlukan.

Contoh :

//Program mencetak angka 1-100

#include

void main()

{

for(int x=1 ; x<=100 ; x++) cout<<x<<endl;

}

Bagaimana jika program diatas diubah menjadi

#include

void main()

{

for(int x=1 ; ;x++) cout<<x<<endl;

}

Program diatas akan menampilkan bilangan yang banyaknya tak terhingga sehingga dapat membuat komputer anda berhenti bekerja. Contoh diatas juga merupakan prinsip membuat bom program ( contohnya : bom mail )

Pernyataan for dapat berada di dalam pernyataan for lainnya yang biasa disebut nested for

Contoh :

// Program menghasilkan segitiga pascal

#include

#include

#include

main()

{

unsigned int n,a,b,x,s[100],p[100];

cout<>n;

for(a=0,x=0;a<=n;a++,x+=2)

{

cout<<setw(3*n-x);

s[a]=1;

p[a]=1;

for(b=0;b<=a;b++)

{

if (b<1||b==a) cout<<”1″<<setw(4);

else

{

s[b]=p[b];

p[b]=s[b-1]+s[b];

cout<<p[b]<<setw(4);

}

}

cout<<endl;

}

getch();

return 0;

}

4.7 PERNYATAAN BREAK

Pernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan switch. Pernyataan ini juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akan mengkakhiri loop dan akan menghentikan ierasi pada saat tersebut.

4.8 PERNYATAAN CONTINUE

Pernyataan continue digunakan untuk pergi ke bagian awal dari blok loop untuk memulai iterasi berikutnya.

Contoh :

#include

void main()

{

int n;

for(;;)

{

cout<>n;

if(n % 2 == 0) continue;

else if(n % 5 == 0) break;

cout<<”\tLanjutkan loop berikutnya.\n”;

}

cout<<”Akhiri Loop.\n”;

}

Keluarannya :

Masukkan bilangan integer : 9

Lanjutkan loop berikutnya

Masukkan bilangan integer : 8

Masukkan bilangan integer : 5

Akhiri Loop

V. FUNGSI

Fungsi adalah sekumpullan perintah operasi program yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi. Nama fungis yang didefinisikan sendiri oleh pemrogram tidak boleh sama dengan nama build-in function pada compiler C++. Fungsi digunakan agar pemrogram dapat menghindari penulisan bagian program ( kode ) berulang-ulang, dapat menyusun kode program agar terlihat lebih rapi dan kemudahan dalam debugging program.

5.1 FUNGSI, DEKLARASI DAN DEFINISI NYA

Pemrogram dapat membuat fungsi yang didefinisikan sendiri olehnya. Contoh : // Fungsi kuadrat // tipe_return nama_fungsi (tipe_argument argumen) float kuadrat ( float x ) { return x*x; } Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian, yaitu judul ( header ) dan isi ( body ). Judul dari sebuah fungsi terdiri dari tipe return ( float ), nama fungsi ( kuadrat ) dan list parameter ( float x ).Jadi, judul untuk fungsi kuadrat adalah float kuadrat ( float x ) Isi dari sebuah fungsi adalah blok kode yang mengikuti judulnya. Berisi kode yang menjalankan aksi dari fungsi, termasuk pernyataan return yang memuat nilai fungsi yang akan dikembalikan ke yang memanggilnya, Isi dari fungsi kuadrat() adalah { return x*x; } Biasanya isi dari fungsi cukup besar. Meskipun demikian, judulnya tetap hanya berada dalam satu baris. Isi dari sebuah fungsi dapat memanggil fungsi itu sendiri ( disebut rekursif ) atau memanggil fungsi lainnya. Pernyataan return dari sebuah fungsi mempunyai dua manfaat, yaitu akan mengakhiri fungsi dan mengembalikan nilainya ke program pemanggil. Bentuk umum pernyataan return adalah : return ekspresi; Dengan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah variable yang tipenya sama seperti tipe return. Terdapat juga fungsi yang tidak memberikan nilai return atau tipe returnnya void. Contoh : #include void sayHello(char[]) ; // deklarasi fungsi sayHello()void main(){ char n[50]; cout<>n; sayHello(n);} void sayHello(char nama[]) // definisi funsi sayHello(){ cout<<”Selamat datang “<<nama;} Pengertian deklarasi fungsi berbeda dengan dengan definisi fungsi. Suatu deklarasi fungsi adalah judul fungsi yang sederhana yang diikuti oleh tanda semicolon ( ; ). Sedangkan definisi fungsi adalah fungsi yang lengkap, terdiri dari judul dan isinya. Suatu deklarasi fungsi disebut juga sebagai prototype fungsi. Suatu deklarasi fungsi seperti layaknya suatu deklarasi variabel, yang memberitahu compiler semua informasi yang dibutuhkan untuk mengkompilasi file. Compiler tidak perlu mengetahui bagaimana fungsi bekerja, yang perlu diketahui adalah nama fungsi, jumlah dan tipe parameternya, dan tipe balikannya ( return ). Hal ini merupakan informasi yang dimuat secara lengkap dalam judul fungsi. Juga seperti sebuah deklarasi variabel, suatu deklarasi fungsi harus muncul diatas semua nama fungsi yang digunakannya. Berbeda dengan definisi fungsi, yang dapat diletakkan terpisah dari deklarasinya, dan dapat muncul dimana saja diluar fungsi main() dan biasanya dituliskan setelah fungsi main() atau dalam file terpisah yang jika ingin digunakan tinggal menambahkan prepocessor #include “nama_file” pada file utama. Jika definisi fungsi diletakkan diatas fungsi main() maka deklarsi fungsi tidak diperlukan. Variabel-variabel yang di list di dalam parameter fungsi disebut parameter-parameter formal atau argumen-argumen formal. Variabel lokal seperti ini hanya ada selama eksekusi fungsi yang bersangkutan. Dalam contoh dibawah, parameter-parameter formalnya adalah x dan y. Variabel yang dilist dalam pemanggilan fungsi disebut parameter-parameter actual atau argumen-argumen aktual. Sama seperti variabel lainnya dalam program utama, variabel-variabel tersebut harus dideklarasikan sebelum digunakan dalam pemanggilan. Dalam contoh dibawah, parameter-parameter aktualnya adalah m dan n. Contoh :// Penggunaan Fungsi Rekursif :// Program mengecek sebuah bilangan integer atau bukan#include #include #include void cekInt(double); void main(){ double angka; cout<>angka; cekInt(angka);} void cekInt(double n){ if(n>1)cekInt(n-1); else if(n0&&n<1)cout<<n<<”\t Bukan bilangan bulat\n”; else cout<<n<<”\t Bilangan bulat\n”; }} Keluaran :Masukkan sebuah angka : 57 Bilangan bulatMasukkan sebuah angka : 0.57 Bukan bilangan bulatMasukkan sebuah angka : -24 Bilangan bulat

5.2 NILAI BAWAAN UNTUK ARGUMEN FUNGSI

Salah satu keistimewaan C++ yang sangat bermanfaat dalam pemrograman adalah adanya kemampuan untuk menyetel nilai defaultArgumen fungsi. Argumen-argumen yang mempunyai nilai bawaan nantinya dapat tidak disertakan di dalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak disertakan. Contoh :#include #include void sayHello(int); void main(){ sayHello();} void sayHello(int n=1){ for(int m=0;m<n;m++) cout<<”Halloo …J\n”;} Penjelasan : Jika pada program, argumen sayHello tidak diberikan, maka program akan menampilkan Halloo …J Sebanyak satu kali, namun jika argumen pada fungsi sayHello diberikan, misalkan sayHello(4), maka program akan menampilkan Halloo …J Halloo …J Halloo …J Halloo …J Itulah yang disebut dengan nilai default pada fungsi.

5.3 MELEWATKAN ARGUMEN DENGAN REFERENSI

Lihat bab mengenai array dan pointer.

5.4 FUNGSI-FUNGSI BAWAAN C++

Anda dapat menggunakan fungsi-fungsi bawaan C++, misalkan fungsi-fungsi matematika, pengolah kata dan banyak lagi. Sebenarnya ( mungkin tidak terasa bagi anda ) main juga adalah fungsi, jadi tanpa anda sadari sebenarnya anda telah menggunakan fungsi.Untuk dapat menggunakan fungsi-fungsi tersebut anda harus meng-include file dimana fungsi tersebut didefinisikan Misalkan :

Fungsi – fungsi matematika, anda harus meng-include file math.h
Fungsi – fungsi pengolah string dan karakter, anda harus meng-include file string.h
Fungsi clrscr(), getch(), getche() dalam file conio.h

VI ARRAY, STRING & POINTER

6.1 ARRAY

Array adalah kumpulan data-data beripe sama dan menggunakan nama yang sama. Dengan menggunakan rray, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel yang lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan didalam tanda kurung siku. Melalui subscript inilah masing-masing elemen array dapat diakses. Nilai subscribe pertama secara default adalah 0. C++ tidak mengecek array. Bila anda menyatakan int x[10], ini artinya 10 elemen yang dimulai dari 0. Karena itu elemen terakhir array adalah x[9]. Bila anda salah mereferensikannya dengan x[10], anda akan mendapatkan harga yang tidak terpakai. Akan lebih buruk lagi jika anda memberikan harga ke x[10], yang tidak dapat diterima.

6.1.1 Representasi Array

Misalkan kita memiliki sekumpulan data ujian seorang siswa, ujian pertama bernilai 90, kemudian 95,78,85. Sekarang kita ingin menyusunnya sebagai suatu data kumpulan ujian seorang siswa. Dalam array kita menyusunnya sebagai berikut ujian[0] = 90; ujian[1] = 95; ujian[2] = 78; ujian[3] = 85; Perhatikan : · Tanda kurung [ ] digunakan untuk menunjukkan elemen array· Perhitungan elemen array dimulai dari 0, bukan 1 Empat pernyataan diatas memberikan nilai kepada array ujian. Tetapi sebelum kita memberikan nilai kepada array, kita harus mendeklarasikannya terlebih dahulu, yaitu : int ujian[4]; Perhatikan bahwa nilai 4 yang berada didalam tanda kurung menujukkan jumlah elemen array, bukan menunjukkan elemen array yang ke-4. Jadi elemen array ujian dimulai dari angka 0 sampai 3. Pemrogram juga dapat menginisialisasi array sekaligus mendeklarasikannya, sebagai contoh : int ujian[4] = {90,95,78,85}; Elemen terakhir dari array diisi dengan karakter ‘’. Karakter ini memberitahu kompiler bahwa akhir dari elemen array telah dicapai. Walaupun pemrogram tidak dapat melihat karakter ini secara eksplisit, namun kompiler mengetahui dan membutuhkannya. Sekarang kita akan membuat daftar beberapa nama pahlawan di Indonesia char pahlawan[3][15] ; char pahlawan[0][15] = “Soekarno”; char pahlawan[1][15] = “Diponegoro”; char pahlawan[2][15] = “Soedirman”; Array diatas terlihat berbeda denga contoh array pertama kita. Perhatikan bahwa pada array pahlawan memilii dua buah tanda kurung [ ][ ]. Array seperti itu disebut array dua dimensi. Tanda kurung pertama menyatakan total elemen yang dapt dimiliki oleh array pahlawan dan tanda kurung kedua menyatakan total elemen yang dapat dimiliki setiap elemen array pahlawan. Dalam contoh diatas, tanda kurung kedua menyatakan karakter yang menyatakan nama pahlawan.

6.1.2 Menghitung Jumlah Elemen Array

Karena fungsi sizeof() mengembalikan jumlah byte yang sesuai dengan argumennya, maka operator tersebut dapat digunakan untuk menemukan jumlah elemen array, misalnya int array[ ] = {26,7,82,166}; cout<<sizeof(array)/sizeof(int); akan mengembalikan nilai 4, yaitu sama dengan jumlah elemen yang dimiliki array array.

6.1.3 Melewatkan Array Sebagai Argumen Fungsi

Array dapat dikirim dan dikembalikan oleh fungsi· Pada saat array dikirim ke dalam fungsi, nilai aktualnya dapat dimanipulasi Contoh :#include void ubah(int x[]);void main(){ int ujian[] = {90,95,78,85}; ubah(ujian); cout<<” Elemen kedua dari array ujian adalah “<<ujian[1]<<endl;} void ubah(int x[]){ x[1] = 100;} Keluarannya : Elemen kedua dari array ujian adalah 100

6.2 POINTER

Poiter adalah variable yang berisi alamat memori variable lain dan sevara tidak langsung menunjuk ke variable tersebut. Analoginya – sebagai contoh – Andi berteman dengan Budi, lalu anda ingin mengetahui jumlah keluarga Budi untuk keperluan sensus penduduk. Anda tidak mengetahui alamat Budi, tetapi anda mengenal Andi. Untuk mencari jumlah keluarga Budi, maka pertama-tama anda pergi kerumah Andi, misalnya dirumah no 8321. Sesampai di Andi, Andi membaritahukan kepada anda bahwa alamat Budi ada pada alamat 9821. Kemudian anda pergi ke rumah Budi lalu mencatat jumlah keluarga yang dimiliki Budi yaitu lima orang ( misalkan ). Dalam contoh diatas, Andi bertindak sebagai pointer. Andi tidak memberitahukan jumlah keluarga Budi, tetapi Andi memberitahu alamat Budi, di alamat 9821 ( alamat Budi ) itulah anda mengetahui jumlah keluarga Budi. Jika alamat dari ditunjukkan dengan simbol & dan isi dari ditunjukkan dengan symbol *, maka hubungan analogi diatas adalah:

Nama
Alamat Isi
Andi 8321 9821 = &Budi
Budi 9821 5 = *(&Budi)

Dalam bentuk pointer, ditulis : Andi = &Budi; // baris 1 Budi = *(&Budi); // baris 2 Subtitusi pernyataan di baris 2 : Andi = *Andi; Contoh program yang menggambarkan hal tersebut : #include void main() {
int *Andi; // Andi sebagai pointer int Budi = 5; // Budi bukan pointer, prhatikan perbedaan pada * Andi = &Budi // Isi dari Andi yaitu alamat Budi cout<<”Isi alamat memori Andi : “<<Andi<<endl; cout<<”Isi alamat memori Budi : “<<Budi<<endl; cout<<”Isi alamat memori Budi : “<<*Andi<<endl; cout<<”Alamat memori Andi : “<<&Andi<<endl; cout<<”Alamat memori Budi :”<<&Budi<<endl; } Keluarannya : Isi alamat memori Andi : 0×6da72448 Isi alamat memori Budi : 5 Isi alamat memori Budi : 5 Alamat memori Andi : 0×6da7244a Alamat memori Budi : 0×6da72448 Penjelasan :Isi alamat memori Andi adalah alamat memori Budi, yaitu 0×6da72448( alamat ini berbeda-beda tergantung dari komputernya dan ditulis dalam bentuk hexadesimal).Sedangkan isi alamat memori Budi adalah 5. Cara mengakses isi dari alamat Budi ada dua cara, yaitu mengakses variabel Budi dan mengakses isi dari pointer Andi (*Andi). *Andi dapat juga disebut “isi dari alamat memori yang ditunjuk oleh Andi”. Karena alamat memori yang ditunjuk oleh Andi adalah alamat memori Budi, maka dapat dikatakan “isi dari alamat memori Budi”.

6.2.1 Pointer – Array

Dalam 6.1 kita telah membahas array, sekarang kita akan melihat bagaimana data disimpan di memori dalam sebuah array. Contoh : #include void main(){ int n; int array[4] = {10,20,30,40}; for(n=0;n<4;n++) { cout<<”Array[“<<n<<”] = “<<array[n]<<endl; cout<<”\tMenggunakan pointer = “<<*&array[n]<<endl; cout<<”\tDisimpan dalam “<<&array[n]<<endl; }} Keluarannya : Array[0] = 10 Menggunakan pointer = 10 Disimpan dalam 0xdb72408Array[1] = 20Menggunakan pointer = 20 Disimpan dalam 0xdb7240aArray[2] = 30Menggunakan pointer = 30 Disimpan dalam 0xdb7240cArray[3] = 40Menggunakan pointer = 40 Disimpan dalam 0xdb7240e Penjelasan :Seperti yang anda lihat, setiap array disimpan dalam 2 byte memori karena kita menggunakan tipe data integer. Perhatikan pula penggunaan pointer dalam pengaksesan nilai setiap elemen array dan pengaksesan alamat setiap array. · Alamat setiap elemen array dapat diperoleh dengan cara &array[n] atau array+n · Isi dari setiap elemen array dapat diperoleh dengan cara array[n] atau *(array+n) Dibawah ini adalah contoh pengaksesan memori dan isi memori dengan menggunakan cara kedua Contoh : #include void main(){ int n; int array[4] = {10,20,30,40}; for(n=0;n<4;n++) { cout<<”Array[“<<n<<”] = “<<array[n]<<endl; cout<<”\tMenggunakan pointer = “<<*(array+n)<<endl; cout<<”\tDisimpan dalam “<<array+n<<endl; }} Keluarannya : Array[0] = 10 Menggunakan pointer = 10 Disimpan dalam 0xdb72408Array[1] = 20Menggunakan pointer = 20 Disimpan dalam 0xdb7240aArray[2] = 30Menggunakan pointer = 30 Disimpan dalam 0xdb7240cArray[3] = 40Menggunakan pointer = 40 Disimpan dalam 0xdb7240e Mengapa hasil antara dua contoh diatas sama namun sintaksnya berbeda ? Karena array itu sebenarnya telah menunjuk ke alamat memori setiap elemennya, sehingga untuk mengetahui alamat memori setiap elemen array cukup dengan array + n dengan n bilangan bulat ( integer ).

6.2.2 Pointer – String

String merupakan bentuk khusus dari array. Oleh karena itu operasi pointer-array tidak jauh berbeda dengan operasi pointer-stringContoh : #include void main(){
char nama[5] = “Andi”; cout<<”Nama awal : “<<nama<<endl; char *ptr; ptr = nama; *(ptr+3) = ‘y’; cout<<”Nama menjadi : “<<nama<<endl;} Keluarannya :Nama awal : AndiNama menjadi : Andy Jadi :· String adalah array (susunan) dari karakter-karakter· String dapat diakses dan dimanipulasi lewat pointer · Alamat awal dari string dapat diperoleh dari namanya

6.2.3 Pointer Sebagai Argumen String

Jika pointer dikirim sebagai argument, maka nilai aktualnya dapat dimodifikasi. Contoh : #include void ubah(char *);void main(){
char *ptr,nama[5] = “Andi”; ptr = nama; // ptr sebagai pointer ke variable nama cout<<”Nama awal : “<<nama<<endl; ubah(ptr); cout<<”Nama menjadi : “<<nama<<endl; } void ubah(char *x){ *(x+3) = ‘y’;} Keluarannya :Nama awal : AndiNama menjadi : Andy

6.2.4 Alias

Alias adalah nama lain dari suatu variable. Jika suatu perubaha terjadi pada variable alias maka akan berpengaruh kepada variable asli dan begitu juga sebaliknya.Contoh : #include void main(){
int uang =10000; int &duit = uang; cout<<”Nilai uang Rp.“<<uang<<endl; cout<<”Nilai duit Rp.“<<duit<<endl; uang = 9000;

cout<<”Uang dibelikan es krim Rp.1000, nilainya menjadi Rp.“<<uang<<endl;

cout<<”Nilai duit juga berubah menjadi Rp.“<<duit<<endl;} Keluarannya :Nilai uang Rp.10000Nilai duit Rp.10000Uang dibelikan es krim Rp.1000, nilainya menjadi Rp.9000Nilai duit juga berubah menjadi Rp.9000 Penjelasan :P erubahan pada uang menyebabkan perubahan pada duit karena duit memiliki alamat memori yang sama dengan uang. Jadi jika isi dari alamat memori uang atau duit berubah, maka nilai variable duit atau uang juga akan ikut berubah.

6.2.5 Argumen Baris Perintah

Seringkali kita menggunakan perintah edit file.txt pada DOS, atau perintah vi file.txt pada Unix. Yang dimaksud dengan argumen baris perintah yaitu file.txt. Hal seperti itu dapat dibuat dengan menggunakan C++ dengan menyertakan argumen berikut pada fungsi main() void main(int argc, char *argv[]) { … } atau main(int argc, char *argv[]) { … return 0; } Keterangan :· Argc : Beisi jumlah parameter baris ditambah 1· Argv : Berisi daftar nama argumen dan program, dengan rincian sebagai berikut :Ø argv[0] menunjuk nama program, lengkap dengan alamat pathØ argv[1] menunjuk argumen pertama ( kalau ada )Ø argv[n[ menunjuk argumen ke-n ( kalau ada) Contoh :// beri nama tes.cpp#includevoid main(int argc, char *argv[]){ for(int a=0;a<argc;a++)cout<<”argv[“<<a<<”] = “<<argv[a]<<endl;} Penjelasan :Setelah dicompile dan di link akan muncul file tes.exe, misalkan anda simpan di d:\tes.exeBuka command prompt, pindah ke direktori d:\ ketikkanTes argumen1 argument2 argument3, maka akan muncul tampilan argv[0] = D:\TES.EXEargv[1] = argument1argv[2] = argument2argv[3] = argument3

Dibawah ini diberikan contoh penggunaan argumen baris perintah yang lain, supaya anda lebih memahami

Contoh :// Program mengubah nilai desimal ke biner// Simpan dengan nama dec2bin.cpp#include #include #include #include void main(int argc, char *argv[]){ if(argc !=2) { cerr<1); cout<<”Nilai binernya : “; cout<

=1;n–) { cout<<A[n]; } getch();}Jika anda ketikkan dec2bin 4, maka outputnya Nilai binernya : 100

Printer Epson C45 Macet…!

In Hardware on April 14, 2008 at 11:03 am

Suatu hari aku mengalami sebuah masalah dengan Printer Epson Stylus C45 milikku yang tidak pernah aku alami sebelumnya. Aku mendapati perinterku tidak bisa di buat untuk print dan dua tombol pada printer tersebut berkedip secara bergantian.

Karena berkedip seperti itu, tanpa berfikir panjang aku langsung mengambil resetter Printer Epson (karena biasanya berkedip seperti itu menandakan kalau reset Cartridge printer tersebut belum sukses) dan langsug melakukan reset ulang Cartridge tersebut. Setelah aku reset ulang, Printer tersebut tetap berkedip seperti sebelumnya dan tetap tidak bisa digunakan untuk mengeprint.

Aku kemudian berasumsi kalau mungkin ada driver dari printer tersebut yang error, dan setelah aku meng-unistall dan meng-install ulang kembali drivernya, ternyata printerku masih tetap berkedip dan tidak muncul tanda-tanda bahwa printer tersebut akan dapat digunakan lagi.

Karena kebutuhan akan printer yang mendesak, aku beranggapan mungkin Sistem operasi Windowsku yang error, dan tanpa berfikir panjang aku langsung saja menginstall ulang Windows milikku yang membutuhkan waktu selama beberapa jam. Dan setelah install ulang Windows selesai, aku segera meng-install driver Printer Epson Stylus C45 milikku. Tetapi, sunguh yang kudapat kali ini tidak seperti yang kuharapkan. Printer milikku tetap sama seperti tadi, hanya berkedip seolah-olah dia mengejekku karena aku tidak bisa memperbaiki printer tersebut…

Karena belum mendapat solusi, aku kemudian mencoba mencari dan menganalisa apa yang salah dengan printerku. Aku mencoba melihat satu demi satu pesan apa yang muncul ketika Printer tersebut tidak bisa digunakan. Aku mendapatkan sebuah pesan yang sebelumnya tak pernah kuperhatikan sebelumnya “the end of their service life…”

Dengan bekal pesan tersebut, aku pergi ke Net-Cafe dan mencarinya di search enggine kesukaanku Google. Dengan kata kunci Epson “the end of their service life” (jangan hilangkan tanda petik dua), aku kemudian mencari satu persatu link yang dihasilkan oleh serach engine Google.

Happy me, aku menemukan apa yang aku cari… Aku mendapatkan solusinya disini.

Langsung saja aku download file tersebut dan aku install di komputerku. Akirnya aku bisa print lagi…

Langkah mengatasi Printer Epson C45 yang berkedip-kedip adalah :

  1. Download software Epson resetter software di http://www.ssclg.com/epsone.shtml
  2. Install software tersebut
  3. Jalankan software yang telah di install
  4. Klick tab Configuration, pada bagian Printer model pilih Epson Stlylus C4x. (Untuk type printer yang lain, anda bisa memilihnya sendiri sesuai dengan printer yang anda miliki)
  5. Klick tab Resetter, pada bagian Available data for selected model pilih T038black. (Untuk printer yang lain, pilih sesuai dengan type yang anda miliki).
  6. Klick Write dan abaikan pesan yang muncul.
  7. Lakukan pada Cartridge warna sesuai dengan petunjuk nomor 5 dan 6
  8. Tutup window itu, dan pada bagian kanan bawah layar monitor anda akan muncul icon kecil yang bergambar printer.
  9. Klick kanan icon itu, dan pilih Reset Counters, kemudian Reset black.
  10. Ulangi langkah nomor 9 untuk warna yang lain (cyan, magenta dan yellow).
  11. Matikan printer, hidupkan kembali, lihat tombolnya apakah masih berkedip atau tidak.
  12. Segera test printer anda.

Bila tombol printer anda masih berkedip dan printer belum bisa digunakan, coba ulangi langkah-langkah diatas karena berdasarkan pengalaman saya pribadi, saya baru bisa menggunakannya setelah melakukan reset sebanyak 3 kali. Experience is the best teacher, begitu kata pepatah…

Satu hal yang kupelajari dari kejadian ini, Apabila mengalami masalah dengan komputer, baca dan telitilah semua pesan yang ada, baru kemudian lakukan tindakan yang tepat untuk mengatasinya.


Referensi :
(1) Search Engine terbaik menurut pribadi di http://www.google.co.id

(2) Epson Resetter Software di http://www.ssclg.com/epsone.shtml

(3) http://fikrionline.wordpress.com/2008/04/18/printer-epson-c45-macet/

Follow

Get every new post delivered to your Inbox.