Jom Belajar Bina Carta Pai dengan Java !!! ( Genius Corner Siri 39 )

Tajuk: Bina Carta Pai dengan Java

Genius Corner Siri 39

Oleh: Fariz Gaskin

 

Salam ceria buat semua pembaca budiman. Kita bertemu kembali di dalam ruangan Genius Corner minggu ini, bersama latihan Java bahagian yang ke sepuluh. Di dalam latihan kali ini, kita akan bina sendiri Carta Pai menggunakan Java.

 

Carta Pai merupakan paparan visual sekumpulan data yang mewakili nilai tertentu. Paparan sebegini biasanya dibina bagi mendapatkan gambaran menyeluruh berkenaan data yang dikumpul, disamping berupaya memberi kesimpulan yang jelas.

 

Pada hari ini, terdapat ratusan malah ribuan aplikasi komputer yang mampu menjana Carta Pai dengan mudah. Antara perisian yang paling popular bagi tujuan ini ialah Microsoft Office. Namun, kali ini kita akan cuba bina Carta Pai sendiri.

 

Tanpa membuang masa, mari kita mulakan latihan kali ini.

 

Latihan

 

Langkah 1: Buka mana-mana perisian editor teks seperti Notepad atau Sublime dan tuliskan kod aturcara berikut di dalam ruangan editor.

 

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Rectangle;

import javax.swing.JComponent;

import javax.swing.JFrame;

class Slice {

  double value;

  Color color;

  public Slice(double value, Color color) {  

     this.value = value;

     this.color = color;

  }

}

class MyComponent extends JComponent {

  Slice[] slices = {

     new Slice(5, Color.black), new Slice(33, Color.green), new Slice(20, Color.yellow), new Slice(15, Color.red)

  };

  MyComponent() {}

  public void paint(Graphics g) {

     drawPie((Graphics2D) g, getBounds(), slices);

  }

  void drawPie(Graphics2D g, Rectangle area, Slice[] slices) {

     double total = 0.0D;

     

     for (int i = 0; i < slices.length; i++) {

        total += slices[i].value;

     }

     double curValue = 0.0D;

     int startAngle = 0;

     for (int i = 0; i < slices.length; i++) {

        startAngle = (int) (curValue * 360 / total);

        int arcAngle = (int) (slices[i].value * 360 / total);

        g.setColor(slices[i].color);

        g.fillArc(area.x, area.y, area.width, area.height, startAngle, arcAngle);

        curValue += slices[i].value;

     }

  }

}

public class Main {

  public static void main(String[] argv) {

     JFrame frame = new JFrame();

     frame.getContentPane().add(new MyComponent());

     frame.setSize(300, 200);

     frame.setVisible(true);

  }

}

 

Langkah 2: Save hasil kerja anda dengan nama LeapYear.java di dalam direktori Genius Corner.

 

Langkah 3: Buka Command Prompt (Windows) atau Terminal (Mac) dan taipkan arahan-arahan berikut

 

javac Main.java

java Main

 

Langkah 4: Masukkan tahun seperti yang diminta di dalam Command Prompt / Terminal

Semakan

 

Di dalam kod aturcara tadi, kita telah menghasilkan aplikasi Java yang boleh melukis Carta Pai berdasarkan maklumat yang dimiliki. Di dalam constructor, kita memanggil library JFrame bagi memaparkan hasil secara visual di dalam sebuah tetingkap.

 

Seterusnya, kita telah memanggil library JComponent melalui class MyComponent bagi melukis paparan secara visual di dalam tetingkap JFrame.

Pelajar SK Desa Murni sedang mempelajari Scratch TMK

 

Soalan

 

Sebelum ruangan minggu ini ditamatkan, anda perlu menyelesaikan beberapa soalan latihan. Sila ubahsuai kod aturcara tadi supaya:

 

  1. Tambah dua lagi pecahan Carta Pai.
  2. Ubah warna pecahan Carta Pai kepada warna pilihan anda.
  3. Kecilkan saiz Carta Pai.

Jika anda mempunyai sebarang pertanyaan atau cadangan, sila emelkan kepada farizgaskin@gmail.com dan kami akan cuba jawab sepantas mungkin. Sehingga bertemu lagi dalam ruangan yang sama minggu hadapan, selamat mencuba!

Leave a Reply

Your email address will not be published. Required fields are marked *