2015 Pengantar Small Basic - MbandaS

download 2015 Pengantar Small Basic - MbandaS

of 90

Transcript of 2015 Pengantar Small Basic - MbandaS

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    1/90

    MMiiccrroossoof f tt SSmmaallll BBaassiicc Pengenalan bahasa pemrograman

    untuk Komputasi Kelautan

    Muhammad Banda SelamatStaf Pengajar di Jurusan Ilmu Kelautan

    JJUURRUUSS AANN IILLMMUU KKEELLAAUUTTAANN UUNN IIVVEERRSS IITTAASS HHAASS AANNUUDDDDIINN

    MMAAKKAASS SS AARR 220011

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    2/90

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    3/90

    Muhammad Banda Selamat Hal ke 3 dari 90

    Menggambar garis ............................................................................................................ 31

    Menggambar dan mengisi bentuk .............................................................................. 34

    Bermain dengan Bentuk....................................................................................................... 37

    Rectangalore ........................................................................................................................ 37

    Circtacular ............................................................................................................................. 38

    Pengacakan .......................................................................................................................... 38

    Fraktal ..................................................................................................................................... 39

    Grafik Kura-kura ...................................................................................................................... 43

    Logo ........................................................................................................................................ 4

    Sang Kura-kura ................................................................................................................... 43

    Bergerak dan menggambar ........................................................................................... 44

    Menggambar kotak ........................................................................................................... 45

    Mengganti warna ............................................................................................................... 46

    Menggambar bentuk yang lebih rumit ...................................................................... 47

    Bergerak ke mana saja ..................................................................................................... 50

    Subrutin...................................................................................................................................... 52

    Keuntungan menggunakan subrutin .......................................................................... 53

    Menggunakan variabel .................................................................................................... 54 Memanggil subrutin di dalam pengulangan ........................................................... 56

    Senarai ........................................................................................................................................ 59

    Apa itu senarai? .................................................................................................................. 60

    Indeksasi pada senarai ..................................................................................................... 62

    Lebih dari satu dimensi .................................................................................................... 63

    Menggunakan senarai untuk menampilkan grid ................................................... 65

    Kejadian dan interaktifitas ................................................................................................... 68 Bagaimana mendayagunakan kejadian? ................................................................... 68

    Menangani banyak kejadian .......................................................................................... 70

    Program mengecat ............................................................................................................ 72

    Contoh – contoh yang menarik......................................................................................... 74

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    4/90

    Muhammad Banda Selamat Hal ke 4 dari 90

    Fraktral Turtle ...................................................................................................................... 74

    Foto dari Flickr .................................................................................................................... 75

    Wallpaper Dynamic pada Desktop .............................................................................. 76

    Game Paddle ....................................................................................................................... 76

    Warna-warni ............................................................................................................................. 78

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    5/90

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    6/90

    Muhammad Banda Selamat Hal ke 6 dari 90

    Tampilan Small BasicLingkungan kerja Small Basic terdiri atas beberapa bagian, seperti ditampilkanpada Gambar 1.

    1) Editor, adalah tempat dimana kita menuliskan program-program SmallBasic. Bila kita membuka contoh-contoh program Small Basic, atau

    program yang telah disimpan sebelumnya, maka dokumen tersebut

    akan tampil di Editor. Kita dapat bekerja dengan beberapa dokumen

    sekaligus, yang ditampilkan dalam beberapa jendela editor. Editor

    yang berisi program yang sedang dikerjakan dinamakan sebagai editor

    aktif.

    2) Toolbar, digunakan untuk memerintahkan editor aktif ataupunlingkungan lainnya.

    3) Permukaan, adalah lokasi dimana jendela-jendela editor ditempatkan

    Gambar 1 Lingkungan kerja Small Basic

    Program pertama kitaSetelah mengenal lingkungan kerja dan tampilan Small Basic, kita akanlanjutkan dengan membuat program-program sederhana. Kita akanmencoba menulis satu baris program pada editor:

    1

    2

    3

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    7/90

    Muhammad Banda Selamat Hal ke 7 dari 90

    TextWindow.WriteLine(" S a l a m … ")

    Inilah program Small Basic kita yang pertama, dan bila kita menuliskannyadengan benar, maka di layar akan terlihat tampilan seperti Gambar 2.

    Gambar 2 Menulis program pada Editor

    Program dapat kita eksekusi dengan meng-klik tombol Run pada toolbar ataudapat juga dengan menggunakan kunci F5 pada keyboard. Tampilanprogram tersebut dapat dilihat pada Gambar 3.

    Gambar 3 Tampilan eksekusi program

    Program yang kita buat di atas masihlah sangat sederhana. Salah satu

    langkah kita untuk dapat membuat program yang lebih rumit adalah dengan“memahami apa yang sedang terjadi” – apa yang telah kita perintahkan kekomputer dan bagaimana komputer tahu apa yang harus ia lakukan”. Kitaseharusnya menganalisa program yang telah kita buat, sehingga kitamemperoleh pemahaman tentang program yang dijalankan itu.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    8/90

    Muhammad Banda Selamat Hal ke 8 dari 90

    Saat kita mengetikkan program pertama, kita melihat ada popup yangmuncul dengan daftar pilihan (Gambar 4), ini disebut dengan “intellisense”dan membantu kita untuk mengetik program lebih cepat. Kita dapat melihat-lihat daftar tersebut menggunakan panah atas maupun bawah, dan bila telahmenemukan apa yang kita inginkan, kita dapat menekan enter, untukmenyisipkan item yang dipilih itu ke dalam program.

    Gambar 4 Intellisense

    Menyimpan programJika kita ingin menutup Small Basic dan akan kembali bekerja di lain waktupada program tersebut, kita dapat menyimpan program tersebut. Adabaiknya bila kita dapat menyimpan waktu setiap beberapa waktu sehingga

    kita tidak kehilangan informasi bila sewaktu-waktu terjadi listrik padam ataukesalahan lainnya. Kita dapat menyimpan program yang sedang ditulisdengan meng- klik ikon “save” pada toolbar atau dengan menggunakan carasingkat menggunakan kom binasi tombol “Ctrl + S” (tekan S bersamaandengan menekan tombol Ctrl)

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    9/90

    Muhammad Banda Selamat Hal ke 9 dari 90

    Bab 2

    Memahami Program

    Apa sebenarnya program komputer itu?Suatu program terdiri dari seperangkat instruksi untuk komputer. Instruksi inimengatakan dengan tepat kepada komputer apa yang harus dilakukan.Seperti halnya manusia, komputer hanya dapat mengikuti instruksi jikadisampaikan dalam bahasa yang ia mengerti. Bahasa ini dinamakan sebagaibahasa pemrograman. Ada banyak bahasa pemrograman yang dapat

    dimengerti oleh komputer, salah satunya adalah Small Basic.Bayangkan percakapan yang terjadi antara kita dan teman. Kita dan temanakan menggunakan kata, mengelola kalimat untuk menyampaikan informasibolak balik. Demikian pula halnya dengan bahasa pemrograman berisikumpulan kata yang dapat diorganisir menjadi kalimat yang menyampaikaninformasi ke komputer. Dan program pada dasarnya adalah kumpulan darikalimat-kalimat (terkadang sedikit dan terkadang ratusan ribu) yang secarabersama-sama memberikan pengertian yang sama baik di komputer maupunprogrammer nya.

    Program Small BasicSuatu program Small Basic terdiri atas serangkaian pernyataan. Setiap barisprogram mewakili suatu pernyataan dan setiap pernyataan merupakanperintah kepada komputer. Pada saat kita meminta komputer untukmenjalankan program Small Basic, komputer akan mengambil program

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    10/90

    Muhammad Banda Selamat Hal ke 10 dari 90

    tersebut dan membaca pernyataan baris pertama. Komputer dapat mengertiapa yang kita katakan dan mulai mengerjakan instruksi kita. Setelahpernyataan pertama selesai dijalankan, komputer akan kembali ke program,membaca dan menjalankan baris kedua. Demikian seterusnya hingga sampaike akhir program.

    Kembali ke program pertamaBerikut program pertama yang telah kita tulis:

    TextWindow.WriteLine(" S a l a m … ")

    Program ini sangat sederhana yang hanya terdiri dari satu pernyataan .Pernyataan itu meminta komputer untuk menulis satu baris teks yaitu S a l am , kedalam jendela teks. Pernyataan tersebut secara harfiah diterjemahkanke dalam “pikiran” komputer menja di:

    Tulis S a l a m …

    Kita tahu bahwa pernyataan tersebut dapat di pecah menjadi bagian-bagianyang lebih kecil seperti halnya kalimat-kalimat di pecah menjadi kata-kata.Dalam pernyataan pertama kita memiliki 3 segmen yang berbeda:

    a) TextWindowb) WriteLinec) “S a l a m …”

    Tanda titik, kurung dan tandakutip semuanya merupakan tandabaca yang harus ditempatkanpada posisi yang sesuai di dalampernyataan, agar komputer dapat

    mengerti maksud kita.Jendela berwarna hitam muncul pada saat program pertama kita jalankan.Jendela berwarna hitam itu dinamakan jendela teks atau terkadang disebut

    juga sebagai konsol. Konsol adalah tempat dimana hasil programditampilkan. TextWindow , yang ada di dalam program kita, dinamakansebagai objek . Ada banyak objek seperti itu yang tersedia untuk kita

    Tanda baca seperti, tanda kutip dantanda kurung sangat penting dalamprogram komputer. Posisi dan

    jumlahnya dapat mengubah apa yangsedang dinyatakan.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    11/90

    Muhammad Banda Selamat Hal ke 11 dari 90

    gunakan dalam program kita. Kita dapat melakukan beberapa operasi yangberbeda pada objek-objek ini. Kita telah menggunakan operasi WriteLinedalam program kita. Operasi WriteLine diikuti dengan S a l a m … dalamtanda kutip. Teks ini di umpan sebagai input ke dalam operasi WriteLine ,yang kemudian di cetak ke pengguna. Beberapa operasi memerlukan satuatau lebih input sementara ada juga yang tidak memerlukan input.

    Program kita yang keduaSekarang kita mulai memahami program kita yang pertama, berikutnya marikita membuatnya lebih menarik dengan menambahkan beberapa warna.

    TextWindow.ForegroundColor = "Yellow"TextWindow.WriteLine("Hello World")

    Gambar 1 – Menambahkan Warna

    Jika kita jalankan program tersebut, kita akan melihat kata “Hello World” didalam TextWindow, dicetak dengan warna kuning.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    12/90

    Muhammad Banda Selamat Hal ke 12 dari 90

    Gambar 2 - Hello World berwarna kuning

    Perhatikan pernyataan baru yang kita tambahkan di program awal kita.Pernyataan ini menggunakan kata baru, ForegroundColor yang kita sambungdengan tanda sama dengan ke suatu nilai “Yellow.” Ini berarti kita telahmenetapkan “Yellow” untuk ForegroundColor.

    Perbedaan antara ForegroundColor dan operasi WriteLine adalahForegroundColor tidak memerlukan input dan juga tidak memerlukan tandakurung. Operasi ini diikuti oleh tanda “ = “ sebagai simbol dan sebuah kata.

    Kita definisikan ForegroundColor sebagai Property dari TextWindow.

    Berikut ini daftar nilai yang bisa digunakan untuk property ForegroundColor.Cobalah ganti “Yellow” dengan salah satu nilai-nilai ini dan perhatikanhasilnya – jangan lupa tanda kutipnya, karena nilai-nilai ini memerlukan tandabaca.

    BlackBlueCyanGrayGreenMagentaRedWhiteYellowDarkBlueDarkCyanDarkGray

    DarkGreenDarkMagentaDarkRedDarkYellow

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    13/90

    Muhammad Banda Selamat Hal ke 13 dari 90

    Bab 3

    Variabel

    Menggunakan variabel di dalam programBukankah sangat menyenangkan bila program kita dapat mengatakan “Hello”diikuti dengan nama seseorang, selain hanya mengatakan “Hello World?” .Untuk dapat mengatakan itu, mula-mula kita harus bertanya siapa namapengguna komputer dan kemudian menyimpannya pada suatu tempat dankemudian mencetak “Hello” diikuti dengan nama pengguna itu. Lihatlah

    bagaimana kita membuatnya:

    TextWindow.Write("Nama anda: ")nama = TextWindow.Read()TextWindow.WriteLine("Hello " + nama)

    Saat kita jalankkan program ini, kita akan melihat keluaran seperti berikut:

    Gambar 3 – Menanyakan nama pengguna

    dan ketika kita mengetikkan suatu nama, dan menekan ENTER, kita akanmelihat keluaran berikut:

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    14/90

    Muhammad Banda Selamat Hal ke 14 dari 90

    Gambar 4 – Hello yang ramah

    Jika kita jalan program itu lagi, kita akan ditanya dengan pertanyaan yangsama lagi. Kita dapat mengetikkan nama yang berbeda dan komputer akanmengucapkan Hello dengan nama itu.

    Analisis programPada program yang baru kita jalankan, baris program yang menarik perhatiankita adalah:

    nama = TextWindow.Read()

    Read() kelihatannya sama seperti WriteLine() , tetapi tanpa memerlukan input.Objek ini merupakan suatuoperasi dan pada dasarnyamengatakan pada komputeruntuk menunggu penggunakomputer mengetik sesuatu danmenekan tombol ENTER. Sekalitombol ENTER ditekan, operasi inimengambil apa yang telah diketikpengguna danmengembalikannya ke dalamprogram. Yang menarik adalah apapun yang pengguna itu ketikkan makaakan disimpan ke dalam suatu variabel yaitu nama . Variabel didefinisikansebagai suatu tempat dimana kita dapat menyimpan nilai sementara danmenggunakannya di waktu lain. Pada baris di atas, nama digunakan untukmenyimpan nama pengguna.

    Baris program berikutnya juga menarik:

    TextWindow.WriteLine("Hello " + nama)

    Write , sepeti halnya WriteLine adalahoperasi lain di dalam ConsoleWindow.Write memberikan kita izin untuk

    menulis ke ConsoleWindow danmembolehkan teks berikutnya beradadi baris yang sama dengan teks yangsekarang.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    15/90

    Muhammad Banda Selamat Hal ke 15 dari 90

    Inilah tempat dimana kita menggunakan nilai yang tersimpan di dalamvariabel nama . Kita ambil nilai di dalam nama dan menambahkannya kedalam “Hello” dan menuliskannya ke TextWindow.

    Sekali variabel telah ditetapkan, kita dapat menggunakannya berulang-ulangkali. Sebagai contoh, kita dapat menuliskan:

    TextWindow.Write("Nama anda: ")nama = TextWindow.Read()TextWindow.Write("Hello " + nama + ". ")TextWindow.WriteLine("Apa kabar kamu " + nama + "?")

    dan kita akan mendapatkan keluaran berikut:

    Ganbar 5 – Penggunaan variabel yang berulang

    Aturan penamaan variabelVariabel-variabel memiliki nama yang es have names berkaitan dengannya

    dan begitulah kita dapat mengenalinya. Ada aturan sederhana dan menjadipetunjuk yang baik untuk penamaan variabel ini, yaitu:

    1. Nama variabel harus dimulai dengan huruf dan tidak boleh tumpangtindih dengan kata kunci seperti if , for , then , dan lainnya.

    2. Nama variabel dapat berupa kombinasi berbagai huruf, angka dangaris bawah.

    3. Sangat berguna bila nama variabel memiliki makna tertentu – karenavariabel dapat memiliki panjang berapa saja, untuk menjelaskan apaisinya.

    Bermain dengan angka-angkaKita telah pelajari sebelumnya bagaimana variabel dapat digunakan untukmenyimpan nama pengguna komputer. Program berikut ini akanmemperlihatkan bagaimana kita dapat menyimpan dan memanipulasi angka-angka yang ada dalam variabel. Berikut contoh program sederhana:

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    16/90

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    17/90

    Muhammad Banda Selamat Hal ke 17 dari 90

    Gambar 7 – Mengalikan dua angka

    Dengan cara yang sama kita dapat mengurangi atau menambahkan bilangan.Berikut contoh pengurangan:

    angka3 = angka1 - angka2

    Simbol untuk pembagian adalah ‘/’. Bentuk programnya adalah:

    angka3 = angka1 / angka2

    Hasil operasi pembagiannya adalah:

    Gambar 8 – Membagi dua angka

    Konverter suhu sederhana

    Program berikutnya akan menggunakan formula untuk meng-

    konversi suhu Fahrenheit ke Celsius.

    Mula-mula, kita minta nilai suhu Fahrenheit dari pengguna danmenyimpannya ke dalam suatu variabel. Ada operasi khusus yangmemungkinkan kita untuk membaca nilai yang dimasukkan oleh pengguna,yaitu TextWindow.ReadNumber .

    TextWindow.Write("masukkan nilai suhu dalam satuanFahrenheit: ")fahr = TextWindow.ReadNumber()

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    18/90

    Muhammad Banda Selamat Hal ke 18 dari 90

    setelah kita memiliki nilai suhu Fahrenheit yang tersimpan dalam variabel, kitadapat mengubahnya ke satuan Celsius menggunakan pernyataan:

    celsius = 5 * (fahr - 32) / 9

    tanda kurung akan memerintahkan komputer untuk menghitung fahr – 32 terlebih dahulu dan baru kemudian memproses yang lainnya. Gabungkansemua pernyataan, maka kita peroleh bentuk program berikut:

    TextWindow.Write("masukkan nilai suhu dalam satuanFahrenheit: ")fahr = TextWindow.ReadNumber()

    celsius = 5 * (fahr - 32) / 9TextWindow.WriteLine("Nilai suhu dalam satuan Celsiusadalah " + celsius)

    Dan hasilnya akan terlihat seperti berikut:

    Gambar 9 – Konversi Suhu

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    19/90

    Muhammad Banda Selamat Hal ke 19 dari 90

    Bab 4

    Kondisi dan Percabangan

    Kita kembali ke program pertama, bukankah lebih menyenangkan bila kitaselain mengucapkan Hello World , kita juga dapat mengucapkan selamat pagi,atau Selamat malam sesuai dengan perubahan waktu di hari tersebut? Untukprogram kita berikutnya, kita akan membuat komputer menyapa denganselamat pagi bila jam belum menunjukkan pukul 12 siang dan selamatmalam jika waktu telah lewat dari jam 12 siang.

    If (Clock.Hour < 12) ThenTextWindow.WriteLine("selamat pagi")

    EndIfIf (Clock.Hour >= 12) Then

    TextWindow.WriteLine("selamat malam")EndIf

    Tampilan program setelah dijalankan adalah sebagai berikut:

    Gambar 10 – Selamat pagi

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    20/90

    Muhammad Banda Selamat Hal ke 20 dari 90

    Gambar 11 – Selamat malam

    Coba kita analisa tiga barispertama program itu. Kita tahubahwa baris-baris ini mengatakanpada komputer bahwa apabilaClock.Hour kurang dari 12, makacetak “selamat pagi .” Kata-kata If ,Then dan EndIf adalah kata-katakhusus yang dimengerti olehkomputer manakala programdijalankan. Kata If selalu diikuti dengan suatu kondisi, yang dalam kasus iniadalah ( Clock.Hour < 12) . Ingat tanda kurung itu diperlukan agar komputermengetahui apa yang menjadi penekanan kita. Kondisi diikuti oleh then danoperasi aktual di jalankan. Setelah operasi jumpai EndIf yang mengatakanpada komputer bahwa kondisi yang dijalankan telah selesai.

    Diantara then dan EndIf , dapat diisi lebih dari satu operasi dan komputerakan menjalankannya semua jika kondisinya masih terpenuhi. Sebagaicontoh, kita dapat menulis seperti ini:

    If (Clock.Hour < 12) ThenTextWindow.Write("selamat pagi. ")TextWindow.WriteLine("sudah sarapan?")

    EndIf

    ElsePada program yang kita buat di awal bab ini, kita melihat bahwa terdapatpengulangan di kondisi kedua. Nilai Clock.Hour dapa bernilai kurang dari 12atau tidak. Sebenarnya kita tidak perlu melakukan pengecekan kedua. Padasituasi seperti ini, kita dapat menyingkat dua pernyataan if..then..endif menjadi hanya satu pernyataan dengan hanya menambah satu kata, else .

    Di Small Basic, kita dapat menggunakanobjek Clock untuk mengakses waktudan tanggal saat ini. Objek ini jugamemberikan kita banyak pilihan untuk

    mengetahui hari sekarang, bulan,tahun, jam, menit dan detik.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    21/90

    Muhammad Banda Selamat Hal ke 21 dari 90

    Jika menuliskan program dengan menggunakan else , maka tampilannyaadalah sebagai berikut:

    If (Clock.Hour < 12) ThenTextWindow.WriteLine("selamat pagi")Else

    TextWindow.WriteLine("selamat malam")EndIf

    Dan program tersebut memberikan hasil kerja yang persis sama denganprogram sebelumnya, hal ini memberi kita satu pelajaran penting dalampemrograman komputer:

    Di dalam pemrograman, selalu ada banyak cara untuk mengerjakanhal yang sama. Pilihannya bergantung pada programmer. Bila kitamenulis lebih banyak program dan lebih banyak pengalaman, kitamulai banyak menemukan teknik-teknik yang berbeda dengan

    berbagai kelebihan dan kekurangannya.

    IndentasiDari semua contoh yang telah kita buat, semua pernyataan di antara If, Else dan EndIf diberi inden (spasi masuk). Indentasi sebenarnya tidak penting.

    Komputer sendiri dapat mengerti program tanpa harus menyisipkan indent.Indent tersebut digunakan untuk membantu kita memahami strukturprogram, sehingga dianggap sebagai cara yang baik untuk memberikanindent diantara blok-blok pernyataan.

    Ganjil atau genapKita telah menggunakan pernyataan If..Then..Else..EndIf , coba kita tulis satuprogram, berikan satu nilai, dan kita akan tentukan apakah bilangan itu ganjilatau genap.

    TextWindow.Write("berikan satu bilangan: ")num = TextWindow.ReadNumber()remainder = Math.Remainder(num, 2)If (remainder = 0) Then

    TextWindow.WriteLine("ini bilangan genap")Else

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    22/90

    Muhammad Banda Selamat Hal ke 22 dari 90

    TextWindow.WriteLine("ini bilangan ganjil")EndIf

    Tampilan program setelah dijalankan:

    Gambar 12 – Genap atau ganjil

    Program ini memperkenalkan kita operasi baru yang sangat berguna,Math.Remainder . dan seperti yang telah kita lihat, Math.Remainder akan

    membagi bilangan pertama dengan bilangan kedua dan memberikan nilaisisa pembagaiannya.

    PercabanganIngat, di bab dua kita telah belajar bahwa komputer memproses satu programdalam satu waktu, berurut dari atas hingga ke bawah. Namun, ada jugapernyataan khusus yang dapat membuat komputer untuk meloncat kepernyataan lainnya. Coba lihat program berikut:

    i = 1start:TextWindow.WriteLine(i)i = i + 1If (i < 25) Then

    Goto startEndIf

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    23/90

    Muhammad Banda Selamat Hal ke 23 dari 90

    Gambar 13 – Penggunaan Goto

    Pada program tersebut, kita telah menetapkan nilai 1 pada variabel i.kemudian kita tambahkan satu baris pernyataan yang diakhiri dengan tandatitik dua (:)

    start:

    ini disebut sebagai label . Label seperti juga pembatas buku (bookmark)adalah kata yang dimengerti oleh komputer. Kita dapat memberi label apa

    saja dan sebanyak yang kita inginkan di dalam program, sepanjang namanyaunik.

    Pernyataan lain yang menarik adalah:

    i = i + 1

    pernyataan ini mengatakan pada komputer untuk menambah 1 ke variabel i dan tetapkan lagi ia sebagai variabel i. sehingga bila sebelum pernyataan itu,

    nilai i adalah 1 maka nilainya menjadi 2 setelah pernyataan itu dijalankan.Dan akhirnya,

    If (i < 25) ThenGoto start

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    24/90

    Muhammad Banda Selamat Hal ke 24 dari 90

    EndIf

    Ini adalah bagian yang mengatakan pada komputer bahwa bila nilai i kurang

    dari 25, maka mulailah menjalankan pernyataan dari label start .

    Eksekusi tanpa akhirPernyataan Goto dapat membuat kita meminta komputer untuk mengerjakansesuatu berulang-ulang kali. Sebagai contoh, kita dapat susun kembaliprogram genap ganjil dan memodifikasinya seperti di bawah, dan program iniakan berjalan terus menerus. Kita dapat menghentikan program ini denganmenekan tombol Close (X) button pada pojok kanan atas jendelanya.

    begin:TextWindow.Write("berikan satu bilangan: ")num = TextWindow.ReadNumber()remainder = Math.Remainder(num, 2)If (remainder = 0) Then

    TextWindow.WriteLine("bilangan genap")Else

    TextWindow.WriteLine("bilangan ganjil")EndIfGoto begin

    Gambar 14 – Genap atau ganjil berjalan tanpa henti

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    25/90

    Muhammad Banda Selamat Hal ke 25 dari 90

    Bab 5

    Pengulangan

    ForMari kita lihat kembali program yang telah kita tulis di bab sebelumnya.

    i = 1

    start:TextWindow.WriteLine(i)i = i + 1If (i < 25) Then

    Goto startEndIf

    Program ini mencetak angka dari 1 hingga 24 secara berurutan. Prosesmengurutkan variabel sangat umum di dalam pemrograman karena bahasa

    pemrograman biasanya memberikan metode yang lebih mudah untukmelakukannya. Program di atas sebenarnya sama saja dengan programberikut ini:

    For i = 1 To 24TextWindow.WriteLine(i)

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    26/90

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    27/90

    Muhammad Banda Selamat Hal ke 27 dari 90

    Gambar 16 – hanya bilangan ganjil

    Step 2 sebagai bagian dari pernyataan For meminta komputer untukmenaikkan nilai i dua angka yang biasanya hanya 1. Dengan menggunakanStep kita dapat menetapkan berapa kenaikan nilai yang kita inginkan.Bahkan kita dapat menetapkan nilai negatif sehingga komputer akanmenghitung mundur, seperti contoh di bawah ini:

    For i = 10 To 1 Step -1TextWindow.WriteLine(i)

    EndFor

    Gambar 17 – Menghitung mundur

    WhileWhile adalah metode pengulangan (loop) yang lainnya, sangat bergunakhususnya bila hitungan loop itu tidak diketahui. Jika loop For dijalankanmengikuti hitungan waktu tertentu, loop While dijalankan hingga suatukondisi terpenuhi. Contoh di bawah ini, kita membagi dua suatu bilangan

    hingga diperoleh nilai lebih besar dari 1.

    number = 100While (number > 1)

    TextWindow.WriteLine(number)number = number / 2

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    28/90

    Muhammad Banda Selamat Hal ke 28 dari 90

    EndWhile

    Gambar 18 – Loop pembagian dua

    Pada program di atas, kita berikan nilai 100 ke number dan menjalankanpengulangan while sebanyakmungkin selama nilainya masihlebih besar dari 1. Di dalam

    pengulangan, kita cetak suatubilangan dan kemudianmembaginya dengan dua,sehingga menjadi setengahnya.Seterusnya keluaran program adalah suatu nilai nilanya setengah dari nilaisebelumnya.

    Sangat sulit untuk menulis program ini menggunakan pengulangan For,karena kita tidak tahu seberapa banyak harus melakukan pengulangan.Pengulangan while lebih mudah untuk dicek kondisinya sehingga kita dapatmeminta komputer untuk melanjutkan atau menghentikan pengulangan.

    Satu hal yang menarik adalah bahwa setiap pengulangan while loop dapat diperpendek dengan pernyataan If..Then. Sebagai contoh, program di atasdapat kembali di tulis seperti di bawah ini, tanpa mengubah hasil akhirnya.

    number = 100startLabel:TextWindow.WriteLine(number)

    number = number / 2

    If (number > 1) ThenGoto startLabel

    EndIf

    Kenyataannya, secara internal komputermenulis setiap loop while sebagaipernyataan if...Then diikuti oleh satuatau lebih pernyataan Goto.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    29/90

    Muhammad Banda Selamat Hal ke 29 dari 90

    Bab 6

    Mulai belajar Grafik

    Sejauh ini di semua contoh yang kita gunakan, kita menggunakanTextWindow untuk memberikan gambaran dasar bahasa Small Basic.Padahal, Small Basic memiliki kemampuan grafik yang luar biasa yang akanmulai kita jelajahi pada bab ini.

    Berkenalan dengan GraphicsWindowSeperti halnya TextWindow yang memungkinkan kita untuk bekerja dengan

    Teks dan angka, Small Basic juga menyediakan GraphicsWindow yang dapatkita gunakan untuk menggambar berbagai objek. Coba kita lihat tampilandari GraphicsWindow.

    GraphicsWindow.Show()

    Jika program ini kita jalankan, kita lihat bahwa selain menggunakan jendelateks berwarna hitam, kita juga mendapatkan jendela berwarna putih sepertiyang ditampilkan pada Gambar 23. Untuk sementara, tidak ada yang bisadilakukan pada jendela tersebut. Tetapi jendela ini akan menjadi dasar untukbekerja di bab ini. Kita dapat menutup jendela tersebut dengan memilihtombol ‘X’yang ada di pojok kanan atas.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    30/90

    Muhammad Banda Selamat Hal ke 30 dari 90

    Figure 19 - An empty Graphics Window

    Menyiapkan jendela grafikJendela grafik memungkinkan kita untuk menata tampilannya mengikutikeinginan kita. Kita dapat mengubah judul, latar belakang dan ukurannya.Coba kita lakukan sedikit modifikasi, agar terbiasa dengan jendela ini.

    GraphicsWindow.BackgroundColor = "SteelBlue"GraphicsWindow.Title = "My Graphics Window"GraphicsWindow.Width = 320GraphicsWindow.Height = 200GraphicsWindow.Show()

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    31/90

    Muhammad Banda Selamat Hal ke 31 dari 90

    Berikut hasil penataan jendela yang telah kita lakukan. Kita dapat mengubahwarna latar belakang dengan pilihan warna yang ada di lampiran B. Cobalahmodifikasi tampilan jendela tersebut.

    Gambar 20 – Tampilan jendela grafik

    Menggambar garisJika kita telah menjalankan GraphicsWindow, kita bisa menggambarkanbentuk-bentuk geometrik, teks dan bahkan gambar di jendela tersebut. Marikita mulai dengan menggambarkan bentuk yang sederhana. Berikut iniprogram yang kita gunakan untuk menggambarkan sepasang garis di jendelagrafik.

    GraphicsWindow.Width = 200GraphicsWindow.Height = 200GraphicsWindow.DrawLine(10, 10, 100, 100)GraphicsWindow.DrawLine(10, 100, 100, 10)

    Gambar 21 – garis silang

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    32/90

    Muhammad Banda Selamat Hal ke 32 dari 90

    Dua baris pada bagian awalprogram mengatur jendela dandua baris berikutnyamenggambarkan garis silang. Duaangka pertama yang mengikutiDrawLine menetapkan titikkoordinat awal x dan y dan duanilai berikutnya adalah koordinat akhir. Hal yang menarik dengan komputergrafik adalah bahwa koordinat (0, 0) di mulai dari sudut kiri atas jendela.Hasilnya koordinat ruang jendela tersebut dapat dianggap sebagai kuadranke dua.

    Gambar 22 – koordinat

    Jika kita kembali ke baris program, sangat menarik bahwa kita dapatmengubah tampilan garis, seperti warna dan ketebalannya. Coba kita ubah

    warna garis menggunakan program di bawah ini.

    GraphicsWindow.Width = 200GraphicsWindow.Height = 200GraphicsWindow.PenColor = "Green"GraphicsWindow.DrawLine(10, 10, 100, 100)GraphicsWindow.PenColor = "Gold"GraphicsWindow.DrawLine(10, 100, 100, 10)

    Selain menggunakan nama untukwarna yang sedang kita gunakan, kita

    juga dapat menggunakan notasi warnaweb (#RRGGBB). Contoh, #FF0000berarti merah, #FFFF00 untuk kuning,dan seterusnya.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    33/90

    Muhammad Banda Selamat Hal ke 33 dari 90

    Gambar 23 – mengubah warna garis

    Berikutnya kita akan mengubah ukuran garisnya. Pada program di bawah inikita ubah ketebalan garis menjadi 10, tebal standarnya adalah 1.

    GraphicsWindow.Width = 200GraphicsWindow.Height = 200GraphicsWindow.PenWidth = 10GraphicsWindow.PenColor = "Green"GraphicsWindow.DrawLine(10, 10, 100, 100)GraphicsWindow.PenColor = "Gold"GraphicsWindow.DrawLine(10, 100, 100, 10)

    Gambar 24 – Ketebalan warna garis

    PenWidth dan PenColor mengubah pena yang digunakan untukmenggambarkan garis. Kedua operasi itu tidak hanya mengubah tampilangaris, tetapi juga semua bentuk yang dibuat setelah sifat-sifatnya di ubah.

    Dengan menggunakan pernyataan pengulangan, kita dengan mudahmembuat program yang menggambarkan banyak garis dan sekaligusmenambah ketebalan pena.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    34/90

    Muhammad Banda Selamat Hal ke 34 dari 90

    GraphicsWindow.BackgroundColor = "Black"GraphicsWindow.Width = 200GraphicsWindow.Height = 160GraphicsWindow.PenColor = "Blue"

    For i = 1 To 10GraphicsWindow.PenWidth = iGraphicsWindow.DrawLine(20, i * 15, 180, i * 15)

    endfor

    Gambar 25 – Berbagai ukuran ketebalan pena

    Bagian yang paling menarik pada program di atas adalah pengulangan,dimana kita tingkatkan nilai PenWidth setiap kali loop dijalankan danmenggambarkan baris baru di bawah baris sebelumnya.

    Menggambar dan mengisi bentukKetika kita menggambarkan suatu bentuk, selalu ada dua operasi yangbekerja, yaitu operasi Draw dan operasi Fill . Operasi Draw menggambarkangaris batas bentuk tersebut dengan menggunakan pena, dan operasi Fillmewarnai bentuk tersebut menggunakan kuas. Sebagai contoh padaprogram berikut, terdapat dua persegi panjang, yang satu digambar denganmenggunakan pena dan satunya lagi diisi dengan kuas berwarna hijau.

    GraphicsWindow.Width = 400GraphicsWindow.Height = 300

    GraphicsWindow.PenColor = "Red"GraphicsWindow.DrawRectangle(20, 20, 300, 60)

    GraphicsWindow.BrushColor = "Green"

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    35/90

    Muhammad Banda Selamat Hal ke 35 dari 90

    GraphicsWindow.FillRectangle(60, 100, 300, 60)

    Gambar 26 menggambar dan mewarnai

    Untuk menggambar atau mewarnai persegi panjang, kita perlu empat nilai.Dua nilai pertama merupakan koordinat x dan y dari pojok kanan atas bidangpersegi tersebut. Nilai ketiga merincikan lebar bidang persegi itu dan nilaikeempat menentukan tingginya. Program berikut menghasilkan bentuk-bentuk elips.

    GraphicsWindow.Width = 400GraphicsWindow.Height = 300

    GraphicsWindow.PenColor = "Red"GraphicsWindow.DrawEllipse(20, 20, 300, 60)

    GraphicsWindow.BrushColor = "Green"GraphicsWindow.FillEllipse(60, 100, 300, 60)

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    36/90

    Muhammad Banda Selamat Hal ke 36 dari 90

    Gambar 27 – menggambar dan mewarnai elips

    Elips adalah kasus umum dari lingkaran. Jika kita ingin menggambar

    lingkaran, kita harus memberikan nilai lebar dan tinggi yang sama.

    GraphicsWindow.Width = 400GraphicsWindow.Height = 300

    GraphicsWindow.PenColor = "Red"GraphicsWindow.DrawEllipse(20, 20, 100, 100)

    GraphicsWindow.BrushColor = "Green"

    GraphicsWindow.FillEllipse(100, 100, 100, 100)

    Gambar 28 – Lingkaran

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    37/90

    Muhammad Banda Selamat Hal ke 37 dari 90

    Bab 7

    Bermain dengan Bentuk

    Bab ini akan membawa kita bermain-main dengan apa yang telah kita pelajarisebelumnya. Bab ini berisi contoh-contoh yang memperlihatkan berbagaicara menarik dalam menggabungkan apa yang telah kita pelajari untukmenghasilkan tampilan program yang menawan.

    RectangaloreProgram berikut menggambarkan bidang persegi yang berulang, danukurannya semakin besar.

    GraphicsWindow.BackgroundColor = "Black"GraphicsWindow.PenColor = "LightBlue"GraphicsWindow.Width = 200GraphicsWindow.Height = 200

    For i = 1 To 100 Step 5GraphicsWindow.DrawRectangle(100 - i, 100 - i, i * 2, i

    * 2)EndFor

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    38/90

    Muhammad Banda Selamat Hal ke 38 dari 90

    Gambar 29 - Rectangalore

    CirctacularMirip dengan program sebelumnya, menggambarkan lingkaran yang secaraberulang dan bertambah ukurannya.

    GraphicsWindow.BackgroundColor = "Black"GraphicsWindow.PenColor = "LightGreen"GraphicsWindow.Width = 200GraphicsWindow.Height = 200

    For i = 1 To 100 Step 5GraphicsWindow.DrawEllipse(100 - i, 100 - i, i * 2, i *

    2)

    EndFor

    Gambar 30 – Circtacular

    PengacakanProgram ini menggunakan GraphicsWindow. GetRandomColor untukmenghasilkan warna acak pada kuas dan kemudian menggunakan

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    39/90

    Muhammad Banda Selamat Hal ke 39 dari 90

    Math.GetRandomNumber untuk menetapkan koordinat x dan y padalingkarannya. Kedua operasi ini dapat dikombinasikan dengan cara-cara yangmenarik untuk menghasilkan program-program yang memberikan tampilanberbeda setiap kali ia dijalankan.

    GraphicsWindow.BackgroundColor = "Black"For i = 1 To 1000

    GraphicsWindow.BrushColor =GraphicsWindow.GetRandomColor()

    x = Math.GetRandomNumber(640)y = Math.GetRandomNumber(480)GraphicsWindow.FillEllipse(x, y, 10, 10)

    EndFor

    Gambar 31 – Pengacakan

    FraktalProgram berikut ini dapat menggambarkan fraktal segitiga sederhana denganmenggunakan bilangan acak. Suatu fraktal adalah bangun geometrik yangdapat dibagi menjadi bagian-bagian ang lebih kecil, yang setiap bagiantersebut secara tepat menyerupai bentuk induknya. Pada kasus ini, program

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    40/90

    Muhammad Banda Selamat Hal ke 40 dari 90

    kita menggambarkan ratusan bentuk segitiga yang masing-masingnyamerupakan duplikat dari segitiga induk dalam ukuran yang lebih kecil. Olehkarena program berjalan dalam waktu beberapa saat, kita akan dapat melihatbagaimana segitiga tersebut terbentuk dari hanya titik-titik. Logikanyasendiri agak sulit untuk dijelaskan dan kita masih perlu mengenalnya lebih

    jauh dengan banyak latihan.

    GraphicsWindow.BackgroundColor = "Black"x = 100y = 100

    For i = 1 To 100000r = Math.GetRandomNumber(3)ux = 150uy = 30If (r = 1) then

    ux = 30uy = 1000

    EndIf

    If (r = 2) Thenux = 1000

    uy = 1000EndIf

    x = (x + ux) / 2y = (y + uy) / 2

    GraphicsWindow.SetPixel(x, y, "LightGreen")EndFor

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    41/90

    Muhammad Banda Selamat Hal ke 41 dari 90

    Figure 32 - Triangle Fractal

    Jika kita ingin melihat bagaimana titik-titik secara perlahan membentukfraktal, kita dapat menambahkan penundaan waktu loop denganmenggunakan operasi Program. Delay . operasi ini akan menunda waktudalam beberapa milidetik sesuai dengan yang kita tetapkan. Berikutmodifikasi programnya, baris yang diubah dicetak tebal.

    GraphicsWindow.BackgroundColor = "Black"x = 100y = 100

    For i = 1 To 100000r = Math.GetRandomNumber(3)ux = 150uy = 30If (r = 1) then

    ux = 30uy = 1000

    EndIf

    If (r = 2) Then

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    42/90

    Muhammad Banda Selamat Hal ke 42 dari 90

    ux = 1000uy = 1000

    EndIf

    x = (x + ux) / 2y = (y + uy) / 2

    GraphicsWindow.SetPixel(x, y, "LightGreen")Program.Delay(2)

    EndFor

    Menambah waktu tunda akan membuat program menjadi lebih lambat. Cobaubah beberapa kali nilai tundanya dan tentukan waktu yang sesuai dengankeinginan.

    Modifikasi lain yang dapat kita buat terhadap program ini adalah denganmengganti baris berikut:

    GraphicsWindow.SetPixel(x, y, "LightGreen")

    dengan

    color = GraphicsWindow.GetRandomColor()GraphicsWindow.SetPixel(x, y, color)

    Penggantian ini akan membuat program menggambarkan pixel-pixel padasegitiga dengan beragam warna.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    43/90

    Muhammad Banda Selamat Hal ke 43 dari 90

    Bab 8

    Grafik Kura-kura

    LogoDi tahun 1970 an ada bahasa pemrograman yang sederhana tetapi sangatberjaya, digunakan oleh beberapa peneliti, dan diberi nama Logo. Nama logoini berganti setelah seseorang menambahkan “grafik kura-kura ” ke dalambahasa tersebut dan membuat “seekor kura-kura ” tampil di layar sambilmenanggapi berbagai perintah seperti Move Forward, Turn Right, Turn Left,dan lainnya. Dengan menggunakan kura-kura itu, orang dapat menggambarberbagai bentuk yang menarik di layar komputer. Hal ini membuat bahasapemrograman menjadi dapat diakses oleh banyak orang dari berbagai usia,dan menjadi penyebab utama meledaknya popularitas bahasa pemrogramandi tahun 1980 an.

    Small Basic juga dilengkapi dengan objek Turtle (kura-kura) yang dapatmerespon banyak program yang dipanggil dari dalam program Small Basic.

    Pada bab ini kita akan menggunakan kura-kura untuk menggambarkan grafikdi layar komputer kita.

    Sang Kura-kuraUntuk memulainya, kita harus menampilkan kura-kura tersebut di layar. Kitadapat menggunakan satu baris program sederhana untuk keperluan itu.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    44/90

    Muhammad Banda Selamat Hal ke 44 dari 90

    Turtle.Show()

    Saat program ini dijalankan, akan

    terlihat jendela putih denganseekor kura-kura pada bagianpusatnya. Inilah kura-kura yangakan mengikuti perintah kita danmenggambarkan apa saja yangkita minta.

    Gambar 33 – kura-kura

    Bergerak dan menggambarSalah satu perintah yang dimengerti oleh kura-kura adalah Move . Operasi inimemerlukan suatu nilai sebagai masukan. Nilai ini menjadi patokan sebarapa

    jauh kura-kura itu bergerak. Misalkan pada contoh berikut, kita memintakura-kura untuk bergerak sejauh 100 piksel.

    Turtle.Move(100)

    Saat program dijalankan, kita dapat melihat bagaimana kura-kura secaraperlahan bergerak 100 piksel ke arah atas. Selama kura-kura itu bergerak, ia

    Kita tidak perlu memanggil Show()ketika menggunakan operasi padaTurtle. Turtle secara otomatis terlihatmanakala salah satu operasinya di

    jalankan.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    45/90

    Muhammad Banda Selamat Hal ke 45 dari 90

    juga menggambar garis di belakangnya. Saat kura-kura berhenti, hasilnyakurang lebih seperti pada Gambar 38.

    Gambar 34 – Bergerak sepanjang seratus piksel

    Menggambar kotakSuatu segi empat memiliki empat sisi, dua vertikal dan dua horisontal. Untukmenggambarkan segi empat, kita perlu membuat kura-kura menggambarkansuatu garis, belok ke kanan dan menggambarkan garis yang lain dan

    melanjutkannya hingga keempat sisi diselesaikan. Jika kita terjemahkan kedalam program, maka tampilannya adalah sebagai berikut:

    Turtle.Move(100)Turtle.TurnRight()Turtle.Move(100)Turtle.TurnRight()Turtle.Move(100)Turtle.TurnRight()Turtle.Move(100)Turtle.TurnRight()

    Ketika kita menjalankan program ini, kita dapat menyaksikan kura-kuramenggambarkan suatu segiempat, satu garis dalam satu waktu dan hasilnyaadalah seperti gambar di bawah ini.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    46/90

    Muhammad Banda Selamat Hal ke 46 dari 90

    Gambar 35 – Kura-kura menggambar segiempat

    Coba perhatikan bahwa kita telah menggunakan dua instruksi secaraberulang-ulang, sebanyak empat kali tepatnya. Dan kita telah mempelajaribahwa perintah berulang seperti itu dapat dijalankan dengan menggunakanloop. Jadi jika kita mengambil program di atas dan memodifikasinyamenggunakan loop For..EndFor , kita akan mendapatkan program yang lebihsederhana.

    For i = 1 To 4Turtle.Move(100)Turtle.TurnRight()

    EndFor

    Mengganti warnaKura-kura menggambar di jendela grafik yang sama dengan yang kita lihatpada bab sebelumnya. Ini berarti semua operasi yang kita pelajari tetapberlaku disini. Sebagai contoh, program berikut akan menggambarkan segiempat yang setiap sisinya memiliki warna berbeda.

    For i = 1 To 4GraphicsWindow.PenColor =

    GraphicsWindow.GetRandomColor()

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    47/90

    Muhammad Banda Selamat Hal ke 47 dari 90

    Turtle.Move(100)Turtle.TurnRight()

    EndFor

    Gambar 36 – Pengubahan warna

    Menggambar bentuk yang lebih rumitSang kura-kura, selain dapat melakukan operasi TurnRight dan TurnLeft ,

    juga memiliki operasi Turn . Operasi ini memerlukan satu input yangmenentukan besarnya sudut rotasi. Dengan menggunakan operasi ini, kitadapat menggambarkan berapa saja sisi poligon. Program berikut inimenggambarkan hexagon ( poligon enam sisi).

    For i = 1 To 6Turtle.Move(100)Turtle.Turn(60)

    EndFor

    Cobalah program ini apakah benar-benar dapat menggambarkan hexagon.Amati bahwa sudut antar sisi adalah 60 derajat, sehingga kita gunakanTurn(60) . Untuk poligon seperti itu, yang semua sisinya sama, sudut antarsisi dapat dengan mudah dihitung dengan cara membagi 360 terhadapbanyaknya sisi. Lengkapi dengan informasi ini dan gunakan variabel, kita

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    48/90

    Muhammad Banda Selamat Hal ke 48 dari 90

    dapat menulis program generik yang bagus yang dapat menggambar berapasaja sisi poligon.

    sides = 12

    length = 400 / sidesangle = 360 / sides

    For i = 1 To sidesTurtle.Move(length)Turtle.Turn(angle)

    EndFor

    Dengan menggunakan program ini, kita dapat menggambar poligon apa sajahanya dengan mengubah variabel sides . Bila nilainya kita masukkan 4 makaakan kita dapatkan bentuk empat persegi. Dan bila nilainya kita masukkanmenjadi misalnya 50, maka hasilnya adalah poligon yang bentuknya miripdengan lingkaran.

    Gambar 37 - Poligon 12 sisi

    Dengan teknik yang telah kita pelajari d atas, kita dapat membuat kura-kuramenggambarkan banyak lingkaran setiap saat dengan sedikit pergeseransehingga menghasilkan tampilan yang menarik.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    49/90

    Muhammad Banda Selamat Hal ke 49 dari 90

    sides = 50length = 400 / sidesangle = 360 / sides

    Turtle.Speed = 9

    For j = 1 To 20For i = 1 To sides

    Turtle.Move(length)Turtle.Turn(angle)

    EndForTurtle.Turn(18)

    EndFor

    Program di atas memiliki dua loop For..EndFor , satu di dalam yang lain.Loop yang di dalam ( i = 1 to sides ) mirip dengan program poligon danberperan dalam menggambarkan lingkaran. Loop yang di luar ( j = 1 to 20 )berperan dalam memutar kura-kura sedikit demi sedikit pada setiap lingkaranyang digambarnya. Pernyataan ini memerintahkan pada kura-kura untukmenggambar 20 lingkaran.Setelah menggabungkan semuapernyataan itu, program ini

    menghasilkan pola yang sangatmenarik seperti terlihat padaGambar di bawah ini.

    Pada program di atas, kita telahmembuat Turtle bergerak lebih cepat

    dengan men-set kecepatan menjadi 9.Kita dapat memberi nilai 1 hingga 10untuk mengatur kecepatan Turtle.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    50/90

    Muhammad Banda Selamat Hal ke 50 dari 90

    Gambar 38 – Lingkaran bergerak

    Bergerak ke mana sajaKita dapat membuat kura-kura tidak menggambar dengan memanggiloperasi PenUp . Perintah ini memungkinkan kura-kura untuk bergerakkemana saja di layar tanpa membuat garis. Dengan memanggil PenDown

    akan membuat kura-kura menggambar lagi. Hal ini dapat kita gunakan untukmenghasilkan efek yang menarik, misalnya garis putus-putus. Berikutprogram yang menggunakan kemampuan ini untuk menggambarkan poligongaris putus-putus.

    sides = 6

    length = 400 / sidesangle = 360 / sides

    For i = 1 To sidesFor j = 1 To 6

    Turtle.Move(length / 12)Turtle.PenUp()Turtle.Move(length / 12)

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    51/90

    Muhammad Banda Selamat Hal ke 51 dari 90

    Turtle.PenDown()EndForTurtle.Turn(angle)

    EndFor

    Lagi-lagi program ini memiliki dua loop. Loop bagian dalammenggambarkan satu garis putus-putus, dan loop yang luar menentukanseberapa banyak garis yang perlu digambar. Pada contoh ini, kitamenggunakan nilai untuk variabel sides sehingga kita dapatkan hexagonbergaris putus-putus.

    Gambar 39 – menggunakan PenUp dan PenDown

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    52/90

    Muhammad Banda Selamat Hal ke 52 dari 90

    Bab 9

    Subrutin

    Seringkali pada saat menulis program, kita dihadapkan pada situasi harusmenjalankan langkah-langkah yang sama berulang kali. Pada kasus-kasusseperti ini, tidaklah bijak bila kita menulis pernyataan yang sama berkali-kali.Ini lah waktu yang tepat untuk menggunak Subrutin .

    Subrutin adalah bagian dari kodedi dalam program yang lebihbesar yang digunakan untukmengerjakan sesuatu secarakhusus, dan dapat dipanggil darimana saja di dalam program.Subrutin dikenali dari nama yangmengikutinya yaitu kata kunci Sub dan diakhiri oleh kata EndSub . Sebagaicontoh, potongan program berikut memperlihatkan subrutin yang diberinama PrintTime , dan subrutin ini bertugas untuk mencetak waktu saat ini ke

    jendela teks.

    Sub PrintTimeTextWindow.WriteLine(Clock.Time)

    EndSub

    Ingatlah, kita hanya dapat memanggil

    subrutin satu kali dalam satu programSmall Basic. Kita tidak dapatmemanggil subrutin itu dari programlain.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    53/90

    Muhammad Banda Selamat Hal ke 53 dari 90

    Berikutnya adalah program yang memanggil subrutin di atas dari sebarangtempat di dalam program.

    PrintTime()TextWindow.Write("Enter your name: ")name = TextWindow.Read()TextWindow.Write(name + ", the time now is: ")PrintTime()

    Sub PrintTimeTextWindow.WriteLine(Clock.Time)

    EndSub

    Gambar 40 – Memanggil Subrutin Sederhana

    Kita dapat menjalankan subrutin dengan memanggil SubroutineName() .Sebagaimana biasa, tanda kurung “()” diperlukana di sini untuk memberitahukomputer bahwa kita akan menjalankan subrutin.

    Keuntungan menggunakan subrutinSubrutin membantu mengurangi banyaknya kode yang harus kita ketik.Sekali kita menulis subrutin PrintTime , kita dapat memanggilnya dari manasaja dan akan mencetak waktu sekarang.

    Subrutin dapat membantuk memilah-milah problem yang rumit menjadibagian-bagian yang lebih sederhana. Misalkan kita punya persamaan yangrumit untuk diselesaikan, kita dapat gunakan beberapa subrutin yang menjadisolusi pada bagian-bagian kecil persamaan tersebut. Kemudian kita dapatmengumpulkan hasil itu untuk mendapatkan solusi bagi persamaan awalnya.

    Subrutin juga dapat memudahkan kita untuk membaca program. Jika kitadapat memberikan nama subrutin yang baik untuk bagian yang seringdijalankan pada program, maka program itu akan lebih dibaca dan difahami.Hal ini penting bila kita juga ingin memahami program orang lain danprogram kita dimengerti oleh orang lain. Kadang-kadang, hal ini juga sangat

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    54/90

    Muhammad Banda Selamat Hal ke 54 dari 90

    membantu pada saat kita membaca program yang kita susun, seminggukemudian.

    Menggunakan variabel

    Kita dapat mengakses dan menggunakan variabel apa saja yang ada dalamprogram untuk suatu subrutin. Sebagai contoh program berikut menerimadua bilangan dan mencetak bilangan terbesar dari keduanya. Perhatikanbahwa variabel max digunakan di dalam dan di luar subrutin.

    TextWindow.Write("Enter first number: ")num1 = TextWindow.ReadNumber()TextWindow.Write("Enter second number: ")num2 = TextWindow.ReadNumber()

    FindMax()TextWindow.WriteLine("Maximum number is: " + max)

    Sub FindMaxIf (num1 > num2) Then

    max = num1Else

    max = num2EndIf

    EndSub

    Dan keluaran programnya adalah sebagai berikut:

    Gambar 41 – Nilai Maksimum dengan menggunakan Subrutin

    Mari kita coba contoh lain untuk menggambarkan penggunaan Subrutin. Kitaakan membuat program yang menghitung banyak titik dan menyimpannyadalam variabel x dan y. Karena itu dinamakan SubrutinDrawCircleUsingCenter yang bertugas menggambar lingkaranmenggunakan x dan y sebagai pusat.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    55/90

    Muhammad Banda Selamat Hal ke 55 dari 90

    GraphicsWindow.BackgroundColor = "Black"GraphicsWindow.PenColor = "LightBlue"GraphicsWindow.Width = 480For i = 0 To 6.4 Step 0.17

    x = Math.Sin(i) * 100 + 200y = Math.Cos(i) * 100 + 200

    DrawCircleUsingCenter()EndFor

    Sub DrawCircleUsingCenterstartX = x - 40startY = y - 40

    GraphicsWindow.DrawEllipse(startX, startY, 120, 120)EndSub

    Gambar 42 – Contoh Grapfik dari Subrutin

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    56/90

    Muhammad Banda Selamat Hal ke 56 dari 90

    Memanggil subrutin di dalam pengulanganTerkadang subrutin dipanggil dari dalam loop, menjalankan baris-barisperintah yang sama tetapi dengan nilai-nilai yang berbeda pada satu ataulebih variabel. Sebagai contoh, jika kita memiliki subrutin bernamaPrimeCheck yang dapat membedakan apakah suatu nilai merupakan bilanganprima atau bukan, maka kita dapat menuliskan program yang membolehkankita untuk menginput suatu nilai dan kita dapat mengetahui nilai itumerupakan bilangan prima atau bukan dengan menggunakan subrutin ini.Program berikut menampilkan keadaan tersebut.

    TextWindow.Write("Enter a number: ")i = TextWindow.ReadNumber()isPrime = "True"PrimeCheck()If (isPrime = "True") Then

    TextWindow.WriteLine(i + " is a prime number")Else

    TextWindow.WriteLine(i + " is not a prime number")EndIf

    Sub PrimeCheckFor j = 2 To Math.SquareRoot(i)

    If (Math.Remainder(i, j) = 0) ThenisPrime = "False"Goto EndLoop

    EndIfEndfor

    EndLoop:EndSub

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    57/90

    Muhammad Banda Selamat Hal ke 57 dari 90

    Subrutin PrimeCheck mengambil nilai dari i dan mencoba membaginyadengan angka yang lebih kecil. Bila pembagian itu tidak bersisa, maka i bukan bilangan prima. Pada titik itu, subrutin menetapkan nilai isPrime adalah “False” dan kondisinya terpenuhi. Jika nilainya tidak dapat dibagi olehangka yang lebih kecil, maka isPrime tetap bernilai “True.”

    Gambar 43 – Cek Bilangan Prima

    Nah sekarang kita telah memiliki subrutin yang dapa menguji bilangan prima,mungkin saja kita dapat menggunakannya untuk mendaftarkan semua

    bilangan prima dibawah 100. Dengan mudah kita dapat memodifikasiprogram di atas dan memanggil PrimeCheck dari dalam looping. Hal ini akanmemberikan subrutin suatu nilai yang berbeda setiap kali looping dijalankan.Mari kita lihat bagaimana hal tersebut dilakukan dengan contoh berikut dibawah ini.

    For i = 3 To 100isPrime = "True"PrimeCheck()

    If (isPrime = "True") ThenTextWindow.WriteLine(i)

    EndIfEndFor

    Sub PrimeCheckFor j = 2 To Math.SquareRoot(i)

    If (Math.Remainder(i, j) = 0) ThenisPrime = "False"Goto EndLoop

    EndIfEndfor

    EndLoop:EndSub

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    58/90

    Muhammad Banda Selamat Hal ke 58 dari 90

    Pada program di atas, nilai i selalu diperbaharui setiap kali looping di jalankan. Di dalam looping, dilakukan pemanggilan terhadap subrutinPrimeCheck . Subrutin PrimeCheck kemudian mengambil nilai i danmenghitung apakah i merupakan bilangan prima. Hasilnya disimpan kedalam variabel isPrime yang kemudian diakses oleh loop dari luar subrutin.Nilai i kemudian di tampilkan bila merupakan bilangan primer. Dan karenaloop di mulai dari 3 hingga angka 100, maka kita medapatkan semuabilangna prima dari 3 hingga 100. Berikut hasil dari program tersebut.

    Gambar 44 – Bilangan Prima

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    59/90

    Muhammad Banda Selamat Hal ke 59 dari 90

    Bab 10

    Senarai

    Sampai disini kita harus bijak menggunakan variabel – tetapi sejauh inisegalanya masih menyenangkan bukan?

    Mari kita kembali sejenak, tinjau kembali program pertama yang kita tulis:

    TextWindow.Write("Enter your Name: ")

    name = TextWindow.Read()TextWindow.WriteLine("Hello " + name)

    Pada program ini, kita menerima dan menyimpan nama dari pengguna kedalam suatu variabel yang kita sebut sebagai nama . Kemudian kita menyapa“Hello” ke pengguna. Katakanlah, ada lebih dari satu pengguna, misalkan 5pengguna. Bagaimana kita menyimpan semua nama mereka? Salah satucara melakukannya adalah sebagai berikut:

    TextWindow.Write("User1, enter name: ")name1 = TextWindow.Read()TextWindow.Write("User2, enter name: ")name2 = TextWindow.Read()TextWindow.Write("User3, enter name: ")name3 = TextWindow.Read()

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    60/90

    Muhammad Banda Selamat Hal ke 60 dari 90

    TextWindow.Write("User4, enter name: ")name4 = TextWindow.Read()TextWindow.Write("User5, enter name: ")name5 = TextWindow.Read()

    TextWindow.Write("Hello ")TextWindow.Write(name1 + ", ")TextWindow.Write(name2 + ", ")TextWindow.Write(name3 + ", ")TextWindow.Write(name4 + ", ")TextWindow.WriteLine(name5)

    Ketika kita menjalankan program ini, kita mendapatkan hasil seperti ini:

    Gambar 45 – Tidak menggunakan senarai

    Pastilah ada cara yang lebih baik untuk menuliskan program ini dengan lebihsederhana bukan? Apalagi komputer sangat baik dalam mengerjakan halyang selalu berulang, mengapa kita harus mengulang-ulang kode yang samauntuk setiap pengguna baru? Trik nya disini adalah bagaimanamenggunakan varaibel yang sama untuk menyimpan dan mengambil setiapnama pengguna. Jika kita dapat melakukan hal itu, maka kita dapatmenggunakan looping For yang telah kita pelajari sebelumnya. Disinilah kitamemerlukan bantuan senarai.

    Apa itu senarai?Senarai adalah semacam variabel khusus yang dapat menyimpan lebih darisatu nilai dalam satu waktu. Pada dasarnya, itu berarti kita tidak perlumembuat nama1, nama2, nama3, nama4 dan nama5 untuk menyimpanlima nama pengguna, kita hanya perlu menggunakan satu variabel namauntuk menyimpan kelima nama pengguna itu. Cara kita menyimpan banyaknilai dengan menggunakan senarai itu disebut se bagai “index.” Sebagai

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    61/90

    Muhammad Banda Selamat Hal ke 61 dari 90

    contoh, name[1], name[2], name[3], name[4] dan name[5] semuanyadapat menyimpan masing-masing satu nilai. Angka-angka 1, 2, 3, 4 dan 5dinamakan pengindeks untuk senarai.

    Meskipun name[1] , name[2] , name[3] , name[4] dan name[5] semuanyaseperti variabel yang berbeda, dalam realitanya merupakan satu variabel saja.Keuntungan dari sistem penyimpanan berindeks seperti ini adalah kita dapatmenggunakan variabel berindeks lainnya untuk mengakses senarai dari dalamlooping.

    Sekarang mari kita lihat bagaimana kita menggunakan pengetahuan ini untukmenulis kembali program kita terdahulu.

    For i = 1 To 5TextWindow.Write("User" + i + ", enter name: ")name[i] = TextWindow.Read()

    EndFor

    TextWindow.Write("Hello ")For i = 1 To 5

    TextWindow.Write(name[i] + ", ")EndForTextWindow.WriteLine("")

    Kelihatan lebih mudah untuk dibaca bukan? Perhatikan dua baris yangdihitamkan. Baris pertama menyimpan nilai dalam senarai dan baris yangkedua membaca nilai dari senarai. Nilai yang kita simpan di name[1] tidakakan berpengaruh terhadap apa yang kita simpan di name[2] . Sehingga kitadapat memperlakukan name[1] dan name[2] sebagai dua variabel yangberbeda dengan identitas yang sama.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    62/90

    Muhammad Banda Selamat Hal ke 62 dari 90

    Gambar 46 – Penggunaan Senarai

    Program di atas memberikan hasil yang hampir sama dengan program tanpasenarai, kecuali tanda koma pada akhir nama Mantis . Kita dapat memperbaikihal ini dengan menuliskan kembali looping tersebut sebagai berikut:

    TextWindow.Write("Hello ")For i = 1 To 5

    TextWindow.Write(name[i])If i < 5 Then

    TextWindow.Write(", ")EndIf

    EndForTextWindow.WriteLine("")

    Indeksasi pada senaraiPada program sebelumnya kita telah menggunakan angka sebagai indeksuntuk menyimpan dan memanggil nilai dari senarai. Sebenarnya indeks tidakdibatasi hanya dalam bentuk angka dan dalam penggunaan praktis kita jugadapat menggunakan indeks teks. Sebagai contoh, pada program berikut kita

    menanyakan dan menyimpan berbagai informasi kepada pengguna danmenampilkan kembali apa saja yang diminta oleh pengguna.

    TextWindow.Write("Enter name: ")user["name"] = TextWindow.Read()TextWindow.Write("Enter age: ")

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    63/90

    Muhammad Banda Selamat Hal ke 63 dari 90

    user["age"] = TextWindow.Read()TextWindow.Write("Enter city: ")user["city"] = TextWindow.Read()TextWindow.Write("Enter zip: ")user["zip"] = TextWindow.Read()

    TextWindow.Write("What info do you want? ")index = TextWindow.Read()TextWindow.WriteLine(index + " = " + user[index])

    Gambar 47 – Penggunaan Indeks non angka

    Lebih dari satu dimensiMisalkan kita ingin menyimpan nama dan nomor telpon semua teman dankita ingin agar dapat melihat kembali nomor telpon semuanya kapan saja kitaperlukan – semacam buku telpon. Bagaimana bila kita menuliskan sebuah

    program untuk itu?

    Pada kasus ini, ada dua macam indeks (dikenal juga sebagai dimensi senarai).Asumsikan kita dapat mengidentifikasi setiap teman dengan nama panggilan.Ini akan menjadi indeks pertama di dalam senarai. Sekali kita menggunakanindeks pertama untuk mendapatkan variabel teman, indeks kedua, name danphone number akan membamtu kita untuk mendapatkan nama sebenarnyadan nomor telpon teman tersebut.

    Cara kita menyimpan data ini

    adalah sebagai berikut:

    friends["Rob"]["Name"]= "Robert"friends["Rob"]["Phone"] = "555-6789"

    Indeks senarai tidak peka denganperbedaan huruf besar kecil. Sepertivaraibel biasa, kecocokan indekssenarai tidak harus secara tepat cocokdengan huruf besarnya.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    64/90

    Muhammad Banda Selamat Hal ke 64 dari 90

    friends["VJ"]["Name"] = "Vijaye"friends["VJ"]["Phone"] = "555-4567"

    friends["Ash"]["Name"] = "Ashley"friends["Ash"]["Phone"] = "555-2345"

    oleh karena kita memiliki dua indeks dalam satu senarai, friends , senarai inidisebut sebagai senarai berdimensi dua.

    Sekali kita telah menjalankan program ini, kita dapat menerima input namapanggilan dan menampilkan informasi yang telah kita simpan tentangnya.Berikut program utuh nya:

    friends["Rob"]["Name"] = "Robert"friends["Rob"]["Phone"] = "555-6789"

    friends["VJ"]["Name"] = "Vijaye"friends["VJ"]["Phone"] = "555-4567"

    friends["Ash"]["Name"] = "Ashley"friends["Ash"]["Phone"] = "555-2345"

    TextWindow.Write("Enter the nickname: ")nickname = TextWindow.Read()

    TextWindow.WriteLine("Name: " +friends[nickname]["Name"])TextWindow.WriteLine("Phone: " +friends[nickname]["Phone"])

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    65/90

    Muhammad Banda Selamat Hal ke 65 dari 90

    Figure 48 - A simple phone book

    Menggunakan senarai untuk menampilkan gridSenarai multidimensi umum digunakan untuk menampilkan grid atau tabel.Grid memiliki baris dan kolom, yang dapat disajikan dalam bentuk duadimensi. Program sederhana yang menyusun kotak ke dalam griddiperlihatkan di bawah ini:

    rows = 8columns = 8size = 40

    For r = 1 To rowsFor c = 1 To columns

    GraphicsWindow.BrushColor =GraphicsWindow.GetRandomColor()

    boxes[r][c] = Shapes.AddRectangle(size, size)Shapes.Move(boxes[r][c], c * size, r * size)EndFor

    EndFor

    Program ini menambahkan kotak persegi dan mengatur posisinya sehinggamembentuk grid 8x8. Selain menempatkan kotak-kotak ini, program tersebut

    juga menyimpan kotak-kotak itu ke dalam senarai. Dengan cara ini, akanlebih mudah bagi kita untuk melacak kotak-kotak tersebut dan

    menggunakannya kembali pada saat diperlukan.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    66/90

    Muhammad Banda Selamat Hal ke 66 dari 90

    Gambar 49 – Menempakan kotak di dalam grid

    Sebagai contoh, dengan menambahkan kode berikut di akhir program yanglalu, akan menghasilkan animasi kotak yang bergerak ke pojok kiri atas.

    For r = 1 To rows

    For c = 1 To columnsShapes.Animate( boxes[r][c] , 0, 0, 1000)Program.Delay(300)

    EndForEndFor

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    67/90

    Muhammad Banda Selamat Hal ke 67 dari 90

    Gambar 50 – Melacak lokasi kotak dalam grid

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    68/90

    Muhammad Banda Selamat Hal ke 68 dari 90

    Bab 11

    Kejadian dan interaktifitas

    Pada dua bab awal, kita telah berkenalan dengan objek yang memilikiProperty and Operasi . Selain properti dan operasi, beberapa objek jugamemiliki apa yang kita namakan sebagai Event . Event atau kejadian adalahsinyal yang muncul, contohnya, menanggapi aksi dari pengguna, sepertimenggerakkan tetikus ( mouse ) atau meng-klik nya. Pada beberapa situasi,event bisa merupakan kebalikan dari operasi. Dalam kasus operasi, kita

    sebagai programmer memanggilnya agar komputer mengerjakan sesuatu,sementara dalam kasus event, komputer menginfokan kita kejadian apa yangsedang terjadi.

    Bagaimana mendayagunakan kejadian?Event merupakan sentral untuk mengenalkan interaktifitas di dalam suatuprogram. Jika kita menghendaki pengguna untuk berinteraksi denganprogram, kita harus menggunakan event. Katakanlah kita menulis game Tic-Tac-Toe. Kita tentu menghendaki pengguna untuk memilih permainannyabukan? Disitulah event diperlukan – kita menerima input dari penggunamelalui event yang digunakan. Jika ini agak sulit untuk difahami, coba kitalihat suatu contoh yang sangat sederhana yang akan dapat membantu kitadalam memahami event dan bagaimana kita dapat menggunakannya.

    Berikut ini adalah suatu program sederhana yang hanya terdiri dari satupernyataan dan satu subrutin. Subrutin menggunakan operasi ShowMessage

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    69/90

    Muhammad Banda Selamat Hal ke 69 dari 90

    pada objek GraphicsWindow untuk menampilkan kotak pesan ke padapengguna.

    GraphicsWindow.MouseDown = OnMouseDown

    Sub OnMouseDownGraphicsWindow.ShowMessage("You Clicked.", "Hello")

    EndSub

    Bagian yang paling menarik yang perlu dicatat pada program di atas adalahbaris dimana kita menetapkan nama subrutin menjadi event MouseDown pada objek GraphicsWindow. Perhatikan bahwa MouseDown lebih miripproperty – alih alih memberinya suatu nilai, kita berikan input subrutinOnMouseDown kepadanya. Inilah hal yang khusus pada event – ketika eventberlangsung, subrutin memanggilnya secara otomatis. Pada kasus ini,subrutin OnMouseDown dipanggil setiap kali pengguna meng-klik dengantetikusnya, pada GraphicsWindow.

    Mari kita lanjutkan, jalankan program dan cobalah. Setiap kali kita meng-klikpada GraphicsWindow dengan tetikus, kita akan melihat kotak pesan sepertigambar di bawah ini.

    Gambar 51 – Tanggapan terhadap event

    Penanganan event seperti ini sangat handal dan memungkinkan kita untukmembuat program yang kreatif dan menarik. Program yang ditulis dengangaya seperti ini biasa disebut program event-driven program.

    Kita dapat memodifikasi subrutin OnMouseDown untuk mengerjakan halselain menampilkan kotak pesan. Sebagai contoh, seperti program berikutini, kita dapat menggambarkan noktah biru besar dilokasi pengguna meng-klik tetikusnya.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    70/90

    Muhammad Banda Selamat Hal ke 70 dari 90

    GraphicsWindow.BrushColor = "Blue"GraphicsWindow.MouseDown = OnMouseDown

    Sub OnMouseDownx = GraphicsWindow.MouseX - 10y = GraphicsWindow.MouseY - 10GraphicsWindow.FillEllipse(x, y, 20, 20)

    EndSub

    Gambar 52 – Penanganan Event Mouse Down

    Perhatikan program di atas, kita telah menggunakan MouseX dan MouseY untuk mengetahui koordinat tetikus. Kemudian kita gunakan titik itu sebagaititik pusat untuk menggambarkan lingkaran-lingkaran berwarna biru.

    Menangani banyak kejadianSebenarnya tidak ada batasan seberapa banyak kita boleh menangani event(kejadian). Bahkan kita mungkin saja hanya menggunakan satu subrutinuntuk menangani banyak event. Hanya saja, satu event hanya dapat ditangaisatu kali. Jika kita menggunakan dua subrutin untuk menangani satu event,maka subrutin kedualah yang menang.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    71/90

    Muhammad Banda Selamat Hal ke 71 dari 90

    Sebagai ilustrasi, mari kita ambil contoh sebelumnya dan tambahkan subrutinyang menangani pemencetan tombol. Selain itu, gunakan juga subrutin iniuntuk mengubah warna kuas, sehingga ketika kita klik tetikus, kita akandapatkan warna titik yang berbeda.

    GraphicsWindow.BrushColor = "Blue"GraphicsWindow.MouseDown = OnMouseDownGraphicsWindow.KeyDown = OnKeyDown

    Sub OnKeyDownGraphicsWindow.BrushColor =

    GraphicsWindow.GetRandomColor()EndSub

    Sub OnMouseDownx = GraphicsWindow.MouseX - 10y = GraphicsWindow.MouseY - 10GraphicsWindow.FillEllipse(x, y, 20, 20)

    EndSub

    Gambar 53 – Menangani banyak event

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    72/90

    Muhammad Banda Selamat Hal ke 72 dari 90

    Jika kita jalankan program ini dan klik di jendela, kita akan dapatkan sebuahtitik biru. Sekarang bila kita tekan sembarang tombol dan meng-klik lagi, kitaakan dapatkan warna titik yang berbeda. Sebenarnya yang terjadi pada saatkita menekan tombol adalah subrutin OnKeyDown tereksekusi yang membuatwarna kuas berubah secara acak. Setelah itu, manakala tetikus di klik, titiklingkaran tergambarkan dengan warna baru – sehingga kelihatan sebagai titikdengan warna acak.

    Program mengecatSetelah dilengkapi dengan subrutin dan event, sekarang kita dapatmenuliskan program untuk menggambar di jendela. Menariknya, ternyatacukup mudah untuk membuat program seperti itu, kita hanya perlumemecah-mecah masalahnya menjadi lebih kecil dan mudah untuk

    diselesaikan. Sebagai langkah awal, mari kita buat program yangmengizinkan pengguna untuk menggerakkan tetikus kemana saja di graphicswindow, dan meninggalkan jejak setiap kali tetikusnya dipindahkan.

    GraphicsWindow.MouseMove = OnMouseMove

    Sub OnMouseMovex = GraphicsWindow.MouseXy = GraphicsWindow.MouseY

    GraphicsWindow.DrawLine(prevX, prevY, x, y)prevX = xprevY = y

    EndSub

    Ketika program ini dijalankan, baris pertama selalu dimulai dari pojok tepi kiri jendela (0, 0). Kita dapat dapat memperbaiki masalah ini dengan caramengelola event MouseDown dan mencatat nilai prevX dan prevY pada saatevent dijalankan.

    Selain itu, kita juga hanya perlu tampilan jejak saat tombol tetikusnya ditekan.Di lain waktu, kita mungkin tidak seharusnya menggambarkan garis. Agarprilaku seperti ini kita hasilkan, kita akan gunakan properti IsLeftButtonDown pada objek Mouse . Properti ini memberi tahu kita apakah tombol kiri sedangditekan atau tidak. Jika benar sedang ditekan, , maka kita akan gambarkangaris, jika tidak maka garis tidak akan muncul di layar.

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    73/90

    Muhammad Banda Selamat Hal ke 73 dari 90

    GraphicsWindow.MouseMove = OnMouseMoveGraphicsWindow.MouseDown = OnMouseDown

    Sub OnMouseDownprevX = GraphicsWindow.MouseXprevY = GraphicsWindow.MouseY

    EndSub

    Sub OnMouseMovex = GraphicsWindow.MouseXy = GraphicsWindow.MouseYIf (Mouse.IsLeftButtonDown) Then

    GraphicsWindow.DrawLine(prevX, prevY, x, y)

    EndIfprevX = xprevY = y

    EndSub

    Berikut hasil programnya ketika dijalankan. Perhatikan, kita dapatmenggunakan tetikus ( mouse ) untuk membuat sebuah tulisan... UNHAS

    Gambar 54 – Program menulis di layar

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    74/90

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    75/90

    Muhammad Banda Selamat Hal ke 75 dari 90

    distance = distance - deltaDrawTree()Turtle.Turn(-angle * 2)DrawTree()Turtle.Turn(angle)distance = Stack.PopValue("distance")

    Turtle.Move(-distance)EndIf

    EndSub

    Foto dari Flickr

    Gambar 56 – Mengembil gambar dari Flickr

    GraphicsWindow.BackgroundColor = "Black"GraphicsWindow.MouseDown = OnMouseDown

    Sub OnMouseDownpic = Flickr.GetRandomPicture("mountains, river")GraphicsWindow.DrawResizedImage(pic, 0, 0, 640, 480)

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    76/90

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    77/90

    Muhammad Banda Selamat Hal ke 77 dari 90

    deltaX = 1deltaY = 1

    RunLoop:x = x + deltaXy = y + deltaY

    gw = GraphicsWindow.Widthgh = GraphicsWindow.HeightIf (x >= gw - 16 or x

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    78/90

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    79/90

    Muhammad Banda Selamat Hal ke 79 dari 90

    PapayaWhip #FFEFD5

    Moccasin #FFE4B5

    PeachPuff #FFDAB9

    PaleGoldenrod #EEE8AA

    Khaki #F0E68C

    DarkKhaki #BDB76B

    Ungu

    Lavender #E6E6FA

    Thistle #D8BFD8

    Plum #DDA0DD

    Violet #EE82EE

    Orchid #DA70D6

    Fuchsia #FF00FF

    Magenta #FF00FF

    MediumOrchid #BA55D3

    MediumPurple #9370DB

    BlueViolet #8A2BE2

    DarkViolet #9400D3DarkOrchid #9932CC

    DarkMagenta #8B008B

    Purple #800080

    Indigo #4B0082

    SlateBlue #6A5ACD

    DarkSlateBlue #483D8B

    MediumSlateBlue #7B68EE

    Hijau

    GreenYellow #ADFF2F

    Chartreuse #7FFF00

    LawnGreen #7CFC00

    Lime #00FF00

    LimeGreen #32CD32

    PaleGreen #98FB98

    LightGreen #90EE90

    MediumSpringGreen #00FA9A

    SpringGreen #00FF7F

    MediumSeaGreen #3CB371

    SeaGreen #2E8B57

    ForestGreen #228B22

    Green #008000

    DarkGreen #006400YellowGreen #9ACD32

    OliveDrab #6B8E23

    Olive #808000

    DarkOliveGreen #556B2F

    MediumAquamarine #66CDAA

    DarkSeaGreen #8FBC8F

    LightSeaGreen #20B2AA

    DarkCyan #008B8B

    Teal #008080

    Biru

    Aqua #00FFFF

    Cyan #00FFFF

    LightCyan #E0FFFF

    PaleTurquoise #AFEEEE

    Aquamarine #7FFFD4

    Turquoise #40E0D0

    MediumTurquoise #48D1CC

    DarkTurquoise #00CED1

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    80/90

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    81/90

    Muhammad Banda Selamat Hal ke 81 dari 90

    Gray #808080

    DimGray #696969

    LightSlateGray #778899

    SlateGray #708090

    DarkSlateGray #2F4F4F

    Black #000000

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    82/90

    Muhammad Banda Selamat Hal ke 82 dari 90

    Komputasi Kelautan

    1. Membangkitkan Bilangan Acak

    'membangkitkan bilangan acak TextWindow . Write ( "berapa banyak data yang dibangkitkan? " ) d=TextWindow . Read () For i =1 To d

    x=Math. GetRandomNumber( 50) textWindow . Writeline ( "data ke-" +i +" =" +x) Program . Delay ( 500 )

    Endfor

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    83/90

    Muhammad Banda Selamat Hal ke 83 dari 90

    2. Genap – Ganjil dari Bilangan Acak

    ‘membangkitkan bilangan acak

    'menentukan bilangan genap atau ganjil '2015 - [email protected] '============================ TextWindow . Write ( "banyaknya data dibangkitkan (n): " ) n=textwindow . ReadNumber () For i =1 To n

    x[i] =math . GetRandomNumber( 100 ) sisa =Math . Remainder ( x[i] , 2) Program . delay ( 15) If sisa =0 Then

    TextWindow . WriteLine ( "angka: " +x[i] +" bilangan genap" ) Else

    TextWindow . writeline ( "angka: " +x[i] +" bilangan ganjil" ) endif

    endfor

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    84/90

    Muhammad Banda Selamat Hal ke 84 dari 90

    3. Sortir Angka Menurun

    'cetak urutan data menurun

    'data dibangkitkan dari bilangan acak '2015 - [email protected] '=========================== TextWindow . Write ( "banyak data: " ) n=textwindow . ReadNumber () For l =1 To n

    d[l] =Math . GetRandomNumber( 100 ) endfor TextWindow . Write ( "data awal: " ) For l =1 To n

    TextWindow . Write ( d[l] +", " ) endfor

    textwindow . Writeline ( " " ) textwindow . WriteLine ( "max awal= " +d[ 1] )

    For j =1 To nTextWindow . Writeline ( " " ) TextWindow . foregroundColor ="white" TextWindow . Writeline ( "pass ke-" +j ) For k =1 To n

    TextWindow . foregroundColor ="green" TextWindow . Writeline ( "iterasi ke-" +k+"=" +d[k] ) if d[k] < d[k +1] Then

    x=d[k]d[k] =d[k +1]d[k +1] =xElse

    TextWindow . Write ( "" ) Endif

    For l =1 To nTextWindow . foregroundColor ="red" textwindow . Write ( d[l] +"," )

    endfor TextWindow . Writeline ( " " )

    endfor endfor TextWindow . foregroundColor ="white" textwindow . Writeline ( " " ) TextWindow . Write ( "data akhir: " ) For l =1 To n

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    85/90

    Muhammad Banda Selamat Hal ke 85 dari 90

    TextWindow . Write ( d[l] +", " ) endfor

    textwindow . Writeline ( " " )

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    86/90

    Muhammad Banda Selamat Hal ke 86 dari 90

    4. Grafik Sinus dan Kosinus

    ' sinus and cosinus graph

    '2015 - [email protected] '=========================== For i =1 To 640 x=inpi =math . pi trigsin =Math. Sin ( x*npi / 180 )* 150 trigcos =Math. cos ( x*npi / 180 )* 150 ys =200 - trigsinyc=200 - trigcosGraphicsWindow . setpixel ( x, ys , "red" ) GraphicsWindow . setpixel ( x, yc , "blue" )

    Program . Delay ( 15) GraphicsWindow . setpixel ( x, 200 , "black" ) endfor

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    87/90

    Muhammad Banda Selamat Hal ke 87 dari 90

    5. Menentukan Kelulusan

    'membangkitkan nilai

    'menentukan lulus tidak lulus '2015 - [email protected] '============================ TextWindow . Write ( "banyaknya data dibangkitkan (n): " ) n=textwindow . ReadNumber () For i =1 To n

    x[i] =math . GetRandomNumber( 100 )

    Program . delay ( 15) If x[i] >65 Then

    TextWindow . WriteLine ( "nilai: " +x[i] +" LULUS" ) Else

    TextWindow . WriteLine ( "nilai: " +x[i] +" tidak lulus" ) endif

    endfor

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    88/90

    Muhammad Banda Selamat Hal ke 88 dari 90

    6. Histogram Penutupan Lamun

    'menghitung rata-rata tutupan lamun dan membuat histogramnya

    'data setiap grid kuadrat 'dibangkitkan dari bilangan acak '2015@mbandas 'daskom - jikuh '======================== 'meminta user menentukan banyaknya grid'note: kalo kuadrat 50x50 gridnya ada 25

    mulai : TextWindow . WriteLine ( " " ) TextWindow . Write ( "banyaknya data persen tutupan= " )

    n=textwindow . ReadNumber () 'membangkitkan bilangan acak 0-100 'sebagai data tutupan lamun 'dan menghitung rata-ratanya jumx = 0 f1 =0 f2 =0 f3 =0 f4 =0 For i = 1 To n

    cover = Math. GetRandomNumber( 100 ) TextWindow . Writeline ( "% cover-" + i + "= " + cover ) jumx = jumx + coverIf cover >= 75 Then

    d1=1 f1 =f1 +d1

    ElseIf cover < 75 And cover >= 50 Then d2=1 f2 =f2 +d2

    ElseIf cover < 50 And cover >= 25 Then d3=1 f3 =f3 +d3

    Else d4=1 f4 =f4 +d4

    EndIf endfor 'menghitung total persen tutupanrata = jumx / n

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    89/90

    Muhammad Banda Selamat Hal ke 89 dari 90

    TextWindow . ForegroundColor ="yellow" TextWindow . WriteLine ( "Jumlah = " + jumx ) TextWindow . ForegroundColor ="white" TextWindow . WriteLine ( "persen tutupan kuadrat ini = " + rata )

    TextWindow . ForegroundColor ="green" 'menentukan kategori total persen tutupan If rata >= 75 Then

    TextWindow . WriteLine ( "kategori sangat padat." ) ElseIf rata < 75 And rata >= 50 Then TextWindow . WriteLine ( "kategori padat." ) ElseIf rata < 50 And rata >= 25 Then TextWindow . WriteLine ( "kategori cukup padat." ) Else TextWindow . WriteLine ( "kategori jarang." )

    EndIf

    'turus kategori tutupan per sel TextWindow . ForegroundColor ="white" TextWindow . writeline ( " " ) TextWindow . writeline ( "kategori per sel (grid)" ) TextWindow . writeline ( "-----------------------" ) TextWindow . writeline ( "sangat padat= " +f1 ) TextWindow . writeline ( "padat = " +f2 ) TextWindow . writeline ( "cukup padat = " +f3 ) TextWindow . writeline ( "jarang = " +f4 ) TextWindow . WriteLine ( "-----------------------" ) cekdata =f1 +f2 +f3 +f4

    TextWindow . WriteLine ( "jumlah = " +cekdata )

    TextWindow . WriteLine ( " " ) TextWindow . Write ( "sangat padat |" ) For j =1 To f1

    TextWindow . Write ( "*" ) endfor TextWindow . WriteLine ( " " ) TextWindow . Write ( "padat |" )

    For j =1 To f2TextWindow . Write ( "*" )

    endfor TextWindow . WriteLine ( " " ) TextWindow . Write ( "cukup padat |" )

    For j =1 To f3TextWindow . Write ( "*" )

    endfor TextWindow . WriteLine ( " " )

  • 8/19/2019 2015 Pengantar Small Basic - MbandaS

    90/90

    TextWindow . Write ( "jarang |" ) For j =1 To f4

    TextWindow . Write ( "*" ) endfor

    TextWindow . WriteLine ( " " ) TextWindow . WriteLine ( " " ) Goto mulai