Nyankod Magz Edisi 4 “Apem doWhile”

Love it and earn it

Nyankodist Team

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:

nyankod@gmail.com .

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

Di dalam sini, ada..

PHP - CONTROL STRUCTURE Halaman 10 Hello #{RubyWorld} – Bagian Hash dan Operator Halaman 27 ActionScript {Button Event} Halaman 40 JavaScript – Pemilihan Halaman 54 Percabangan di Bahasa C Halaman 64 Bash Programming - Logic Halaman 68 Perl - [Auto Convert, Input] Halaman 73

[PHP]

Ahmad Oriza Sahputra @oriza_sahputra ahmadoriza@gmail.com http://orizasahputra.blogspot.com

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 Dalam Artikel edisi keempat yang berjudul agak berbahasa jawa ini penulis akan mencoba membahas struktur kontrol. Struktur kontrol diantaranya digunakan

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 Struktur kontrol yang satu ini berfungsi menangani kasus yang berhubungan dengan kondisi dan aksi (bentuk bersyarat). Blok pernyataan akan dieksekusi jika

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

2 // nama program : if.php

4 $nilai = 4;

5 if ($nilai <= 6) {

6 $keterangan = "Tidak Lulus";

7 } echo "Nilai anda $nilai, anda dinyatakan $keterangan"; ?>

Output:

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

2 // if_else.php

4 $nilai = 8;

