Selamat Datang di "Kitab Salaf Indonesia". Tempatnya Download Kitab Gratis !!!.

Rabu, 24 April 2013

C++


Kita hanya akan mencoba program C++ di sini (Java dan PHP bisa dipelajari sendiri).
Variabel
C++ dan Java
Caranya mudah saja, tentukan tipe data, kemudian nama variabel, diakhiri tanda titik koma. Hati-hati dengan penamaan variabel: huruf besar dibedakan dari huruf kecil. Sebagai panduan umum, gunakan huruf kecil semua untuk variabel. Contoh:

CODE
int saya;
float pecahanku;
double sapi;
double Sapi; //ini variabel yang berbeda dengan sapi
Kita bisa langsung memberikan nilai pada variabel saat dideklarasikan (assignment):

CODE
int x = 5; //x akan langsung berisi 5.
Jangan mendeklarasikan ulang variabel. Contoh:

CODE
int aku;
float aku; //ERROR!
PHP
Kita beruntung karena PHP tidak memerlukan deklarasi tipe data, jadi kita dapat langsung menggunakan suatu variabel tanpa mendeklarasikannya lebih dulu. Cuma, hati-hati dengan isi variabel tersebut. 
Penamaan variabel di PHP selalu dimulai dengan tanda dolar ($) diikuti nama variabel (sensitif besar-kecilnya huruf). Contoh:

CODE
$saya = 5;
$kamu = 7;
$aku = "Saya adalah seekor sapi.";
$aku = 3; //tidak error, variabel ini akan berisi nilai 3
Coba!

CODE
#include<stdio.h>

void main() {
int x = 5;
float y = 3.14159;
printf("x = %d\n", &x); //akan menghasilkan "x = 5"
printf("y = %.2f\n", &y); //akan menghasilkan "y = 3.14"
}

Kenapa bisa begitu?
Pemakaian khusus dari printf adalah bahwa ia bisa membaca nilai suatu variabel dan menampilkannya dengan format tertentu. Caranya, gunakan kode khusus (biasa diawali %) untuk mewakili suatu variabel. Setelah kalimat kita selesai, jangan tutup dulu perintah printf, namun beri tanda koma lalu susul dengan tanda & diikuti nama variabel yang ingin kita tampilkan.

Kode yang bisa kita pakai adalah sebagai berikut:
int: %d atau %i
long: %l
float*: %f
double*: %lf
char: %c
string: %s
%x: mengubah nilai integer suatu variabel menjadi heksadesimal tanpa mengubah nilainya
* Khusus float dan double (sebenarnya bisa secara umum), kita bisa menentukan berapa angka di depan dan di belakang titik desimal yang muncul. Formatnya seperti ini:

CODE
%0.0f

Setelah tanda %, berikan berapa angka di depan desimal yang akan ditampilkan. Jika ingin ditampilkan semua, lewati angka ini. Susul dengan tanda titik, lalu tambahkan berapa angka di belakang angka desimal yang akan ditampilkan. Jika ingin ditampilkan semua, lewati angka ini. Baru tuliskan f atau lf.
Kita bisa menggabungkan kedua printf di atas menjadi satu printf seperti berikut:

CODE
printf("x = %d\ny = %.2f\n", &x, &y);

Tanda \n menandakan kursor akan berpindah baris setelah melewati tanda itu. Ini sama dengan endl pada cout.

Silakan kembali ke artikel utama untuk menyimak apa saja yang bisa kita lakukan dengan variabel.


stash- 06-11-2006
Ralat sedikit
\n juga bisa dipakai di cout, tapi harus berada didalam tanda kutip.
Contoh:

CODE
cout<<"Aku\n";


Hasilnya sama dengan

CODE
cout<<"Aku"<<endl;

xsharan- 06-11-2006
Itu namanya tambahan, bukan ralat...

Operator

Ketiga bahasa itu sama-sama mendukung operator-operator berikut:
Operator berikut membutuhkan operand kedua:
+ - * / % (modulo)
Operator berikut tidak membutuhkan operand kedua:
+= -= *= /=
Operator berikut tidak membutuhkan tanda sama dengan:
++ -- (increment & decrement by 1)
Aturan aritmatika biasa tetap berlaku.


