Web Services Development and Desktop Application

Our service available which to give the best service to our customers company for any categories development.

A Poem

There is no true love, the true love only in God!

The Magisters of Engineering

Have been graduated Huraa!

Cyber Eye

Cyber Eye is one of the community that founded by Adi Ahmad M outside campus, and have a goal to be technopreneurs in expanding knowledge and business in information technology!

We are in The Event of Programming Contest ACM 2011

This Photo taken when Event of Programming Competition ACM which implemented with online system from Widyatama University through Bina Nusantara University and some of top university in Asia to United States as the Promoter.

Informatics Research Development Lab

My Friends and as Senior was built and assembly a robots in ERD Lab.

The Committee of Advance.Inc Go to Campus Widyatama - Saung Android Bandung Workshop and Seminar

On this seminar we're discuss, to provide training about how to developing and costumizing mobile android app with eclipse development tools and also there is the introducing for the new product of Advance Android products (VANDROID)

Minggu, 13 April 2014

Strategi Algoritma : Divide and Conquare (Kasus Min Max, Merge Sort, Mencari Koin palsu, Knapsack I/O

Apa kabar sobat informatika, sudah lama rasanya aku jarang aktif untuk memposting artikel maupun tutorial, karena akhir-akhir ini aku sedang "ripuh" mengurus laporan kerja praktik dan mempersiapkan untuk skripsi >.<.  Tapi, tetap bersukur masih bisa sempet membuka blogku ini yang udah lama kurang ke urus, seperti rumah berisikan barang usang yang dipenuhi sarang spiderman dan di huni oleh cucu-cucunya? a.k.a (artikel tdk update) hehe, Kok curhat? haduh!
okay, langsung aja deh ke pokok hal yang ingin dibahas,pada hari selasa lalu waktu bandung timur(WBT) ^^, aku di kasih tugas oleh dosen, yaitu disuruh buat algoritma dan program yang menggunakan strategi algoritma divide and conquare. 

Baiklah apa itu Strategi algoritma?
Strategi algoritma merupakan kumpulan algoritma yang disusun dari berbagai macam metode (cara) untuk menyelesaikan masalah dan sudah di definisikan, di gagas, di bukukan oleh si pembuat algoritma menjadi ke banyak metode penyelesaian. 

Nah disini aku ingin membahas salah satu metode yang cukup populer dan terkenal di kalangan mahasiswa informatika atau mungkin mahasiswa matematika. Yaitu, Metode Divide and Conquer dimana dulunya adalah strategi militer yang dikenal dengan nama divide ut imperes.Sekarang strategi tersebut  menjadi strategi fundamental di dalam ilmu komputer.

Definisi
Divide:  membagi masalah menjadi beberapa sub-masalah yang memiliki kemiripan dengan masalah semula namun berukuran lebih kecil (idealnya berukuran hampir sama),

Conquer: memecahkan (menyelesaikan) masing-masing sub-masalah (secara  rekursif), dan

Combine: mengabungkan solusi masing-masing sub-masalah sehingga membentuk solusi masalah semula.

Obyek permasalahan yang dibagi :
    masukan (input) atau instances yang berukuran n seperti:
    - tabel (larik),
    - matriks,
    - eksponen,
    - dll, bergantung pada masalahnya.

Tiap-tiap sub-masalah mempunyai karakteristik yang sama (the same type) dengan karakteristik masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam skema rekursif.

Skema umum algoritma divide and conquare


Berikut adalah skema umum jika pembagian selalu menghasilkan dua sub masalah yang berukuran sama.
Gunakan T(n) =  g(n),  jika  n <= n0 ;  atau
                2T(n/2) + f(n),  n >n0



penyelesaian dengan metode divide & conquare:
Illustrasi Gambar 4.1
















  • Ukuran tabel hasil pembagian dapat dibuat cukup kecil sehingga mencari minimum dan maksimum dapat diselesaikan (SOLVE) secara lebih mudah.
  • Dalam hal ini, ukuran kecil yang dipilih adalah 1 elemen atau 2 elemen. 

 Gambar 4.2


















Algoritma cara penyelesaian kasus Min Max dengan Divide & Conquare:

Untuk lebih detail silakan download file dibawah ini,  apabila ada kekeliruan di algoritmanya silahkan berikan kritik dan sarannya yang bersifat membangun pada kotak komentar, Trims.
    
Download Materi Diktat Strategi Algoritma 
Download Contoh Kasus Lengkap Algoritma Min Max - Knapsack I/O

Rabu, 29 Januari 2014

Input Array dengan perulangan for dan searching

Input Array dengan perulangan for dan searching

Input Nilai dengan Looping 'For' (perulangan)

Input Nilai dengan Looping 'For' (perulangan)

 

Membuat Hello World dengan Bahasa C


Minggu, 29 Desember 2013

Algoritma dan Pemrogramman I : Definsi dan alasan mengapa membuat algoritma

     Hi sobat, sekarang aku ingin sharing pembahasan mengenai algortima. Mungkin bagi orang yang masih awam menganggapnya bahwa algortima itu adalah sama dengan logaritma dan sejenisnya. Sebenarnya algoritma itu tidak sama dengan logaritma seperti yang di pikirkan kebanyakan orang awam. Disini akan aku jelaskan, apa itu algoritma menurut pengertian/definisi ku sendiri, karena di bangku kuliah dosen ku yang ngajar kuliah algoritma menyarankan, agar kita sebagai mahasiswa mampu untuk menciptakan ,mengembangkan dan mengadopsi definisi-definisi yang sudah ada menjadi sebuah pengertian/definisi baru, menjadikan definisi yang lebih baik dan mudah di pahami orang lain.

Berikut ini definisi algoritma versi saya. Mungkin, bila ada kesalahan dan kekurangan, mohon di koreksi!

Baiklah, Apa itu Algortima?
Algoritma adalah cara/metode yang dibuat untuk menyelesaikan suatu masalah secara terstruktur (ter-urut) dan sistematis.

Catatan: 
Algoritma sangat erat kaitannya dengan logika matematika, urutan, tata cara penulisan (syntax) dan  analisis masalah untuk problem solving.

Ruang lingkup dan syarat algoritma harus ada :
Masukan (input) --> Proses (proccess) --> keluaran (output).

Perbedaan Algoritma dan Logaritma?
Algortima metode yang dibuat untuk menyelesaikan masalah secara terurut dan sistematis. Sedangkan Logaritma adalah sebuah operasi matematika yang sifatnya merupakan kebalikan dari eksponen atau perpangkatan, dasar logaritma adalah operasi perpangkatan yang memiliki sifat-sifat/bentuk lain.

Catatan : 
Dalam sebuah Algortima garis miring ("//") atau ("/*blablabla*/") berfungsi sbg komentar/penjelasan, tidak akan berpengaruh terhadap jalannya suatu algoritma maupun program. ("//") untuk single line dan ("/*blablabla*/") untuk multiple line.
Contoh Algortima:
Case1
//Title: Algoritma Taxi (algo sederhana)

1. Pergi ke tempat dimana taxi berada
2. Masuk ke dalam taxi
3. Beri supir taxi alamat tujuan anda

kasus lain, dituliskan sesuai dengan aturan/kaidah dan syntax penulisan algoritma.

Case2
//Title: Algoritma untuk menghitung Luas Persegi Panjang 

//kamus = (Deklarasi/keterangan tipe data untuk tiap variabel)
panjang : real;   //panjang diberi nilai dgn tipe data bilangan riil
lebar : real;      //
lebar diberi nilai dgn tipe data bilangan riil
luas : real;      //luas diberi nilai dgn tipe data bilangan riil

//Algoritma
output("Menghitung Luas Persegi Panjang");
output("Masukan Panjang Persegi :");
input(panjang);
output("Masukan Lebar Persegi :");
input(lebar);
output("Masukan Panjang Persegi :");
luas = panjang*tinggi;
output("Luas Persegi Panjang Adalah :",luas); 



Berikut ini, contoh algoritma untuk program konversi dari nilai biner ke logika bolean (Benar/Salah).
Case3

//Title : program_konversi_biner_boolean
//kamus (Deklarasi)
biner : bolean{benar,salah};

//Algoritma
output("Konversi Biner ke Boolean");
output("Masukan Bilangan Biner(0/1)");
input(biner);
if(biner=0) then output("salah");
else
output("salah");
endif



Contoh Logaritma:
Exponensial --> a^b = c , jika dimasukan nilai maka  2^3 = 8
Logaritma (kebalikan perpangkatan) --> a log c = b  atau 2 log 8 = ? ; maka, jawabannya adalah 3

Mungkin singkatnya logaritma seperti itu, jika sobat lupa atau ingin tau lebih detail bisa pelajari lagi materinya, tinggal googling. Disini aku ingin lebih memfokuskan kepada penjelasan mengapa seorang calon mahasiswa ilmu komputer (programmer) harus bisa memahami dan menulis algoritma.
Alasan mengapa perlu belajar algoritma, yaitu agar dapat terbantu dalam proses pembuatan alur program menjadi lebih mudah, cepat dan terstruktur. Algoritma merupakan dasar untuk memperkuat pondasi logika seorang programmer dalam menguasai berbagai bahasa pemrogramman yang semakin update dan banyak muncul dewasa ini. Terlebih bukan bahasa pemrogramman yang bersifat terstruktur, akan tetapi sudah berorientasi objek, umumnya cukup rumit dan disegani oleh sebagian kalangan mahasiswa ilmu komputer (calon programmer).

Tips-tips belajar algoritma :
1. Pelajari aturan penulisan (syntax) sesuai kaidah algortima dan yang bisa dimengerti orang lain.
2. Analisis masalah, tipe data apa saja yang dibutuhkan dari masalah tersebut?
3. Baca sampai paham dan berlatih secara kontinyu
4. Ngulik contoh yg ada/nyoba-nyoba algoritma orang dengan sedikit modifikasi
5. Implementasi algoritma ke bahasa pemrogramman yang dikehendaki
6. Jika gagal atau error, coba terus perbaiki secara kontinyu sampai berhasil
7. Pantang menyerah!
 Mumpung lagi liburan dan banyak waktu luang jadi dari pada bengong nge betein, gak tau kenapa aku ada hasrat buat nulis ini. Hmmm, Sepertinya segitu dulu, semoga bisa di buat lanjutannya! =)

