Kamis, 28 Oktober 2010

BAHASA INDONESIA

Mata Kuliah : Bahasa Indonesia
Nama : Rhainy Rahmy
Npm: 11108636
Judul Penulisan Ilmiah : Pembuatan Aplikasi Personality Test dengan PHP dan My SQL


BAB 1.
Pendahuluan
  • Latar belakang:
-- menggunakan = guna : kata baku (3)
-- penulis= kata ganti orang (1)
-- yang = kata baku (6)
-- dan = kata baku (4)
-- dapat=sama saja dengan kata bisa (2)
-- mendapatkan = memperoleh : kata baku (1)
-- dengan = kata baku (1)

  • Ruang Lingkup
-- penulis = kata ganti untuk orang (1 )
-- hanya = kata baku (1)
-- yang = kata baku (1)
-- dan = kata baku (1)
-- akan = kata baku (1)


  • Metode Penulisan
-- penulis = kata ganti orang ( 3 kata)
-- menyelesaikan = selesai : kata baku (1)
-- dan = kata baku (1)
-- metode = kata baku (1)
-- memudahkan = mempermudah : kata baku (1)

  • Sistematika Penulisan
-- tidak ada kata yang mengandung unsur kata tidak baku dan kata ganti orang didalam sistematika penulisan ini .

Makalah metode Bresenham

Disusun Oleh:
-Rhainy Rahmy 11108636
-Reza Febrian 12108217
-Sri Dewi Eka Sari 12108362
-Vicky 11108999
-Vikry Yuansyah 12108003
-Yoan Dwi Utami 12108080









ALGORITMA BRESENHAM

Algoritma Bresenham menggunakan aritmatika integer yang tidak memerlukan perkalian dan pembagian dalam proses perhitungannya didalam seluruh implementasi, yang mana aritmatika integer ini memiliki kecepatan perhitungan yang libih tinggi dari pada aritmatika floating point.

ALGORITMA BRESENHAM
-dikembangkan oleh Bresenham
-berdasarkan selisih antara garis yang diinginkan terhadap setengah ukuran dari piksel yang sedang digunakan.

Bresenham pada tahun 1965,melakukan perbaikan dari algoritma perhitungan koordinat piksea yang menggunakan persaan (1),dengan cara menggantikan operasi bilangan ril perkalian dengan operasi penjumlahan,yang kemudian dengan algoritma bresenham. Pada algoritma bresenham, nilai y kedua dan seterusnya dihitung dari nilai y sebelumnya, sehingga hanya titik y pertama yang perlu dilakukan operasi secara lengkap. Perbaikan algoritma ini ternyata tidak menghasilkan yang cukup signifikan. Perbaikan berikutnya dilakukan dengan cara menhilangkan operasi bilanagan riel dengan operasi bilangan integer. Operasi bilangan integer jauh lebih cepat dibangdingkan dengan operasi bilangan riel, terutama pada penambahan dan pengurangan.
untuk menentukan jumlah piksel yang membuat suatu garis menggunakan algoritma bresenham adalah sebagai berikut:
1.Masukkan 2 endpoint,simpan endpoint kiri sebagai (x0,y0) dan kanan (x1,y1)
2.hitung konstanta nya dan nilai awal parameter keputusannya.
3. Pada setiap xk digaris,dimulai dari k=0,ujilah: jika pk0 maka plot (xk+1,yk+1) dan pk=pk+2y-2x
4.Ulangi tahap 4 sampai mencapai x,y yang dituju.
contoh:
hitunglah posisi pikse; hingga membentuk sebuah garis yang menghubungkan titik (4,1) dan (14,8)
1.Menentukan endpoint(x0,y0)=(4,1) dan (x1,y1)=(14,8)
2.Hitung Konstanta:
Dx=x1=x0 Dx=14-4=10
Dy=y1-y0 Dy=8-1=7
2Dx=2.10=20
2Dy=2.7=14
2Dy-2Dx=14-20=-6
pk=p0=2Dy-Dx pk=p0=14-14=4
3.Jadi nilai keputusan awal=4, karena pk=4 maka kita gunakan pk>0 maka plot (xk+1,yk+1)=(4+1,1+1)=)5,2) adalah plot yang terbentuk pada K=0. dan kita hitung nilai keputusan untuk plot selanjutnya. Dengan rumus pk=pk+2y-2x pk=4+(-6)=-2 adalah nilai keputusan yang k 2.karena pk=-2 kita gunakan rumus pk<0 maka plot (xk+1,yk)=(5+1,2)=(6,2) plot yang terbentuk pada K=1. Ulangi cara tersebut hingga mencapai endpoint (x1,y1).

Contoh Source Code Program Bresenham pada Bahasa C++:
#include

#include

#include
#include

using namespace std;

void sumbu(){
glPushMatrik();
glBegin(GL_LINES);
glVertex3f(0,0,0.0);

glVertex3f(0,1,0.0);

glVertex3f(0,0,0.0);

glVertex3f(1,0,0.0);

glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glPopMatrix();
glEnd();
glFlush();
}
void Diagonal() {
float a,b,c,d;
cout<<"Masukkan Xo :";cin>>a;
cout<<"Masukkan Yo :";cin>>b;
cout<<"Masukkan X1 :";cin>>c;
cout<<"Masukkan Y1 :";cin>>d;
glPushMatrik();
glBegin(GL_LINES);
glVertex3f(a+0.5,b+0.5,0.0);
glVertex3f(c+0.5,d+0.5,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glPopMatrik();
glEnd();
glFlush();

}

void Horizontal() {

float c,d,y;
cout<<"Masukkan XAwal:";cin>>c;
cout<<"Masukkan XAkhir:";cin>>d;
cout<<"Masukkan Ytetap:";cin>>y;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINES);
glVertex3f(c+0.1,y+0.1,0.0);
glVertex3f(d+0.1,y+0.1,0.0);
glEnd();
glFlush();
}
void Vertikal() {

float a,b,x;
cout<<"Masukkan Yawal :";cin>>a;
cout<<"Masukkan Yakhir:";cin>>b;
cout<<"Masukkan Xtetap:";cin>>x;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINES);
glVertex3f(x+0.5,a+0.5,0.0);
glVertex3f(x+0.5,b+0.5,0.0);
glEnd();
glFlush();
}

void initialize(){
glClearColor(0.0,0.0,0.0,0.0);
glMatrikMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}
int main(int iArgc,char** cppArgv) {
menu:
int a;
cout<<"-----MENU----\n";
cout<<"1.Garis vertikal\n";
cout<<"2.Garis Horizontal\n";
cout<<"3.Garis Diagonal\n";
cout<<"4.Exit\n";
cout<<"------------------\n";
cout<<"Masukkan pilihan anda:";cin>>a;
cout<<"\n";
glutlnit(&iArgc,cppArgc);
glutlnitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutnitWindowSize(500,500);
glutlnitWindowPosition(600,200);
glutCreateWindow("OpenGL with C++");
Initialize();
wjile (a<=4){
switch(a){
case 1:
glDisplayFunch(Vertikal);
glutMainLoop();
return 0;

case 2:
glutDisplayFunc(Hirzontal);
glutMainLoop();
return 0;

case3:
glutDisplayFunc(Diagonal);
glutMainLoop();
return 0;
default:
cout<<"anda salah memasukkan";
goto menu;
}}


}

Pada saat di RUN:

gambar 1:


























gambar 2:
























gambar 3: