Nyankod Magz edisi 4, 21 Maret 2012
Nyankod Magz Edisi 4 “Apem doWhile” Love it and Earn It Halaman 2 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 3 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 4 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 5 dari 85
Halaman 6 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:
[email protected]. 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 7 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 Halaman Halaman Halaman Halaman Halaman Halaman
10 27 40 54 64 68 73
Halaman 8 dari 85
[PHP]
Ahmad Oriza Sahputra @oriza_sahputra
[email protected] http://orizasahputra.blogspot.com
Halaman 9 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 10 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 11 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 12 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 13 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
IF Bersarang
Halaman 14 dari 85
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Pengecekan Nilai :
$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"; ?> Jika kita masukan nilai 10 dalam form, maka outputnya :
Halaman 15 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
Switch Nyankod English Dictionary, masukan kata :
$kata = $_GET['kata'];//mengambil nilai dari form_cek //memulai switch switch ($kata) { case "eat": $keterangan = "makan"; break;
Halaman 16 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"; ?> Output :
Halaman 17 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
"; $i++; } ?> Output:
Halaman 18 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
"; $i++; } while ($i <= 4); ?> Output:
Halaman 19 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
"; } ?> Output program sama dengan output while.php yang dibahas sebelumnya.
Halaman 20 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 $prog_lang $prog_lang $prog_lang $prog_lang $prog_lang $prog_lang
[0] [1] [2] [3] [4] [5] [6]
= = = = = = =
"PHP"; "Java"; "Perl"; "Ruby"; "Action Script"; "C"; "Javascript";
foreach ($prog_lang as $value){ echo "Bahasa Pemrograman : $value
"; } ?> Output:
Halaman 21 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
"; if ($i == 3 ){ echo "Nilai i sudah mencapai 3, program distop"; break; } else { $i++; continue; } } ?> Output:
Halaman 22 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 23 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 24 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, mudahmudahan bermanfaat ^_^ . Mohon maaf jika pembahasannya kurang lengkap atau terdapat kesalahan dalam penyampaiannya. Keep Learning and Be The Best
Halaman 25 dari 85
[Ruby]
Muhammad Singgih Zulfikar Anshori @hirokakaoshi
[email protected] http://mszacompany.wordpress.com
Halaman 26 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 kesimpulan dan abstraksi sebagai berikut:
Oke, sudah siap materi di Level 4 ini???
dengan
Let's Check This Out, Love It And Earn It APA ITU HASH???
sudah kita pelajari
di
edisi
kemarin,
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
Halaman 27 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 kebetulan dan pembasmi kesalahan??? Who Knows..
seorang
pahlawan
pembela
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 28 dari 85
Hashes ini merupakan saudara serumpun bertitisan bungkusan. Cobalah contoh berikut di IRB :
dengan array,
sama
sama
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 29 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 30 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' kangkung, jerami', 'malam' => 'semangka kuning, durian,stroberi'}
=>
'rumput,
Halaman 31 dari 85
Bagaimana, sudah kebayang sekarang... pelototin aj terus tuh si sapi sampe laper.. hihii Baiklah, cukup un tuk penjelasan dasar mengenai Hashes, rehat sejenak dan cobalah kerjakan soal dibawah ini :
sekarangsaatnya
1. Apa itu Hashes? 2. Bagaimana format penulisan Hashes? 3. Buatlah Hashes dengan key a sampai e kemudian value nya nama temantemanmu 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 32 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 isi dengan konten tertentu, nah kosong. Begini caranya,
contoh-contoh sebelumnya langsung kita bagaimana caranya untuk membuat Hashes
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 33 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 34 dari 85
3. .select{ |k,v| kondisi} Select merupakan fungsi untuk Hashes dimana mengembalikan nilai dengan mengunakan [key, value] sebagai seleksi.
dia dapat syarat untuk
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 samasama 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 35 dari 85
=> [["k", "kumar"], ["w", "wooden"], irb(main):021:0> harold.select{|k,v| => [] irb(main):022:0> harold.select{|k,v| => [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]] irb(main):023:0> harold.select{|k,v| => [["k", "kumar"], ["w", "wooden"],
["z", "zorro"]] k> "z"} v> "100"} ["a", "ambar"], v!= "ambar"} ["z", "zorro"]]
to_a merupakan perintah untuk menampilkan nilai balikan menjadi bentuk array. Sedangkan to_s merupakan perintah menampilkan nilai balikan Hashes menjadi string.
Hashes untuk
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 36 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 37 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 perintah. Namun ini sesuai dengan kegunaannya juga lhoo...
dari
masing-masing
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 38 dari 85
[ActionScript]
Tarom Apriyanto @tarompey
[email protected]
Halaman 39 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 40 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 41 dari 85
(------------------------!!!)..,Oke lagi….dan bisa saya mulai yaaa….
waktu
habis
brarti
ga
ada
pertanyaan
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 42 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 43 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 + ~ ! not ++ — () [] . ++ — new
Description Unary plus Unary minus Bitwise one‘s complement Logical NOT Logical NOT (Flash 4 style) Post-increment Post-decrement Function call Array element Structure member Pre-increment Pre-decrement Allocate object
Associativity Right to left Right to left Right to left Right to left Right to left Left to right Left to right Left to right Left to right Left to right Right to left Right to left Right to left
Halaman 44 dari 85
delete typeof void * / % + add << >> >>> < <= > >= lt le gt ge == != eq ne & ^ | && and || or ?: =
Deallocate object Type of object Returns undefined value Multiply Divide Modulo Add String concatenation (formerly &) Subtract Bitwise Left Shift Bitwise Right Shift Bitwise Right Shift (Unsigned) Less than Less than or equal to Greater than Greater than or equal to Less than (string version) Less than or equal to (string version) Greater than (string version) Greater than or equal to (string version) Equal Not equal Equal (string version) Not equal (string version) Bitwise AND Bitwise XOR Bitwise OR Logical AND Logical AND (Flash 4) Logical OR Logical OR (Flash 4) Conditional Assignment
Right to left Right to left Right to left Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Right to left Right to left
Halaman 45 dari 85
―*=, /=, %=, +=, -=, &=, |=, ^=, <<=, >>=, >>>=‖ Compound assignment , Multiple evaluation
Right to left 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 on (press)
Keterangan Event Ketika pointer mouse on (press) berada pada area Halaman 46 dari 85
on (release)
on (releaseOutside)
on (tollOver) on (dragOver) on (dragOut)
tombol dan tombol masih dalam keadaan ditekan. Ketika pointer mouse berada pada area tombol dan tombol sudah dilepas. Ketika setelah tombol ditekan namun pointer mouse dilepaskan di luar area tombol. Ketika pointer mouse melewati area tombol. Ketika pointer mouse bergerak menjauhi area tombol. Ketika pointer mouse berada di atas area tombol dan mouse sudah ditekan kemudian pointer digerakan keluar menjauhi area tombol.
on (release)
on (releaseOutside)
on (tollOver) on (dragOver) on (dragOut)
Contone : 1. Buatlah sebuah file baru dengan tipe ActionScript 2.0.
Halaman 47 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 stage.
sobat pilih dan klik tombol kemudian drag ke
3. Berikan instance name dengan cara klik tombol kemudian buka Properties Panel dan beri instance name ―btMasuk‖.
Halaman 48 dari 85
4. Klik kanan tombol yang sudah ada di stage, kemudian pilih Actions.
Halaman 49 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 50 dari 85
Di klik untuk menambah layer baru
3. Pada layer action, klik kanan pada frame pertama kemudian pilih Actions.
Halaman 51 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 52 dari 85
[JavaScript]
Toni Haryanto @yllumi
[email protected] http://toniharyanto.cs.upi.edu
Halaman 53 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 kasuskasus 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 54 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 55 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 56 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 57 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 2 : tuliskan 3 : tuliskan 4 : tuliskan 5 : tuliskan 6 : tuliskan 7 : tuliskan otherwise : endcase
―minggu‖ ―senin‖ ―selasa‖ ―rabu‖ ―kamis‖ ―jumat‖ ―sabtu‖ tuliskan ―bukan nomor hari‖
Halaman 58 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 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
JavaScript 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 59 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‖ ); ―sabtu‖);
} else document.write(
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 60 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 61 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 62 dari 85
[C]
Ade Kurniawan @adekurniawan
[email protected]
Halaman 63 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 64 dari 85
Program 4.1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# include <stdio.h> # include
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 65 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 66 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 67 dari 85
[Bash]
Taufik Sulaeman @taufiksu [email protected] http://npaperbox.com/user/profile/1
Halaman 68 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 69 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 outputdiluarkondisi fi
outputkondisi1
elif
[kondisi2];then
outputkondisi2
else
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 if [ "$T1" = 1 ]; then echo Anda memilih Menu 1 elif [ "$T1" = 2 ]; then echo Anda memilih Menu 2 else
T1
Halaman 70 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 71 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 72 dari 85
[Perl]
Kresna Galuh D. Herlangga @kresnagaluh [email protected] http://kresnagaluh.com
Halaman 73 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 74 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 75 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 eq ne lt gt le ge
Numerik == != < > <= >=
Keterangan Equal, sama dengan not equal, tidak sama dengan Less than, kurang dari Greater than, lebih dari Less than or equal to, kurang dari atau sama dengan 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 76 dari 85
5 6 7 8 9
print print print print print
"aku "aku "aku "aku "aku
ne lt gt le ge
kamu? kamu? kamu? kamu? kamu?
", ", ", ", ",
"aku" "aku" "aku" "aku" "aku"
ne lt gt le ge
"kamu", "kamu", "kamu", "kamu", "kamu",
"\n"; "\n"; "\n"; "\n"; "\n";
Jalankanlah program tersebut!
$ perl operator_perbandingan_string.pl aku aku aku aku aku aku
eq eq eq eq eq eq
kamu? kamu? 1 kamu? 1 kamu? kamu? 1 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 77 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 print print print print
"12" * "3", "\n"; "2" + "5", "\n"; "15nyankod" * "3", "\n"; " 4" % "3", "\n"; "nyankod" + "5", "\n";
Halaman 78 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 45 . 1 6.6 . 2 8 . "x" "z" . 9 "L" . 4 * 2
outputnya outputnya outputnya outputnya outputnya outputnya
35 451 6.62 8x z9 L8
Untuk pembuktian, silahkan cek program berikut:
Program: konvert_numerik_string.pl 1 2
#!/usr/bin/perl # nama program : konvert_numerik_string.pl
Halaman 79 dari 85
3 4 5 6 7 8 9
print print print print print print
3 . 5, "\n"; 45 . 1, "\n"; 6.6 . 2, "\n"; 8 . "x", "\n"; "z" . 9, "\n"; "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 80 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 81 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 82 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 83 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.
Halaman 84 dari 85
Bagi Anda yang merasa Nyankod Magz bermanfaat, dan Anda ingin memberikan apresiasi, maka silahkan kirimkan Testimoni Anda kepada kami, atau silahkan tulis langsung di halaman Testimoni di web kami.
Edisi ke-5 akan terbit: Rabu, 11 April 2012
Halaman 85 dari 85