Kamis, 24 Oktober 2013

Grafika Komputer Output Primitive : Ellips Midpoint Circle

ELLIPS
  • Ellips didefinisikan sebagai himpunan titik yangjumlah jarak dari 2 posisi yang tetap adalah sama untuk setiap titik.
  •  Persamaan Ellips dengan pusat 0,0 dan jari-jari Rx dan Ry adalah:














  
Algoritma Pembentukan elips
• Kuadran pertama dibagi menjadi 2 (dua) region danndengan menggunakan algoritma midpoint ellipse, plot titik untuk region pertama, kemudian koordinat akhir pada region I menjadi koordinat awal untuk region II.

Region 1 dan 2 dapat digunakan dengan berbagai macam cara. Pertama dimulai dari posisi (0,r) dan  melangkah searah jarum jam sepanjang jalur ellips pada kuadran pertama. Pergeseran dengan unit step dalam x pada saatslope lebih besar dari 1.

Cara mengerjakan algoritma ellipse hampir sama langkahnya dengan lingkaran, bedannya ellipse memiliki dua jari-jari dan memiliki dua daerah, yaitu region I & II, region I harus diselesaikan terlebih dahulu sebelum lanjut mengerjakan ke region II.

 Contoh soal ellips:

Studi Kasus!



Selasa, 22 Oktober 2013