5 if ($nilai <= 6) {

6 $keterangan = "Tidak Lulus";

7 } else {

8 $keterangan = "Lulus";

10 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 <html>

2 <head>

3 <title>IF Bersarang</title>

4 </head>

6 <body>

7 Pengecekan Nilai :

9 <form name="form_cek" method="get"

10 action="<?$_SERVER['PHP_SELF'];?>" >

11 <input type="text" name="nilai"/>

12 <input type="submit" value="Cek" />

16 $nilai = $_GET['nilai'];//mengambil nilai dari form_cek

17 //if bersarang

18 if ($nilai == 10) {

19 $keterangan = "Lulus dengan nilai sempurna";

20 } elseif (($nilai >= 6) && ( $nilai <= 10)) {

21 $keterangan = "Lulus";

22 } else {

23 $keterangan = "Tidak Lulus";

25 echo "Nilai anda $nilai, anda dinyatakan $keterangan";

27 </html>

Jika kita masukan nilai 10 dalam form, maka outputnya :

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 <html>

2 <head>

3 <title>Switch</title>

4 </head>

5 <body>

6 Nyankod English Dictionary, masukan kata :

8 <form name="form_cek" method="get"

9 action="<?$_SERVER['PHP_SELF'];?>" >

11 <input type="text" name="kata"/>

12 <input type="submit" value="Cek" />

18 $kata = $_GET['kata'];//mengambil nilai dari form_cek

19 //memulai switch

20 switch ($kata)

22 case "eat":

23 $keterangan = "makan";

24 break;

25 case "drink":

26 $keterangan = "minum";

27 break;

29 case "run":

30 $keterangan = "berlari";

31 break;

33 case "sleep":

34 $keterangan = "tidur";

38 $keterangan = "Gak tau, cari aja sendiri..";

42 echo "$kata artinya $keterangan";

45 </html>

Output :

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

2 $i = 1;

3 while ($i <= 4){

4 echo "Aksi ke-$i <br>";

5 $i++;

Output:

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

4 echo "Aksi ke-$i <br>";

5 $i++;

7 while ($i <= 4);

Output:

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 :

2 for ($i=1;$i<=4;$i++){

3 echo "Aksi ke-$i <br>";

Output program sama dengan output while.php yang dibahas sebelumnya.

Statement foreach

Statement yang satu ini khusus untuk menangani perulangan untuk variabel array. Masih ingatkah variabel array??. Pastinya ya. Cobalah :

Program: foreach.php:

2 $prog_lang [0] = "PHP";

3 $prog_lang [1] = "Java";

4 $prog_lang [2] = "Perl";

5 $prog_lang [3] = "Ruby";

6 $prog_lang [4] = "Action Script";

7 $prog_lang [5] = "C";

8 $prog_lang [6] = "Javascript";

10 foreach ($prog_lang as $value){

11 echo "Bahasa Pemrograman : $value <br>";

Output:

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:

2 $i=1;

3 while ($i <= 10){

4 echo "Aksi ke-$i <br>";

6 if ($i == 3 ){

7 echo "Nilai i sudah mencapai 3, program distop";

8 break;

9 } else {

10 $i++;

11 continue;

Output:

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:

3 //loop satu

4 for ($i=1;$i<10;$i++){

5 echo "Semangat Belajar!";

7 return;

9 //loop dua

10 for ($i=1;$i<10;$i++){

11 echo "Malas Belajar!";

Program: exit.php:

3 //loop satu

4 for ($i=1;$i<10;$i++){

5 echo "Semangat Belajar!";

7 exit("Program Dihentikan");

9 //loop dua

10 for ($i=1;$i<10;$i++){

11 echo "Malas Belajar!";

Output:

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

[Ruby]

Muhammad Singgih Zulfikar Anshori @hirokakaoshi m.singgih.za@gmail.com http://mszacompany.wordpress.com

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

Oke, sudah

siap

dengan

array di Ruby adalah Objek.

materi di Level 4 ini???

4. Kamu sudah mengetahui beberapa fungsi yang sering digunakan dalam array dan

Let's Check This Out, Love It

sangat fungsional nantinya.

And Earn It APA ITU HASH???

Array di Ruby diibaratkan Parsel yang bisa diisi macam-macam dan tersusun rapi dengan angka sebagai pengenalnya. Bagi yang belum / ketinggalan materi Array di Ruby diibaratkan Parsel yang bisa diisi macam-macam dan tersusun rapi dengan angka sebagai pengenalnya. Bagi yang belum / ketinggalan materi

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. ( ὸ.ό)

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'

=> "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.

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'}

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.

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: 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:

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.

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"}

=> [["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)

=>{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.

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.

[ActionScript]

Tarom Apriyanto @tarompey tarompey@gmail.com

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 var angka:Number = 0;

2 angka++;

3 trace(angka); // hasilnya 1

4 angka++;

5 trace(angka); // hasilnya 2

Coba ganti dengan ini:

1 var i:Number;

2 for (i = 1; i < 10; i++) {

3 trace(i);

Sekarang ganti dengan ini:

1 var matika:Number;

2 matika = 2 + 4 * 3;

3 trace(matika); // hasilnya 14

Kemudian ganti dengan ini:

1 var mySum:Number;

2 mySum = (2 + 4) * 3;

3 trace(mySum); // hasilnya 18

Coba ganti dengan yang ini:

1 var matika:Number;

2 var matika_lagi:Number;

3 matika = 2 * 4 * 3;

4 matika_lagi = (2 * 4) * 3;

5 trace(matika); // hasilnya 24

6 trace(matika_lagi); // hasilnya 24

Dan terakhir, coba ganti dengan yang ini:

1 trace(3 > 2 < 1); // hasilnya false

2 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…………………….…………….

(------------------------!!!)..,Oke waktu habis brarti ga ada pertanyaan lagi….dan bisa saya mulai yaaa….

Bahan coba yang pertama:

1 var angka:Number = 0;

2 angka++;

3 trace(angka); // hasilnya 1

4 angka++;

5 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 var i:Number;

2 for (i = 1; i < 10; i++) {

3 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

(i < 10;…….// artinya sampai 9 aja) maka i akan terus di tampilkan atau dijalankan sampai

10 yaitu 9, begitu ceritanyaaa…!!...Lanjuuut...(ada pertanyaan??, malu bertanya sesat di nilai…teringat dosen kesayangan dulu).

dia

telah

mencapai nilai

kurang

dari

Bahan coba yang ke tiga :

1 var matika:Number;

2 matika = 2 + 4 * 3;

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 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

Bahan coba 6 :

1 trace(3 > 2 < 1); // hasilnya false

2 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 Right to left

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

―*=, /=, %=, +=, -=, &=, |=, ^=, <<=, >>=, >>>=‖

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 biasany a???, 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 on (press) berada

pada

area area

tombol

masih

dalam

keadaan

ditekan.

on (release)

Ketika pointer mouse on (release) berada

pada

area

tombol dan tombol sudah dilepas.

on (releaseOutside)

Ketika setelah tombol on (releaseOutside) ditekan namun pointer mouse dilepaskan di luar area tombol.

on (tollOver)

Ketika pointer mouse on (tollOver) melewati area tombol.

on (dragOver)

Ketika pointer mouse on (dragOver) bergerak

menjauhi

area tombol.

on (dragOut)

Ketika pointer mouse on (dragOut) berada di atas area tombol dan mouse sudah

ditekan

kemudian

pointer

digerakan

keluar

menjauhi area tombol.

Contone :

1. Buatlah sebuah file baru dengan tipe ActionScript 2.0.

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‖.

4. Klik kanan tombol yang sudah ada di stage, kemudian pilih Actions.

5. Tulis script berikut ini pada Actions Panel.

1 on (release) {

2 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).

Di klik untuk menambah layer baru

3. Pada layer action, klik kanan pada frame pertama kemudian pilih Actions.

4. Isikan script seperti di bawah ini :

1 btMasuk.onRelease = function () {

2 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.

[JavaScript]

Toni Haryanto @yllumi toha.samba@gmail.com http://toniharyanto.cs.upi.edu

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

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‖

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 tul iskan ―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 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 case ekspresi nilai 1 : pernyataan 1

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

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

If (nomorHari = 1) {

tuliskan ―minggu‖ document.write(―minggu‖);

else

} else

If nomorHari = 2 then

if (nomorHari = 2) {

tuliskan ―senin‖

document.write( ―senin‖ );

else

} else

If nomorHari = 3 then

if (nomorHari = 3) {

tuliskan ―selasa‖

document.write( ―selasa‖ );

else

} else

If nomorHari = 4 then

if (nomorHari = 4) {

tuliskan ―rabu‖

document.write( ―rabu‖ );

else

} else

If nomorHari = 5 then

if (nomorHari = 5) { if (nomorHari = 5) {

document.write( ―kamis‖ );

else

} else

If nomorHari = 6 then

if (nomorHari = 6) {

tuliskan ―jumat‖

document.write( ―jumat‖

else

tuliskan ―sabtu‖

} else

endif

document.write(

endif

―sabtu‖);

endif endif endif endif endif

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; switch (ekspresi) { case nilai1 : pernyataan1; break; case nilai2 : pernyataan2; break; case nilai3 : pernyataan3;

Algoritma

JavaScript

case nomorHari

switch (nomorHari) {

1 : tuliskan “minggu”

case 1 :

2 : tuliskan “senin”

document.write(“minggu”);

3: tuliskan “selasa”

break;

4 : tuliskan “rabu”

case 2 :

5 : tuliskan “kamis”

document.write( “senin” );

6 : tuliskan “jumat”

break;

7 : tuliskan “sabtu”

case 3 :

otherwise : tuliskan “bukan nomor hari”

document.write( “selasa” );

endcase

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” );

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

[C]

Ade Kurniawan @adekurniawan noadekur@yahoo.com

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.

Program 4.1

1 # include <stdio.h>

2 # include <conio.h>

4 void main() {

5 int nA;

6 char grade;

7 clrscr();

8 printf(“nilai akhir ?”); scanf(“%d”, &nA);

9 if(nA > 84) grade='A';

10 if(nA > 74 && nA <85) grade = 'B';

11 if(nA > 64 && nA <75) grade = 'C';

12 if(nA > 49 && nA <65) grade = 'D';

13 if(nA < 50 ) grade = 'E';

14 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;