• Tidak ada hasil yang ditemukan

Nyankod Magz Edisi 4 “Apem doWhile”

N/A
N/A
Protected

Academic year: 2018

Membagikan "Nyankod Magz Edisi 4 “Apem doWhile”"

Copied!
85
0
0

Teks penuh

(1)
(2)

Halaman 2 dari 85

Nyankod Magz Edisi 4

Apem doWhile

(3)

Halaman 3 dari 85

Nyankod Magz ini dapat Anda sebarkan secara bebas untuk tujuan bukan komersial (nonprofit) dengan syarat
(4)

Halaman 4 dari 85

Sapa Nyankod

Hi Nyankoders semua, yang ada di seluruh penjuru Nusantara. Love it and earn it, kembali kami hadirkan hidangan istimewa buat Anda semuanya, NyankodMagz edisi ke-4. Tepuk tangan.... hehehe. Seperti biasa, jangan lupa siapin kopi hangat, gorengan dan beberapa list musik dangdut, biar belajarnya makin seru.

Gimana jou, masih semangat kan buat belajar pemrograman?? Harus dong. Karena, belajar pemrograman itu merupakan sebuah kewajiban yang diperintahkan oleh Tuhan yang Maha Esa. Melakukannya akan mendapatkan pahala, dan meninggalkannya akan mendapat dosa. Hahah, ya mirip dengan sholat 5 waktu lah. Cuma beda dikit doang. #ngacoBodoAmat

(5)

Halaman 5 dari 85

Tapi apapun halangan yang membentang, jika kita berusaha sekuat tenaga, pasti bisa kita lalui. Ingatlah teman, menjadi seorang programer itu merupakan hal yang sangat mulia, ganjaran yang kita akan terima berupa Syurga yang di bawahnya mengalir sungai-sungai yang menyegarkan yang tidak akan pernah kering, juga bidadari-bidadari yang jelita yang kecantikannya melebihi Monster Cewek Galak tadi. Maka berbahagialah bagi Anda yang dalam proses belajar menuju Master Programer. #ngacoBodoAmat

Oh iya boy, mulai edisi ke-4 ini, kami mencoba untuk menerapkan beberapa hal baru untuk NyankodMagz, seperti judul edisi. Jika sebelumnya judul edisi NyankodMagz itu terkesan biasa, biasa banget, mulai edisi ke-4 ini, kami mencoba dengan judul-judul yang akan membuat Nyankoders sekalian menjadi sangat-sangat lapar, bahkan saking laparnya, akan sulit membedakan mana kue dan mana buletin, atau bahkan parahnya nggak bisa membedakan mana tangan dan mana roti. Dan karena kelaparan tersebut, apa pun itu akan Nyankoders makan dan lahap tanpa rasa bersalah dan tanpa tahu malu. Hahahaha.

Edisi ke-4 kali ini, kami beri judul "Apem doWhile". Benerkan bikin laper? Jadi nggak salah kalau di awal tadi saya sebut hidangan. Apem doWhile di ambil dari Apem dan do while. Apem adalah sejenis kue yang sangat enak, yang keenakannya melebihi susu soda. Hahaha... Apem biasanya dibuat ketika menjelang lebaran (ada yang bilang kue apem itu merupakan simbol maaf-memaafkan), dan kadang juga dibuat saat pesta pernikahan (terutama di desa-desa). Sedangkan do while, merupakan sebuah struktur kontrol perulangan dalam pemrograman. Untuk do while, nanti akan di temui di beberapa artikel di edisi kok.

Oke, akhirnya, selamat menikmati hidangan kami kali ini Apem doWhile. Semoga Anda suka dan kenyang. Jangan lupa kasih komentar ya.

Love it and earn it

(6)
(7)

Halaman 7 dari 85

Bila ada pertanyaan seputar Nyankod, atau mau bertanya

tentang pemrograman kepada Nyankodist Team, atau

hanya sekedar silaturahmi juga boleh, asalkan jangan

spam, silahkan kontak kami ke email kami:

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!

(8)

Halaman 8 dari 85

Di dalam sini, ada..

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

(9)

Halaman 9 dari 85

[PHP]

Ahmad Oriza Sahputra @oriza_sahputra

ahmadoriza@gmail.com

(10)

Halaman 10 dari 85

CONTROL STRUCTURE

Assalamualaikum wr.wb.. , Salam Sejahtera untuk kita semua (pidato mode on). Apa kabarnya nih nyakoders??. Mudah-mudahan baik. Tak terasa artikelnya sudah sampai edisi keempat sekarang, mudah-mudahan penulis terus konsisten untuk menulis majalah nyankod tentang PHP walaupun sebenarnya dalam penulisan artikel edisi ini dibarengi dengan keadaan hati penulis sedang galau (ciee ciee swit swiw). Galaunya bukan soal cinta nih.. tapi setelah mendengar pidato pak Sby dalam pertemuan partai demokrat tentang kenaikan harga bbm.. waduh duh, ternyata benar naik lagi. Imbas negatifnya adalah daya beli masyarakat yang akan menurun karena sudah pasti harga kebutuhan umum akan ikut naik dibarengi dengan tarif dasar listrik yang bertambah. Bukan tak mungkin kedepannya akan mudah kita menjumpai para programmer yang menyedihkan, contohnya : Programmer yang diputuskan pacarnya karena tidak lagi mampu membeli bensin untuk jalan malam mingguan, dia juga gak mampu bayar ongkos angcot. Programmer yang menjadi kurus, karena dia tidak mampu lagi membeli makan di warteg, jadi kalau lapar dia cuma membeli sepotong permen. Programmer yang jarang terkoneksi dengan internet karena dia tidak mampu lagi membeli paket (solusinya beli yg murah trus jebol kuotanya, hahaha, penulis gak termasuk lho). Programmer yang tidak bisa lagi coding karena kantor atau rumahnya sudah tidak mampu bayar listrik, alhasil ketika komputernya lowbatt dia kebingungan mencari sumber energi, mungkin salah satu solusi mereka adalah mencolokan kabel komputer ke hidungnya sendiri (hahaha) dijamin ngecharge, sebenarnya bisa saja sih rampas laptop temennya atau numpang coding di wartel hehe. Oops.. jadi meleber dan mengada-ngada aja nih :D. Udah ah…

(11)

Halaman 11 dari 85

untuk menangani kasus suatu kondisi dan aksi (bentuk bersyarat), menghentikan proses program, menghemat script yang kita buat dengan cara perulangan dsb. Penggunaan metode ini sangat bermanfaat untuk mengatur jalannya program/aplikasi yang kita buat. PHP telah menyediakan bermacam statement untuk kita gunakan dalam membangun struktur kontrol, seperti :

Mari kita pahami struktur kontrol dengan latihan seperti biasanya.. source code edisi ini bisa anda download di http://www.mediafire.com/?k7vjn2kr8mzac74.

Statement if, if .. else, if .. elseif .. else

(12)

Halaman 12 dari 85

sudah memenuhi suatu kondisi tertentu. Contoh sederhana : jika nilai dibawah 5.. maka nyatakan tidak lulus. Jika kita implementasikan dalam syntax PHP menjadi :

if ($nilai < 5) {

echo ―Tidak Lulus‖;

}

Statement kontrol ini selalu dimulai dengan kata if (jika), ekspresi yang berada dalam tanda kurung adalah ekspresi kondisi, yang menjadi pemicu adanya suatu aksi. Suatu kondisi, umumnya terdiri atas variabel dan nilainya. Kemudian ekspresi diantara kurung kurawal dan penutupnya adalah suatu aksi. Suatu aksi biasanya merupakan ekspresi assignment atau pemanggilan fungsi atau bahkan bisa saja berisi suatu percabangan lagi. Seperti biasa, siapkan editor :D dan coba program berikut untuk lebih memahami struktur percabangan :

Program: if.php

1 2 3 4 5 6 7

<?

// nama program : if.php

$nilai = 4;

if ($nilai <= 6) {

$keterangan = "Tidak Lulus"; }

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

(13)

Halaman 13 dari 85

Inisialisasi nilai adalah empat, sedangkan kondisi aksi yang kita buat adalah ketika nilai kurang dari sama dengan enam, isi keterangan dengan ―Tidak Lulus‖, setelah itu tampilkan hasil di layar dengan perintah echo.

Lalu bagaimana jika ada dua kondisi?.. yaitu lulus dan tidak lulus. Maka kita lengkapi saja script diatas dengan statement if .. else, statement tersebut pada prinsipnya sama saja dengan statement if. Hanya saja statement if .. else dapat menangani aksi lebih dari satu, jika satu kondisi tidak terpenuhi maka kerjakan aksi dua.

Program: if.php

1 2 3 4 5 6 7 8 9

<?

// if_else.php

$nilai = 8;