Grafika Komputer Output Primitive : Lingkaran Midpoint Circle



Setelah sebelumnya membahasa algoritma DDA dan Bresenham, sekarang aku mau share  tentang algoritma midpoint circle untuk lingkaran dan ellips. 




















Persamaan Lingkaran
•   Lingkaran dapat digambarkan dengan menggunakan
persamaan koordinat rectangular tsb akan tetapi
pendekatan ini menimbulkan dua masalah yaitu :
–  Persamaan tersebut mengandung perhitungan akar yang
operasinya memakan waktu.
–  Timbul gap yang cukup signifikan pada lingkaran ketika
digambarkan. 










Midpoint Circle Algorithm
•   Untuk mengatasi masalah yang timbul dari penerapan koordinat polar maupun rectangular, Bresenham menyusun suatu algoritma pembentukan lingkaran yang hanya menggunakan aritmetika integer. Secara prinsip algoritma ini sejenis dengan algoritma penggambaran garis yang disusun oleh orang yang sama.

•   Lingkaran merupakan objek yang simetris sehingga karakteristik ini dapat dimanfaatkan untuk mengurangi pekerjaan pada saat menggambar lingkaran. Lingkaran dibagi menjadi 8 oktan (lihat
gambar 3.x), misalkan kita menyusun algoritma untuk menggambarkan lingkaran di oktan pertama, maka koordinat untuk 7 oktan selanjutnya dapat ditentukan.

 


 Midpoint Circle Algorithm
 















