Pages

Showing posts with label Grapher. Show all posts
Showing posts with label Grapher. Show all posts

May 26, 2012

Grapher

Skenario ini untuk menampilkan fungsi matematika.


Ini link skenario yang udah diupload ke Greenfoot Gallery:
http://www.greenfoot.org/scenarios/3423

Ini screenshootnya:



Berikut ini class-classnya:

  • Graph hmm ini koordinat kartesian berisikan x,y, dengan 1 unit = 1 pixel, dan ada grid 5px*5px. Semua garis yang ada ditampilkan di sini berada dalam variabel "lines" yang merupakan vector. Berikut ini fungsi-fungsi (metode) yang utama, fungsi lain selain ini hanya pendukung untuk menggerakan graph ini(dengan cara digeser)..
    • Graph() -- constructor disini tempat kita membuat/menambahkan garis baru. Dengan membuat objek(sebenernya interface..) "line", dan menambahkannya kedalam kumpulan "lines". 
    • drawMap() -- fungsi ini berisi fungsi drawGrid() sama drawLines(), supaya simple hehe. drawGrid() didahulukan supaya fungsi garisnya tidak nabrak sama grid-gridnya.
    • drawLines() --  ini isinya manggi metode drawGrid() terus drawLine(). Supaya lebih rapih sedikit.
    • drawLine() --  menggambar garis, dari paling kiri ke kanan layar, relatif dengan posisi-x dan posisi-y grafik tersebut. Jadi fungsi ini melakukan sebuah loop dari kiri ke kanan sepanjang layar. Jadi awalnya gini, kita menghitung posisi relatif titik pojok kiri-atas layar itu dengan titik (0, 0). Setelah kita mendapatkan selisih x-nya, kita mulai loop dari kiri-layar, x-nya adalah selisih tadi. Saat ini garis belom digambar. Setelah memasukan x pada fungsi garisnya, maka kita mendapatkan y. Naah, untuk digambar giliran y-nya yang dikurangi dengan jarak layar ke titik (0,0), yang y-nya. Jadi sederhananya (xLayar - x, yLayar + y). Kenapa y tidak dikurang? Karena di Greenfoot(ngga hanya Greenfoot sih, hampir semua), semakin tinggi y-nya, semakin kebawah. Ini lebih sederhana lagi, titik yang kita gambar jadinya adalah dari titik [(xLayar - x) -1, (yLayar - y) -1] ke titik [(xLayar-x), (yLayar-y)]
    • drawGrid() -- kalo yang ini, fungsi untuk gambar garis kotak-kotak. Seperti drawLine(), mulai loop dari layar sebelah kiri (untuk garis vertikal). Lalu posisi relatif x, ditambah dengan loopan, dibagi dengan 5, jika ngga ada sisa bagi maka gambar garis deh di posisi x-layar tersebut. Garis horizontalnya juga seperti ini, namun ingat, semakin kebawah y semakin nambah, jadi harus dinegasiin (dibalikin).
  • GraphInfo -- ini objek buat nampilin info yang ada disebelah kanan, supaya keliatan keren aja haha. Soalnya kita juga ngga tau itu posisinya dimana dan ngga ada tulisan di axisnya.
  • Line --  Interface ini keren! Karena bikin kode disini jadi Object Oriented!
    • function() --  nah disini silahkan membuat fungsi buatan kalian sendiri. Eh tapi di class ini ngga bisa diapa-apain, karena ini cuma interface. Kalo mau buat garis liat petunjuknya di constructor kelas Graph.
    • getColor() --  ini untuk ditambahkan, mau warna apa garis tersebut.
Hehehe..
Tadinya sih niatnya mau nambahin parser, supaya bisa langsung masukin fungsi. Tapi belom sempet.
*Niatnya mau bikin RPN parser sendiri jadinya lama...
*Udah lama jadi sih.. jadi tinggal nambahin elemen GUI aja..

May 25, 2012

Skenario Berikutnya: Grapher!

Haduuh kasian nih blog, udah lama ngga update scenario baru, huhu.
Okee, ngga lama lagi saya akan jelaskan scenario yang namanya Grapher.
Skenario ini udah lama sih dibuat, cuma belom di-post di blog aja. hehe.

Ini link skenario yang udah diupload ke Greenfoot Gallery:
http://www.greenfoot.org/scenarios/3423

Ini screenshootnya:

Skenario ini cuma berguna untuk membuat gambar dari suatu fungsi matematika, berhubung saya pensaran, hehe. Cukup membantu dalam pelajaran matematika loh. wkwk.
Oh iya, jadi inget alasan dulu ngga di upload.
Pertama kodenya ngga begitu objek oriented. Jadi susah menjelaskannya hehe. (liat aja, class-nya cuma ada 3)
Yang kedua karena skenario ini belom selesai, belom ada fungsinya.
Kita belom bisa memasukan fungsi kedalam game ini, kalo mau ganti fungsinya, kalian harus download source kodenya dulu, terus ubah deh.

Silahkan download sourcenya dulu hehe.
Cara menambahkan garis gampang, kalian bisa liat di constructor class graph, disitu udah ada garis-garisnya hehe. Silahkan otak-atik.

Ada kelebihan kalo diotak-atik dari sourcenya, yaitu kemungkinan tak terbatas untuk membuat fungsi!
 (x-3)(x+2)
 Math.sin(x);
dan macem-macem!
dan itu yang saya bilang bikin ngerti pelajaran matematika :D