if ($nilai <= 6) {

$keterangan = "Tidak Lulus"; } else {

(14)

Halaman 14 dari 85

10

11

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

Output:

Karena nilainya lebih dari 6, aksi pertama tidak akan dieksekusi karena kondisi pertama tidak terpenuhi.

Okeh.. sudah mengerti kan??. Memang cukup mudah ya Nyankoders.. . Selanjutnya kita coba statement if .. elseif .. else dengan sedikit sentuhan komponen form gui dari html sehingga program yang kita buat akan lebih interaktif, statement yang satu ini bisa menangani banyak kondisi yang bercabang-cabang. Statement yang satu ini bisa kita sebut sebagai if bersarang.

Program: if_elseif_else.php

1 2 3 4 5

<html> <head>

(15)

Halaman 15 dari 85

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <body>

Pengecekan Nilai :

<form name="form_cek" method="get" action="<?$_SERVER['PHP_SELF'];?>" > <input type="text" name="nilai"/> <input type="submit" value="Cek" /> </form>

</body> <?

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

if ($nilai == 10) {

$keterangan = "Lulus dengan nilai sempurna"; } elseif (($nilai >= 6) && ( $nilai <= 10)) { $keterangan = "Lulus";

} else {

$keterangan = "Tidak Lulus"; }

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

</html>

(16)

Halaman 16 dari 85

Statement switch

Sebenarnya statement kontrol yang satu ini berfungsi sama dengan statement if .. elseif .. else. Statement ini dapat menangani aksi dalam banyak kondisi dengan cara yang berbeda. Tetapi umumnya kondisi yang dihandle bukan suatu kondisi perbandingan (>,<=,dll) melainkan suatu nilai.

Program: switch.php

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <html> <head> <title>Switch</title> </head> <body>

Nyankod English Dictionary, masukan kata :

<form name="form_cek" method="get" action="<?$_SERVER['PHP_SELF'];?>" >

<input type="text" name="kata"/> <input type="submit" value="Cek" />

</form> </body>

<?

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

switch ($kata) {

case "eat":

(17)

Halaman 17 dari 85

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 case "drink":

$keterangan = "minum"; break;

case "run":

$keterangan = "berlari"; break;

case "sleep":

$keterangan = "tidur"; break;

default:

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

}

echo "$kata artinya $keterangan"; ?>

</html>

(18)

Halaman 18 dari 85

Program akan mengeksekusi aksi dalam pilihan default karena semua kondisi tidak terpenuhi, aksi dalam default adalah opsi terakhir.

Statement while, do .. while, for

Nah.. setelah kita mempelajari struktur kontrol kondisi aksi (bentuk bersyarat) ataupun percabangan selanjutnya kita akan mempelajari struktur kontrol perulangan. Struktur ini seperti yang sudah penulis katakan sebelumnya sangat berguna untuk menghemat kode yang kita buat. Statement perulangan dalam PHP ada 3 jenis, masing-masing struktur mempunyai tatacara penulisan dan fungsi yang sedikit berbeda.

Bagaimana mengontrol suatu perulangan??, caranya adalah memberikan ekspresi kondisi dalam syntaxnya. Statement perulangan akan melalukan aksi ketika kondisi bernilai benar, dan jika kondisi salah, stop aksi dan program akan melakukan perintah selanjutnya. Oia.. nyankoders, coba baca lagi artikel tentang operator increment dan decrement, siapa tempe lupa?. hehe. Sebab kita akan menggunakannya dalam struktur perulangan. Okeh.. cobalah source code berikut :

Program: while.php

1 2 3 4 5 6 7

<? $i = 1;

while ($i <= 4){

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

} ?>

(19)

Halaman 19 dari 85

Baris pertama kita buat suatu variabel yg menjadi ukuran kondisi dan mengisinya dengan nilai satu yaitu $i, baris kedua memulai struktur perulangan while dan menyatakan kondisi yang diinginkan, baris ketiga kita nyatakan aksi apa yang ingin dilakukan, terakhir menaikkan nilai $i satu angka dengan operator increment. Program tersebut akan terus melakukan looping selama kondisi bernilai benar.

Cobalah ganti nilai inisialisasi $i dengan nilai diatas 4, sudah dapat dipastikan program tidak akan menampilkan output apa-apa karena saat pertama load.. kondisi sudah bernilai salah.

Selanjutnya mari kita coba statement do .. while

Program: do_while.php

1 2 3 4 5 6 7 8

<? $i = 5; do {

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

}

while ($i <= 4); ?>

(20)

Halaman 20 dari 85

Mungkin nyankoders bertanya mengapa aksi masih dilakukan padahal kondisi saat pertama load sudah salah. Kondisi yang dibuat, ―ketika $i kurang dari sama dengan 4 laksanakan aksi‖, sedangkan variabel pengontrol ($i) bernilai 5. Jawabannya sederhana, cara kompiler/interpreter dalam memproses kode adalah baris per baris dari atas sampai bawah. Posisi statement do berada diatas statement while, sehingga saat pertama kali load, statement while yang merupakan kondisi pengontrol tidak berpengaruh apa-apa, minimal jika kondisi sudah bernilai salah diawal, aksi tetap akan dilakukan sekali saja.

Terakhir yaitu statement for, seperti yang lainnya statement for digunakan untuk mengulang suatu blok pernyataan. Yang membedakannya dari yang lain statement lain, inisialisasi variabel pengontrol, kondisi, dan increment/decrement ditulis dalam satu wadah, yaitu dalam tanda kurung. Cek source code berikut :

Program: for.php :

1 2 3 4 5

<?

for ($i=1;$i<=4;$i++){ echo "Aksi ke-$i <br>"; }

?>

(21)

Halaman 21 dari 85

Statement foreach

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

Program: foreach.php:

1 2 3 4 5 6 7 8 9 10 11 12 13

<?

$prog_lang [0] = "PHP"; $prog_lang [1] = "Java"; $prog_lang [2] = "Perl"; $prog_lang [3] = "Ruby";

$prog_lang [4] = "Action Script"; $prog_lang [5] = "C";

$prog_lang [6] = "Javascript";

foreach ($prog_lang as $value){

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

?>

(22)

Halaman 22 dari 85

Variabel $value yang ada dalam source code bisa diganti dengan nama lain. Dalam statement foreach kita tidak perlu lagi membuat inisialisasi variabel pengontrol, kondisi, dan inc/dec karena dengan statement tersebut interpreter telah otomatis mengindex isi dalam varibel array yang kita buat.

Statement break dan continue

Statement break digunakan untuk keluar dari perulangan yang sedang berjalan, sedangkan continue adalah melanjutkan program. Cobalah :

Program: break_continue.php:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <? $i=1;

while ($i <= 10){

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

if ($i == 3 ){

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

(23)

Halaman 23 dari 85

Mengapa program berhenti di aksi ketiga, meskipun kita kondisikan loop lebih dari 5 kali?, jawabannya adalah karena adanya statement break. Statement break kita atur dengan bentuk bersyarat if ($i == 3 )... Program dihentikan ketika nilai $i sudah mencapai 3. Lalu apa fungsi continue dalam source code tersebut?, yaitu melanjutkan loop ketika nilai $i belum mencapai 3 (disisipkan dalam aksi ketika kondisi else).

Statement return dan exit

Sip.. sampailah kita ke pembahasan statement return dan exit. Kedua statement ini berfungsi untuk menghentikan proses program yang sedang berjalan. Interpreter PHP akan memproses source code yang ditulis sebelum adanya statement return dan exit saja. Cobalah :

Program: return.php:

1 2 3 4 5 6 7 8

<?

//loop satu

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

echo "Semangat Belajar!"; }

(24)

Halaman 24 dari 85

9 10 11 12 13 14 //loop dua for ($i=1;$i<10;$i++){ echo "Malas Belajar!"; } ?> Output:

Program: exit.php:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 <? //loop satu for ($i=1;$i<10;$i++){

echo "Semangat Belajar!"; }

exit("Program Dihentikan");

//loop dua

for ($i=1;$i<10;$i++){ echo "Malas Belajar!"; }

?>

(25)

Halaman 25 dari 85

Masing-masing program menampilkan loop pertama saja karena setelahnya terdapat statement return dan exit. Khusus untuk statement exit kita bisa menambahkan suatu parameter berupa suatu string. Oia.. Nyankoders.. sebenarnya statement return juga akan kita temukan dalam pembuatan suatu fungsi. Dalam fungsi, statement return berfungsi untuk mengembalikan suatu nilai. Pembahasan lebih detailnya akan disampaikan dalam materi fungsi.

Penulis rasa cukup sampai disini untuk pembahasan struktur kontrol, mudah-mudahan bermanfaat ^_^ . Mohon maaf jika pembahasannya kurang lengkap atau terdapat kesalahan dalam penyampaiannya.

(26)

Halaman 26 dari 85

[Ruby]

Muhammad Singgih Zulfikar Anshori @hirokakaoshi

m.singgih.za@gmail.com

(27)

Halaman 27 dari 85

Hello #{RubyWorld}

Bagian Hash dan Operator

Love It And Earn It. Itulah yang dijunjung tinggi dalam setiap edisi nyankods, dari sekian ribu edisi (padahal baru 3) semua penulis berusaha agar setiap edisinya seru dan asyik untuk diikuti, dan kamu paham dengan apa yang disampaikan pada setiap materinya secara berkesinambungan dan tersusun.

Baik, Untuk Ruby di edisi ke 4 ini kita akan membahas kelanjutan dari materi kemarin tentang array, yaitu HASH { } (...panjang ya bacanya gaya SponsBobSquaerPants).... apakah itu? Darimanakah dia berasal? Makhluk apakah dia? Untuk selanjutkan akan dibahas di level 4. Sekarang revies dulu apa yang sudah kita pelajari di edisi kemarin, kesimpulan dan abstraksi sebagai berikut:

Sekarang revies dulu apa yang sudah kita pelajari di edisi kemarin, kesimpulan dan abstraksi sebagai berikut:

1. Kamu sudah mengenal sifat-sifat array di Ruby.

2. Kamu sudah bisa memanggil isi dari array berdasarkan aturan indeks nya. 3. Kamu sudah bisa membuat objek array dan mengisinya dengan leluasa karena

array di Ruby adalah Objek.

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

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

Oke, sudah siap dengan

materi di Level 4 ini???

Let's Check This Out, Love It And Earn It

(28)

Halaman 28 dari 85

kemarin, cb download edisi ke 3 nyankods di http://nyankods.blogspot.com. Ato baru pertama kali liat majalah ini, ya download aja ketiga edisi kemarin supaya paham dan dapat mengikutinya.

Level Up

Sebelum memulai, persiapkan syarat-sayarat berikut ini:

1. Buka Folder RubyDojo.

2. Buka Editor teks kesayangan kamu.

3. Buka Ruby editor interaktif (irb) di terminal | cmd.

HASH, makhluk apakah itu? Apakah dia seorang pahlawan pembela kebetulan dan pembasmi kesalahan??? Who Knows..

HASH atau tepatnya Hashes (dikenal sebagai array assosiatif atau kamus) dengan tanda { } sebagai pengenalnya ini mirip dengan array yang isinya di indeks. Namun bedanya indeks di Hashes tidak terurut dengan angka seperti di array, Hashes menggunakan indeks pengenal yang dapat kita tentukan dan dapat ber type apapun. Indeks di Hashes dikenal dengan nama key/kunci dengan isi masing-masing sesuai dengan yang kita tentukan. Dalam mengisi Hashes ada 2 syarat, yaitu adanya key dan value/isi dari key tersebut.

(29)

Halaman 29 dari 85

Hashes ini merupakan saudara serumpun dengan array, sama sama bertitisan bungkusan. Cobalah contoh berikut di IRB :

irb(main):001:0> h = {'pagi' => 'roti,keju,susu','siang'

=> 'nasi,sayur,ikan', 'malam' => 'susu,nasi,sayur,ayam'}

=>{"malam"=>susu,nasi,sayur,ayam",

"siang"=>"nasi,sayur,ikan", "pagi"=>"roti,keju,susu"}

irb(main):002:0> h['pagi']

=> "roti,keju,susu"

irb(main):003:0> h['siang']

=> "nasi,sayur,ikan"

irb(main):004:0> h['sore']

=> nil

irb(main):005:0> h['malam']

=> "susu,nasi,sayur,ayam"

Bagaimana kesannya? Ada yang membingungkan dengan contoh di atas. Penjelasan :

1. h disini merupakan objek dengan tipe Hashes.

2. isinya terdiri dari key dan value, dengan ketentuan key => value untuk mengisinya.

3. Isi Hashes akan secara otomatis di urut berdasarkan struktur key.

4. Cara memanggilnya sama seperti array, yaitu dengan cara objek[key] yang dimaksud.

5. Apabila yang dipanggil tidak ada maka mengeluarkan nil .

Sekarang coba kita masukan key dan value baru ke objek h :

irb(main):009:0> h

=>{"malam"=>"susu,nasi,sayur,ayam",

(30)

Halaman 30 dari 85

=> "bakso,jus"

irb(main):011:0> h

=>{"sore"=>"bakso,jus", "malam"=>"susu,nasi,sayur,ayam",

"siang"=>"nasi,sayur,ikan", "pagi"=>"roti,keju,susu"}

Ketika objek Hashes diisi di awal, maka kontennya akn berurutan. Namun ketika objek sudah terbentuk kemudian ditambahkan key dan value baru maka akan dimasukan ke urutan pertama.

Baiklah, kita coba contoh berikutnya ya...

irb(main):008:0>b={'a'=>'aku',2=>'dua',1=>'satu',

'tiga'=>3}

=> {"a"=>"aku", 1=>"satu", 2=>"dua", "tiga"=>3}

irb(main):017:0> b

=> {"a"=>"aku", 1=>"satu", 2=>"dua", "tiga"=>3}

irb(main):018:0> b[1]='One'

=> "One"

irb(main):019:0> b

=> {"a"=>"aku", 1=>"First", 2=>"dua", "tiga"=>3}

Di atas adalah contoh penggunaan gabungan dari angka dan abjad. Seperti contoh sebelumnya kita membuat objek baru bertipekan Hashes, kemudian diisi dengan key dan value tertentu, dan hasilknya akn terurut secara sendirinya. Kemudian kita ubah isi dari salah satu key, disini yang diubah yaitu key 1, yang awalnya berisi 'satu' menjadi 'First'. Ketika mengubah isi dari key sudah ada, maka posisi urutannya tidak berubah karena disini hanya mengubah saja bukan membuat baru.

(31)

Halaman 31 dari 85

Apabila masih kesulitan dalam membayangkan dari penjelasan di atas, maka untuk lebih jelasnya apa itu Hashes, apa itu key, apa itu value, apa itu objek... lihat gambar dibawah ini:

Sapi merupakan objek yang ber-tipe-kan Hashes

(32)

Halaman 32 dari 85

Bagaimana, sudah kebayang sekarang... pelototin aj terus tuh si sapi sampe laper.. hihii

Baiklah, cukup un tuk penjelasan dasar mengenai Hashes, sekarangsaatnya rehat sejenak dan cobalah kerjakan soal dibawah ini :

1. Apa itu Hashes?

2. Bagaimana format penulisan Hashes?

3. Buatlah Hashes dengan key a sampai e kemudian value nya nama teman-temanmu yang berinisialkan huruf tersebut.

(33)

Halaman 33 dari 85

HERO state :: Extra Fokus

Hero State, Selalu merinding kalau masuk tahap ini. Ya mungkin karena terbayang akan sulitnya halangan dan rintangan untuk menguasai level ini. Hehehe...

Yosh, kalau sudah Siap.... Mari kita mulai Hero State di Hashes. Untuk kasus Hashes mungkin kmau baru mengenal sekarang , karena saya sendiri pun baru menemukan hal ini di Ruby, maka untuk itu di stage ini kita akan bermain dengan hal yang tidak jauh berbeda dengan array.

Baiklah, Hashes di Ruby dari contoh-contoh sebelumnya langsung kita isi dengan konten tertentu, nah bagaimana caranya untuk membuat Hashes kosong. Begini caranya,

1.

Hashes.new

Tentu Kita tiidak perlu kerepotan untuk membuat Hashes baru, cukup dengan objek diikuti dengan tanda Hashes. Lihat contoh berikut:

irb(main):001:0> baru={}

=> {}

irb(main):002:0> baru[1]

=> nil

irb(main):003:0> baru[2]

=> nil

(34)

Halaman 34 dari 85

irb(main):001:0> baru=Hash.new(“zonk”)

=> {}

irb(main):002:0> baru[1]

=> “zonk”

irb(main):003:0> baru[2].upcase

=> “ZONK”

Mudah bukan? Untuk mengisinya cukup tentukan key apa dan valuenya juga. Ok.

Nah untuk kasus selanjutnya, bagaimana cara kita menampilkan value atau key nya saja dari sebuah objek Hashes. Coba contoh berikut ini.

2.

values dan .keys

irb(main):010:0>harold={'a'=>'ambar','k'=>'kumar','w'=>'woo

den','z'=>'zorro'}

=>{"k"=>"kumar", "w"=>"wooden", "a"=>"ambar", "z"=>"zorro"}

irb(main):017:0> harold.length

=> 4

irb(main):015:0> harold.keys

=> ["k", "w", "a", "z"]

irb(main):017:0> harold.values

=> ["kumar", "wooden", "ambar", "zorro"]

bagaimana, Cukup dengan ditambahkan .values atau .keys setelah objek Hashes maka akan muncul values dan key dari objek Hashes secara terpisah.

(35)

Halaman 35 dari 85

3.

.select{ |k,v| kondisi}

Select merupakan fungsi untuk Hashes dimana dia dapat mengembalikan nilai dengan mengunakan [key, value] sebagai syarat untuk seleksi.

irb(main):019:0> harold

=>{"k"=>"kumar", "w"=>"wooden", "a"=>"ambar",

"z"=>"zorro"}

irb(main):020:0> harold.select{|k,v| k> "a"}

=> [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]]

irb(main):021:0> harold.select{|k,v| k> "z"}

=> []

irb(main):022:0> harold.select{|k,v| v> "100"}

=> [["k", "kumar"], ["w", "wooden"], ["a", "ambar"],

["z", "zorro"]]

irb(main):023:0> harold.select{|k,v| v!= "ambar"}

=> [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]]

k untuk insial dari key dan v inisial dari value, syarat ini tidak dapat kita ubah dalam formatnya.

Kasus selanjutnya, Hashes dan array mempunyai kesamaan yaitu sama-sama kontainer atau pembungkus. Apakah mungkin suatu hash dapat berubah bentuk menjadi array? Atau hash berubah menjadi string? Mari kita lihat..

4.

to_a dan to_s

irb(main):019:0> harold

=>{"k"=>"kumar", "w"=>"wooden", "a"=>"ambar",

"z"=>"zorro"}

(36)

Halaman 36 dari 85

=> [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]]

irb(main):021:0> harold.select{|k,v| k> "z"}

=> []

irb(main):022:0> harold.select{|k,v| v> "100"}

=> [["k", "kumar"], ["w", "wooden"], ["a", "ambar"],

["z", "zorro"]]

irb(main):023:0> harold.select{|k,v| v!= "ambar"}

=> [["k", "kumar"], ["w", "wooden"], ["z", "zorro"]]

to_a merupakan perintah untuk menampilkan nilai balikan Hashes menjadi bentuk array. Sedangkan to_s merupakan perintah untuk menampilkan nilai balikan Hashes menjadi string.

Fyuh..banyak juga ya...Semangat terus kawan..

Kasus berikutnya, apakah mungkin Hashes dapat digabungkan dengan Hashes yang lain??

5.

clear dan merge.

irb(main):028:0>a={1=>'bakpau',2=>'cingcau',

'tiga'=>'kemarau',3=>'miauw'}

=>{1=>"bakpau", 2=>"cingcau", "tiga"=>"kemarau",

3=>"miauw"}

irb(main):030:0> b = {'satu'=>'culik','dua'=>'pelik',

3=>'licik','tiga'=>'paceklik'}

=>{"satu"=>"culik","dua"=>"pelik","tiga"=>"paceklik",

3=>"licik"}

irb(main):031:0> a.merge(b)

=>{1=>"bakpau", "satu"=>"culik", "dua"=>"pelik",

2=>"cingcau", "tiga"=>"paceklik", 3=>"licik"}

(37)

Halaman 37 dari 85

=>{1=>"bakpau", "satu"=>"culik", 2=>"cingcau",

"dua"=>"pelik", "tiga"=>"kemarau", 3=>"miauw"}

Lihat, di atas ada 2 objek Hashes yaitu a dan b, ketika a.merge(b) maka kedua nilai tersebut bergabung dan apabila terdapat key yang sama maka nilai yang ditimpa adalah nilai a. Begitu pula sebaliknya apabila posisi keduanya ditukar.

Selanjutnya, bagaimana cara untuk menghapus salah satu isi dari Hashes, kemudian bagaiman cara menukar posisi key dan values, dan bagaimana cara untuk membersihkan isi Hashes?? Mau tau jawabannya... Lihat penjelasan berikut.

6.

.invert , .delete , .clear

irb(main):034:0> harold

=>{"k"=>"kumar","w"=>"wooden","a"=>"ambar",

"z"=>"zorro"}

irb(main):035:0> harold.invert

=>{"wooden"=>"w","kumar"=>"k","zorro"=>"z",

"ambar"=>"a"}

irb(main):036:0> harold.delete("a")

=> "ambar"

irb(main):037:0> harold

=> {"k"=>"kumar","w"=>"wooden","z"=>"zorro"}

irb(main):038:0> harold.clear

=> {}

Lihat perintah di atas, berikut penjelasannya

1. harold.invert merupakan perintah untuk menukar posisi antara key dan value dalam sebuah Hashes.

2. harold.delete(key or value) merupakan perintah untuk menghapus isi dari Hashes berdasarkan value atau key yang dimaksud.

(38)

Halaman 38 dari 85

Well, mungkin cukup sekian untuk Ruby bagian Hashes dan operator.Alhamdulillah Tahap hero sudah selesai..Yeayyy (^_^)9Nah supaya tidak lupa, silahkan simpan semua yang telah kita pelajari tadi ke dalam folder khusus di RubyDojo, kemudian buat masing-masing file Ruby yang isinya dari setiap bagian di atas. OKE..

Rangkuman

Apa saja yang sudah dipelajari di atas, kita cek per poin : 1. Kamu sudah mengenal saudara array yaitu Hashes. 2. Kamu sudah tau bagaiaman menggunakan Hashes.

3. Kamu sudah berlatih beberapa kasus yang muncul di Hashes dan bagaimana cara mengatasinya. Seperti menukar posisi, menggabungkan, menghapus, bahkan mengubahnya ke dalam bentuk array.

Hashes merupakan saudara serumpun dengan array, kelebihannya Hashes bersifat lebih flexibel terhadap indeksnya, yaitu dengan syarat key dan value yang dapat kita tentukan. Namun kekurangannya indeks di Hashes tidak terurut seperti di array.

Yah begitulah ada kelebihan dan kekurangan dari masing-masing perintah. Namun ini sesuai dengan kegunaannya juga lhoo...

Salam akhir saya harap tulisan ini dapat bermanfaat bagi kamu dan lebih tertarik lagi untuk PDKT dengan Ruby, mohon maaf apabila ada kesalahan kata atau kurang berkenan. Apabila ada pertanyaan dan sebagainya bisa menghubungi saya dikontak : http://about.me/MuhammadSinggihZA

(39)

Halaman 39 dari 85

[ActionScript]

Tarom Apriyanto @tarompey

(40)

Halaman 40 dari 85

Button Event

Hallo piye kabare sobat Nyankod yang budiman, moga masih menikmati terus script2 dari kami para Nyankodist. Nah melihat edisi yang kemarin yaitu edisi 3, kan sudah tak kasih script buat nyobain. Udah di coba apa belum??? Udah donggg harusnya.

Supaya lebih inget lagi di bawah dah saya review yang disuruh nyobain monggo di cek, coba tulis script berikut, kemudian jalankan:

1 2 3 4 5

var angka:Number = 0; angka++;

trace(angka); // hasilnya 1 angka++;

trace(angka); // hasilnya 2

Coba ganti dengan ini:

1 2 3 4

var i:Number;

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

}