Silakan bereksperimen sendiri untuk operator-operator ini.

Contoh:

CODE
x = 1 + 2; //x = 3
y = 0;
y++; //di sini y masih = 0...
//di baris ini y sudah = 1.
++y; //di sini y sudah = 2
z = 37 % 2; //z = 1
sapi = 3;
sapi *= 3; //sapi = 9


Silakan bereksperiman sebentar dengan operator-operator ini, lalu kembali ke artikel untuk mengetahui kapan suatu variabel bisa digunakan.


xsharan- 06-28-2006
Masa Hidup Variabel

Langsung dicoba aja satu-satu...

Semua contoh berikut berlaku untuk C++. Java juga memiliki hal yang serupa, namun dengan susunan program yang sedikit berbeda, jadi kita fokus ke C++ saja dulu. PHP juga tidak terlalu berbeda jauh dengan C++, kecuali bahwa ada variabel yang lebih global daripada variabel global (itu sedikit di luar pokok bahasan ini dan tidak akan dibahas dulu).

Pertama-tama, kita coba variabel global dulu. Jangan pusing-pusing dulu kenapa ada void-void yang lain di samping void main dan kenapa void main-nya terlihat aneh, ini akan diterangkan berikutnya.

CODE
#include<iostream.h>

int sapiku = 6;

void beranak() {
sapiku++;
cout<<sapiku<<endl;
}

void mati() {
sapiku--;
cout<<sapiku<<endl;
}

void main() {
cout<<sapiku<<endl;
beranak();
beranak();
mati();
}


Hasilnya akan tampak sebagai berikut:

CODE

6
7
8
7


Kenapa bisa begitu? Yah, karena kita mendefinisikan sapiku di luar void main, variabel ini dianggap global, jadi bisa diakses di mana saja, kapan saja, oleh siapa saja, selama masih dalam satu program. Karenanya, prosedur beranak dan mati boleh juga mengaksesnya, selain main sendiri.

Lanjut!


xsharan- 06-28-2006
Kita akan coba variabel lokal. Sekali lagi, jangan pusing-pusing dulu dengan void-void yang baru, tapi dicoba saja dulu.
CODE
#include<iostream.h>

void beranak() {
int sapiku = 6;
sapiku++;
cout<<sapiku<<endl;
}

void mati() {
sapiku--;
cout<<sapiku<<endl;
}

void main() {
beranak();
mati();
}


Dijamin program ini tidak bisa dijalankan alias error Error akan terletak pada dua baris program pada void mati() dan keduanya menunjuk error yang sama: Undefined variable "sapiku".

Kenapa begitu? Perhatikan baik-baik di mana kita meletakkan inisialisasi variabel sapiku. Di dalam blok prosedur beranak kan? Nah, begitu keluar dari blok itu, variabel sapiku sudah tidak bisa diakses lagi, sehingga waktu si mati mencoba mengakses, terjadilah error.

Lanjut!


xsharan- 06-28-2006
Terakhir, kita akan mencoba satu lagi program error untuk membuktikan masa hidup variabel blok. Jangan tanya dulu untuk apa itu for, nanti akan dijelaskan. Sementara, kerjakan saja ini dulu...
CODE
include<iostream.h>

void main() {
for(int i = 0; i < 4; i ++) {
int j; //tidak dianjurkan, tapi untuk contoh ini biarkan
cout<<i<<endl;
}
cout<<i<<endl; //pasti error di baris ini!!!
cout<<j<<endl; //di sini juga pasti error!!!
}


Kenapa begitu? Karena kita mendefinisikan variabel i dan j dalam sebuah blok for, sehingga begitu program keluar dari blok itu, keduanya tidak akan dikenali lagi.

Gampang kan? Silakan kembali ke artikel utama untuk mengetahui cara "lompat-lompat" dalam program.


xsharan- 09-05-2006
Lompat lompat!