Langkah-langkah mengerjakan algortima midpoint circle
1. Input jari-jari (r) dan koordinar pusat lingkaran (xc,yc), kemudian tentukan koordinat untuk titik  awal (xo,yo) = (x, r)
2. Hitung nilai awal untuk parameter keputusan Po = 1 -  r
3. Untuk setiap xk, mulai dari k = 0, periksa/cek kondisi berikut :
  • Jika nilai pk < 0 maka, titik selanjutnya pada lingkaran dgn pusat (0,0) adalah                                   xk+1=x +1, nilai  y tetap; dan  pk+1 = pk + 2.x + 1
Selain itu berarti,
  •  pk > 0 maka, titik selanjutnya adalah xk+1 = x + 1, yk+1 = y - 1; dan  pk+1 = pk + 2x - 2y + 1
4. Ulangi langkah 3 sampai 4, hentikan perhitungan ketika x  > atau =  y


Contoh 1 :

















x^2 + y^2 = 100
Dari mana y = 10 ?  liat tabel pada plot awal (x,y)=(x,r) = (0,10)
ternyata 100 apabila di akar kan, maka hasilnya sama dengan 10
Po = 1 -  r  = 1 - 10 = -9
jadi, skrng jari-jarinya sudah diketahui = 10  dan  2x = 0,  2y = 20 , pk = -9

Nah..  tinggal menghitung k, dimulai dari k=0, sampai  batas yang di tentukan (x  > atau =  y).
Liat Algoritma midpoint circle dan Perhatikan Langkah-langkah mengerjakan algortima midpoint circle!
k=0
pk = 1 - r = 1 - 10 = -9
periksa pk,  pk < 0 maka,
xk+1 = 0 + 1 = 1 , nilai  10 tetap;
pk+1 = pk + 2.x + 1
         = -9  + 2 .1 + 1 =  -6
2x = 2
2y = 20

k=1
periksa pk,  pk < 0 maka,
xk+1 = 1 + 1 = 2 , nilai  10 tetap;
pk+1 = pk + 2.x + 1
         = -6 + 2 . 2 + 1 = -1
2x = 4
2y = 20

k=2
periksa pk,  pk < 0 maka,
xk+1 = 2 + 1 = 3 , nilai  10 tetap;
pk+1 = pk + 2.x + 1
         = -1 + 2 . 3 + 1 = 6
2x = 6
2y = 20

k=3
periksa pk,  pk > 0 maka,
xk+1 = 3 + 1 = 4, yk+1 = 10 - 1 = 9
pk+1 = pk + 2x - 2y + 1 
         =  6 + 2 . 4 - 2 . 9 + 1 =  6 + 8 - 18 + 1 = -3
2x = 8
2y = 18

Lanjutkan sampai (x  > atau =  y), selesai.


Contoh 2 :
1.Diketahui titik pusat lingkaran (0,0) dan radius 8, perhitungan berdasarkan otktan dari kuadran

pertama dimana x = 0  hingga y = 0. Nilai parameter dapat ditentukan dengan Po = 1 - r (jari-jari).
Buatlah garis lingkaran dengan algoritma midpoint circle?

Penyelesaian :
koordinat titik pusat sama dengan kuadran pertama (x,y) = (x, r) = (0,8)
Po = 1 -  r
     = 1 - 8 =  -7


K
PK
( xk + 1, yk + 1)
-
-
0,8
0
-7
1,8
1
-4
2,8
2
1
3,8
3
-6
4,7
4
3
5,7
5
0
6,6

k=0
pk= 1 - r = 1 - 8 = -7
periksa pk,  pk < 0 maka,
xk = x + 1 = 0 + 1 = 1 , nilai y tetap  8 ;

k=1
periksa pk,  pk < 0 maka,
xk = x + 1 =  1 + 1 = 2 , nilai y tetap  8 ;
pk+1 = pk + 2.x + 1
         = -7 + 2 . 1 + 1 =  -4

k=2
periksa pk,  pk < 0 maka,
xk = x + 1 = 2 + 1 = 3 ,  nilai y tetap  8;
pk+1 = pk + 2.x + 1
         = - 4 + 2 . 2 + 1 =  1