Sekarang ganti dengan ini:

1 2 3

var matika:Number; matika = 2 + 4 * 3;

(41)

Halaman 41 dari 85

Kemudian ganti dengan ini:

1 2 3

var mySum:Number; mySum = (2 + 4) * 3;

trace(mySum); // hasilnya 18

Coba ganti dengan yang ini:

1 2 3 4 5 6 var matika:Number; var matika_lagi:Number; matika = 2 * 4 * 3;

matika_lagi = (2 * 4) * 3; trace(matika); // hasilnya 24 trace(matika_lagi); // hasilnya 24

Dan terakhir, coba ganti dengan yang ini:

1 2

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

Gimana bisa kan??? N ngerti kan??, kemarin dapat masukan tolong di jelasin dongg Nyankodist AS…..(sobat Nyankod bertanya-tanya:‖siapa yang memberikan masukan sedimikian hingga??‖,…Nyakodist AS: ―kasih tau ga yaaa,….‖), nah mungkin ada yang belum jelas (yang udah jelas diem aja yaa…jangan dikasih tau….Lhooooo ?????// engga lah harus berbagi dongg…).

OKE akan gw (weish gaul nih, dari jakarte…..hahaahaha) coba jelaskan satu per satu….

(42)

Halaman 42 dari 85

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

Bahan coba yang pertama:

1 2 3 4 5

var angka:Number = 0; angka++;

trace(angka); // hasilnya 1 angka++;

trace(angka); // hasilnya 2

kata var di sana menandakan/menunjukan sebuah variabel dan angka menjadi nama variabelnya, terus Number adalah tipe datanya yang menunjukan sebuah angka yang dimulai dengan nilai 0 (nol). (jelas yaaa). Kemudian baris kedua : angka++; // ini adalah contoh penggunaan dari operator arithmetic yang dikenal dengan nama increment (menambahkan satu), jadi berarti angka++ adalah di mana (di mana…di mana…di mana…sekarang ku harus ke mana...**GUBRAAK**) variabel angka yang tadinya bernilai 0 (nol) menjadi bernilai 1 (satu) karena telah di increment (angka++) tadi secara tidak langsung/tidak kelihatan (siluman kali) angka = angka + 1;//angka bernilai nol di tambah satu. Terus di lanjutin dengan perintah selanjutnya di tambah satu lagi, jadi lah 2 (dua) nilai yang bawah. Gitu deh, jelas kan…jelas donggg…!!! Oke lanjuuut.

Bahan coba yang ke dua :

1 2 3 4

var i:Number;

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

}

