Jumat, 30 September 2016

Komputer Grafik - Membuat Program Bangun Datar

Komputer Grafik – Membuat Program Bangun Datar


Hello guy, ketemu lagi di blog saya. Masih semangat kan ? Tentu dong jangan patah semangat. Oh ya kali ini aku akan post tentang program bangun datar. Kalian pasti pernah mendengar yang namanya bangun datar pas jaman SD. Bangun datar itu digambarkan suatu bangun yang hanya punya panjang dan lebar saja alias 2 dimensi. Bangun datar itu seperti persegi, persegi panjang, segitiga, lingkaran, dan lain – lain. Nah, untuk blog kali ini saya akan kasih contoh program bangun datar dengan bahasa Java dengan menggunakan GUI alias ada gambarnya. Serukan hehe.... Untuk membuat program ini tidak susah kok hanya sederhana saja.

Okay, aku akan membahasnya. Pertama seperti biasa buat project baru pada program java. Software yang saya gunakan adalah Netbeans ( pakai Eclipse boleh ). Cara membuat project baru : File – New Project – (Java – Java Application) – Next – Buat nama project – Finish. Jika masih belum paham bisa diliat pada blog dengan kode 005-001. Setelah itu, ikuti langkah di bawah ini :
1.         Menyusun komponen – komponen GUI dengan bentuk seperti di bawah ini :



Bentuk GUI Utama



Bentuk GUI Pada Tab Persegi



Bentuk GUI Pada Tab Persegi Panjang


Bentuk GUI Pada Tab Lingkaran

Dengan Navigator seperti ini :




2.        Klik Source dan kemudian tambahkan source code pada bagian kontruktor-nya : ( warna merah )

public class ProgramBangunDatar extends javax.swing.JFrame {
    public ProgramBangunDatar() {
        initComponents();
        jScrollPane1.setViewportView(new Grafik());
    }
    @SuppressWarnings("unchecked")

3.         Setelah membentuk di atas, klik Tab Persegi dan klik double pada tombol Tampilkan sehingga akan muncul seperti ini :


Kemudian pada bagian program ini akan dibuat source code seperti ini :

private void Tampil_PersegiActionPerformed(java.awt.event.ActionEvent evt) {                                              
        String S = P_persegi.getText();
        String Xp = Xp_persegi.getText();
        String Yp = Yp_persegi.getText();
        jScrollPane1.setViewportView(new Grafik(Double.parseDouble(S), Double.parseDouble(Xp), Double.parseDouble(Yp), 1));
    }    

4.         Lanjut lagi ke desain JFrame-nya, sekarang klik Tab Persegi Panjang à klik double pada tombol Tampilkan yang akan muncul seperti ini :


Bentuk source code seperti ini :

private void Tampil_PersegiPanjangActionPerformed(java.awt.event.ActionEvent evt) {                                                      
        String P = P_persegipanjang.getText();
        String L = L_persegipanjang.getText();
        String Xp = Xp_persegipanjang.getText();
        String Yp = Yp_persegipanjang.getText();
        jScrollPane1.setViewportView(new Grafik(Double.parseDouble(P), Double.parseDouble(L), Double.parseDouble(Xp), Double.parseDouble(Yp), 2));
    }   

5.         Begitupula pada Tab Lingkaran, dengan teknik yang sama pada langkah no 3 dan 4 akan membentuk source code seperti ini


Kemudian tambahkan source codenya :

private void Tampil_LingkaranActionPerformed(java.awt.event.ActionEvent evt) {                                                
        String R = Radius.getText();
        String Xp = Xp_lingkaran.getText();
        String Yp = Yp_lingkaran.getText();
        jScrollPane1.setViewportView(new Grafik(Double.parseDouble(R), Double.parseDouble(Xp), Double.parseDouble(Yp), 3));
    }   

6.         Dengan begitu, desain program JFrame sudah selesai.

Selanjutnya adalah membuat program gambar bangun datar dan grid-nya alias koordinat garis. Nama
kelasnya “Grafik.java”. untuk bentuk kodingannya dapat dilihat di bawah ini :

import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import javax.swing.*;
public class Grafik extends JPanel {
    private int width = 200, height = 200, grid = 20;
    private double S, P, L, R, Xpusat, Ypusat;
    private int pilih;
   
    public Grafik () { }
   
    // Kontraktor untuk memberi ukuran dan titik awal pada persegi atau lingkaran
    public Grafik (double s, double xp, double yp, int p) {
        Xpusat = xp;
        Ypusat = yp;
        if (p == 1) { // Untuk menggambar persegi
            S = s;
            pilih = p;
        }
        else if (p == 3) { // Untuk menggambar lingkaran
            R = s;
            pilih = p;
        }
    }
   