k=3
periksa pk, pk > 0 maka,
xk = x + 1 = 3 + 1 = 4 ; yk = y - 1 = 8 - 1 = 7
pk+1 = pk + 2x - 2y + 1 
         =  1 +  2.3 - 2.7 + 1 = 1 + 6 - 14 + 1= -6
k=4
periksa pk, pk < 0 maka,
xk = x + 1 = 4 + 1 = 5 ,  nilai y tetap  7;
pk+1 = pk + 2.x + 1
         = - 6 + 2 . 4 + 1 =  3

k=5
periksa pk, pk > 0 maka,
xk = x + 1 = 5 + 1 = 6 ; yk = y - 1 = 7 - 1 = 6
pk+1 = pk + 2x - 2y + 1 
         =  1 +  2.5 - 2.6 + 1 = 1 + 10 - 12 + 1= 0

Proses di hentikan karena (x  > atau =  y).

Kode Program Lingkaran akan di suguhkan nanti.. Stay tuned!!


Latihan 
Dengan menggunakan midpoint circle algortihm, buat
lingkaran berdasarkan persamaan berikut ini :
–    x 2 + y 2 = 64
–    x 2 + y 2 = 49
          


Selasa, 03 September 2013

Grafika Komputer Output Primitive : Titik, Garis DDA dan Bresenham






     Grafika komputer merupakan bagian ilmu multimedia yang juga di pelajari di teknik informatika, bidang ini mempelajari bagaimana kita membuat sebuah grafis atau gambar dengan komputer atau program komputer pencipta grafis. Tapi, maksud dari menggambar disini adalah kita bukan mengedit gambar, melainkan sebagai pembuat software/aplikasi pengedit gambarnya. Semisal ada aplikasi Photoshop/Freehand,CorelDraw,AdobePremiere,Ulead,dll. Nah dengan kita belajar grafika komputer ini kita diharapkan bisa membuat sebuah aplikasi sederhana yang semacam itu(editor gambar/grafis). 

        Gafika komputer ini tidak hanya dipakai dalam editing desain saja, tetapi digunakan juga di bidang medis kedokteran sebagai alat pencipta gambar dari hasil scanner & pengolah foto rontegen. Di bidang militer digunakan untuk pembuatan monitor koordinat pesawat tempur dan masih banyak lagi kegunaan lainnya. Grafika komputer memiliki peran yang penting dan amat dibutuhkan dewasa ini, baru-baru ini penerapan yang sudah real nya adalah di sistem informasi geografis mapping (SIG), contohnya adalah : Google MAP & GPS MAP. Mungkin demikian sekilas pengetahuan aku tentang grafika komputer. Sekarang kita coba masuk ke pelajaran & perhitungannya, bahkan mungkin kalo aku ada waktu akan ku implementasikan dengan buat sebuah program grafis.


Memahami konsep primitif geometri titik dan garis
• memahami dan membedakan algoritma pembuatan garis
• Menganalisis algoritma pembuatan garis baik DDA
maupun bresenham
• Mengimplementasikan algoritma pembuatan garis dalam

program


Grafis Output primitif
- Fungsi digunakan untuk menggambarkan berbagai komponen gambar
- Contoh: mobil, rumah, bunga, ...

 Geometris Primitif
- Fungsi digunakan untuk menggambarkan titik, garis, segitiga, lingkaran, prisma ...

Dalam pembuatan titik dan garis, grafika komputer memiliki 3 metode Algoritma :
a.Algoritma Penggambaran Garis
b.Algoritma Digital Diferential Analyzer (DDA)
c.Algoritma Bresenham 

  
A.  Algoritma Penggambaran Garis:

Rumus Pers.Garis   y = m . x + b

Jika diketahui dua titik (x1,y1) dan (x2,y2) maka pers.garis dapat dihitung :

m = dy/dx  atau  m = y2 - y1 / x2 - x1

Contoh :












B. Algoritma Digital Diferential Analyzer (DDA) adalah scan convertion algorithm yang didasari oleh perhitungan berikut :

Scan Convertion
dy = m . dx      dan     dx = dy/ m

Basic DDA Algorithm
y = m . x + c (konstanta) 

m = dy/dx
                                                               

Syarat:
1. Jika 0<m<1  maka,
yk+1 = yk + m
xk+1 = xk + 1