(43)

Halaman 43 dari 85

(i < 10;…….// artinya sampai 9 aja) maka i akan terus di tampilkan atau dijalankan sampai dia telah mencapai nilai kurang dari 10 yaitu 9, begitu ceritanyaaa…!!...Lanjuuut...(ada pertanyaan??, malu bertanya sesat di nilai…teringat dosen kesayangan dulu).

Bahan coba yang ke tiga :

1 2 3

var matika:Number; matika = 2 + 4 * 3;

trace(matika); // hasilnya 14

Nah contoh ini sebenarnya masuk dalam kategori jenis-jenis operator yang berbeda, yang menurut beberapa buku mereka tidak menyebutkan dalam operator arithmetic tetapi dipecah dalam operator precendece dan assosiatif (yang di atas itu contoh operator precendence) namun menurut saya ini masih tergolong pada operator arithmetic karena masih menggunakan tanda tambah, kurang, kali, n bagi cuma beda ada tanda kurung sama pemakaiannya di barengin terus satu lagi perbedaan prioritas tinggi rendahnya masing-masing operator (waduuuh kok jadi banyak bAngEt bedanya…). Oke di jelasin dulu deh apa itu Operator Precendence dan Operator Assosiatif.

Cek this out :

Operator Precendence yaitu bila dua atau lebih operator digunakan pada suatu pernyataan, beberapa operator mendapatkan prioritas lebih tinggi dari lainya. Contohnya, perkalian selalu dilakukan lebih dulu dari penjumlahan, namun apa bila ada tanda kurung maka priritas yang lebih diutamakan adalah operator yang berada dalam tanda kurung tersebut ((2+3)*2 = 10 atau (1+8)*2.896.233.123 = ….. hitung sendiri hasilnya…hahahahaa) contoh lainya pada bahan coba 4.

(44)

Halaman 44 dari 85

ke kiri. Contohnya, perkalian mempunyai asosiatif dari kiri ke kanan, sehingga pernyataan berikut ekivalen (pernyataan pertama dan ke dua mempunyai hasil perhitungan sama) pada bahan coba ke 5.

Bahan coba 6 :

1 2

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

Tanda kurang dari (<) dan lebih dari (>) memiliki nilai prioritas yang sama sehingga akan di baca dari kiri ke kanan artinya pembacaan statement di lakukan dari sebelah kanan dulu (seperti 3 > 2), dan itu bernilai benar (true) karena 3 bernilai lebih dari 2 namun melanjutkan statement yang menyatakan bahwa 2 < 1 menjadikan statement tersebut menjadi salah (false) sehingga hasil akhir dari statement tersebut akan bernilai salah (false).

Oia buat tambahan materi operator, saya berikan tabel urutan prioritas operator sbb (semua bau badan, eh salah maksudnya sebagai berikut):

Operator Description Associativity

+ Unary plus Right to left

- Unary minus Right to left

~ Bitwise one‘s complement Right to left

! Logical NOT Right to left

not Logical NOT (Flash 4 style) Right to left ++ Post-increment Left to right

— Post-decrement Left to right

( ) Function call Left to right

[ ] Array element Left to right

. Structure member Left to right ++ Pre-increment Right to left

— Pre-decrement Right to left

(45)

Halaman 45 dari 85

delete Deallocate object Right to left

typeof Type of object Right to left void Returns undefined value Right to left

* Multiply Left to right

/ Divide Left to right

% Modulo Left to right

+ Add Left to right

add String concatenation (formerly &) Left to right

- Subtract Left to right

<< Bitwise Left Shift Left to right >> Bitwise Right Shift Left to right >>> Bitwise Right Shift (Unsigned) Left to right

< Less than Left to right

<= Less than or equal to Left to right

> Greater than Left to right

>= Greater than or equal to Left to right lt Less than (string version) Left to right le Less than or equal to (string version) Left to right gt Greater than (string version) Left to right ge Greater than or equal to (string version) Left to right

== Equal Left to right

!= Not equal Left to right

eq Equal (string version) Left to right ne Not equal (string version) Left to right & Bitwise AND Left to right

^ Bitwise XOR Left to right

| Bitwise OR Left to right

&& Logical AND Left to right and Logical AND (Flash 4) Left to right

|| Logical OR Left to right

or Logical OR (Flash 4) Left to right

?: Conditional Right to left

(46)

Halaman 46 dari 85

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

Compound assignment Right to left , Multiple evaluation Left to right

Oke, untuk materi-materi selanjutnya mungkin saya akan lebih sering mengadakan review jika diperlukan dan jika ada penambahan materi yang mungkin saya dengan hilaf belum memasukannya ke materi yang sudah saya bahas. Jadi kalau belum mengerti dan ngerasa ada yang kurang, sobat Nyankod bisa langsung tanyakan, begitu aja yoo.

Oke kita coba masuk ke materi selanjutnya yang sedikit mengulang materi awal tapi kita akan melibatkan sebuah tombol. Silahkan di pahami…

Yoi sobat Nyankod kita sudah mulai memasuki materi selanjutnya, silahkan Sobat Nyankod pantengin dan pahami pada materi ini. Sekarang kita akan melibatkan sebuah objek yang nantinya akan kita beri script di dalamnya sehingga objek tersebut akan menjalankan sebuah perintah yang telah kita masukan melalui script yang akan kita berikan.

Oke agak serius dikit ni. Judul materi ini adalah Button Event. Pertanyaan : Kenapa judulnya ngga di tarok di atas pakai tulisan di bold dengan ukuran font 14, kayak biasanya???, jawab : Kamu emang ngga pernah ngerti akuh…..lho kok!!(bingung garuk-garuk hidung).

Button Event artinya kejadian yang menimpa pada suatu button (tombol). Biar lebih jelas, silahkan sobat Nyankod pahami tabel di bawah ini :

Event

Keterangan

Event

on (press)

Ketika

pointer mouse

berada

pada

area

(47)

Halaman 47 dari 85

tombol

dan

tombol

masih

dalam

keadaan

ditekan.

on (release)

Ketika

pointer mouse

berada

pada

area

tombol

dan

tombol

sudah dilepas.

on (release)

on (releaseOutside)

Ketika setelah tombol

ditekan namun

pointer

mouse

dilepaskan di

luar area tombol.

on (releaseOutside)

on (tollOver)

Ketika

pointer mouse

melewati area tombol.

on (tollOver)

on (dragOver)

Ketika

pointer mouse

bergerak

menjauhi

area tombol.

on (dragOver)

on (dragOut)

Ketika

pointer mouse

berada di atas area

tombol

dan

mouse

sudah

ditekan

kemudian

pointer

digerakan

keluar

menjauhi area tombol.

on (dragOut)

Contone :

(48)

Halaman 48 dari 85

2. Tambahkan ke stage (halaman kerja) sebuah tombol dari common library dengan

cara Windows – Common Library – Button. Atau liat gambar di bawa ini deh.

Untuk memasukan dalam stage sobat pilih dan klik tombol kemudian drag ke stage.

(49)
(50)

Halaman 50 dari 85

5. Tulis script berikut ini pada Actions Panel.

1 2 3

on (release) {

trace(“Aku bisa ditekan kan”); }

6. Tekan ctrl + enter. Hasilnya???(kalau ga jalan, jangan copas script di atas tapi di ketik ulang….ok brow!!)

Penulisan ActionScript nya ada yang lain juga lho,…tadi kan kita sudah buat instance name, nah itu fungsinya sebagai variabel yang bisa kita panggil. Oke kita coba deh, sekarang lakukan yang sama langkah 1 - 4 di atas. Terus lanjutin dengan langkah berikut :

1. Pastikan sobat Nyankod berada pada Timeline Panel.

(51)

Halaman 51 dari 85

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

Halaman 52 dari 85

4. Isikan script seperti di bawah ini :

1 2 3

btMasuk.onRelease = function () { trace (“aku bisa di tekan kan”); }

5. Tekan ctrl + enter. Hasilnya ??? sama ngga yaaa….cobain deh…!!

Note :

Layer action khusus digunakan untuk menyimpan ActionScript pada frame sehingga lebih teratur dan rapih.

(53)

Halaman 53 dari 85

[JavaScript]

Toni Haryanto @yllumi

(54)

Halaman 54 dari 85

Pemilihan

Haloo.. masih tetap semangat kan belajar JavaScriptnya?? Yah meskipun di awal-awal kita mesti sabar belajar dasar-dasar terutama yang terkait langsung dengan algoritma, tapi hal itu justru merupakan bagian terpenting dalam memprogram. Kalo dasar-dasarnya sudah jago, bikin aplikasi apapun tidak akan sulit. Sisanya tinggal penguasaan teknik pemrogamannya.

Di edisi 4 sampai edisi 6 berturut-turut kita akan belajar tentang Pemilihan, Perulangan dan Fungsi. So, di edisi ini kita akan membahas tentang pemilihan. Akan sangat membantu kalo Anda sudah pernah belajar tentang algoritma. Kalo Anda sudah paham tentang algoritma pemilihan (if..else dan case) Anda bisa langsung loncat ke bagian ‗sintaks pemilihan di JavaScript‘.

Konsep Dasar Pemilihan

Dalam membuat program kita mengenal istilah runtunan. Runtunan atau sequence adalah konsep dalam algoritma dimana sebuah algoritma terdiri dari satu atau lebih instruksi, yang berarti tiap instruksi dikerjakan satu per satu, dikerjakan tepat satu kali dan tidak ada yang diulang, urutan pengerjaan instruksi sama dengan urutan penulisannya, dan akhir dari intruksi terakhir merupakan akhir algoritmanya. (Munir: 2004)

Namun tidak semua program cukup dibuat dengan runtunan saja. Ada kasus-kasus dimana kita harus membuat sebuah instruksi berdasarkan kondisi-kondisi tertentu. Nah, disinilah kita perlu konsep pemilihan. Contoh algoritma sederhana yang mengandung pemilihan, bisa kita lihat di algoritma berikut:

(55)

Halaman 55 dari 85

2. Kalo warungnya buka maka

2.1 Saya beli kopi

3. Kalo nggak buka maka saya pulang deh

Pada contoh diatas, nomor satu pasti dijalankan. Pada nomor dua terdapat pengecekan kondisi yang menentukan apakah nomor 2.1 bisa dijalankan atau tidak. ‗Kalo warungnya buka‘, maka ‗Saya beli kopi‘. Tapi kalo kondisi di nomor 2 tidak terpenuhi, dalam kasus ini berarti warung tidak buka alias tutup, maka nomor 2.1 tidak akan dijalankan dan langsung berlanjut ke nomor 3.

Nah kira-kira begitu penjelasan sederhana tentang pemilihan. Konsep ini akan selalu ada dalam pembuatan sebuah program, dengan bahasa pemrograman apapun.

Di dalam konsep pemilihan, kita membagi pemilihan berdasarkan banyaknya kasus yang ditangani. Untuk pengecekan sebuah kasus, maka kita gunakan if..then, untuk pengecekan dua buah kasus kita dapat gunakan if..then..else dan untuk pengecekan banyak kasus kita dapat gunakan case.

Mengerti maksudnya? Kita coba dengan contoh.

Satu Kasus (if..then)

Format penulisan umum untuk if..else adalah:

If kondisi then pernyataan

kondisi adalah tempat kita menuliskan syarat untuk dapat menjalankan pernyataan. Contohnya:

(56)

Halaman 56 dari 85

Dua Kasus (if..then..else)

Adakalanya kita membutuhkan eksekusi pernyataan lebih dari satu kasus. Untuk dua kasus, kita bisa gunakan if..then..else dengan format penulisan:

If kondisi then pernyataan 1 else

pernyataan 2 endif

Apabila kondisi bernilai benar atau true, maka pernyataan 1 yang dikerjakan, dan bila kondisi bernilai salah atau false maka pernyataan 2 yang dikerjakan. Contohnya:

If x = 0 then

tuliskan ―x sama dengan nol‖ else

tuliskan ―x bukan nol‖ endif

Banyak Kasus (if..then..elseif dan case)

Sebenarnya untuk pengecekan kasus lebih dari dua, kita bisa menggunakan if bersarang. If bersarang berarti if di dalam if. Contohnya:

If nomorHari = 1 then tuliskan ―minggu‖ else

(57)

Halaman 57 dari 85

If nomorHari = 3 then

tuliskan ―selasa‖ else

If nomorHari = 4 then tuliskan ―rabu‖ else

If nomorHari = 5 then tuliskan ―kamis‖ else

If nomorHari = 6 then tuliskan ―jumat‖ else

tuliskan ―sabtu‖ endif

endif endif

endif endif

endif

Baris ke-2 merupakan pernyataan yang akan dikerjakan bila kondisi pada baris ke-1 bernilai benar. Baris ke-4 ke bawah adalah pernyataan yang akan dijalankan bila kondisi pada baris ke-1 bernilai salah. Dengan kata lain, baris ke-4 sampai akhir adalah pernyataan 2 bagi kondisi pertama yang berisi pengecekan if untuk kondisi lain. Begitu seterusnya.

Namun ada cara lain yang lebih efisien untuk kasus banyak, yakni dengan case. Case dapat menyederhanakan penulisan if..then..else yang bersarang seperti pada contoh di atas. Format penulisan umum untuk case adalah sebagai berikut:

case ekspresi

(58)

Halaman 58 dari 85

nilai 2 : pernyataan 2

. . .

nilai n : pernyataan n otherwise : pernyataan x endcase

ekspresi adalah sembarang ekspresi (aritmatika atau boolean) yang menghasilkan suatu nilai atau konstanta, atau sebuah variabel. Konstruksi case memeriksa apakah nilai dari ekspresi tersebut cocok dengan salah satu dari nilai 1, nilai 2, .. nilai n dengan catatan, semua nilai ini harus berbeda. Jika nilai ekspresi sama dengan nilai k, maka pernyataan k yang akan dikerjakan (Munir: 2004). Bila nilai ekspresi tidak cocok dengan salah satu nilai, maka pernyataan x setelah otherwise yang akan dijalankan. Penerapan case pada contoh kasus if bersarang diatas seperti berikut:

case nomorHari

1 : tuliskan ―minggu‖ 2 : tuliskan ―senin‖ 3 : tuliskan ―selasa‖ 4 : tuliskan ―rabu‖ 5 : tuliskan ―kamis‖ 6 : tuliskan ―jumat‖ 7 : tuliskan ―sabtu‖

(59)

Halaman 59 dari 85

Sintaks Pemilihan di JavaScript

Kita sudah simak penjelasan sederhana tentang teori pemilihan di atas. Kalo pengen lebih jelas lagi tentang penjelasan algoritmanya, Anda bisa baca bukunya Rinaldi Munir yang berjudul Algoritma dan Pemrograman, atau buku tentang algoritma lainnya yang beredar.

Sekarang kembali ke JavaScript. Sintaks pemilihan untuk if dan case bisa dilihat di tabel berikut.

Sintaks If

If (kondisi) {

pernyataan 1; } else {

pernyataan 2; };

Algoritma JavaScript

If nomorHari = 1 then tuliskan ―minggu‖ else

If nomorHari = 2 then tuliskan ―senin‖ else

If nomorHari = 3 then tuliskan ―selasa‖ else

If nomorHari = 4 then tuliskan ―rabu‖ else

If nomorHari = 5 then

If (nomorHari = 1) {

document.write(―minggu‖); } else

if (nomorHari = 2) {

document.write( ―senin‖ ); } else

if (nomorHari = 3) {

document.write( ―selasa‖ ); } else

if (nomorHari = 4) {

document.write( ―rabu‖ ); } else

(60)

Halaman 60 dari 85

tuliskan ―kamis‖

else

If nomorHari = 6 then tuliskan ―jumat‖ else tuliskan ―sabtu‖ endif endif endif endif endif endif endif

document.write( ―kamis‖ ); } else

