Halaman 3 dari 85
Nyankod Magz ini dapat Anda sebarkan secara bebas untuk tujuan bukan komersial (nonprofit) dengan syarat
tidak mengurangi dan menambahkan isi kandungan di dalamnya. Tidak diperbolehkan melakukan penulisan
ulang, kecuali mendapat izin terlebih dahulu dari penulis.
Halaman 4 dari 85
Sapa Nyankod
Hi Nyankoders semua, yang ada di seluruh penjuru Nusantara. Love it and earn
it, kembali kami hadirkan hidangan istimewa buat Anda semuanya, NyankodMagz edisi ke-4. Tepuk tangan.... hehehe. Seperti biasa, jangan lupa siapin kopi hangat, gorengan dan beberapa list musik dangdut, biar belajarnya makin seru.
Gimana jou, masih semangat kan buat belajar pemrograman?? Harus dong.
Karena, belajar pemrograman itu merupakan sebuah kewajiban yang diperintahkan oleh Tuhan yang Maha Esa. Melakukannya akan mendapatkan pahala, dan meninggalkannya akan mendapat dosa. Hahah, ya mirip dengan sholat 5 waktu lah.
Cuma beda dikit doang. #ngacoBodoAmat
Emang sih, belajar buat jadi seorang master programer itu nggak gampang. Apalagi buat kita yang emang masih Newbie, belajar pemrograman itu bisa bikin keram otak. Penuh dengan onak, duri, halangan, rintangan yang akan menerjang. Tapi
kita nggak boleh nyerah kan jou? Bisa enjoy kok, klo belajarnya bareng Nyankod. Ketika belajar pemrograman buat jadi seorang master, kadang kita harus berhadapan
dengan Monster TV yang senantiasa menggoda kita dengan tayangan-tayangan yang membius, sampe kita lupa waktu. Kadang si Monster HP juga menyerang. Terus ada juga Monster yang sangat berbahaya, karena efeknya bisa membuat kita kecanduan,
yaitu Monster Joystick. Dan kadang kita pun harus berhadapan dengan monster yang paling berbahaya dan paling sadis di muka bumi, yaitu Monster Cewek Galak. Monster
yang inilah yang paling susah dilawan, apalagi kalau sudah ngeluarin jurus pamungkas, nagis sambil manja-manja gitu, bisa bikin lumpuh mendadak. Kadang kita juga harus berhadapan dengan Monster Mangkuk, yang akan menguras isi perut kita.
Dan monster terakhir yang sangat sulit ditaklukan adalah Monster Bantal, dia bisa melumpuhkan kita dalam sekejap, hanya melihatnya saja kita sudah terhipnotis. Itulah
tantangan kita buat jadi seorang master programer.
Halaman 5 dari 85
Tapi apapun halangan yang membentang, jika kita berusaha sekuat tenaga, pasti bisa kita lalui. Ingatlah teman, menjadi seorang programer itu merupakan hal
yang sangat mulia, ganjaran yang kita akan terima berupa Syurga yang di bawahnya mengalir sungai-sungai yang menyegarkan yang tidak akan pernah kering, juga
bidadari-bidadari yang jelita yang kecantikannya melebihi Monster Cewek Galak tadi. Maka berbahagialah bagi Anda yang dalam proses belajar menuju Master Programer. #ngacoBodoAmat
Oh iya boy, mulai edisi ke-4 ini, kami mencoba untuk menerapkan beberapa
hal baru untuk NyankodMagz, seperti judul edisi. Jika sebelumnya judul edisi NyankodMagz itu terkesan biasa, biasa banget, mulai edisi ke-4 ini, kami mencoba dengan judul-judul yang akan membuat Nyankoders sekalian menjadi sangat-sangat
lapar, bahkan saking laparnya, akan sulit membedakan mana kue dan mana buletin, atau bahkan parahnya nggak bisa membedakan mana tangan dan mana roti. Dan
karena kelaparan tersebut, apa pun itu akan Nyankoders makan dan lahap tanpa rasa bersalah dan tanpa tahu malu. Hahahaha.
Edisi ke-4 kali ini, kami beri judul "Apem doWhile". Benerkan bikin laper? Jadi nggak salah kalau di awal tadi saya sebut hidangan. Apem doWhile di ambil dari
Apem dan do while. Apem adalah sejenis kue yang sangat enak, yang keenakannya melebihi susu soda. Hahaha... Apem biasanya dibuat ketika menjelang lebaran (ada
yang bilang kue apem itu merupakan simbol maaf-memaafkan), dan kadang juga dibuat saat pesta pernikahan (terutama di desa-desa). Sedangkan do while, merupakan sebuah struktur kontrol perulangan dalam pemrograman. Untuk do while,
nanti akan di temui di beberapa artikel di edisi kok.
Oke, akhirnya, selamat menikmati hidangan kami kali ini Apem doWhile. Semoga Anda suka dan kenyang. Jangan lupa kasih komentar ya.
Love it and earn it
Nyankodist Team
Halaman 7 dari 85
Bila ada pertanyaan seputar Nyankod, atau mau bertanya
tentang pemrograman kepada Nyankodist Team, atau
hanya sekedar silaturahmi juga boleh, asalkan jangan
spam, silahkan kontak kami ke email kami:
Anda juga dapat berkomentar langsung seputar konten
majalah di post artikel di situs Nyankod atau langsung
menghubungi nyankodist pada kontak yang telah
disediakan.
Jangan lupa follow twitter kami ya!
@Nyankodist
Halaman 8 dari 85
Di dalam sini, ada..
PHP - CONTROL STRUCTURE Hello #{RubyWorld} – Bagian Hash dan Operator
ActionScript {Button Event} JavaScript – Pemilihan
Percabangan di Bahasa C
Bash Programming - Logic Perl - [Auto Convert, Input]
Halaman 10 Halaman 27
Halaman 40 Halaman 54 Halaman 64
Halaman 68 Halaman 73
Halaman 9 dari 85
[PHP]
Ahmad Oriza Sahputra
@oriza_sahputra [email protected]
http://orizasahputra.blogspot.com
Halaman 10 dari 85
CONTROL STRUCTURE
Assalamualaikum wr.wb.. , Salam Sejahtera untuk kita semua (pidato mode on). Apa kabarnya nih nyakoders??. Mudah-mudahan baik. Tak terasa artikelnya
sudah sampai edisi keempat sekarang, mudah-mudahan penulis terus konsisten untuk menulis majalah nyankod tentang PHP walaupun sebenarnya dalam penulisan artikel edisi ini dibarengi dengan keadaan hati penulis sedang galau (ciee ciee swit swiw).
Galaunya bukan soal cinta nih.. tapi setelah mendengar pidato pak Sby dalam pertemuan partai demokrat tentang kenaikan harga bbm.. waduh duh, ternyata benar
naik lagi. Imbas negatifnya adalah daya beli masyarakat yang akan menurun karena sudah pasti harga kebutuhan umum akan ikut naik dibarengi dengan tarif dasar listrik yang bertambah. Bukan tak mungkin kedepannya akan mudah kita menjumpai para
programmer yang menyedihkan, contohnya : Programmer yang diputuskan pacarnya karena tidak lagi mampu membeli bensin untuk jalan malam mingguan, dia juga gak
mampu bayar ongkos angcot. Programmer yang menjadi kurus, karena dia tidak mampu lagi membeli makan di warteg, jadi kalau lapar dia cuma membeli sepotong permen. Programmer yang jarang terkoneksi dengan internet karena dia tidak mampu
lagi membeli paket (solusinya beli yg murah trus jebol kuotanya, hahaha, penulis gak termasuk lho). Programmer yang tidak bisa lagi coding karena kantor atau rumahnya
sudah tidak mampu bayar listrik, alhasil ketika komputernya lowbatt dia kebingungan mencari sumber energi, mungkin salah satu solusi mereka adalah mencolokan kabel komputer ke hidungnya sendiri (hahaha) dijamin ngecharge, sebenarnya bisa saja sih
rampas laptop temennya atau numpang coding di wartel hehe. Oops.. jadi meleber dan mengada-ngada aja nih :D. Udah ah…
Dalam Artikel edisi keempat yang berjudul agak berbahasa jawa ini penulis
akan mencoba membahas struktur kontrol. Struktur kontrol diantaranya digunakan
Halaman 11 dari 85
untuk menangani kasus suatu kondisi dan aksi (bentuk bersyarat), menghentikan proses program, menghemat script yang kita buat dengan cara perulangan dsb.
Penggunaan metode ini sangat bermanfaat untuk mengatur jalannya program/aplikasi yang kita buat. PHP telah menyediakan bermacam statement untuk kita gunakan
dalam membangun struktur kontrol, seperti :
Mari kita pahami struktur kontrol dengan latihan seperti biasanya.. source code
edisi ini bisa anda download di http://www.mediafire.com/?k7vjn2kr8mzac74.
Statement if, if .. else, if .. elseif .. else Struktur kontrol yang satu ini berfungsi menangani kasus yang berhubungan
dengan kondisi dan aksi (bentuk bersyarat). Blok pernyataan akan dieksekusi jika
Halaman 12 dari 85
sudah memenuhi suatu kondisi tertentu. Contoh sederhana : jika nilai dibawah 5.. maka nyatakan tidak lulus. Jika kita implementasikan dalam syntax PHP menjadi :
if ($nilai < 5) { echo ―Tidak Lulus‖;
}
Statement kontrol ini selalu dimulai dengan kata if (jika), ekspresi yang berada
dalam tanda kurung adalah ekspresi kondisi, yang menjadi pemicu adanya suatu aksi. Suatu kondisi, umumnya terdiri atas variabel dan nilainya. Kemudian ekspresi diantara
kurung kurawal dan penutupnya adalah suatu aksi. Suatu aksi biasanya merupakan ekspresi assignment atau pemanggilan fungsi atau bahkan bisa saja berisi suatu percabangan lagi. Seperti biasa, siapkan editor :D dan coba program berikut untuk
lebih memahami struktur percabangan :
Program: if.php
1
2
3
4
5
6
7
<?
// nama program : if.php
$nilai = 4;
if ($nilai <= 6) {
$keterangan = "Tidak Lulus";
}
echo "Nilai anda $nilai, anda dinyatakan $keterangan";
?>
Output:
Halaman 13 dari 85
Inisialisasi nilai adalah empat, sedangkan kondisi aksi yang kita buat adalah ketika nilai kurang dari sama dengan enam, isi keterangan dengan ―Tidak Lulus‖,
setelah itu tampilkan hasil di layar dengan perintah echo. Lalu bagaimana jika ada dua kondisi?.. yaitu lulus dan tidak lulus. Maka kita
lengkapi saja script diatas dengan statement if .. else, statement tersebut pada prinsipnya sama saja dengan statement if. Hanya saja statement if .. else dapat
menangani aksi lebih dari satu, jika satu kondisi tidak terpenuhi maka kerjakan aksi dua.
Program: if.php
1
2
3
4
5
6
7
8
9
<?
// if_else.php
$nilai = 8;
if ($nilai <= 6) {
$keterangan = "Tidak Lulus";
} else {
$keterangan = "Lulus";
}
Halaman 14 dari 85
10
11
echo "Nilai anda $nilai, anda dinyatakan $keterangan";
?>
Output:
Karena nilainya lebih dari 6, aksi pertama tidak akan dieksekusi karena kondisi
pertama tidak terpenuhi.
Okeh.. sudah mengerti kan??. Memang cukup mudah ya Nyankoders.. . Selanjutnya kita coba statement if .. elseif .. else dengan sedikit sentuhan komponen form gui dari html sehingga program yang kita buat akan lebih interaktif, statement
yang satu ini bisa menangani banyak kondisi yang bercabang-cabang. Statement yang satu ini bisa kita sebut sebagai if bersarang.
Program: if_elseif_else.php
1
2
3
4
5
<html>
<head>
<title>IF Bersarang</title>
</head>
Halaman 15 dari 85
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<body>
Pengecekan Nilai :
<form name="form_cek" method="get"
action="<?$_SERVER['PHP_SELF'];?>" >
<input type="text" name="nilai"/>
<input type="submit" value="Cek" />
</form>
</body>
<?
$nilai = $_GET['nilai'];//mengambil nilai dari form_cek
//if bersarang
if ($nilai == 10) {
$keterangan = "Lulus dengan nilai sempurna";
} elseif (($nilai >= 6) && ( $nilai <= 10)) {
$keterangan = "Lulus";
} else {
$keterangan = "Tidak Lulus";
}
echo "Nilai anda $nilai, anda dinyatakan $keterangan";
?>
</html>
Jika kita masukan nilai 10 dalam form, maka outputnya :
Halaman 16 dari 85
Statement switch
Sebenarnya statement kontrol yang satu ini berfungsi sama dengan statement if .. elseif .. else. Statement ini dapat menangani aksi dalam banyak kondisi dengan
cara yang berbeda. Tetapi umumnya kondisi yang dihandle bukan suatu kondisi perbandingan (>,<=,dll) melainkan suatu nilai.
Program: switch.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>
<head>
<title>Switch</title>
</head>
<body>
Nyankod English Dictionary, masukan kata :
<form name="form_cek" method="get"
action="<?$_SERVER['PHP_SELF'];?>" >
<input type="text" name="kata"/>
<input type="submit" value="Cek" />
</form>
</body>
<?
$kata = $_GET['kata'];//mengambil nilai dari form_cek
//memulai switch
switch ($kata)
{
case "eat":
$keterangan = "makan";
break;
Halaman 17 dari 85
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
case "drink":
$keterangan = "minum";
break;
case "run":
$keterangan = "berlari";
break;
case "sleep":
$keterangan = "tidur";
break;
default:
$keterangan = "Gak tau, cari aja sendiri..";
break;
}
echo "$kata artinya $keterangan";
?>
</html>
Output :
Halaman 18 dari 85
Program akan mengeksekusi aksi dalam pilihan default karena semua kondisi tidak terpenuhi, aksi dalam default adalah opsi terakhir.
Statement while, do .. while, for
Nah.. setelah kita mempelajari struktur kontrol kondisi aksi (bentuk bersyarat) ataupun percabangan selanjutnya kita akan mempelajari struktur kontrol perulangan.
Struktur ini seperti yang sudah penulis katakan sebelumnya sangat berguna untuk menghemat kode yang kita buat. Statement perulangan dalam PHP ada 3 jenis, masing-masing struktur mempunyai tatacara penulisan dan fungsi yang sedikit
berbeda.
Bagaimana mengontrol suatu perulangan??, caranya adalah memberikan ekspresi kondisi dalam syntaxnya. Statement perulangan akan melalukan aksi ketika kondisi bernilai benar, dan jika kondisi salah, stop aksi dan program akan melakukan
perintah selanjutnya. Oia.. nyankoders, coba baca lagi artikel tentang operator increment dan decrement, siapa tempe lupa?. hehe. Sebab kita akan
menggunakannya dalam struktur perulangan. Okeh.. cobalah source code berikut :
Program: while.php
1
2
3
4
5
6
7
<?
$i = 1;
while ($i <= 4){
echo "Aksi ke-$i <br>";
$i++;
}
?>
Output:
Halaman 19 dari 85
Baris pertama kita buat suatu variabel yg menjadi ukuran kondisi dan
mengisinya dengan nilai satu yaitu $i, baris kedua memulai struktur perulangan while
dan menyatakan kondisi yang diinginkan, baris ketiga kita nyatakan aksi apa yang ingin dilakukan, terakhir menaikkan nilai $i satu angka dengan operator increment.
Program tersebut akan terus melakukan looping selama kondisi bernilai benar. Cobalah ganti nilai inisialisasi $i dengan nilai diatas 4, sudah dapat dipastikan
program tidak akan menampilkan output apa-apa karena saat pertama load.. kondisi sudah bernilai salah.
Selanjutnya mari kita coba statement do .. while
Program: do_while.php
1
2
3
4
5
6
7
8
<?
$i = 5;
do {
echo "Aksi ke-$i <br>";
$i++;
}
while ($i <= 4);
?>
Output:
Halaman 20 dari 85
Mungkin nyankoders bertanya mengapa aksi masih dilakukan padahal kondisi saat pertama load sudah salah. Kondisi yang dibuat, ―ketika $i kurang dari sama
dengan 4 laksanakan aksi‖, sedangkan variabel pengontrol ($i) bernilai 5. Jawabannya sederhana, cara kompiler/interpreter dalam memproses kode adalah baris per baris dari atas sampai bawah. Posisi statement do berada diatas statement while, sehingga
saat pertama kali load, statement while yang merupakan kondisi pengontrol tidak berpengaruh apa-apa, minimal jika kondisi sudah bernilai salah diawal, aksi tetap akan
dilakukan sekali saja. Terakhir yaitu statement for, seperti yang lainnya statement for digunakan
untuk mengulang suatu blok pernyataan. Yang membedakannya dari yang lain statement lain, inisialisasi variabel pengontrol, kondisi, dan increment/decrement
ditulis dalam satu wadah, yaitu dalam tanda kurung. Cek source code berikut :
Program: for.php :
1
2
3
4
5
<?
for ($i=1;$i<=4;$i++){
echo "Aksi ke-$i <br>";
}
?>
Output program sama dengan output while.php yang dibahas sebelumnya.
Halaman 21 dari 85
Statement foreach
Statement yang satu ini khusus untuk menangani perulangan untuk variabel array. Masih ingatkah variabel array??. Pastinya ya. Cobalah :
Program: foreach.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$prog_lang [0] = "PHP";
$prog_lang [1] = "Java";
$prog_lang [2] = "Perl";
$prog_lang [3] = "Ruby";
$prog_lang [4] = "Action Script";
$prog_lang [5] = "C";
$prog_lang [6] = "Javascript";
foreach ($prog_lang as $value){
echo "Bahasa Pemrograman : $value <br>";
}
?>
Output:
Halaman 22 dari 85
Variabel $value yang ada dalam source code bisa diganti dengan nama lain. Dalam statement foreach kita tidak perlu lagi membuat inisialisasi variabel pengontrol,
kondisi, dan inc/dec karena dengan statement tersebut interpreter telah otomatis mengindex isi dalam varibel array yang kita buat.
Statement break dan continue
Statement break digunakan untuk keluar dari perulangan yang sedang berjalan, sedangkan continue adalah melanjutkan program. Cobalah :
Program: break_continue.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$i=1;
while ($i <= 10){
echo "Aksi ke-$i <br>";
if ($i == 3 ){
echo "Nilai i sudah mencapai 3, program distop";
break;
} else {
$i++;
continue;
}
}
?>
Output:
Halaman 23 dari 85
Mengapa program berhenti di aksi ketiga, meskipun kita kondisikan loop lebih dari 5 kali?, jawabannya adalah karena adanya statement break. Statement break kita atur dengan bentuk bersyarat if ($i == 3 )... Program dihentikan ketika nilai $i sudah
mencapai 3. Lalu apa fungsi continue dalam source code tersebut?, yaitu melanjutkan loop ketika nilai $i belum mencapai 3 (disisipkan dalam aksi ketika kondisi else).
Statement return dan exit
Sip.. sampailah kita ke pembahasan statement return dan exit. Kedua statement ini berfungsi untuk menghentikan proses program yang sedang berjalan. Interpreter PHP akan memproses source code yang ditulis sebelum adanya statement
return dan exit saja. Cobalah :
Program: return.php:
1
2
3
4
5
6
7
8
<?
//loop satu
for ($i=1;$i<10;$i++){
echo "Semangat Belajar!";
}
return;
Halaman 24 dari 85
9
10
11
12
13
14
//loop dua
for ($i=1;$i<10;$i++){
echo "Malas Belajar!";
}
?>
Output:
Program: exit.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
//loop satu
for ($i=1;$i<10;$i++){
echo "Semangat Belajar!";
}
exit("Program Dihentikan");
//loop dua
for ($i=1;$i<10;$i++){
echo "Malas Belajar!";
}
?>
Output:
Halaman 25 dari 85
Masing-masing program menampilkan loop pertama saja karena setelahnya terdapat statement return dan exit. Khusus untuk statement exit kita bisa menambahkan suatu parameter berupa suatu string. Oia.. Nyankoders.. sebenarnya
statement return juga akan kita temukan dalam pembuatan suatu fungsi. Dalam fungsi, statement return berfungsi untuk mengembalikan suatu nilai. Pembahasan
lebih detailnya akan disampaikan dalam materi fungsi. Penulis rasa cukup sampai disini untuk pembahasan struktur kontrol, mudah-
mudahan bermanfaat ^_^ . Mohon maaf jika pembahasannya kurang lengkap atau terdapat kesalahan dalam penyampaiannya.
Keep Learning and Be The Best
Halaman 26 dari 85
[Ruby]
Muhammad Singgih Zulfikar Anshori
@hirokakaoshi [email protected]
http://mszacompany.wordpress.com
Halaman 27 dari 85
Hello #{RubyWorld} –
Bagian Hash dan Operator
Love It And Earn It. Itulah yang dijunjung tinggi dalam setiap edisi nyankods, dari sekian ribu edisi (padahal baru 3) semua penulis berusaha agar setiap edisinya seru dan asyik untuk diikuti, dan kamu paham dengan apa yang disampaikan pada
setiap materinya secara berkesinambungan dan tersusun.
Baik, Untuk Ruby di edisi ke 4 ini kita akan membahas kelanjutan dari materi kemarin tentang array, yaitu HASH { } (...panjang ya bacanya gaya
SponsBobSquaerPants).... apakah itu? Darimanakah dia berasal? Makhluk apakah dia? Untuk selanjutkan akan dibahas di level 4. Sekarang revies dulu apa yang sudah kita pelajari di edisi kemarin, kesimpulan dan abstraksi sebagai berikut:
Sekarang revies dulu apa yang sudah kita pelajari di edisi kemarin,
kesimpulan dan abstraksi sebagai berikut:
1. Kamu sudah mengenal sifat-sifat array di Ruby.
2. Kamu sudah bisa memanggil isi dari array berdasarkan aturan indeks nya. 3. Kamu sudah bisa membuat objek array dan mengisinya dengan leluasa karena
array di Ruby adalah Objek. 4. Kamu sudah mengetahui beberapa fungsi yang sering digunakan dalam array dan
sangat fungsional nantinya.
Array di Ruby diibaratkan Parsel yang bisa diisi macam-macam dan tersusun
rapi dengan angka sebagai pengenalnya. Bagi yang belum / ketinggalan materi
Oke, sudah siap dengan
materi di Level 4 ini???
Let's Check This Out, Love It
And Earn It
APA ITU HASH???
Halaman 28 dari 85
kemarin, cb download edisi ke 3 nyankods di http://nyankods.blogspot.com. Ato baru pertama kali liat majalah ini, ya download aja ketiga edisi kemarin supaya paham
dan dapat mengikutinya.
Level Up Sebelum memulai, persiapkan syarat-sayarat berikut ini:
1. Buka Folder RubyDojo. 2. Buka Editor teks kesayangan kamu.
3. Buka Ruby editor interaktif (irb) di terminal | cmd.
HASH, makhluk apakah itu? Apakah dia seorang pahlawan pembela kebetulan dan pembasmi kesalahan??? Who Knows..
HASH atau tepatnya Hashes (dikenal sebagai array
assosiatif atau kamus) dengan tanda { } sebagai pengenalnya ini mirip dengan array yang isinya di indeks. Namun bedanya indeks di Hashes tidak terurut dengan angka
seperti di array, Hashes menggunakan indeks pengenal yang dapat kita tentukan dan dapat ber type apapun. Indeks di
Hashes dikenal dengan nama key/kunci dengan isi masing-masing sesuai dengan yang kita tentukan. Dalam mengisi Hashes ada 2 syarat, yaitu adanya key dan value/isi
dari key tersebut.
Gimana? Celotehan si Maskot cukup jelas kan. (ὸ.ό)
Halaman 29 dari 85
Hashes ini merupakan saudara serumpun dengan array, sama sama bertitisan bungkusan. Cobalah contoh berikut di IRB :
irb(main):001:0> h = {'pagi' => 'roti,keju,susu','siang'
=> 'nasi,sayur,ikan', 'malam' => 'susu,nasi,sayur,ayam'}
=>{"malam"=>susu,nasi,sayur,ayam",
"siang"=>"nasi,sayur,ikan", "pagi"=>"roti,keju,susu"}
irb(main):002:0> h['pagi']
=> "roti,keju,susu"
irb(main):003:0> h['siang']
=> "nasi,sayur,ikan"
irb(main):004:0> h['sore']
=> nil
irb(main):005:0> h['malam']
=> "susu,nasi,sayur,ayam"
Bagaimana kesannya? Ada yang membingungkan dengan contoh di atas.
Penjelasan :
1. h disini merupakan objek dengan tipe Hashes.
2. isinya terdiri dari key dan value, dengan ketentuan key => value untuk mengisinya.
3. Isi Hashes akan secara otomatis di urut berdasarkan struktur key.
4. Cara memanggilnya sama seperti array, yaitu dengan cara objek[key] yang dimaksud.
5. Apabila yang dipanggil tidak ada maka mengeluarkan nil . Sekarang coba kita masukan key dan value baru ke objek h :
irb(main):009:0> h
=>{"malam"=>"susu,nasi,sayur,ayam",
"siang"=>"nasi,sayur,ikan", "pagi"=>"roti,keju,susu"}
irb(main):010:0> h['sore']='bakso,jus'
Halaman 30 dari 85
=> "bakso,jus"
irb(main):011:0> h
=>{"sore"=>"bakso,jus", "malam"=>"susu,nasi,sayur,ayam",
"siang"=>"nasi,sayur,ikan", "pagi"=>"roti,keju,susu"}
Ketika objek Hashes diisi di awal, maka kontennya akn berurutan. Namun ketika objek sudah terbentuk kemudian ditambahkan key dan value baru maka akan dimasukan ke urutan pertama.
Baiklah, kita coba contoh berikutnya ya...
irb(main):008:0>b={'a'=>'aku',2=>'dua',1=>'satu',
'tiga'=>3}
=> {"a"=>"aku", 1=>"satu", 2=>"dua", "tiga"=>3}
irb(main):017:0> b
=> {"a"=>"aku", 1=>"satu", 2=>"dua", "tiga"=>3}
irb(main):018:0> b[1]='One'
=> "One"
irb(main):019:0> b
=> {"a"=>"aku", 1=>"First", 2=>"dua", "tiga"=>3}
Di atas adalah contoh penggunaan gabungan dari angka dan abjad. Seperti contoh sebelumnya kita membuat objek baru bertipekan Hashes, kemudian diisi
dengan key dan value tertentu, dan hasilknya akn terurut secara sendirinya. Kemudian kita ubah isi dari salah satu key, disini yang diubah yaitu key 1, yang
awalnya berisi 'satu' menjadi 'First'. Ketika mengubah isi dari key sudah ada, maka posisi urutannya tidak berubah karena disini hanya mengubah saja bukan membuat baru.
=====================++___++====++__++=================
Halaman 31 dari 85
Apabila masih kesulitan dalam membayangkan dari penjelasan di atas, maka untuk lebih jelasnya apa itu Hashes, apa itu key, apa itu value, apa itu objek...
lihat gambar dibawah ini:
Sapi merupakan objek yang ber-tipe-kan Hashes
sapi = {'pagi' => 'jeruk,tomat,semangka', 'siang' => 'rumput,
kangkung, jerami', 'malam' => 'semangka kuning, durian,stroberi'}
Halaman 32 dari 85
Bagaimana, sudah kebayang sekarang... pelototin aj terus tuh si sapi sampe laper.. hihii
Baiklah, cukup un tuk penjelasan dasar mengenai Hashes, sekarangsaatnya
rehat sejenak dan cobalah kerjakan soal dibawah ini :
1. Apa itu Hashes?
2. Bagaimana format penulisan Hashes? 3. Buatlah Hashes dengan key a sampai e kemudian value nya nama teman-
temanmu yang berinisialkan huruf tersebut. 4. Tampilkan value nya saja dari objek Hashes yang kamu buat. 5. Tampilkan isi hash dari huruf c sampai e.
Halaman 33 dari 85
HERO state :: Extra Fokus
Hero State, Selalu merinding kalau masuk tahap ini. Ya mungkin karena terbayang akan sulitnya halangan dan rintangan untuk menguasai level ini. Hehehe...
Yosh, kalau sudah Siap.... Mari kita mulai Hero State di Hashes. Untuk kasus
Hashes mungkin kmau baru mengenal sekarang , karena saya sendiri pun baru
menemukan hal ini di Ruby, maka untuk itu di stage ini kita akan bermain dengan hal yang tidak jauh berbeda dengan array.
Baiklah, Hashes di Ruby dari contoh-contoh sebelumnya langsung kita
isi dengan konten tertentu, nah bagaimana caranya untuk membuat Hashes
kosong. Begini caranya,
1. Hashes.new
Tentu Kita tiidak perlu kerepotan untuk membuat Hashes baru, cukup dengan objek diikuti dengan tanda Hashes. Lihat contoh berikut:
irb(main):001:0> baru={}
=> {}
irb(main):002:0> baru[1]
=> nil
irb(main):003:0> baru[2]
=> nil
Mudah bukan, cek kosong dengan memanggil key apapun akan menghasilkan nil. Nil di Ruby ini merupakan objek juga yang
merepresentasikan nilai null atau nilai yang dimaksud adalah kosong. Namun karena nil adalah objek, ketentuan ini dapat kita ubah sesuai dengan apa yang kita inginkan sebagai pengganti dari null. Contoh berikut:
Halaman 34 dari 85
irb(main):001:0> baru=Hash.new(“zonk”)
=> {}
irb(main):002:0> baru[1]
=> “zonk”
irb(main):003:0> baru[2].upcase
=> “ZONK”
Mudah bukan? Untuk mengisinya cukup tentukan key apa dan valuenya juga.
Ok.
Nah untuk kasus selanjutnya, bagaimana cara kita menampilkan value atau key nya saja dari sebuah objek Hashes. Coba contoh berikut ini.
2. values dan .keys irb(main):010:0>harold={'a'=>'ambar','k'=>'kumar','w'=>'woo
den','z'=>'zorro'}
=>{"k"=>"kumar", "w"=>"wooden", "a"=>"ambar", "z"=>"zorro"}
irb(main):017:0> harold.length
=> 4
irb(main):015:0> harold.keys
=> ["k", "w", "a", "z"]
irb(main):017:0> harold.values
=> ["kumar", "wooden", "ambar", "zorro"]
bagaimana, Cukup dengan ditambahkan .values atau .keys setelah objek Hashes maka akan muncul values dan key dari objek Hashes secara terpisah.
Kemudian kasus selanjutnya, Bagaimana kita menampilkan isi Hashes dengan
syarat tertentu.
Halaman 35 dari 85
3. .select{ |k,v| kondisi} Select merupakan fungsi untuk Hashes dimana dia dapat
mengembalikan nilai dengan mengunakan [key, value] sebagai syarat untuk
seleksi. irb(main):019:0> harold
=>{"k"=>"kumar", "w"=>"wooden", "a"=>"ambar",
"z"=>"zorro"}
irb(main):020:0> harold.select{|k,v| k> "a"}
=> [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]]
irb(main):021:0> harold.select{|k,v| k> "z"}
=> []
irb(main):022:0> harold.select{|k,v| v> "100"}
=> [["k", "kumar"], ["w", "wooden"], ["a", "ambar"],
["z", "zorro"]]
irb(main):023:0> harold.select{|k,v| v!= "ambar"}
=> [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]]
k untuk insial dari key dan v inisial dari value, syarat ini tidak dapat kita ubah
dalam formatnya.
Kasus selanjutnya, Hashes dan array mempunyai kesamaan yaitu sama-sama kontainer atau pembungkus. Apakah mungkin suatu hash dapat berubah bentuk menjadi array? Atau hash berubah menjadi string? Mari kita lihat..
4. to_a dan to_s
irb(main):019:0> harold
=>{"k"=>"kumar", "w"=>"wooden", "a"=>"ambar",
"z"=>"zorro"}
irb(main):020:0> harold.select{|k,v| k> "a"}
Halaman 36 dari 85
=> [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]]
irb(main):021:0> harold.select{|k,v| k> "z"}
=> []
irb(main):022:0> harold.select{|k,v| v> "100"}
=> [["k", "kumar"], ["w", "wooden"], ["a", "ambar"],
["z", "zorro"]]
irb(main):023:0> harold.select{|k,v| v!= "ambar"}
=> [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]]
to_a merupakan perintah untuk menampilkan nilai balikan Hashes menjadi bentuk array. Sedangkan to_s merupakan perintah untuk menampilkan nilai balikan Hashes menjadi string.
Fyuh..banyak juga ya...Semangat terus kawan..
Kasus berikutnya, apakah mungkin Hashes dapat digabungkan dengan Hashes
yang lain??
5. clear dan merge. irb(main):028:0>a={1=>'bakpau',2=>'cingcau',
'tiga'=>'kemarau',3=>'miauw'}
=>{1=>"bakpau", 2=>"cingcau", "tiga"=>"kemarau",
3=>"miauw"}
irb(main):030:0> b = {'satu'=>'culik','dua'=>'pelik',
3=>'licik','tiga'=>'paceklik'}
=>{"satu"=>"culik","dua"=>"pelik","tiga"=>"paceklik",
3=>"licik"}
irb(main):031:0> a.merge(b)
=>{1=>"bakpau", "satu"=>"culik", "dua"=>"pelik",
2=>"cingcau", "tiga"=>"paceklik", 3=>"licik"}
irb(main):032:0> b.merge(a)
Halaman 37 dari 85
=>{1=>"bakpau", "satu"=>"culik", 2=>"cingcau",
"dua"=>"pelik", "tiga"=>"kemarau", 3=>"miauw"}
Lihat, di atas ada 2 objek Hashes yaitu a dan b, ketika a.merge(b) maka kedua
nilai tersebut bergabung dan apabila terdapat key yang sama maka nilai yang
ditimpa adalah nilai a. Begitu pula sebaliknya apabila posisi keduanya ditukar.
Selanjutnya, bagaimana cara untuk menghapus salah satu isi dari Hashes, kemudian bagaiman cara menukar posisi key dan values, dan bagaimana cara untuk membersihkan isi Hashes?? Mau tau jawabannya... Lihat penjelasan berikut.
6. .invert , .delete , .clear irb(main):034:0> harold
=>{"k"=>"kumar","w"=>"wooden","a"=>"ambar",
"z"=>"zorro"}
irb(main):035:0> harold.invert
=>{"wooden"=>"w","kumar"=>"k","zorro"=>"z",
"ambar"=>"a"}
irb(main):036:0> harold.delete("a")
=> "ambar"
irb(main):037:0> harold
=> {"k"=>"kumar","w"=>"wooden","z"=>"zorro"}
irb(main):038:0> harold.clear
=> {}
Lihat perintah di atas, berikut penjelasannya
1. harold.invert merupakan perintah untuk menukar posisi antara key dan value
dalam sebuah Hashes. 2. harold.delete(key or value) merupakan perintah untuk menghapus isi dari Hashes
berdasarkan value atau key yang dimaksud. 3. Harold.clear merupakan perintah untuk membersihkan isi Hashes.
Halaman 38 dari 85
Well, mungkin cukup sekian untuk Ruby bagian Hashes dan operator.Alhamdulillah Tahap hero sudah selesai..Yeayyy (^_^)9Nah supaya tidak
lupa, silahkan simpan semua yang telah kita pelajari tadi ke dalam folder khusus di RubyDojo, kemudian buat masing-masing file Ruby yang isinya dari setiap
bagian di atas. OKE..
Rangkuman Apa saja yang sudah dipelajari di atas, kita cek per poin : 1. Kamu sudah mengenal saudara array yaitu Hashes.
2. Kamu sudah tau bagaiaman menggunakan Hashes. 3. Kamu sudah berlatih beberapa kasus yang muncul di Hashes dan
bagaimana cara mengatasinya. Seperti menukar posisi, menggabungkan, menghapus, bahkan mengubahnya ke dalam bentuk array.
Hashes merupakan saudara serumpun dengan array, kelebihannya Hashes bersifat lebih flexibel terhadap indeksnya, yaitu dengan syarat key dan value yang
dapat kita tentukan. Namun kekurangannya indeks di Hashes tidak terurut seperti di array.
Yah begitulah ada kelebihan dan kekurangan dari masing-masing perintah. Namun ini sesuai dengan kegunaannya juga lhoo...
Salam akhir saya harap tulisan ini dapat bermanfaat bagi kamu dan lebih
tertarik lagi untuk PDKT dengan Ruby, mohon maaf apabila ada kesalahan
kata atau kurang berkenan. Apabila ada pertanyaan dan sebagainya bisa menghubungi saya dikontak : http://about.me/MuhammadSinggihZA
Salam, hirokakaoshi | Nyankodist Ruby.
Halaman 40 dari 85
Button Event
Hallo piye kabare sobat Nyankod yang budiman, moga masih menikmati terus script2 dari kami para Nyankodist. Nah melihat edisi yang kemarin yaitu edisi 3, kan
sudah tak kasih script buat nyobain. Udah di coba apa belum??? Udah donggg harusnya.
Supaya lebih inget lagi di bawah dah saya review yang disuruh nyobain monggo di cek, coba tulis script berikut, kemudian jalankan:
1
2
3
4
5
var angka:Number = 0;
angka++;
trace(angka); // hasilnya 1
angka++;
trace(angka); // hasilnya 2
Coba ganti dengan ini:
1
2
3
4
var i:Number;
for (i = 1; i < 10; i++) {
trace(i);
}
Sekarang ganti dengan ini:
1
2
3
var matika:Number;
matika = 2 + 4 * 3;
trace(matika); // hasilnya 14
Halaman 41 dari 85
Kemudian ganti dengan ini:
1
2
3
var mySum:Number;
mySum = (2 + 4) * 3;
trace(mySum); // hasilnya 18
Coba ganti dengan yang ini:
1
2
3
4
5
6
var matika:Number;
var matika_lagi:Number;
matika = 2 * 4 * 3;
matika_lagi = (2 * 4) * 3;
trace(matika); // hasilnya 24
trace(matika_lagi); // hasilnya 24
Dan terakhir, coba ganti dengan yang ini:
1
2
trace(3 > 2 < 1); // hasilnya false
trace((3 > 2) < 1); // hasilnya false
Gimana bisa kan??? N ngerti kan??, kemarin dapat masukan tolong di jelasin
dongg Nyankodist AS…..(sobat Nyankod bertanya-tanya:‖siapa yang memberikan masukan sedimikian hingga??‖,…Nyakodist AS: ―kasih tau ga yaaa,….‖), nah mungkin
ada yang belum jelas (yang udah jelas diem aja yaa…jangan dikasih tau….Lhooooo ?????// engga lah harus berbagi dongg…).
OKE akan gw (weish gaul nih, dari jakarte…..hahaahaha) coba jelaskan satu per satu….
Kita mulai aja atau gimana nih,..atau masih ada pertanyaan lain…saya
tunggu…………………….…………….
Halaman 42 dari 85
(------------------------!!!)..,Oke waktu habis brarti ga ada pertanyaan lagi….dan bisa saya mulai yaaa….
Bahan coba yang pertama:
1
2
3
4
5
var angka:Number = 0;
angka++;
trace(angka); // hasilnya 1
angka++;
trace(angka); // hasilnya 2
kata var di sana menandakan/menunjukan sebuah variabel dan angka menjadi nama variabelnya, terus Number adalah tipe datanya yang menunjukan sebuah angka yang dimulai dengan nilai 0 (nol). (jelas yaaa). Kemudian baris kedua : angka++; //
ini adalah contoh penggunaan dari operator arithmetic yang dikenal dengan nama increment (menambahkan satu), jadi berarti angka++ adalah di mana (di mana…di
mana…di mana…sekarang ku harus ke mana...**GUBRAAK**) variabel angka yang tadinya bernilai 0 (nol) menjadi bernilai 1 (satu) karena telah di increment (angka++) tadi secara tidak langsung/tidak kelihatan (siluman kali) angka = angka + 1;//angka
bernilai nol di tambah satu. Terus di lanjutin dengan perintah selanjutnya di tambah satu lagi, jadi lah 2 (dua) nilai yang bawah. Gitu deh, jelas kan…jelas donggg…!!! Oke
lanjuuut.
Bahan coba yang ke dua :
1
2
3
4
var i:Number;
for (i = 1; i < 10; i++) {
trace(i);
}
Ini namanya pengulangan menggunakan for, perintah itu akan di jalankan
hingga variabel yang telah kita tentukan telah mencapai tingkat maksimum nilai yang
kita berikan. Seperti contoh di atas bahwa varibel i dengan tipe data number (angka) dengan nilai mula-mula adalah 1 (for ( i = 1;……….)) dan selama nilai i kurang dari 10
Halaman 43 dari 85
(i < 10;…….// artinya sampai 9 aja) maka i akan terus di tampilkan atau dijalankan sampai dia telah mencapai nilai kurang dari 10 yaitu 9, begitu
ceritanyaaa…!!...Lanjuuut...(ada pertanyaan??, malu bertanya sesat di nilai…teringat dosen kesayangan dulu).
Bahan coba yang ke tiga :
1
2
3
var matika:Number;
matika = 2 + 4 * 3;
trace(matika); // hasilnya 14
Nah contoh ini sebenarnya masuk dalam kategori jenis-jenis operator yang berbeda, yang menurut beberapa buku mereka tidak menyebutkan dalam operator
arithmetic tetapi dipecah dalam operator precendece dan assosiatif (yang di atas itu contoh operator precendence) namun menurut saya ini masih tergolong pada operator arithmetic karena masih menggunakan tanda tambah, kurang, kali, n bagi cuma beda
ada tanda kurung sama pemakaiannya di barengin terus satu lagi perbedaan prioritas tinggi rendahnya masing-masing operator (waduuuh kok jadi banyak bAngEt
bedanya…). Oke di jelasin dulu deh apa itu Operator Precendence dan Operator Assosiatif.
Cek this out :
Operator Precendence yaitu bila dua atau lebih operator digunakan pada suatu pernyataan, beberapa operator mendapatkan prioritas lebih tinggi dari lainya. Contohnya, perkalian selalu dilakukan lebih dulu dari penjumlahan, namun apa bila
ada tanda kurung maka priritas yang lebih diutamakan adalah operator yang berada dalam tanda kurung tersebut ((2+3)*2 = 10 atau (1+8)*2.896.233.123 = ….. hitung
sendiri hasilnya…hahahahaa) contoh lainya pada bahan coba 4. Operator Assosiatif yaitu bila dua atau lebih operator bersama-sama
mempunyai prioritas sama, asosiatif menentukan bahwa urutan dilakukan menurut performasinya. Asosiatif dapat terjadi atau di mulai dari kiri ke kanan atau dari kanan
Halaman 44 dari 85
ke kiri. Contohnya, perkalian mempunyai asosiatif dari kiri ke kanan, sehingga pernyataan berikut ekivalen (pernyataan pertama dan ke dua mempunyai hasil
perhitungan sama) pada bahan coba ke 5.
Bahan coba 6 :
1
2
trace(3 > 2 < 1); // hasilnya false
trace((3 > 2) < 1); // hasilnya false
Tanda kurang dari (<) dan lebih dari (>) memiliki nilai prioritas yang sama sehingga akan di baca dari kiri ke kanan artinya pembacaan statement di lakukan dari sebelah kanan dulu (seperti 3 > 2), dan itu bernilai benar (true) karena 3 bernilai lebih
dari 2 namun melanjutkan statement yang menyatakan bahwa 2 < 1 menjadikan statement tersebut menjadi salah (false) sehingga hasil akhir dari statement tersebut
akan bernilai salah (false). Oia buat tambahan materi operator, saya berikan tabel urutan prioritas
operator sbb (semua bau badan, eh salah maksudnya sebagai berikut):
Operator Description Associativity + Unary plus Right to left - Unary minus Right to left
~ Bitwise one‘s complement Right to left ! Logical NOT Right to left
not Logical NOT (Flash 4 style) Right to left ++ Post-increment Left to right — Post-decrement Left to right
( ) Function call Left to right [ ] Array element Left to right
. Structure member Left to right ++ Pre-increment Right to left — Pre-decrement Right to left
new Allocate object Right to left
Halaman 45 dari 85
delete Deallocate object Right to left typeof Type of object Right to left
void Returns undefined value Right to left * Multiply Left to right
/ Divide Left to right % Modulo Left to right + Add Left to right
add String concatenation (formerly &) Left to right - Subtract Left to right
<< Bitwise Left Shift Left to right >> Bitwise Right Shift Left to right >>> Bitwise Right Shift (Unsigned) Left to right
< Less than Left to right <= Less than or equal to Left to right
> Greater than Left to right >= Greater than or equal to Left to right lt Less than (string version) Left to right
le Less than or equal to (string version) Left to right gt Greater than (string version) Left to right
ge Greater than or equal to (string version) Left to right == Equal Left to right
!= Not equal Left to right eq Equal (string version) Left to right ne Not equal (string version) Left to right
& Bitwise AND Left to right ^ Bitwise XOR Left to right
| Bitwise OR Left to right && Logical AND Left to right and Logical AND (Flash 4) Left to right
|| Logical OR Left to right or Logical OR (Flash 4) Left to right
?: Conditional Right to left = Assignment Right to left
Halaman 46 dari 85
―*=, /=, %=, +=, -=, &=, |=, ^=, <<=, >>=, >>>=‖ Compound assignment Right to left
, Multiple evaluation Left to right
Oke, untuk materi-materi selanjutnya mungkin saya akan lebih sering
mengadakan review jika diperlukan dan jika ada penambahan materi yang mungkin
saya dengan hilaf belum memasukannya ke materi yang sudah saya bahas. Jadi kalau belum mengerti dan ngerasa ada yang kurang, sobat Nyankod bisa langsung
tanyakan, begitu aja yoo. Oke kita coba masuk ke materi selanjutnya yang sedikit mengulang materi
awal tapi kita akan melibatkan sebuah tombol. Silahkan di pahami…
Yoi sobat Nyankod kita sudah mulai memasuki materi selanjutnya, silahkan
Sobat Nyankod pantengin dan pahami pada materi ini. Sekarang kita akan melibatkan sebuah objek yang nantinya akan kita beri script di dalamnya sehingga objek tersebut
akan menjalankan sebuah perintah yang telah kita masukan melalui script yang akan kita berikan.
Oke agak serius dikit ni. Judul materi ini adalah Button Event. Pertanyaan : Kenapa judulnya ngga di tarok di atas pakai tulisan di bold dengan ukuran font 14,
kayak biasanya???, jawab : Kamu emang ngga pernah ngerti akuh…..lho kok!!(bingung garuk-garuk hidung).
Button Event artinya kejadian yang menimpa pada suatu button (tombol). Biar lebih jelas, silahkan sobat Nyankod pahami tabel di bawah ini :
Event Keterangan Event
on (press) Ketika pointer mouse berada pada area
on (press)
Halaman 47 dari 85
tombol
dan tombol masih dalam keadaan
ditekan.
on (release) Ketika pointer mouse
berada pada area
tombol dan tombol sudah dilepas.
on (release)
on (releaseOutside) Ketika setelah tombol ditekan namun pointer
mouse dilepaskan di luar area tombol.
on (releaseOutside)
on (tollOver) Ketika pointer mouse
melewati area tombol.
on (tollOver)
on (dragOver) Ketika pointer mouse
bergerak menjauhi area tombol.
on (dragOver)
on (dragOut) Ketika pointer mouse
berada di atas area tombol dan mouse
sudah ditekan kemudian pointer
digerakan keluar menjauhi area tombol.
on (dragOut)
Contone :
1. Buatlah sebuah file baru dengan tipe ActionScript 2.0.
Halaman 48 dari 85
2. Tambahkan ke stage (halaman kerja) sebuah tombol dari common library dengan cara Windows – Common Library – Button. Atau liat gambar di bawa ini deh.
Untuk memasukan dalam stage sobat pilih dan klik tombol kemudian drag ke
stage.
3. Berikan instance name dengan cara klik tombol kemudian buka Properties Panel
dan beri instance name ―btMasuk‖.
Halaman 50 dari 85
5. Tulis script berikut ini pada Actions Panel.
1
2
3
on (release) {
trace(“Aku bisa ditekan kan”);
}
6. Tekan ctrl + enter. Hasilnya???(kalau ga jalan, jangan copas script di atas tapi di
ketik ulang….ok brow!!)
Penulisan ActionScript nya ada yang lain juga lho,…tadi kan kita sudah buat
instance name, nah itu fungsinya sebagai variabel yang bisa kita panggil. Oke kita coba deh, sekarang lakukan yang sama langkah 1 - 4 di atas. Terus lanjutin dengan langkah berikut :
1. Pastikan sobat Nyankod berada pada Timeline Panel.
2. Tambahkan layer baru dengan cara menekan icon New layer beri nama ―action‖ (klik dua kali untuk memberi nama).
Halaman 51 dari 85
3. Pada layer action, klik kanan pada frame pertama kemudian pilih Actions.
Di klik untuk menambah layer
baru
Halaman 52 dari 85
4. Isikan script seperti di bawah ini :
1
2
3
btMasuk.onRelease = function () {
trace (“aku bisa di tekan kan”);
}
5. Tekan ctrl + enter. Hasilnya ??? sama ngga yaaa….cobain deh…!!
Note :
Layer action khusus digunakan untuk menyimpan ActionScript pada frame sehingga lebih teratur dan rapih.
Oke sampai di sini perjumpaan kita (emang kita ketemu???) nantikan edisi
selanjutnya yaaa.
Halaman 53 dari 85
[JavaScript]
Toni Haryanto
@yllumi [email protected]
http://toniharyanto.cs.upi.edu
Halaman 54 dari 85
Pemilihan
Haloo.. masih tetap semangat kan belajar JavaScriptnya?? Yah meskipun di awal-awal kita mesti sabar belajar dasar-dasar terutama yang terkait langsung dengan algoritma, tapi hal itu justru merupakan bagian terpenting dalam memprogram. Kalo
dasar-dasarnya sudah jago, bikin aplikasi apapun tidak akan sulit. Sisanya tinggal penguasaan teknik pemrogamannya.
Di edisi 4 sampai edisi 6 berturut-turut kita akan belajar tentang Pemilihan,
Perulangan dan Fungsi. So, di edisi ini kita akan membahas tentang pemilihan. Akan sangat membantu kalo Anda sudah pernah belajar tentang algoritma. Kalo Anda sudah paham tentang algoritma pemilihan (if..else dan case) Anda bisa langsung loncat ke
bagian ‗sintaks pemilihan di JavaScript‘.
Konsep Dasar Pemilihan Dalam membuat program kita mengenal istilah runtunan. Runtunan atau
sequence adalah konsep dalam algoritma dimana sebuah algoritma terdiri dari satu atau lebih instruksi, yang berarti tiap instruksi dikerjakan satu per satu, dikerjakan
tepat satu kali dan tidak ada yang diulang, urutan pengerjaan instruksi sama dengan urutan penulisannya, dan akhir dari intruksi terakhir merupakan akhir algoritmanya. (Munir: 2004)
Namun tidak semua program cukup dibuat dengan runtunan saja. Ada kasus-
kasus dimana kita harus membuat sebuah instruksi berdasarkan kondisi-kondisi tertentu. Nah, disinilah kita perlu konsep pemilihan. Contoh algoritma sederhana yang mengandung pemilihan, bisa kita lihat di algoritma berikut:
1. Saya pergi ke warung
Halaman 55 dari 85
2. Kalo warungnya buka maka 2.1 Saya beli kopi
3. Kalo nggak buka maka saya pulang deh
Pada contoh diatas, nomor satu pasti dijalankan. Pada nomor dua terdapat
pengecekan kondisi yang menentukan apakah nomor 2.1 bisa dijalankan atau tidak.
‗Kalo warungnya buka‘, maka ‗Saya beli kopi‘. Tapi kalo kondisi di nomor 2 tidak terpenuhi, dalam kasus ini berarti warung tidak buka alias tutup, maka nomor 2.1
tidak akan dijalankan dan langsung berlanjut ke nomor 3. Nah kira-kira begitu penjelasan sederhana tentang pemilihan. Konsep ini akan
selalu ada dalam pembuatan sebuah program, dengan bahasa pemrograman apapun.
Di dalam konsep pemilihan, kita membagi pemilihan berdasarkan banyaknya kasus yang ditangani. Untuk pengecekan sebuah kasus, maka kita gunakan if..then, untuk pengecekan dua buah kasus kita dapat gunakan if..then..else dan untuk
pengecekan banyak kasus kita dapat gunakan case.
Mengerti maksudnya? Kita coba dengan contoh.
Satu Kasus (if..then)
Format penulisan umum untuk if..else adalah:
If kondisi then pernyataan kondisi adalah tempat kita menuliskan syarat untuk dapat menjalankan
pernyataan. Contohnya:
if x < 0 then tuliskan ―x bilangan negatif‖
Halaman 56 dari 85
Dua Kasus (if..then..else)
Adakalanya kita membutuhkan eksekusi pernyataan lebih dari satu kasus. Untuk dua kasus, kita bisa gunakan if..then..else dengan format penulisan:
If kondisi then
pernyataan 1
else pernyataan 2
endif Apabila kondisi bernilai benar atau true, maka pernyataan 1 yang dikerjakan,
dan bila kondisi bernilai salah atau false maka pernyataan 2 yang dikerjakan. Contohnya:
If x = 0 then tuliskan ―x sama dengan nol‖
else tuliskan ―x bukan nol‖
endif
Banyak Kasus (if..then..elseif dan case)
Sebenarnya untuk pengecekan kasus lebih dari dua, kita bisa menggunakan if bersarang. If bersarang berarti if di dalam if. Contohnya:
If nomorHari = 1 then tuliskan ―minggu‖
else If nomorHari = 2 then
tuliskan ―senin‖ else
Halaman 57 dari 85
If nomorHari = 3 then tuliskan ―selasa‖
else If nomorHari = 4 then
tuliskan ―rabu‖ else If nomorHari = 5 then
tuliskan ―kamis‖ else
If nomorHari = 6 then tuliskan ―jumat‖ else
tuliskan ―sabtu‖ endif
endif endif
endif
endif endif
Baris ke-2 merupakan pernyataan yang akan dikerjakan bila kondisi pada baris ke-1 bernilai benar. Baris ke-4 ke bawah adalah pernyataan yang akan dijalankan bila kondisi pada baris ke-1 bernilai salah. Dengan kata lain, baris ke-4 sampai akhir
adalah pernyataan 2 bagi kondisi pertama yang berisi pengecekan if untuk kondisi lain. Begitu seterusnya.
Namun ada cara lain yang lebih efisien untuk kasus banyak, yakni dengan
case. Case dapat menyederhanakan penulisan if..then..else yang bersarang seperti
pada contoh di atas. Format penulisan umum untuk case adalah sebagai berikut:
case ekspresi nilai 1 : pernyataan 1
Halaman 58 dari 85
nilai 2 : pernyataan 2 .
.
.
nilai n : pernyataan n otherwise : pernyataan x
endcase
ekspresi adalah sembarang ekspresi (aritmatika atau boolean) yang menghasilkan suatu nilai atau konstanta, atau sebuah variabel. Konstruksi case memeriksa apakah nilai dari ekspresi tersebut cocok dengan salah satu dari nilai 1,
nilai 2, .. nilai n dengan catatan, semua nilai ini harus berbeda. Jika nilai ekspresi sama dengan nilai k, maka pernyataan k yang akan dikerjakan (Munir: 2004). Bila nilai
ekspresi tidak cocok dengan salah satu nilai, maka pernyataan x setelah otherwise yang akan dijalankan. Penerapan case pada contoh kasus if bersarang diatas seperti berikut:
case nomorHari
1 : tuliskan ―minggu‖ 2 : tuliskan ―senin‖
3 : tuliskan ―selasa‖ 4 : tuliskan ―rabu‖ 5 : tuliskan ―kamis‖
6 : tuliskan ―jumat‖ 7 : tuliskan ―sabtu‖
otherwise : tuliskan ―bukan nomor hari‖ endcase
Halaman 59 dari 85
Sintaks Pemilihan di JavaScript
Kita sudah simak penjelasan sederhana tentang teori pemilihan di atas. Kalo pengen lebih jelas lagi tentang penjelasan algoritmanya, Anda bisa baca bukunya
Rinaldi Munir yang berjudul Algoritma dan Pemrograman, atau buku tentang algoritma lainnya yang beredar.
Sekarang kembali ke JavaScript. Sintaks pemilihan untuk if dan case bisa dilihat di tabel berikut.
Sintaks If
If (kondisi) { pernyataan 1;
} else { pernyataan 2; };
Algoritma JavaScript
If nomorHari = 1 then
tuliskan ―minggu‖ else
If nomorHari = 2 then tuliskan ―senin‖ else
If nomorHari = 3 then tuliskan ―selasa‖
else If nomorHari = 4 then tuliskan ―rabu‖
else If nomorHari = 5 then
If (nomorHari = 1) {
document.write(―minggu‖); } else
if (nomorHari = 2) { document.write( ―senin‖ ); } else
if (nomorHari = 3) { document.write( ―selasa‖ );
} else if (nomorHari = 4) { document.write( ―rabu‖ );
} else if (nomorHari = 5) {
Halaman 60 dari 85
tuliskan ―kamis‖
else If nomorHari = 6 then tuliskan ―jumat‖
else tuliskan ―sabtu‖
endif endif endif
endif endif
endif endif
document.write( ―kamis‖ );
} else if (nomorHari = 6) { document.write( ―jumat‖
); } else
document.write( ―sabtu‖);
Catatan: kurung kurawal digunakan terutama bila pernyataan setelah kondisi if
yang akan dijalankan lebih dari satu baris. Bila hanya satu baris pernyataan yang akan dieksekusi, kita tidak mesti mengurungnya dengan kurung kurawal. Coba perhatikan
contoh program javascrip di atas. If kedua setelah else tidak dikurung oleh kurung kurawal, karena if kedua (dan begitu pula dengan if sesudahnya) dianggap satu baris pernyataan, yakni pernyataan if yang memiliki if di dalamnya.
Sintaks case
switch (ekspresi) { case nilai1 :
pernyataan1; break;
case nilai2 : pernyataan2; break;
case nilai3 : pernyataan3;
Halaman 61 dari 85
break; default :
pernyataan_x; }
Algoritma JavaScript
case nomorHari
1 : tuliskan “minggu”
2 : tuliskan “senin”
3 : tuliskan “selasa”
4 : tuliskan “rabu”
5 : tuliskan “kamis”
6 : tuliskan “jumat”
7 : tuliskan “sabtu”
otherwise : tuliskan “bukan nomor hari”
endcase
switch (nomorHari) {
case 1 :
document.write(“minggu”);
break;
case 2 :
document.write( “senin” );
break;
case 3 :
document.write( “selasa” );
break;
case 4 :
document.write( “rabu” );
break;
case 5 :
document.write( “kamis” );
break;
case 6 :
document.write( “jumat” );
break;
case 7 :
document.write( “sabtu” );
break;
default :
document.write( “bukan nomor hari” );
}
Halaman 62 dari 85
Catatan: berbeda dengan sintaks if, sintaks case atau switch ini tidak memerlukan kurung kurawal untuk melikupi pernyataan yang akan dieksekusi,
sebanyak apapun pernyataannya. Perintah break; di akhir pernyataan untuk setiap case berfungsi sebagai interupsi untuk menghentikan eksekusi pernyataan, atau
simpelnya sebagai penutup pernyataan.
Baiklah, sekian dulu penjelasan tentang pemilihan di javascript. Sekali lagi,
yang terpenting adalah konsep algoritmanya. Kalo algoritma sudah mantap, bahasa pemrograman apapun yang ingin dipelajari, insya Allah bisa. Tetap semangat, dan.. HAPPY PROGRAMMING! ;D
Halaman 64 dari 85
Percabangan di Bahasa C
Yuppss sudah 1 minggu berlalu saatnya menulis kembali untuk pemrograman bahasa c, setelah minggu lalu membicarakan mengenai operator dalam bahasa c,
selanjutnya pada tulisan ini akan membahas mengenai struktur kendali pemilihan. Dalam proses pengolahan data kadang perlu memilih satu dari sekumpulan alternatif proses, sebagai contoh untuk menentukan mahasiswa yang lulus berdasarkan nilai
akhir mata kuliah. Jika nilai yang diperoleh adalah 60 sampai dengan 100 maka mahasiswa tersebut dinyatakan lulus, tetapi apabila nilai mahasiswa <60 maka
mahasiswa dianggap tidak lulus. Dari tulisan diatas terdapat 2 kondisi pemilihan yaitu mahasiswa yang lulus dan tidak lulus, maka perlu dipilih salah satu kondisi, Bahasa C menyediakan if dan switch untuk melakukan proses seleksi.
a. Instruksi if
instruksi if digunakan untuk memilih jalur proses: melakukan atau tidak melakukan suatu proses(if), memilih satu dari dua proses (if else).
if(expression) statement:
expression dievaluasi, jika hasilnya true maka statement akan dikerjakan. Jika hasilnya false maka statement tidak dikerjakan.
Halaman 65 dari 85
Program 4.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# include <stdio.h>
# include <conio.h>
void main() {
int nA;
char grade;
clrscr();
printf(“nilai akhir ?”); scanf(“%d”, &nA);
if(nA > 84) grade='A';
if(nA > 74 && nA <85) grade = 'B';
if(nA > 64 && nA <75) grade = 'C';
if(nA > 49 && nA <65) grade = 'D';
if(nA < 50 ) grade = 'E';
printf(“Grade = %c”,grade);
}
b. Instruksi if-else
adakalanya kita harus melaksanakan proses yang berbeda untuk kondisi yang berbeda. Misalnya menampilkan kata lulus untuk nilai yang sama atau lebih besar
daripada 60 dan menampilkan kata tidak lulus untuk nilai yang kurang dari 60. Bahasa C menyediakan klausa else untuk digunakan bersama instruksi if.
if(kondisi)statement1;else statement2;
apabila evaluasi terhadap kondisi memberikan nilai true maka statement1 dikerjakan, sebaliknya jika nilai false maka statement2 dikerjakan. Jadi yang dikerjakan selalu salah satu dari kedua statement.
Halaman 66 dari 85
Program 4.2
1
2
3
4
5
6
7
8
9
10
# include <stdio.h>
int main() {
int a,b,c ;
scanf("%d %d %d", &a, &b, &c);
if(c < a + b) printf("bisa membentuk segitiga");
else printf("tidak bisa membentuk segitiga");
return 0;
}
c. Instruksi switch
instruksi switch digunakan untuk memilih satu dari sejumlah alternatif, misalnya kita akan menggunakan mobil, motor, atau kendaraan umum, kita diharuskan memilih salah satu dari 3 pilihan tersebut.
Switch(expression) {
Case const_expr_1: statement_1; Case const_expr_2: statement_2;
……..
Case const_expr_n: statement_n; [default: statement_x;]
}
Halaman 67 dari 85
Program 4.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# include <stdio.h>
int main() {
unsigned int kode_pos;
printf(“kode pos?”); scanf(“%ud”, &kode_pos);
switch(kode_pos) {
case 10210 : printf(“bambu apus \n”);break;
case 10220 : printf(“cijantung \n”);
case 10230 : printf(“kalisari \n”);
case 10240 : printf(“susukan \n”);
default: printf(“di luar pasar rebo \n”);
}
Halaman 68 dari 85
[Bash]
Taufik Sulaeman
@taufiksu [email protected]
http://npaperbox.com/user/profile/1
Halaman 69 dari 85
Bash Programming - Logic
Program merupakan kumpulan-kumpulan sintaks yang dioperasikan dengan logika pemrograman. Operasi logika sangat penting bagi komputer dalam
mengeksekusi sebuah program. Pada kesempatan kali ini kita akan mencoba membuat program sederhana pada bahasa pemrograman bash yang menggunakan logika. Secara garis besar kita akan mempelajari 2 hal yaitu Percabangan dan Pengulangan.
Pada kesempatan kali ini kita akan mempelajari Percabangan.
Percabangan
1. IF
If merupakan logika percabangan yang akan mengeksekusi blok perintah program tertentu, if bekerja dengan kondisi logika (Benar / Salah). Contohnya pada program berikut:
1
2
3
4
5
6
7
8
#!/bin/bash
echo "T1 :";
read T1
echo "T2 :";
read T2
if [ "$T1" = "$T2" ]; then
echo sama
else
Halaman 70 dari 85
9
10
echo beda
fi
Struktur
Struktur program menggukan kondisi if dimulai dari menulis if dan diakhiri fi
(tag penutup kebalikan dari tag pembuka). Struktur paling sederhana dalam membuat membuat percabangan dengan if adalah sebagai berikut:
1 Cabang
if [kondisi];then outputkondisi else outputdiluarkondisi fi
2 Cabang
if[kondisi];then outputkondisi1 elif [kondisi2];then outputkondisi2 else outputdiluarkondisi fi
Contohnya :
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
echo "Pilih Menu";
echo "(1) Nasi Kuning";
echo "(2) Ketoprak";
echo "==============";
echo "Masukan Nomor Menu :"; read T1
if [ "$T1" = 1 ]; then
echo Anda memilih Menu 1
elif [ "$T1" = 2 ]; then
echo Anda memilih Menu 2
else
Halaman 71 dari 85
12
13
echo Milih apa bang ?
fi
2. CASE Case adalah pencabangan khusus untuk banyak kondisi pemilihan, yang lebih
digunakan dibanding perintah if/elif/else.
Struktur case kondisi in CASE1) output1;; CASE2) output2;; … CASEN) outputlain;; esac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
echo -n "Do you agree with this? [yes or no]: "
read yno
case $yno in
[yY] | [yY][Ee][Ss] )
echo "Agreed, Install Start"
;;
[nN] | [n|N][O|o] )
echo "Not agreed, Install Cancel";
exit 1
;;
*) echo "Invalid input"
;;
esac
Resume dari kedua kondisi Ketika kita menggunaka if maka kita berfikir JIKA, pada saat kita menggunakan
case maka kita berfikir KALAU. Kedua proses percabangan ini (if dan else) dapat kita gunakan bersama sesuai kebutuhan program yang kita buat. Pada pembahasan berikutnya kita akan mengulas tentang pengulakan.
Halaman 72 dari 85
Sik asik for i in {1..65535};do printf "%x\n" $i;done|while read -r u;do printf
"\033[38;5;$((16+$((16#$u))%230))m\u$u\033[0m";done
Halaman 73 dari 85
[Perl]
Kresna Galuh D. Herlangga
@kresnagaluh [email protected]
http://kresnagaluh.com
Halaman 74 dari 85
Auto Convert, Input
Pernah nggak kebayang, gimana kalo program Perl yang kita buat bisa berinteraksi dengan kita, artinya nggak cuma kita tulis kode programnya kemudian
program dijalankan, tapi juga kita bisa melakukan input perintah ketika program tersebut berjalan??
Gimana pernah nggak?
Buat yang pernah kepikiran, saya ucapin selamat, karena sebentar lagi rasa penasaran Anda akan dilenyapkan disini. Dan buat yang belum pernah kepikiran juga nggak apa-apa, intinya kita bakal menyaksikan pertunjukan demikian sesaat lagi.
Oke jou, udah siap buat beraksi...??? Let's go...
Let's go kemana? Kita kan mau belajar n nggak mo kemana-mana...
Maksudnya udah siap belajar?? -_-
Siap… Horee… horee ~(ˆ◦ˆ~) Horeee….. (~ˆ◦ˆ)~ Sudah.. sudah…. Mari kita mulai.
Oh ya boy, masih inget nggak kemarin saya bilang apa di akhir pembahasan?
(plis masih inget dong!!)
Halaman 75 dari 85
Yes, bagus kalo masih inget (anggap seluruh orang di dunia inget). Jadi di edisi ke-3 yang lalu, di akhir pembahasan saya sempet bilang kalau pembahasan
mengenai Numerik dan String belum sepenuhnya tuntas, masih ada beberapa hal lagi yang perlu disampaikan berkaitan dengan numerik dan string. Nggak banyak sih, tapi
sangat penting buat kedepannya. Nah, sekarang sebelum memulai ke pembahasan selanjutnya, di sini saya
punya beberapa pertanyaan dulu nih berkaitan dengan materi sebelumnya. Anggap aja ini sebagai rintangan untuk ke tahap selanjutnya. Jadi jangan mencoba buat ke
tahapan selanjutnya kalau belum bisa menjawa semua pertanyaan di bawah ini.
1. Apaan sih yang dimaksud operator?
2. Kalau dari: 6 % 4, yang disebut operator yang mana dan yang disebut operand yang mana?
3. Apa aja yang termasuk operator aritmatika numerik? Contohnya gimana?
4. Berapa hasil dari: 35 - 21 / 7 ?
5. Berapa hasil dari: 43 AND 54 ? 6. Bagaimana keluaran dari 8 == 9 ?
7. print "!(6 > 7) : ", !(6 > 7), "\n"; Bagaimana keluarannya?? 8. Bagaimana membuat program yang keluarannya adalah tulisan "Aku
cinta kamu" sebanyak 100 kali? Jadi nggak boleh lanjut dulu ke tahap selanjutnya kalo belu bisa ngejawab
semua pertanyaan di atas. Sepakat?
Buat yang bisa jawab semua pertanyaan di atas, mari kita kemon ke pembahasan selanjutnya. Dan buat yang blom bisa jawab. Mendingan pelajari lagi deh materi sebelumnya. Udah punya kan filenya? Kalo yang belum punya, silahkan
download edisi sebelumnya di http://nyankod.blogspot.com. Oke, selamat menempuh hidup baru (kayak yang abis nikahan aja).
Halaman 76 dari 85
Operator Perbandingan String
Di edisi lalu, kita udah kenal operator perbandingan buat numerik, seperti ==. !=, >, <, >=, <= dan <=>. Nah sekarang kita juga punya opertator perbandingan,
tapi khusus buat string. Operatornya adalah seperti di tabel berikut:
String Numerik Keterangan
eq == Equal, sama dengan
ne != not equal, tidak sama dengan
lt < Less than, kurang dari
gt > Greater than, lebih dari
le <= Less than or equal to, kurang dari atau sama dengan
ge >= Greater than or equal to, lebih dari atau sama dengan
Dalam perbandingan string, yang menjadi tolok ukur perbandingannya adalah nilai ASCII yang ada pada setiap karakter. Contohnya, nilai ASCII dari karakter A
adalah 65, nilai ASCII dari B adalah 66, nilai ASCII dari a adalah 97, dan nilai ASCII dari b adalah 98. Jadi A lebih kecil dari B, karena nilai ASCII A lebih kecil dari B. Dan A
tidaklah sama dengan a, karena keduanya memiliki nilai ASCII yang berbeda. Dalam perbandingan string yang pertama dibandingkan adalah karakter
pertama (dari kiri), kemudian apabila karakter pertama sama, maka akan dilanjutkan ke karakter disebelehnya. Sebagai contoh operasi perbandingan pada string, mari kita
liat aja deh dalam contoh program.
Program: operator_perbandingan_string.pl
1
2
3
4
#!/usr/bin/perl
# nama program : operator_perbandingan_string.pl
print "aku eq kamu? ", "aku" eq "kamu", "\n";
Halaman 77 dari 85
5
6
7
8
9
print "aku ne kamu? ", "aku" ne "kamu", "\n";
print "aku lt kamu? ", "aku" lt "kamu", "\n";
print "aku gt kamu? ", "aku" gt "kamu", "\n";
print "aku le kamu? ", "aku" le "kamu", "\n";
print "aku ge kamu? ", "aku" ge "kamu", "\n";
Jalankanlah program tersebut! $ perl operator_perbandingan_string.pl
aku eq kamu?
aku eq kamu? 1
aku eq kamu? 1
aku eq kamu?
aku eq kamu? 1
aku eq kamu?
$
Auto Convert String-Numerik Di dalam Perl ada satu hal yang sangat menarik, yaitu otomatis melakukan
konversi baik dari string ke numerik ataupun sebaliknya dari numerik ke string. Itu tergantung bagaimana operator yang bekerja padanya. Misalnya ada dua buah string,
namun yang dikenakan pada string tersebut merupakan operator untuk numerik, maka secara langsung Perl akan mengubah string tadi ke dalam bentuk numerik. Tentunya nanti ada beberapa aturan khusus yang bekerja padanya. Begitupun
sebaliknya, bila ada dua buah numerik namun dikenakan operator string, maka, numerik tersebut akan dianggap sebagai sebuah string oleh Perl. Jadi kata kuncinya
adalah semuanya tergantung operator apa yang bekerja padanya.
Halaman 78 dari 85
Ketika melakukan konversi dari string ke numerik, ada beberapa aturan khusus yang perlu kamu ketahui, yaitu:
Sebuah string yang murni isinya adalah sebuah angka, maka akan langsung
dikonversi ke dalam numerik. Contohnya "12" * "3", maka akan menghasilkan 36. Begitupun "2" + "5" akan menghasilkan 7.
Bila di dalam sebuah string terdapat angka dan bukan angka, maka yang
dijadikan numerik adalah angka-angka yang ada di paling kiri saja. Misalnya "15nyankod" * "3", maka hasilnya sama dengan 15 * 3, yaitu 45.
Spasi yang ada di depan string akan diabaikan. Misalnya " 4" % "3" maka hasilnya adalah 1. Adapun spasi yang ada di depan karakter 4 akan diabaikan.
Bila dalam sebuah string tidak terdapat angka, maka pengkonversiannya akan
langsung menjadi 0. Contohnya "nyankod" + "5", maka artinya 0 + 5, maka keluarannya adalah 5.
Karakter angka yang ada di belakang karakter bukan angka akan diabaikan. "2jan2012" + "4", maka hasilnya adalah 6. "2jan2012" akan dikonversi menjadi 2 saja, adapun angka 2012 yang ada di belakang tidak akan diperhatikan oleh Perl
sebagai sebuah numerik. Begitupun "nyankod2012" * "2011", sama artinya dengan 0 * 2011, yang hasilnya adalah 0.
Biar lebih jelas, coba praktekin contoh berikut ini:
Program: konvert_string_numerik.pl
1
2
3
4
5
6
7
8
#!/usr/bin/perl
# nama program : konvert_string_numerik.pl
print "12" * "3", "\n";
print "2" + "5", "\n";
print "15nyankod" * "3", "\n";
print " 4" % "3", "\n";
print "nyankod" + "5", "\n";
Halaman 79 dari 85
9
10
print "2jan2012" + "4", "\n";
print "nyankod2012" * "2011", "\n";
Keluarannya:
$ perl konvert_string_numerik.pl
36
7
45
1
5
6
0
$
Adapun untuk konversi numerik ke string itu lebih sederhana. Intinya semua angka yang ada di numerik akan diubah menjadi string. Contohnya:
3 . 5 outputnya 35 45 . 1 outputnya 451
6.6 . 2 outputnya 6.62 8 . "x" outputnya 8x "z" . 9 outputnya z9
"L" . 4 * 2 outputnya L8
Untuk pembuktian, silahkan cek program berikut:
Program: konvert_numerik_string.pl
1
2
#!/usr/bin/perl
# nama program : konvert_numerik_string.pl
Halaman 80 dari 85
3
4
5
6
7
8
9
print 3 . 5, "\n";
print 45 . 1, "\n";
print 6.6 . 2, "\n";
print 8 . "x", "\n";
print "z" . 9, "\n";
print "L" . 4 * 2, "\n";
Keluarannya: $ perl konvert_numerik_string.pl
35
451
6.62
8x
z9
L8
$
Input <STDIN> Dalam pemrograman, bahasa apa pun itu, suatu saat pasti kita akan
mengalami dimana kita membuat sebuah program, dan kita ingin inputan data yang
dinamis yang diinput oleh user. Bayangkan bila setiap program data yang kita akan proses harus kita tulis dalam source code, pasti bikin stres. So, di dalam Perl juga kita
bisa melakukan permintaan input data dari user. Untuk itu kita membutuhkan <STDIN>. Mungkin akan lebih mudah dipahami kalau kita langsung coba dengan contoh aja deh. Oke, program yang akan kita buat berikut ini intinya adalah sebuah
program yang akan menanyakan siapa nama user, kemudian user akan menginput
Halaman 81 dari 85
namanya di program, kemudian program akan mengucapkan selamat datang kepada user dengan menyebut namanya. Cerdas bukan? Oke, langsung aja deh bro. Cekidot.
Program: inputan_nama.pl
1
2
3
4
5
6
#!/usr/bin/perl
# nama program : inputan_nama.pl
print "Siapa nama kamu? ";
$nama = <STDIN>;
print "Selamat datang $nama";
Keluarannya:
$ perl inputan_nama.pl
Siapa nama kamu? Kresna
Selamat datang Kresna
$
Kita juga bisa membuat program yang lebih menarik lagi, misalnya program
perhitungan luas lingkaran.
Program: luas_lingkaran.pl
1
2
3
4
5
6
#!/usr/bin/perl
# nama program : luas_lingkaran.pl
print "PROGRAM PERHITUNGAN LUAS LINGKARAN", "\n\n";
print "Masukan jari-jari lingkaran : ";
Halaman 82 dari 85
$r = <STDIN>;
$l = 3.14 * $r * $r;
print "\n";
print "Rumus Luas Lingkaran adalah : L = phi * r * r", "\n";
print "Jadi, Luas Lingkaran adalah ", $l, "\n";
Keluarannya: $ perl luas_lingkaran.pl
PROGRAM PERHITUNGAN LUAS LINGKARAN
Masukan jari-jari lingkaran : 7
Rumus Luas Lingkaran adalah : L = phi * r * r
Jadi, Luas Lingkaran adalah 153.86
$
Gimana? Semakin menarik bukan?
Oke untuk pembahasan kita kali ini mungkin sampai di sini dulu. Intinya supaya kita semakin paham terhadap sebuah pemrograman kita harus senantiasa
melatihnya. Oh ya, untuk edisi selanjutnya kita akan mencoba untuk membahas tipe data yang lainnya, yaitu Array. So, jangan sampe kelewatan ya.
Everytime is learning…. Coding is pulen bro!!!
@KresnaGaluh
Halaman 83 dari 85
Cara Berlangganan Nyankod Magz via Email
Bagi Anda yang ingin berlangganan buletin Nyankod Magz via email, caranya gampang, udah gitu gratis lagi bro….
Gini nih caranya:
1. Buka homepage kami di http://nyankod.blogspot.com.
2. Pada sidebar sebelah kanan ada kolom Berlangganan Nyankod Magz. Silahkan isi form email dengan alamat email Anda, kemudian klik tombol
Submit.
Halaman 84 dari 85
3. Selanjutnya akan keluar pop-up Email Subsription Request. Isi form yang
ada di bawah dengan kode yang tampil di layar. Setelah itu klik tombol Complete Subscripion Request.
4. Beres deh, nanti setiap ada edisi terbaru dari Nyankod Magz akan langsung
terkirim pula ke email Anda. Biasanya sih satu hari setelah penerbitan.