2. Jika m >1  maka,
xk+1 = xk + 1/m
yk+1 = yk + 1


 Algoritma dlm pembuatan garis DDA



                                  











Langkah mengerjakan Algoritma DDA :
1.Inputkan titik awal (x1,y1) dan titik akhir (x2,y2)
2.Hitung dx dan dy dimana, dx = x2 - x1  dan  dy = y2 - y1
3.Jika absolut/abs |dx| > |dy| maka, |dx| = steps/ S, selain itu S = |dy|
4.Hitung berapa nilai dari abs |dx|= ? dan abs |dy|=? , serta steps
5.Hitung x_Incrementnya = dx/s   dan y_Incrementnya = dy/s
6.Hitung x1 = x + x_increment dan  y1 = y + y_increment
7.Ulang langkah 5 dan 6, sampai x > y

Contoh :
1. Misal buatlah sebuah garis dg titik awal (2,3) dan titik akhirr (12,8)
2. Berapa nilai dari tiap variabel-variabel x dan y pada setiap kali langkah, hingga mencapai batas yang ditentukan?

Penyelesaian:
Diket : 
Ttitik awal (2,3) dan titik akhir (12,8)
dx = x2 - x1 = 12 - 2 = 10
dy = y2 - y1 = 8 - 3 = 5
jika |dx| > |dy| maka,  S = |dx| = 10  dan  
|dy| = 5

X_inc = dx/s 
           = 10/10 = 1  (kenaikan nilai X sebelumnya)

Y_inc = dy/s
           = 5/10 = 1/2 atau  0.5 (kenaikan nilai Y sebelumnya)


Untuk lebih mudahnya kita buat tabel dari variabel titik diatas!



K
X
Y
X_Inc
Y_Inc (pembulatan bil riil)
0
2
3
2
3
1
3
3,5
3
4
2
4
4
4
4
3
5
4,5
5
5
4
6
5
6
5
5
7
5,5
7
6
6
8
6
8
6
7
9
6,5
9
7
8
10
7
10
7
9
11
7,5
11
8
10
12
8
12
8

Proses pembacaan dan perhitungannya :
  
K=0
x = 2 ; y = 3;

K=1
xk+1 = x + x_inc
         = 2 + 1 = 3
yk+1 = y + y_inc
         = 3 + 0,5 = 3,5

K=2
xk+1 = x + x_inc
         = 3 + 1 = 4
yk+1 = y + y_inc
         = 3,5 + 0,5 = 4  
(dst.. lanjutin ya :p , klo msh bingung koment ja dibawah! ).

Kesimpulan
Pembuatan garis dengan Algoritma DDA terbilang sangat sederhana dan belum cukup sempurna hasilnya, karena nilai yang dihasilkan dari perhitungan algoritma masih berupa bilangan riil (float), sehingga output gambar garis yang akan dihasilkan oleh program pun kurang jelas jika di zoom. Jika dianalogikan misal: sebuah titik pada grafik/kurva bernilai riil  x = 3 dan y = 3,5 maka akan ada plot yg tdk terisi/space sebesar 0,5 :   ___  ___  ___    garis setengah sempurna berupa putus-putus/dash.



C. Algoritma Bresenham (Bresenham Algorithm)
a. Sumbu vertikal memperlihatkan posisi scan line.
b. Sumbu horizontal memperlihatkan kolom pixel
c. Pada tiap langkah, penentuan pixel selanjutnya didasari oleh parameter integer yang nilainya proporsional dengan pengurangan antara vertical separations dari dua posisi piksel dari nilai actual.


























Langkah-langkah mengerjakan Algoritma Bresenham :
1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis
2. Tentukan salah satu sebagai titik awal (x0,y0) dan titik akhir (x1,y1) 
3. Hitung  dy = y1 - y0 dan dx = x1 - x0 , 2*dy , 2*dx
4. Hitung  Hitung parameter Po = 2dy - dx
5. Untuk setiap xk sepanjang jalur garis, dimulai dengan K = 0
  •  Bila  Pk < 0  maka, titik selanjutnya adalah : 
         ( xk+1,  yk/nilai yk tetap ) dan  Pk+1 = Pk + 2 . dy
  • Bila tidak, titik selanjutnya adalah : 
         ( xk+1,  yk+1 )  dan Pk+1 = Pk + 2dy - 2dx
