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;
|
�xshara�n- 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.
�xshara�n- 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!
�xshara�n- 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!
�xshara�n- 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.
�xshara�n- 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.
�xshara�n- 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!
�xshara�n- 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...
�xshara�n- 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