if (nomorHari = 6) {

document.write( ―jumat‖ );

} else

document.write( ―sabtu‖);

Catatan: kurung kurawal digunakan terutama bila pernyataan setelah kondisi if yang akan dijalankan lebih dari satu baris. Bila hanya satu baris pernyataan yang akan dieksekusi, kita tidak mesti mengurungnya dengan kurung kurawal. Coba perhatikan contoh program javascrip di atas. If kedua setelah else tidak dikurung oleh kurung kurawal, karena if kedua (dan begitu pula dengan if sesudahnya) dianggap satu baris pernyataan, yakni pernyataan if yang memiliki if di dalamnya.

Sintaks case

switch (ekspresi) { case nilai1 :

pernyataan1; break;

case nilai2 :

pernyataan2; break;

case nilai3 :

(61)

Halaman 61 dari 85

break;

default :

pernyataan_x; }

Algoritma JavaScript

case nomorHari

1 : tuliskan “minggu”

2 : tuliskan “senin”

3 :

tuliskan “selasa”

4 : tuliskan “rabu”

5 : tuliskan “kamis”

6 : tuliskan “jumat”

7 : tuliskan “sabtu”

otherwise

: tuliskan “bukan nomor hari”

endcase

switch (nomorHari) {

case 1 :

document.write(“minggu”);

break;

case 2 :

document.write( “senin” );

break;

case 3 :

document.write( “selasa” );

break;

case 4 :

document.write( “rabu” );

break;

case 5 :

document.write( “kamis” );

break;

case 6 :

document.write( “jumat” );

break;

case 7 :

document.write( “sabtu” );

break;

default :

(62)

Halaman 62 dari 85

Catatan: berbeda dengan sintaks if, sintaks case atau switch ini tidak memerlukan kurung kurawal untuk melikupi pernyataan yang akan dieksekusi, sebanyak apapun pernyataannya. Perintah break; di akhir pernyataan untuk setiap case berfungsi sebagai interupsi untuk menghentikan eksekusi pernyataan, atau simpelnya sebagai penutup pernyataan.
(63)

Halaman 63 dari 85

[C]

(64)

Halaman 64 dari 85

Percabangan di Bahasa C

Yuppss sudah 1 minggu berlalu saatnya menulis kembali untuk pemrograman bahasa c, setelah minggu lalu membicarakan mengenai operator dalam bahasa c, selanjutnya pada tulisan ini akan membahas mengenai struktur kendali pemilihan. Dalam proses pengolahan data kadang perlu memilih satu dari sekumpulan alternatif proses, sebagai contoh untuk menentukan mahasiswa yang lulus berdasarkan nilai akhir mata kuliah. Jika nilai yang diperoleh adalah 60 sampai dengan 100 maka mahasiswa tersebut dinyatakan lulus, tetapi apabila nilai mahasiswa <60 maka mahasiswa dianggap tidak lulus. Dari tulisan diatas terdapat 2 kondisi pemilihan yaitu mahasiswa yang lulus dan tidak lulus, maka perlu dipilih salah satu kondisi, Bahasa C menyediakan if dan switch untuk melakukan proses seleksi.

a.

Instruksi if

instruksi if digunakan untuk memilih jalur proses: melakukan atau tidak melakukan suatu proses(if), memilih satu dari dua proses (if else).

if(expression) statement:

(65)

Halaman 65 dari 85

Program 4.1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

# include <stdio.h> # include <conio.h>

void main() { int nA;

char grade; clrscr();

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

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

if(nA > 74 && nA <85) grade = 'B'; if(nA > 64 && nA <75) grade = 'C'; if(nA > 49 && nA <65) grade = 'D'; if(nA < 50 ) grade = 'E';

printf(“Grade = %c”,grade);

}

b.

Instruksi if-else

adakalanya kita harus melaksanakan proses yang berbeda untuk kondisi yang berbeda. Misalnya menampilkan kata lulus untuk nilai yang sama atau lebih besar daripada 60 dan menampilkan kata tidak lulus untuk nilai yang kurang dari 60. Bahasa C menyediakan klausa else untuk digunakan bersama instruksi if.

if(kondisi)statement1;else statement2;

(66)

Halaman 66 dari 85

Program 4.2

1 2 3 4 5 6 7 8 9 10

# include <stdio.h>

int main() { int a,b,c ;

scanf("%d %d %d", &a, &b, &c);

if(c < a + b) printf("bisa membentuk segitiga"); else printf("tidak bisa membentuk segitiga"); return 0;

}

c.

Instruksi switch

instruksi switch digunakan untuk memilih satu dari sejumlah alternatif, misalnya kita akan menggunakan mobil, motor, atau kendaraan umum, kita diharuskan memilih salah satu dari 3 pilihan tersebut.

Switch(expression) {

Case const_expr_1: statement_1; Case const_expr_2: statement_2;

……..

Case const_expr_n: statement_n; [default: statement_x;]

(67)

Halaman 67 dari 85

Program 4.3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

# include <stdio.h>

int main() {

unsigned int kode_pos;

printf(“kode pos?”); scanf(“%ud”, &kode_pos);

switch(kode_pos) {

case 10210 : printf(“bambu apus \n”);break;

case 10220 : printf(“cijantung \n”);

case 10230 : printf(“kalisari \n”);

case 10240 : printf(“susukan \n”);

(68)

Halaman 68 dari 85

[Bash]

Taufik Sulaeman @taufiksu

taufiksu@gmail.com

(69)

Halaman 69 dari 85

Bash Programming - Logic

Program merupakan kumpulan-kumpulan sintaks yang dioperasikan dengan logika pemrograman. Operasi logika sangat penting bagi komputer dalam mengeksekusi sebuah program. Pada kesempatan kali ini kita akan mencoba membuat program sederhana pada bahasa pemrograman bash yang menggunakan logika. Secara garis besar kita akan mempelajari 2 hal yaitu Percabangan dan Pengulangan. Pada kesempatan kali ini kita akan mempelajari Percabangan.

Percabangan

1.

IF

If merupakan logika percabangan yang akan mengeksekusi blok perintah program tertentu, if bekerja dengan kondisi logika (Benar / Salah). Contohnya pada program berikut:

1 2 3 4 5 6 7 8

#!/bin/bash echo "T1 :"; read T1 echo "T2 :"; read T2

if [ "$T1" = "$T2" ]; then echo sama

(70)

Halaman 70 dari 85

9 10 echo beda fi Struktur

Struktur program menggukan kondisi if dimulai dari menulis if dan diakhiri fi (tag penutup kebalikan dari tag pembuka). Struktur paling sederhana dalam membuat membuat percabangan dengan if adalah sebagai berikut:

1 Cabang

if [kondisi];then outputkondisi else outputdiluarkondisi fi

2 Cabang

if[kondisi];then outputkondisi1 elif [kondisi2];then outputkondisi2 else outputdiluarkondisi fi

Contohnya : 1 2 3 4 5 6 7 8 9 10 11 #!/bin/bash

echo "Pilih Menu"; echo "(1) Nasi Kuning"; echo "(2) Ketoprak"; echo "==============";

echo "Masukan Nomor Menu :"; read T1 if [ "$T1" = 1 ]; then

(71)

Halaman 71 dari 85

12

13

echo Milih apa bang ? fi

2.

CASE

Case adalah pencabangan khusus untuk banyak kondisi pemilihan, yang lebih digunakan dibanding perintah if/elif/else.

Struktur

case kondisi in CASE1) output1;; CASE2) output2;; … CASEN) outputlain;; esac

1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/bin/bash

echo -n "Do you agree with this? [yes or no]: " read yno

case $yno in

[yY] | [yY][Ee][Ss] )