    // Kontraktor untuk memberi ukuran dan titik awal pada persegi panjang
    public Grafik (double p, double l, double xp, double yp, int z) {
        P = p;
        L = l;
        Xpusat = xp;
        Ypusat = yp;
        pilih = z;
    }
   
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        this.setBackground(Color.WHITE); // Warna background Grid
        Graphics2D gr = (Graphics2D)g;
       
        // Grid
        for(int i = 0; i <= width; i += grid) {
            int angka = i / grid; // Variabel untuk nyimpen angka di grid
            g.setColor(Color.LIGHT_GRAY); // Warna grid
            g.drawLine(i, 0, i, height); // Garis Y
            g.drawLine(0, i, width, i); // Garis X
            if(angka == 0) {}
            else {
                gr.setColor(Color.BLACK); // Warna angka
                gr.setStroke(new BasicStroke(1)); // Tebal angka
                if(angka < 10) {
                    gr.drawString("" +angka, width / 2 + i - 8, height / 2 + 13); // Angka sumbu X < 10
                    gr.drawString("" +angka, width / 2 - 10, height / 2 - i + 5); // Angka sumbu Y < 10
                    gr.drawString("" +(-angka), width / 2 - 15, height / 2 + i + 5); // Angka negatif sumbu Y < 10
                }
                else {
                    gr.drawString("" +angka, width / 2 + i - 13, height / 2 + 13); // Angka sumbu X >= 10
                    gr.drawString("" +angka, width / 2 - 15, height / 2 - i + 5); // Angka sumbu Y >= 10
                    gr.drawString("" +(-angka), width / 2 - 20, height / 2 + i + 5); // Angka negatif sumbu Y >= 10
                }
                gr.drawString("" +(-angka), width / 2 - i - 13, height / 2 + 13); // Angka negatif sumbu X
            }
        }
        gr.setStroke(new BasicStroke(2)); // Tebal garis pusat (objek)
        gr.setColor(Color.BLACK); // Warna garis pusat
        gr.drawLine(0, height / 2, width, height / 2); // Garis pusat X
        gr.drawLine(width / 2, 0, width / 2, height); // Garis pusat y
       
        // Bagian ini adalah proses menampilkan gambar
        // case 1 -> gambar persegi, case 2 -> gambar persegi panjang, case 3 -> gambar lingkaran
        switch (pilih) {
            case 1 : gr.draw(new Rectangle2D.Double(width/2 + Xpusat*grid, height/2 - Ypusat*grid, S*grid, S*grid));
                     break;
            case 2 : gr.draw(new Rectangle2D.Double(width/2 + Xpusat*grid, height/2 - Ypusat*grid, P*grid, L*grid));
                     break;
            case 3 : gr.draw(new Ellipse2D.Double(width/2 + Xpusat*grid, height/2 - Ypusat*grid, 2*R*grid, 2*R*grid));
                     break;
        }
    }
}

Dan akhirnya program bangun datar sudah jadi.


Untuk hasil running-nya dapat dilihat di bawah ini :




Tampilan Awal Pada Program Bangun Datar




Menggambar persegi dengan s = 2 dan titik awal ( pojok kiri atas ) dengan x = 1 dan y = 1



Menggambar persegi panjangdengan p = 2, l = 3 dan titik awal ( pojok kiri atas ) dengan x = -2 dan y = 3



Menggambar lingkaran dengan r = 3 dan titik awal ( pojok kiri atas ) dengan x = -4 dan y = -2


Jadi, gimana ? mudahkan buat program bangun datar. 
Sebenarnya selain menggunakan Java, bisa juga menggunakan library Processing ( nanti aku akan post selanjutnya ). Ya semoga bermanfaat buat kalian yang kesulitan buat program bangun datar. Jika ada yang kesulitan bisa komen ke aku. 


#SemangatHidup

"Desain bagus, perancangan bagus, dan menarik. Namun, jika anda melupakan pondasi, hasilnya akan hancur total"
By : Kelvin Herwanda Tandrio

Referensi :

Kelvin H Tandrio, Hanif Sultan R, Faizah Yasarah, dan Nadya Ranti Agnestya. 2016. Laporan . Universitas Sebelas Maret. Surakarta

Enterprise, Jubilee. 2015. Kumpulan Aplikasi Java. Penerbit : PT Elex Media Komputindo. Jakarta

H. M. Deitel, P. J. Deitel and S. E. Santry. 2001. Advanced Java 2 Platform How To Program. Prentice Hall. New Jersey.








Tidak ada komentar:

Posting Komentar