Oke, langsung masuk ke masalah pertama, percabangan.

Percabangan

Mudah saja, kita memakai perintah if untuk ini. Format umumnya:

CODE
if(<kondisi>)
<perintah yang akan dijalankan jika kondisi dipenuhi>
[else
<perintah yang akan dijalankan jika kondisi tidak dipenuhi>]


Mau banyak kondisi? Boleh...

CODE
if(<kondisi1>)
<perintah yang akan dijalankan jika kondisi1 terpenuhi>
elseif(<kondisi2>)
<perintah yang akan dijalankan jika kondisi2 terpenuhi>
[elseif(<kondisi3>)
<perintah yang akan dijalankan jika kondisi3 terpenuhi>
...]
else
<perintah yang akan dijalankan jika semua kondisi tidak terpenuhi>


Ada bentuk yang lebih ringkas untuk banyak kondisi seperti ini, tapi kita akan kesampingkan dulu.

Coba yuk!

CODE
#include<iostream.h>

void main() {
int x;
cout<<"Masukkan umur Anda: ";
cin>>x;
if(x == 21)
cout<<"Wah, kok sama dengan umur saya :D"<<endl;
else
cout<<"Yah, umurnya nggak sama nih :("<<endl;
}


Silakan dijalankan dan masukkan berapapun angka yang diinginkan. Kalau angka yang dimasukkan adalah 21, pesan pertama akan keluar. Kalau tidak, pesan kedua yang keluar.

Perhatikan bahwa kita menggunakan tanda sama dengan ganda == untuk kondisi. Ini untuk membedakan tanda sama dengan tunggal yang berarti assignment (seperti dalam x = 21, berarti x bernilai 21).

Ayo kita coba kondisi yang banyak untuk program kita di atas!

CODE
#include<iostream.h>

void main() {
int x;
cout<<"Masukkan umur Anda: ";
cin>>x;
if(x < 5)
cout<<"Wah, masih balita nih ^_^"<<endl;
elseif(x >= 5 && x < 12)
cout<<"Masih anak-anak ya?"<<endl;
elseif(x >= 12 && x < 17)
cout<<"Sudah remaja ni yee..."<<endl;
elseif(x >= 17 && x < 40)
cout<<"Sudah dewasa ya..."<<endl;
else
cout<<"Sudah tua toh..."<<endl;
}


Silakan dicoba sendiri untuk tahu hasilnya.


xsharan- 09-05-2006
Nah, ada yang kelupaan Kita punya operator khusus untuk pengecekan kondisi. Ini gampang kok, pernah diajarkan di SMP atau SMA. Operator khusus ini biasa dipanggil operator logika. Siapa saja mereka?

AND
Operator ini ditulis dengan tanda && di C++ dan PHP serta Ruby, namun Ruby mengizinkan kita menggunakan kata and untuk operator ini. Operator ini meminta semua kondisi yang dia hubungkan terpenuhi agar dia mengembalikan nilai benar (TRUE). Selain itu, ia akan selalu mengembalikan nilai salah (FALSE).

Contoh (aku akan pakai pseudocode sebentar):

IF saya cinta dia AND dia cinta saya THEN
saya menikah dengannya
END IF

Kenyataannya, dia TIDAK cinta saya. Karena ada satu kondisi yang tidak terpenuhi, operator AND akan mengembalikan nilai salah (FALSE), sehingga perintah pada blok IF tersebut tidak akan dijalankan.

OR
Kebalikan operator AND, operator OR mengizinkan hanya salah satu saja kondisi yang terpenuhi agar dia mengembalikan nilai benar. Satu kondisi yang membuatnya mengembalikan nilai salah adalah jika seluruh kondisi tidak terpenuhi.

Operator ini ditulis dengan tanda || di semua bahasa, kecuali Ruby sekali lagi mengizinkan or.

Contoh:

IF saya cinta dia OR dia cinta saya THEN
saya menikah dengannya
END IF