echo "Agreed, Install Start" ;;

[nN] | [n|N][O|o] )

echo "Not agreed, Install Cancel"; exit 1

;;

*) echo "Invalid input" ;;

esac

Resume dari kedua kondisi

(72)

Halaman 72 dari 85

Sik asik

(73)

Halaman 73 dari 85

[Perl]

Kresna Galuh D. Herlangga @kresnagaluh

(74)

Halaman 74 dari 85

Auto Convert, Input

Pernah nggak kebayang, gimana kalo program Perl yang kita buat bisa berinteraksi dengan kita, artinya nggak cuma kita tulis kode programnya kemudian program dijalankan, tapi juga kita bisa melakukan input perintah ketika program tersebut berjalan??

Gimana pernah nggak?

Buat yang pernah kepikiran, saya ucapin selamat, karena sebentar lagi rasa penasaran Anda akan dilenyapkan disini. Dan buat yang belum pernah kepikiran juga nggak apa-apa, intinya kita bakal menyaksikan pertunjukan demikian sesaat lagi.

Oke jou, udah siap buat beraksi...??? Let's go...

Let's go kemana? Kita kan mau belajar n nggak mo kemana-mana...

Maksudnya udah siap belajar?? -_-

Siap… Horee… horee ~(ˆ◦ˆ~) Horeee….. (~ˆ◦ˆ)~

