UNIVERSITAS MALIKUSSALEH
FAKULTAS TEKNIK
2
KATA PENGANTAR
Puji syukur atas rahmat allah yang maha kuasa, yang mana telah memberikan kesehatan rahmat dan
hidayah nya, sehingga dapat memungkinkan saya untuk mengerjakan pratikum dengan baik. Tidak
lupa pula shalawat dan salam semoga terlimpahkan kepada Rasulullah Muhammad SAW,
keluarganya, sahabatnya, dan kepada kita selaku umatnya.
Makalah ini saya buat untuk melengkapi tugas pratikum membuat animasi rumah yang termodifikasi
dengan berbagai variasi, dengan mata kuliah grafika komputer.Semoga dengan adanya pratikum ini,
dapat membantu nilai saya dalam memenuhi tugas. Didalam makalah ini saya membuat pratikum
dengan pembelajaran teori yang sudah diberikan oleh dosen pengampu yaitu ibu eka, dimana di
dalamnya membuat sebuah pratikum yang dimulai dari garis hingga membentuk sebuah gambar.
Semoga dengan adanya pratikum ini dapat menyelesaikan tugas dengan lebih baik lagi, dapat
membantu para pembacanya dengan lebih mudah. Demikianlah hasil dari pratikum saya ini semoga
banyak bermanfaat bagi pembaca, dan terutama dapat menyelesaikan tugas-tugas saya dengan lebih
baik lagi.
3
BAB l
PENDAHULUAN
1. Batasan Masalah
Batasan masalah pada tahap pertama pembuatan matahari dan pemandangandengan pola
bewarna.
perancangan bangun 2 dimensi adalah :
1. Penggambaran objek pemandangan yang dilengkapi dengan matahari, awan dan juga jalan
dengan objek warna 2D di komputer
2. Praktikum teknik-teknik menghasilkan gambar menggunakan sebuah bahasa
pemograman.
3. Pemograman menggunakan Java NetBeans.
2. Tujuan
1. Menyelesaikan laporan mata kuliah Grafika Komputer semester 4.
2. Mahasiswa mampu menggambar objek 2D menggunakan bahasa pemograman Java
NetBeans.
3. Mahasiswa mampu mengimplementasikan fungsi transformasi 2D dari garis hingga
membentuk sebuah gambar 2D.
3. Sistematika Penulisan
Agar laporan dipahami dengan baik oleh pembaca, maka sistematika penulisan laporan
sebagai berikut :
BAB I PENDAHULUAN
Berisikan batasan masalah, tujuan dibuatnya laporan, dan sistematika penulisan laporan.
4
BAB II
LANDASAN
TEORI
Pada praktikum Komputer grafis ini akan dipelajari teknik-teknik untuk menghasilkan
gambar menggunakan sebuah pemrograman komputer dalam hal ini adalah Java NetBeans.
Komputer grafis merupakan Kebutuhan yang saat ini tidak bisa dihindarkan dengan
perkembangan teknologi komputer yang semakin cepat. Dan Hampir semua bidang
menggunakannya, kebutuhan komputer grafis lebih dirasakan dalam bidang-bidang berikut:
a. Visualisasi proses: komputer grafis banyak digunakan untuk menampilkan suatu
perkembangan proses dan analisis, seperti pada perkembangan nilai saham, visualisasi
simulasi, visualisasi proses pada industri dan lain-lain.
b. Entertainment: Tidak bisa dihindarkan pemakaian komputer grafis sangat membantu
dalam pembuatan movie yang bermutu. Sebagai contoh ”Terminator III” yang mampu
menampilkan efek morphing (perubahan secara perlahan dan jelas) dari lantai menjadi
manusia, atau ”Werewolf” yang mampu menyajikan perubahan manusia menjadi
srigala. Bahkan pada film animasi, pemakaian komputer grafis menjadi komponen
utama, seperti ”Final fantasy”.
c. Design: Saat ini pemakaian software design berkembang pesat khususnya yang 3D,
seperti Autocad, 3D Studio Max, Home design dan lain-lain.
d. Game development: Mau tidak mau harus diakui, salah satu komponen dasardari game
adalah grafik.
2. PEMROGRAMAN GRAFIK
Pemrograman grafik sebenarnya tidak berbeda dengan pemrograman komputer, hanya saja hasil
yang ditampilkan menggunakan layar grafis. Pada bahasa java hasil program pada umumnya
berupa text, sehingga pemakaian layar grafis membutuhkan pendekatan yang berbeda.
Salah satu komponen penting di dalam pemrograman grafik adalah pemakaian library
grafik yang berisi kumpulan procedure-procedure untuk membentuk objek grafis seperti garis,
lingkaran, dll.
Di samping itu, dalam pemrograman grafik terdapat komponen dasar yang disebut dengan
objek grafik. Objek grafik ini merupakan objek dasar dalam pembuatan grafik di computer
antara lain:
5
• Titik
• Garis,
• Polyline dan Polygon,
• Ellips,
• Text
• Paint
BAB III
PEMBAHASAN
6
3) Pilih Catagories: Java dan Projects
7
2. Source kode pembuatan animasi rumah yang termodifikasi
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.applet.*;
9
//jalan
g.setColor(Color.black);
g.fillRect(0, 300, 1020, 100);
//garis jalan
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.white);
float[] dash = {20.0f};
BasicStroke strok = new BasicStroke(3.0f, BasicStroke.CAP_SQUARE,
BasicStroke.JOIN_MITER, 1.0f, dash, 0.0f);
g2d.setStroke(strok);
g2d.draw(new Line2D.Double(10, 350, 1000, 350));
10
//pohon atas kiri
g.setColor(Color.green);
g.fillOval(150,210, 30,50);
g.fillOval(140, 230, 30,30);
g.fillOval(160, 230, 30,30);
g.fillRect(160,240,9 ,60 );
11
//pohon bawah tengah
g.setColor(Color.green);
g.fillOval(390,300, 30,40);
g.fillOval(380, 320, 30,30);
g.fillOval(400, 320, 30,30);
g.fillRect(400,340,9 ,60 );
//Tanaman
g.setColor(new Color(0,140,0));//warna hijau
g.fillOval(0, 550, 30,30);
g.fillOval(25, 550, 30,30);
g.fillOval(50, 550, 30,30);
g.fillOval(15, 530, 30,30);
g.fillOval(32, 530, 30,30);
12
g.fillOval(122, 410, 30,30);
13
g.fillOval(650, 500, 30,30);
g.fillOval(615, 480, 30,30);
g.fillOval(632, 480, 30,30);
14
//==============Gambar Awan
g.setColor(Color.white);
g.fillOval(30,70,100,50);
g.fillOval(90,70,90,40);
g.fillOval(125,70,100,50);
g.fillOval(330,70,100,50);
g.fillOval(390,70,90,40);
g.fillOval(425,70,100,50);
g.fillOval(730,70,100,50);
g.fillOval(790,70,90,40);
g.fillOval(825,70,100,50);
g.setColor(Color.red);
//Rumah
//salju
g.setColor(Color.WHITE);
g.fillOval(750, 375, 100, 100);
g.fillOval(820, 360, 50, 50);
g.fillOval(850, 375, 60, 60);
g.fillOval(870, 380, 80, 80);
//Cerobong Asap
g.setColor(new Color(201, 187, 161));
g.fillRect(900, 360, 25, 100);
15
//Atap Rumah
g.setColor(new Color(70, 51, 36));
int x[] = new int[] {700,850,1000};
int y[] = new int [] {420,370,420};
g.fillPolygon(x, y, 3);
//Rumah
g.setColor(new Color(246, 220, 226));
g.fillRect(750, 420, 200, 120);
//Pintu Rumah
g.setColor(new Color(199, 75, 5));
g.fillRect(800, 465, 50, 75);
//Jendela Rumah
g.setColor(new Color(199, 75, 5));
g.fillRect(880, 455, 40, 40);
g.setColor(new Color(251, 252, 191));
g.fillRect(885, 460, 30, 30);
//Gagang Pintu
g.setColor(new Color(201, 187, 161));
16
g.fillOval(830, 500, 10, 10);
//salju kiri
g.setColor(Color.WHITE);
g.fillOval(-23, 450, 100, 100);
g.fillOval(-15, 500, 180, 180);
g.fillOval(150, 490, 200, 200);
g.fillOval(300, 520, 200, 200);
//Bunga Kiri
g.setColor(new Color (223, 79, 245));
g.fillOval(10, 550, 30, 10);
g.fillOval(20, 540, 10, 30);
g.setColor(Color.yellow);
g.fillOval(20, 550, 10, 10);
17
g.fillOval(55, 560, 30, 10);
g.fillOval(65, 550, 10, 30);
g.setColor(Color.yellow);
g.fillOval(65, 560, 10, 10);
18
g.setColor(new Color (223, 79, 245));
g.fillOval(395, 560, 30, 10);
g.fillOval(405, 550, 10, 30);
g.setColor(Color.yellow);
g.fillOval(405, 560, 10, 10);
19
g.setColor(Color.yellow);
g.fillOval(60, 510, 10, 10);
20
g.fillOval(290, 540, 30, 10);
g.fillOval(300, 530, 10, 30);
g.setColor(Color.yellow);
g.fillOval(300, 540, 10, 10);
//Rumput kanan
g.setColor(new Color (9, 169, 9));
21
g.fillOval(950, 500, 100, 100);
g.fillOval(900, 530, 80, 80);
g.fillOval(850, 530, 65, 65);
g.fillOval(500, 500, 130, 130);
g.fillOval(600, 540, 120, 120);
g.fillOval(700, 530, 110, 100);
//Bunga Kanan
g.setColor(Color.red);
g.fillOval(570, 550, 30, 10);
g.fillOval(580, 540, 10, 30);
g.setColor(Color.yellow);
g.fillOval(580, 550, 10, 10);
g.setColor(Color.red);
g.fillOval(550, 510, 30, 10);
g.fillOval(560, 500, 10, 30);
g.setColor(Color.yellow);
g.fillOval(560, 510, 10, 10);
g.setColor(Color.red);
g.fillOval(630, 570, 30, 10);
g.fillOval(640, 560, 10, 30);
g.setColor(Color.yellow);
g.fillOval(640, 570, 10, 10);
g.setColor(Color.red);
g.fillOval(670, 560, 30, 10);
22
g.fillOval(680, 550, 10, 30);
g.setColor(Color.yellow);
g.fillOval(680, 560, 10, 10);
g.setColor(Color.red);
g.fillOval(720, 565, 30, 10);
g.fillOval(730, 555, 10, 30);
g.setColor(Color.yellow);
g.fillOval(730, 565, 10, 10);
g.setColor(Color.red);
g.fillOval(855, 560, 30, 10);
g.fillOval(865, 550, 10, 30);
g.setColor(Color.yellow);
g.fillOval(865, 560, 10, 10);
g.setColor(Color.red);
g.fillOval(775, 570, 30, 10);
g.fillOval(785, 560, 10, 30);
g.setColor(Color.yellow);
g.fillOval(785, 570, 10, 10);
g.setColor(Color.red);
g.fillOval(775, 570, 30, 10);
g.fillOval(785, 560, 10, 30);
g.setColor(Color.yellow);
g.fillOval(785, 570, 10, 10);
23
g.setColor(Color.red);
g.fillOval(890, 550, 30, 10);
g.fillOval(900, 540, 10, 30);
g.setColor(Color.yellow);
g.fillOval(900, 550, 10, 10);
g.setColor(Color.red);
g.fillOval(920, 570, 30, 10);
g.fillOval(930, 560, 10, 30);
g.setColor(Color.yellow);
g.fillOval(930, 570, 10, 10);
g.setColor(Color.red);
g.fillOval(1000, 565, 30, 10);
g.fillOval(1010, 555, 10, 30);
g.setColor(Color.yellow);
g.fillOval(1010, 565, 10, 10);
g.setColor(Color.red);
g.fillOval(980, 540, 30, 10);
g.fillOval(990, 530, 10, 30);
g.setColor(Color.yellow);
g.fillOval(990, 540, 10, 10);
g.setColor(Color.red);
g.fillOval(995, 515, 30, 10);
g.fillOval(1005, 505, 10, 30);
g.setColor(Color.yellow);
24
g.fillOval(1005, 515, 10, 10);
g.setColor(Color.red);
g.fillOval(945, 550, 30, 10);
g.fillOval(955, 540, 10, 30);
g.setColor(Color.yellow);
g.fillOval(955, 550, 10, 10);
//Boneka Salju
g.setColor (Color.white);
g.fillOval (128, 385, 40, 40); // kepala
g.fillOval (114, 413, 70, 50); // badan atas
g.fillOval (100, 450, 100, 60); // badan bawah
g.setColor (Color.black);
g.fillOval (135, 400, 5, 5); // mata kiri
g.fillOval (153, 400, 5, 5); // mata kanan
g.setColor(Color.BLACK);
g.drawLine (178, 437, 213, 427); // tangan kiri
g.drawLine (120, 437, 80, 427); // tangan kanan
25
Outputnya
26