6. Ulang langkah nomor 5 untuk menentukan posisi pixel berikutnya,
hinngga  x0 = x1  dan/atau  y0 = y1 .
 
Contoh:
Diketahui 2 buah titik A (10,10) dan titik B (17,16), bila titik awal adalah A dan titik akhir adalah B, maka buatlah garis yang menghubungkan titik tersebut dengan menggunakan algoritma bresenham!

Penyelesaian :
titik awal A (10,10)
titik akhir B (17,16)
dx = x1  - x0 =  17 - 10 = 7
dy = y1  - y0 = 16 - 10 = 6
2*dy = 2*6 = 12
2*dx = 2*7 = 14
Po/pk_awal = 2dy - dx 
                    = 12 - 7 =  5   (positive)

Periksa x0 & x1;
jika x0 < x1 , 
input  x0 = 10 dan y0 = 10 (sebagai plot awal x,y)
hingga  x0 = x1 dan y0 = y1, x_end = x1
Ulangi selama x0  <  x_end


K
PK
( xk + 1, yk + 1)
-
-
10,10
0
3
11,11
1
1
12,12
2
-1
13,13
3
11
14,13
4
9
15,14
5
7
16,15
6
5
17,16

Proses pembacaan dan perhitungannya :
Ingat slalu langkah dan aturan mengerjakan bresenham diatas!
diperoleh  pk_awal  = 5
periksa pk, karena  Pk > 0 maka, titik selanjutnya a/ pake rumus berikut :
( xk+1,  yk+1 )  dan  Pk+1 = Pk + 2dy - 2dx
K=0 
xk+1=  x + 1 = 10 + 1= 11
yk+1=  y + 1 = 10 + 1= 11
pk+1 = pk + 2dy - 2dx
          = 5 + 12 - 14 =  3

K=1
periksa nilai pk ato hasil dr pk sebelumnya, dimana pk = 3,  Pk > 0
xk+1=  x + 1 = 11 + 1= 12
yk+1=  y + 1 = 11 + 1= 12
pk+1 = pk + 2dy - 2dx
         = 3   +  12 - 14 =  1

K=2
periksa nilai pk ato hasil dr pk sebelumnya, dimana pk = 1,  Pk > 0
xk+1=  x + 1 = 12 + 1= 13
yk+1=  y + 1 = 12 + 1= 13
pk+1 = pk + 2dy - 2dx
         =  1 + 12 - 14 =  -1  (negative)

K=3
periksa nilai pk ato hasil dr pk sebelumnya, dimana pk = -1, 
karena  Pk < 0 maka, titik selanjutnya a/ pake rumus berikut :
( xk+1 /nilai x bertambah 1,   yk / nilai y tetap ) dan  Pk+1 = Pk + 2 . dy
xk+1 = x + 1 = 13 + 1 = 14
yk (nilai y tetap, yaitu y) = 13  
pk+1 = pk + 2 . dy
         =  -1  + 12 =  11

K=4
periksa nilai pk ato hasil dr pk sebelumnya, dimana pk =  11,  Pk > 0
xk+1 = x + 1 = 14 + 1 = 15
yk+1 = y + 1 = 13 + 1 = 14
pk+1 = pk + 2dy - 2dx
         =  11 + 12 - 14 = 9
K=5
periksa nilai pk ato hasil dr pk sebelumnya, dimana pk =  9,  Pk > 0
xk+1 = x + 1 = 15 + 1 = 16
yk+1 = y + 1 = 14 + 1 = 15
pk+1 = pk + 2dy - 2dx
         =  9 + 12 - 14 = 7
K=6
periksa nilai pk ato hasil dr pk sebelumnya, dimana pk =  7,  Pk > 0
xk+1 = x + 1 = 16 + 1 = 17
yk+1 = y + 1 = 15 + 1 = 16
pk+1 = pk + 2dy - 2dx
         =  7 + 12 - 14 = 5

Proses Loop(perulangan) dan perhitungan berhenti, karena sudah memenuhi x0=x1  dan/atau  y0=y1
Proses Done..  =)

Untuk implementasi, cobalah code program garis DDA berikut :

Output :

 Dan  sebagai latihan cobalah buat program garis bresenham, cari sumber di internet ("ambalayahh...")!
Contoh Output Bresenham :

Diatas adalah versi yg saya buat dengan Microsoft Visual Studio 2008 (vb.net 2008), selamat belajar.. Good luck!