Sudah.. sudah…. Mari kita mulai.

(75)

Halaman 75 dari 85

Yes, bagus kalo masih inget (anggap seluruh orang di dunia inget). Jadi di edisi ke-3 yang lalu, di akhir pembahasan saya sempet bilang kalau pembahasan mengenai Numerik dan String belum sepenuhnya tuntas, masih ada beberapa hal lagi yang perlu disampaikan berkaitan dengan numerik dan string. Nggak banyak sih, tapi sangat penting buat kedepannya.

Nah, sekarang sebelum memulai ke pembahasan selanjutnya, di sini saya punya beberapa pertanyaan dulu nih berkaitan dengan materi sebelumnya. Anggap aja ini sebagai rintangan untuk ke tahap selanjutnya. Jadi jangan mencoba buat ke tahapan selanjutnya kalau belum bisa menjawa semua pertanyaan di bawah ini.

1. Apaan sih yang dimaksud operator?

2. Kalau dari: 6 % 4, yang disebut operator yang mana dan yang disebut operand yang mana?

3. Apa aja yang termasuk operator aritmatika numerik? Contohnya gimana?

4. Berapa hasil dari: 35 - 21 / 7 ? 5. Berapa hasil dari: 43 AND 54 ? 6. Bagaimana keluaran dari 8 == 9 ?