Sekalipun dia TIDAK cinta saya, saya akan tetap menikah dengannya. Kenapa? Ada satu saja kondisi yang terpenuhi, yaitu "saya cinta dia". Maka operator ini akan mengembalikan nilai benar, sehingga perintah pada blok IF akan dijalankan. Kawin paksa nih 

NOT
Operator ini sifatnya negatif, jadi apapun nilai yang diberikan padanya akan ia balik. Jadi, nilai benar akan dianggap salah, sedangkan nilai salah akan dianggap benar. Operator ini biasa digunakan bersama tanda sama dengan, sehingga menjadi !=. Khusus Ruby, kita bisa menggunakan kata not yang diletakkan tepat di awal kondisi yang akan kita evaluasi (bedakan dengan AND dan OR).

Contoh:

IF NOT makanan yang dipesan == hamburger
pesan makanan yang lain
END IF

Dalam C++ dan PHP, ini ditulis:

CODE
if(makanan_yang_dipesan != hamburger)
...


Khusus Ruby, ada perintah lain yang artinya sama dengan IF NOT: unless. Penggunaannya agak tidak lazim dan mungkin membingungkan untuk kita, tapi ini cukup membantu pada beberapa kasus.

Format umum perintah unless adalah seperti ini:

CODE
unless <kondisi>
<perintah yang akan dijalankan jika kondisi salah>
end


Sebenarnya ada beberapa operator logika lain, seperti XOR, NOR, NAND, namun kita akan jarang menggunakan mereka selain AND, OR, dan NOT.

Nah, untuk prioritas pengerjaan, NOT adalah operator tertinggi, disusul AND dan OR. Jadi, hati-hati saat menyusun kondisi. Jika perlu, gunakan tanda kurung.

Contoh:

IF a AND NOT b OR NOT c AND d

Pengecekannya adalah sebagai berikut:
1. NOT b
2. NOT c
3. a AND (1)
4. (2) AND d
5. (3) OR (4)

Selamat bereksperimen!


