Hamdan Nurachid[1], Deni Herdiansyah[2], Dona Gema Ramadhan[3], Esa Firmansyah, S.T., M. Kom.[4]
[1]
A2.1600074@mhs.stmik-sumedang.ac.id , A2.1600043@mhs.stmik-sumedang.ac.id[2],
A2.1600054@mhs.stmik-sumedang.ac.id[3]
, esa@stmik-sumedang.ac.id[4]
Jl. Angkrek Situ No.19, Situ, Sumedang Utara, Kabupaten Sumedang, Jawa Barat 45621
ABSTRAK
Garis adalah kumpulan titik-titik yang tersusun secara lurus dan linier dari titik awal sampai titik akhir. Penggambaran garis
dilakukan dengan menghitung posisi-posisi sepanjang jalur lurus antara dua posisi titik. Jalur lurus yang menghubungkan dua
titik tersebut sebenarnya adalah titik-titik yang saling berdempetan mengikuti arah jalur lurus tersebut. Titik dan garis adalah
contoh dari output primitif yang dapat digunakan untuk membentuk gambar, misalnya lingkaran, kerucut, permukaan
berbentuk persegi, kurva dan permukaan berbentuk lengkung, warna area dan karakter, dan lain-lain. Gambar-gambar seperti
rumah, tembok, gedung dan lain-lain merupakan obyek yang lengkap yang ditempatkan pada koordinat tertentu pada layar,
dimana obyek-obyek tadi sebenarnya tersusun dari kumpulan titik dan garis sebagai penyusunnya. Pada grafika komputer
mengenal algoritma pembentukan garis salah satunya adalah Algoritma DDA (Digital Differential Analyzer) yang
menggambarkan garis berdasarkan titik awal dan titik akhir dari suatu nilai. Algoritma DDA adalah algoritma pembentukan
garis berdasarkan perhitungan dx maupun dy, menggunakan rumus dy=m.dx. Semua koordinat titik yang membentuk garis
diperoleh dari perhitungan kemudian dikonversikan menjadi nilai integer.
1. PENDAHULUAN
Grafika Komputer adalah suatu bidang komputer yang mempelajari cara-cara meningkatkan dan
memudahkan komunikasi antara manusia dan mesin dengan jalan membangkitkan, menyimpan dan
memanipulasi gambar model suatu objek menggunakan komputer [1]. Pada grafika komputer tidak
terlepas dari yang namanya garis. Garis adalah kumpulan titik-titik yang memanjang secara tak
berhingga ke dua arah.Sebuah garis memiliki panjang tidak terbatas. Kumpulan dari titik-titik, untuk
membentuk garis lurus adalah dengan mengetahui titik awal dan titik akhir. Dengan mengetahui titik
awal dan titik akhir maka sebuah garis dapat dibentuk. Untuk menggambarkan proses pembuatan garis
dari titik awal ke titik akhir ada berbagai algoritma. Algoritma yang umum salah satunya adalah DDA
(Digital Differential Analyzer) yang kemudian dapat di implementasikan pada bahasa C dalam proses
pembentukan garis yang dibangun dari titik-titik.
2. TINJAUAN PUSTAKA
x = x + x_inc y = y + y_inc
7. Lakukan pembulatan u = Round(x), v = Round(x), kemudian plot piksel (u, v) pada layar
8. Ulangi point 6 dan 7 untuk menentukan posisi piksel berikutnya sampai x = x2 dan y = y2.
b. Pengertian Bahasa Pemrograman C
Bahasa Pemrograman C adalah sebuah bahasa pemrograman komputer yang bisa digunakan untuk
membuat berbagai aplikasi (general-purpose programming language), mulai dari sistem operasi
(seperti Windows atau Linux), antivirus, software pengolah gambar (image processing),
hingga compiler untuk bahasa pemrograman, dimana C banyak digunakan untuk membuat bahasa
pemrograman lain yang salah satunya adalah PHP[2].
Bahasa pemrograman C dibuat pertama kali oleh Dennis M. Ritchie pada tahun 1972. Saat itu
Ritchie bekerja di Bell Labs, sebuah pusat penelitian yang berlokasi di Murray Hill, New Jersey,
Amerika Serikat. Ritchie membuat bahasa pemrograman C untuk mengembangkan sistem
operasi UNIX. Sebelumnya, sistem operasi UNIX dibuat menggunakan bahasa assembly (assembly
language). Akan tetapi bahasa assembly sendiri sangat rumit dan susah untuk dikembangkan [2].
Dengan tujuan mengganti bahasa assembly, peneliti di Bell Labs membuat bahasa pemrograman B.
Namun bahasa pemrograman B juga memiliki beberapa kekurangan, yang akhirnya di lengkapi
oleh bahasa pemrograman C[2].
Dengan bahasa C inilah sistem operasi UNIX ditulis ulang. Pada gilirannya, UNIX menjadi dasar
dari banyak sistem operasi modern saat ini, termasuk Linux, Mac OS (iOS), hingga sistem
operasi Android[2].
3. PEMBAHASAN
Algoritma DDA (Digital Differential Analyzer) adalah algoritma pembentukan garis berdasarkan
perhitungan Dx dan Dy,yaitu pembuatan garis dengan langkah umum sebagai berikut: [4]
1. Tentukan Titik Awal dan Akhir
Titik Awal (x1,y1)
Titik Akhir (x2,y2)
2. Pengubahan Posisi (steps)
Jika Dx > DY maka steps = DX
Jika tidak maka steps = DY
Dx = X2 - X1
Dy = Y2 - Y1
Perubahan nilai X (X_inc) = Dx/steps
Perubahan nilai Y (Y_inc) = Dy/steps
3. Perulangan (ubah posisi dan gambar)
X = X + X_inc
Y = Y + Y_inc
Berdasarkan rumus di atas maka dapat diimplementasikan dalam suatu bentuk program dengan
bahasa C.
// Algoritma DDA
#include <GL\freeglut.h>
#include <GL\glut.h>
#include <iostream>
//identifier fungsi
void init();
void display(void);
void dda(void);
// ukuran window
int window_width = 720;
int window_height = 480;
// judul window
char *judul_window = "Algoritma DDA";
init();
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0); //set warna background
glColor3f(255., 8.0, 1.0); //set warna titik
glPointSize(2.0); //set ukuran titik
glMatrixMode(GL_PROJECTION); //set mode matriks yang digunakan
glLoadIdentity(); // load matriks identitas
gluOrtho2D(0.0, 600.0, 0.0, 600.0); // set ukuran viewing window
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT); //clear color
dda(); //panggil fungsi dda
glutSwapBuffers(); //swap buffer
}
void dda(void) {
int x1, y1, x2, y2;
float x,y,dx, dy, steps, x_inc, y_inc;
//tentukan titik awal dan akhir
x1 = 1;
y1 = 1;
x2 = 500;
y2 = 500;
x = x1;
y = y1;
//hitung dx dan dy
dx = x2 - x1;
dy = y2 - y1;
//hitung steps
if (dx > dy) {
steps = dx;
}
else steps = dy;
glEnd();
glFlush();
4. HASIL
Dengan menentukan tiitk awal dan titik akhir pada kode program maka akan membentuk suatu garis
yang dihasilkan dari banyak titik-titik pada perulangannya. Hasilnya seperti dibawah ini.
Pembentukan garis di atas bukanlah sepenuhnya garis lurus melainkan berupa titik-titik yang diulang
sehingga membentuk garis lurus berdasarkan titik awal dan titik akhir.
5. PENUTUP
Pembentukan garis diciptakan dari ratusan bahkan ribuan titik-titik yang saling terhubung satu sama lain
sehingga mampu membentuk suatu garis. Menurut algoritma pembentukan garis DDA (Digital
Differential Analyzer) garis dibentuk berdasarkan perhitungan Dx dan Dy, dengan menggunakan rumus
Dy = m. Dx [3]. Garis dibuat dengan menentukan dua endpoint atau posisi awal dan posisi akhir dari
suatu garis. Implementasi pembentukan garis dapat di praktekan pada bahasa pemrograman C/C++ agar
mengetahui proses garis yang dibentuk dari titik-titik.
DAFTAR PUSTAKA
[1] https://www.teknoborneo.com/2017/03/apa-itu-grafika-komputer.html
[2] https://www.duniailkom.com/tutorial-belajar-c-pengertian-bahasa-pemrograman-c/
[3] http://gustiam74.blogspot.co.id/2016/04/algoritma-pembentukan-garis-dda-dan.html
[4] http://demamteknologia.blogspot.com/2016/10/algoritma-dda.html