7. print "!(6 > 7) : ", !(6 > 7), "\n"; Bagaimana keluarannya??

8. Bagaimana membuat program yang keluarannya adalah tulisan "Aku cinta kamu" sebanyak 100 kali?

Jadi nggak boleh lanjut dulu ke tahap selanjutnya kalo belu bisa ngejawab semua pertanyaan di atas. Sepakat?

(76)

Halaman 76 dari 85

Operator Perbandingan String

Di edisi lalu, kita udah kenal operator perbandingan buat numerik, seperti ==. !=, >, <, >=, <= dan <=>. Nah sekarang kita juga punya opertator perbandingan, tapi khusus buat string. Operatornya adalah seperti di tabel berikut:

String Numerik Keterangan

eq == Equal, sama dengan

ne != not equal, tidak sama dengan lt < Less than, kurang dari

gt > Greater than, lebih dari

le <= Less than or equal to, kurang dari atau sama dengan ge >= Greater than or equal to, lebih dari atau sama dengan

Dalam perbandingan string, yang menjadi tolok ukur perbandingannya adalah nilai ASCII yang ada pada setiap karakter. Contohnya, nilai ASCII dari karakter A adalah 65, nilai ASCII dari B adalah 66, nilai ASCII dari a adalah 97, dan nilai ASCII dari b adalah 98. Jadi A lebih kecil dari B, karena nilai ASCII A lebih kecil dari B. Dan A tidaklah sama dengan a, karena keduanya memiliki nilai ASCII yang berbeda.

Dalam perbandingan string yang pertama dibandingkan adalah karakter pertama (dari kiri), kemudian apabila karakter pertama sama, maka akan dilanjutkan ke karakter disebelehnya. Sebagai contoh operasi perbandingan pada string, mari kita liat aja deh dalam contoh program.

Program: operator_perbandingan_string.pl

1 2 3 4

#!/usr/bin/perl

# nama program : operator_perbandingan_string.pl

(77)

Halaman 77 dari 85

5

6 7 8 9

print "aku ne kamu? ", "aku" ne "kamu", "\n"; print "aku lt kamu? ", "aku" lt "kamu", "\n"; print "aku gt kamu? ", "aku" gt "kamu", "\n"; print "aku le kamu? ", "aku" le "kamu", "\n"; print "aku ge kamu? ", "aku" ge "kamu", "\n";

Jalankanlah program tersebut!

$

perl operator_perbandingan_string.pl

aku eq kamu? aku eq kamu? 1 aku eq kamu? 1 aku eq kamu? aku eq kamu? 1 aku eq kamu?

$

Auto Convert String-Numerik

(78)

Halaman 78 dari 85

Ketika melakukan konversi dari string ke numerik, ada beberapa aturan khusus yang perlu kamu ketahui, yaitu:

 Sebuah string yang murni isinya adalah sebuah angka, maka akan langsung dikonversi ke dalam numerik. Contohnya "12" * "3", maka akan menghasilkan 36. Begitupun "2" + "5" akan menghasilkan 7.

 Bila di dalam sebuah string terdapat angka dan bukan angka, maka yang dijadikan numerik adalah angka-angka yang ada di paling kiri saja. Misalnya "15nyankod" * "3", maka hasilnya sama dengan 15 * 3, yaitu 45.

 Spasi yang ada di depan string akan diabaikan. Misalnya " 4" % "3" maka hasilnya adalah 1. Adapun spasi yang ada di depan karakter 4 akan diabaikan.

 Bila dalam sebuah string tidak terdapat angka, maka pengkonversiannya akan langsung menjadi 0. Contohnya "nyankod" + "5", maka artinya 0 + 5, maka keluarannya adalah 5.

 Karakter angka yang ada di belakang karakter bukan angka akan diabaikan. "2jan2012" + "4", maka hasilnya adalah 6. "2jan2012" akan dikonversi menjadi 2 saja, adapun angka 2012 yang ada di belakang tidak akan diperhatikan oleh Perl sebagai sebuah numerik. Begitupun "nyankod2012" * "2011", sama artinya dengan 0 * 2011, yang hasilnya adalah 0.

Biar lebih jelas, coba praktekin contoh berikut ini:

Program: konvert_string_numerik.pl

1 2 3 4 5 6 7 8 #!/usr/bin/perl

# nama program : konvert_string_numerik.pl

print "12" * "3", "\n"; print "2" + "5", "\n";

print "15nyankod" * "3", "\n"; print " 4" % "3", "\n";

(79)

Halaman 79 dari 85

9

10

print "2jan2012" + "4", "\n";

print "nyankod2012" * "2011", "\n";

Keluarannya:

$

perl konvert_string_numerik.pl

36 7 45 1 5 6 0

$

Adapun untuk konversi numerik ke string itu lebih sederhana. Intinya semua angka yang ada di numerik akan diubah menjadi string. Contohnya:

3 . 5 outputnya 35 45 . 1 outputnya 451 6.6 . 2 outputnya 6.62 8 . "x" outputnya 8x "z" . 9 outputnya z9 "L" . 4 * 2 outputnya L8

Untuk pembuktian, silahkan cek program berikut:

Program: konvert_numerik_string.pl

1 2

#!/usr/bin/perl

(80)

Halaman 80 dari 85

3

4 5 6 7 8 9

print 3 . 5, "\n"; print 45 . 1, "\n"; print 6.6 . 2, "\n"; print 8 . "x", "\n"; print "z" . 9, "\n"; print "L" . 4 * 2, "\n";

Keluarannya:

$

perl konvert_numerik_string.pl

35 451 6.62 8x z9 L8

$

Input <STDIN>

(81)

Halaman 81 dari 85

namanya di program, kemudian program akan mengucapkan selamat datang kepada user dengan menyebut namanya. Cerdas bukan? Oke, langsung aja deh bro. Cekidot.

Program: inputan_nama.pl

1 2 3 4 5 6 #!/usr/bin/perl

# nama program : inputan_nama.pl

print "Siapa nama kamu? "; $nama = <STDIN>;

print "Selamat datang $nama";

Keluarannya:

$

perl inputan_nama.pl

Siapa nama kamu? Kresna Selamat datang Kresna

$

Kita juga bisa membuat program yang lebih menarik lagi, misalnya program perhitungan luas lingkaran.

Program: luas_lingkaran.pl

1 2 3 4 5 6 #!/usr/bin/perl

# nama program : luas_lingkaran.pl

print "PROGRAM PERHITUNGAN LUAS LINGKARAN", "\n\n";

(82)

Halaman 82 dari 85

$r = <STDIN>;

$l = 3.14 * $r * $r;

print "\n";

print "Rumus Luas Lingkaran adalah : L = phi * r * r", "\n";

print "Jadi, Lu

Referensi

Dokumen terkait

Apabila dilihat dari nilai Ketertiban dan nilai ketentraman pelaksanaan Undang-Undang Nomor 52 Tahun 2009 Tentang Perkembangan Kependudukan Dan Pembangunan Keluarga

Penelitian yang membahas Pelayanan Kesehatan melalui Citizen Charter di Puskesmas Tanggung Kota Blitar menggunakan pendekatan kualitatif yaitu berusaha mengungkapkan gejala

Pada pekan ini investor selain masih akan tetap mencerna rilis kinerja perusahaan di kuartal I, juga akan memperhatikan data ekonomi awal bulan seperti inflasi

Resistensi terhadap antibiotik aminoglikosida muncul karena sel bakteri memproduksi enzim yang dapat menambahkan fosfat, asetat atau gugus adenil pada aminoglikosida

logam, Peralatan masak dari baja anti karat Straw, Wicker and Wood Peralatan masak dari anyaman jerami, batang atau kayu Plastic Cookware (microwave-safe only) Peralatan masak

Dengan ini saya menyatakan bahwa tugas akhir saya yang berjudul ―PENGARUH PENGGUNAAN MATRIKS NA-MONTMORILLONIT TERPILAR KITOSAN BERAT MOLEKUL MEDIUM TERHADAP SIFAT FISIS

Kinerja Badan Nasional Pengelola Perbatasan dalam Renja BNPP Tahun 2016 merupakan pelaksanaan tugas dan fungsi yang difokuskan kepada penyelenggaraan penguatan fungsi

Penelitian ini tergolong sebagai penelitian penelitian lapangan (field research), dengan pendekatan kualitatif yang berarti bukan berupa angka-angka, data diperoleh