xsharan- 09-05-2006
Nah, untuk kondisi yang banyak, ada satu perintah lagi yang lebih ringkas untuk kondisi yang banyak. Di C++ dan PHP, perintah ini adalah switch, sementara di Ruby, perintahnya adalah case. Apapun bahasanya, formatnya sama. Anggaplah kita punya perintah pada bahasa Indonesia seperti berikut:
CODE
PILIH variabel_yang_dites
UNTUK <nilai1>
<perintah yang dijalankan kalau variabel_yang_dites memiliki nilai1>
UNTUK <nilai2>[, <nilai3>, ..., <nilaiN>]
<perintah yang dijalankan kalau variabel_yang_dites memiliki nilai2, nilai3, dst. hingga nilaiN>
[UNTUK <nilaiX>
<perintah yang dijalankan kalau variabel_yang_dites memiliki nilaiX>
...
LAINNYA
<perintah yang dijalankan kalau semua nilai tidak terpenuhi>


Format switch untuk C++ dan PHP:

CODE
switch(variabel)
{
case <nilai1>:
<perintah yang dijalankan untuk nilai1>
break;
case <nilai2>[,<nilai3>,...,<nilaiN>]:
<perintah yang dijalankan untuk nilai2 dst.>
...
[default:
<perintah yang dijalankan jika semua nilai tidak terpenuhi>
break;]
}


AWAS! Semua bagian UNTUK dan LAINNYA pada C++ dan PHP harus diakhiri dengan perintah break;, penanda blok perintah untuk nilai tersebut sudah selesai. Jika tidak ada perintah ini, perintah yang ada di bawahnya juga akan dijalankan sekalipun mungkin kondisinya tidak terpenuhi.

Berbeda pada Ruby, kita tidak membutuhkan perintah BREAK untuk tiap blok UNTUK. Format case pada Ruby lebih ramah dengan bahasa kita:

CODE
case variabel
when nilai1
<perintah untuk nilai1>
when nilai2[, nilai3, ..., nilaiN]
<perintah untuk nilai2>
[else
<perintah jika semua nilai tidak terpenuhi]
end


Bingung ya? Kita langsung masuk program saja yuuukkk...


xsharan- 09-05-2006
Kita coba yang sederhana saja dulu. Andaikan kita meminta seseorang memasukkan suatu huruf. Kita akan menentukan apakah huruf yang dimasukkan itu huruf vokal atau konsonan.

Untuk C++, programnya adalah seperti ini:

CODE
#include<iostream.h>

void main() {
char x;
cout<<"Masukkan karakter: ";
cin>>x;
switch(x) {
case 'a', 'i', 'u', 'e', 'o', 'A', 'E', 'I', 'O', 'U':
cout<<"Huruf vokal"<<endl;
break;
default:
cout<<"Huruf konsonan"<<endl;
break;
}
}


Jalankan program ini. Kalau kita memasukkan huruf a, i, u, e, o, A, I, U, E, atau O, yang keluar adalah pesan "Huruf vokal". Selain itu, yang keluar adalah "Huruf konsonan". Tentu saja, kalau kita memasukkan angka atau tanda baca, hasilnya juga "huruf konsonan" karena kita tidak mengecek lebih jauh. Namun, untuk contoh ini, cukup lah.

Perhatikan bahwa untuk mengecek suatu variabel terhadap karakter, kita mengapitnya dalam tanda petik tunggal. Jadi,

x == 'a'

Untuk string (kumpulan karakter), yang dipakai adalah tanda petik ganda. Jadi,

x == "aku"

Dengan format Ruby:

CODE
case x
when "a", "e", "i", "o", "u", "A", "E", "I", "O", "U"
p "Huruf vokal"
else
p "Huruf konsonan"
end


Okay, percabangan selesai! Mau latihan? Niii...

1. Buatlah program untuk mengecek apakah suatu bilangan yang dimasukkan user adalah bilangan genap atau ganjil.
TIPS: Gunakan bantuan operator modulo untuk ini.

2. Buatlah program untuk mengecek apakah suatu bilangan yang dimasukkan user adalah bilangan prima atau bukan.
TIPS: Ini dapat dikerjakan lebih cepat menggunakan perulangan di bawah, namun berhubung kita belum mempelajarinya, sementara ceklah terhadap semua bilangan prima di bawah 50.

3. Sebuah hotel memiliki tiga buah kamar. Kamar pertama adalah Double Suite dengan harga 150 per malam. Kamar kedua adalah Suite dengan harga 100 per malam. Kamar ketiga adalah Simple dengan harga 50 per malam. Diskon diberikan bagi penginap yang memiliki anak di bawah 5 tahun, untuk maksimal tiga orang anak. Satu anak akan mendapatkan diskon 5%, dua anak 8%, dan tiga anak 15%. Selain itu, yang menginap 10 hingga 20 hari mendapat potongan harga 4 per hari, 20 hingga 30 hari mendapat potongan harga 5 per hari, dan lebih dari 30 hari mendapat potongan harga 7 per hari.
Buatlah program untuk menghitung berapa biaya yang harus dibayar seseorang untuk menginap di hotel ini.
Yang dimasukkan user: berapa hari menginap, pilihan kamar, punya anak atau tidak, dan berapa anaknya.
TIPS:
- Sementara ini, batasi input jumlah anak untuk 3 orang anak saja.
- Buat kode untuk kamar. Misalkan, D untuk Double Suite, S untuk Suite, dan L untuk Simple.

Contoh:
Menginap berapa hari? 5
Mau kamar apa? D
Punya anak atau tidak (Y/T)? Y
Berapa anak? 3
Total biaya: 637.5
Yang tidak dicetak tebal adalah masukan dari user, yang tercetak miring adalah hasil perhitungan.

Selamat bekerja!

Tidak ada komentar :

Posting Komentar

Terima Kasih Telah Berkunjung di Kitab Salaf Indonesia
Download Ebook Islami Gratis
Kalau ada keluhan silahkan hub kami di:
https://www.facebook.com/KitabSalafIndonesia
SMS ke : +6282300107333 Pin : 7D83F38A

ptc

Share Up To 110 % - 10% Affiliate Program