Pages

Senin, 25 Oktober 2010

Algoritma Bresenham

Bresenham pada tahun 1965, melakukan perbaikan dari algoritma perhitungan koordinat piksel yang menggunakan persamaan (1), dengan cara menggantikan operasi bilangan rii perkalian dengan operasi penjumlahan, yang kemudian dikenal 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 perbaikan yang cukup siginifikan. Perbaikan berikutnya dilakukan dengan cara menghilangkan operasi bilangan riel dengan operasi bilangan integer. Operasi bilangan integer jauh lebih cepat dibandingkan dengan operasi bilangan riel, terutama pada penambahan dan pengurangan.
Cara menentukan garis dengan algoritma bresenham :
1. Tentukan koordinat awal garis (x0,y0)
2. Tentukan koordinat akhir garis (x1,y1)
3. Hitung jarak mendatar ke 2 titik (dx) Dx=x1-x0
4. Hitung jarak mendatar ke 2 titik (dx) Dy=y1-y0
5. Tentukan faktor pembagi (mencari yg lebih panjang). Apakah dx>dy, bila ya
Step=dx
Bila tidak
Step=dy
6. Hitung faktor penambah ke koordinat mendatar dan vertikal titik berikut (x_tambah, y_tambah)
X_tambah=dx/step
Y_tambah=dy/step
7. Buat loop mulai titik ke 1 sampai titik ke step
For k=1 to step
8. Hitung koodinat titik berikutnya.
X=x+x_tambah
Y=y+y_tambah
9. Gambar pikxel pada koordinat (x,y)
Catatan : koordinat x,y harus bulat (integer), sehingga hasil dari perhitungan diatas harus diinteger-kan
10. Ulangi langkah ke 7, dan setetrrsnya sampai titik ke step.


DDA (Digital Defferential Analyzer)

Prinsip algoritma ini adalah mengambil nilai integer terdekat dengan jalur garis berdasarkan atas sebuah titik yang telah ditentukan sebelumnya(titik awal garis).
Algoritma pembentukan garis DDA :
1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis.
2. Tentukan salah satu titik sebagai awal(x0,y0) dan titik akhir(x1,y1).
3. Hitung dx=x1¬x0, dan dy= y1¬y0.
4. Tentukan langkah, yaitu dengan cara jarak maksimum jumlah penambahan nilai x maupun nilai y, dengan cara :
- Bila nilai absolut dari dx lebih besar dari absolut dy, maka langkah= absolut
dari dx.
- Bila tidak maka langkah= absolut dari dy
5. Hitung penambahan koordinat pixel yaitu x_increment=dx/langkah, dan y_increment=dy/langkah.
6. Koordinat selanjutnya (x+x_increment, y+y_increment).
7. Posisi pixel pada layar ditentukan dengan pembulatan nilai koordinat tersebut.
8. Ulangi nomor 6 dan 7 untuk menentukan posisi pixel selanjutnya,sampai x=x1
dan y=y1.

Garis merupakan kumpulan dari titik-titik, untuk membentuk garis lurus adalah dengan mengetahui titik awal dan titik akhir. Dengan mengetahui titik awal dan titik akhir maka kita dapat membentuk garis. Untuk menggambarkan proses pembuatan garis dari titik awal ke titik akhir ada berbagai algoritma. Algoritam yang umum adalah DDA dan Bresenham.
Perkembangan kemampuan komputasi prosesor yang pesat telah membuat komputer desktop mempunyai kemampuan komputasi yang besar. Hal ini mendorong perkembangan program aplikasi yang memerlukan komputasi yang besar seperti program aplikasi yang menggunakan grafik 3 dimensi. Peningkatan kemampuan komputasi prosesor untuk aplikasi grafik yang sarat komputasi, perlu dibarengi peningkatan efisiensi algoritma, sehingga pembuatan grafik garis dan kurva yang merupakan dasar pembuatan grafik dapat memberikan hasil yang optimal.

GARIS LURUS
Garis lurus dinyatakan dinyatakan dalam persamaan :
y = mx + c (1)
dimana :
m : gradient dan
c : konstanta.
Untuk menggambarkan piksel-piksel dalam garis lurus, parameter yang digunakan tergantung dari gradient, jika besarnya gradient diantara 0 dan 1, maka digunakan sumbu x sebagai parameter dan sumbu y sebagai hasil dari fungsi, sebaliknya, bila gradient melebihi 1, maka sumbu y digunakan sebagai parameter dan sumbu x sebagai hasil dari fungsi, hal ini bertujuan untuk menghindari terjadinya gaps karena adanya piksel yang terlewatkan. Hasil dari fungsi biasanya merupakan bilangan riil, sedangkan koordinat pixel dinyatakan dalam bilangan integer (x,y), maka diperlukan operasi pembulatan kedalam bentuk integer terdekat.
Penggambaran garis lurus dengan metode diatas dimulai dengan operasi bilangan riil untuk menghitung gradient m dan konstanta c.
m = (y2 - y1 ) / (x2-x1) (2)
c = y1 – m* x1 (3)
Operasi bilangan real berikutnya adalah menghitung nilai y dengan persamaan (1) untuk mendapatkan koordinat piksel (x,y), untuk setiap nilai x, dari =x1 sampai x=x2, operasi inilah yang perlu dihindari, karena operasi ini memerlukan waktu operasi yang besar.

Source code garis:

' Gambas class file
PUBLIC SUB form_Open()
'Membuat Garis menggunakan label
LabelGaris.Text = "__________________________________"
'membuat form menjadi maximize saat dibuka
ME.Maximized = TRUE
END
PUBLIC SUB Form_Keypress()
'Perintah Select Case untuk mengatur koordinat garis menggunakan tombol arah di keyboard
SELECT Key.Code
'Menset tombol arah kiri, bila ditekan maka koordinat X garis akan berpindah sebanyak -20 dari koordinat sebelumnya
CASE Key.Left
LabelGaris.X = LabelGaris.X - "20"
'Menset tombol arah kanan, bila ditekan maka koordinat X garis akan berpindah sebanyak +20 dari koordinat sebelumnya
CASE Key.Right
LabelGaris.X = LabelGaris.X + "20"
'Menset tombol arah atas, bila ditekan maka koordinat Y garis akan berpindah sebanyak -20 dari koordinat sebelumnya
CASE Key.Up
LabelGaris.Y = LabelGaris.Y - "20"
'Menset tombol arah bawah, bila ditekan maka koordinat Y garis akan berpindah sebanyak +20 dari koordinat sebelumnya
CASE Key.Down
LabelGaris.Y = LabelGaris.Y + "20"
END SELECT
END
PUBLIC SUB Form_Close()
FMain.Close
END

Hasilnya :

Tampilan Form Garis

Koordinat Garis berubah


Source code titik :

' Gambas class file

PUBLIC SUB form_Open()

'Membuat Garis menggunakan label

LabelGaris.Text = "__________________________________"

'membuat form menjadi maximize saat dibuka

ME.Maximized = TRUE

END

PUBLIC SUB Form_Keypress()

'Perintah Select Case untuk mengatur koordinat garis menggunakan tombol arah di keyboard

SELECT Key.Code

'Menset tombol arah kiri, bila ditekan maka koordinat X garis akan berpindah sebanyak -20 dari koordinat sebelumnya

CASE Key.Left

LabelGaris.X = LabelGaris.X - "20"

'Menset tombol arah kanan, bila ditekan maka koordinat X garis akan berpindah sebanyak +20 dari koordinat sebelumnya

CASE Key.Right

LabelGaris.X = LabelGaris.X + "20"

'Menset tombol arah atas, bila ditekan maka koordinat Y garis akan berpindah sebanyak -20 dari koordinat sebelumnya

CASE Key.Up

LabelGaris.Y = LabelGaris.Y - "20"

'Menset tombol arah bawah, bila ditekan maka koordinat Y garis akan berpindah sebanyak +20 dari koordinat sebelumnya

CASE Key.Down

LabelGaris.Y = LabelGaris.Y + "20"

END SELECT

END

PUBLIC SUB Form_Close()

FMain.Close

END


Hasilnya :


Tampilan Form Titik

Koordinat titik berubah

Jumat, 04 Juni 2010

Perekonomian Mewujudkan Tujuan Nasional.

Bagaimana Perekonomian Mewujudkan Tujuan Nasional..??

Untuk mewujudkan tujuan nasional salah satu di antaranya yang sekarang sedang mendapat banyak perhatian adalah konsep pemberdayaan. Akar persoalannya, yaitu meningkatkan kemampuan rakyat. Bagian yang tertinggal dalam masyarakat harus ditingkatkan kemampuannya dengan mengembangkan dan mendinamisasikan potensinya, dengan kata lain, memberdayakannya. Secara praktis upaya yang merupakan pengerahan sumber daya untuk mengembangkan potensi ekonomi rakyat ini diarahkan untuk meningkatkan produktivitas rakyat sehingga, baik sumber daya manusia maupun sumber daya alam di sekitar keberadaan rakyat, dapat ditingkatkan produktivitasnya. Dengan demikian, rakyat dan lingkungannya mampu secara partisipatif menghasilkan dan menumbuhkan nilai tambah ekonomis.

Dalam memajukan tujuan Ekonomi Indonesia kita harus mengetahui dahulu apakah tujuan Bangsa Indonesia. Tujuan Nasional Bangsa Indonesia dalam Pembukaan Undang – Undang Dasar 1945 Kehendak Dalam Mengisi Kemerdekaan RI – PMP dan PPKN.
1. Membentuk suatu pemerintahan Negara Republike Indonesia yang melindungi
segenap bangsa Indonesia dan seluruh tumpah darah Indonesia.
2. Memajukan kesejahteraan umum / bersama.
3. Mencerdaskan kehidupan bangsa.
4. Ikut berperan aktif dan ikut serta dalam melaksanakan ketertiban dunia yang
berlandaskan kemerdekaan, perdamaian abadi dan kedilan sosial.

Dalam hal mewujudkan perekonomian yang berdasarkan tujuan nasional yaitu dengan:
a. Mewujudkan nilai tukar rupiah yang wajar melalui pemilihan dan penetapan sistem nilai tukar untuk mengendalikan fluktuasi kurs.
b. Mengendalikan tingkat suku bangsa dan menekan laju inflasi untuk menghidupkan kembali kegiatan-kegiatan produksi serta memulihkan daya beli masyarakat.
c. Melakukan restruktasi dan menyehatkan perbankan sesuai dengan undang - undang tentang perbankan yang baru berserta peraturan pelaksanaannya.
d. Menciptakan mekanisme penyelesain utang-utang swasta untuk mengendalikan citra kepercayaan luar negeri terhadap krediblitas usaha nasional.
e. Menyediakan sembilan Pokok dan Obat-obatan yang cukup dan terjangkau oleh rakyat, baik memlau peningkatan produksi dalam negeri maupun impor.
f. Menghidupkan kembali kegiatan produksi terutama kegiatan-kegiatan yang berbasis pada ekonomi rakyat dan berorientasi ekspor, sebagai dasar untuk menciptakan landasan ekonomi yang kuat.
g. Mendayakan potensi ekonomi dari sumber daya alam khususnya sumber daya kelautan termasuk pengamannya untuk meningkatkan ekspor.