song

Senin, 08 November 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



Tampilan from Garis



Tampilan 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

Rabu, 27 Oktober 2010

TUGAS BAHASA INDONESIA

Judul PI yang saya ambil : “ PEMBUATAAN WEBSITE SDN JAKASETIA III DENGAN MENGGUNAKAN PHP & MYSQL “ .


Pemilik PI adalah :
Nama : Ertie Nur Hartawati
NPM : 10104605
Jurusan : Sistem Informasi
Pemnimbing : Diana Tri susetianingtias,Skom,MMSI


Pada BAB I

- Kata ganti orang di hal.1 ->

• Mereka di Paragraf Pertama
• Mereka di Paragraf ke dua
• Pengguna di paragraph kedua
• Penulis di Paragraf ke tiga

- Kata Ganti orang di hal 2 ->

• Pengguna di paragraph ke 2
• Mereka di paragraph ke 1

- Kata – kata yang belum baku :

• Murid – Murid --- Banyak Murid
• Mempromosikan --- Dipromosikan
• Meng Upload --- Mengunduh
• Dipapan --- Di Papan
• Masarakat --- Masyarakat
• Disebabkan karena --- Disebabkan oleh



- Jadi jumlah > Mereka : 3 kata
> Pengguna : 2 kata
> Penulis : 2 kata

- Jadi Jumlah kata yang tidak baku -- 6 kata


Dalam P.I ini terdapat beberapa point Sistematika Penulisan :

• BAB I : Pendahuluaan
• BAB II : Landasan Teory
• BAB III : Profil
• BAB VI : Pembahasaan
• BAB V : Penutup

Sabtu, 16 Oktober 2010

SCRIPT PROLOG - L.A

Cara melakukan proses pengimputan prolog di program SWI _ Prolog ada dua cara :
A. Dengan membuat notepad dot pl , kemudian kita buka di CONTOH : D\fatih\test.pl

B. Langsung me-run nya melalui SWI - Prolog , dengan membuka file\new\save file yg telah kita mau , lalu kita buka lagi file yg telah kita save , melalui consult, lalu kita run.


1.Penulisan Negara,Ibukota & Mata uang

eropa(albania,tirana,lek).
eropa(andora,andora_la_vella,euro).
eropa(austria,wina,euro).
eropa(belanda,amsterdam,euro).
eropa(belarus,minsk,rubel).

2. Penulisan Nama & NPM

write('Masukan Nama :'),
read(Nama),
write('Masukan NPM :'),
read(NPM),
Write('Nama : '),
write(Nama),nl,
write('NPM :'),
write(NPM).


3.Penulisan Rumus Segitiga

program:-nl,
write('Masukan Alas :'),
read(Alas),
write('Masukan Tinggi :'),
read(Tinggi),
Luas is(Alas * Tinggi/2),
write('Luas :'),
write(Luas).

4.Penulisan Program Ganjil

program:-nl,
write('Masukan Nilai :'),
read(A),
Bil is A mod 2,
Bil is 0,
write('genap');
write('ganjil').

note : - penulisan B pada bilangan harus huruf besar .
- Setelah perintah : write('genap'); jangan lupa menggunakan (;) bukan (,)

Jumat, 15 Oktober 2010

NEGARA BESERTA IBUKOTA & MATA UANG

Negara Asia:
Indonesia : Jakarta, Rupiah
Singapur: Singapur, Dolar singapur
Malaysia: Kuala Lumpur, Ringgit
Thailand: Bangkok, Baht
Kamboja: Phnompenh
India: New Delhi, Rupee
Japan: Tokyo, Yen
Bangladesh: Dakka
Myanmar: Yangoon
Timor leste: Dilli
Filiphina: Manila, peso
Vietnam: Hanoi
China: Beijing, yuan (bener ga sih?)
Arab saudi: Riyadh, real
qatar: Doha, real
Krsel: Seoul, won
Korut: Pyongyang
Iran: Teheran, dinar
Irak: Baghdad, dinar
Pakistan: Islamabad
Mongolia: Ulan Bator
Kazakhstan: Alma-ata
Uzbekistan: Taskent

Negara Eropa, hampir semuanya Euro kecuali Inggris:

Prancis: Paris,
Jerman: Berlin,
Inggris: London, Poundsterling
Spanyol: Madrid,
Italia: Roma,
Portugal: Lisbon,
Swedia: Stocklom,
Finlandia: Helsinki,
Norway: Oslo,
Belanda: Amsterdam
Belgia: Brusssels
Ceko: Prha,
Islandia: Reyjakvick,
Irlandia: Dublin,
Skotlandia: Edinburgh
Irlandia Utara: Belfast
Polandia: Warsawa
Yunani: Athena

Negara di amerika (amerika latin rata2 peso):

USA: Washington DC, US Dollar
Kuba: Hanava
Kanada: Ottawa, dollar canada
Meksiko: Mexico city
Kolombia: Bogota, peso
Ekuador: Quito, peso
Suriname: Pramaribo
Brazil: Brazilia, cruzeiro
Argentina: Bueinos Aires, Peso
Chili: Santiago, Peso
Paraguay: Asuncion, Peso

Negara pasifik:

Australia: Canberra, dollar australia
Papua Nugini: Port moresby
New Zealand: Auckland, dollar new zealand

Rabu, 13 Oktober 2010

JOIN DALAM MYSQL

JOIN dalam mysql adalah Salah satu fitur SQL yang paling berguna untuk menggabungkan table dengan query – query yang mendapatkan kembali data. Join adalah salah satu dari beberapa operasi paling penting yang dapat anda lakukan dengan menggunakan statement SELECT .

A . INNER JOIN adalah Join yang menciptakan table hasil baru dengan menggabungkan nilai nilai kolom dari dua table ( A dan B ) didasarkan pada join predikat

CONTOH : SELECT supplier.Nama, Barang.Nama, Barang.Harga
FROM supplier INNER JOIN Barang
ON supplier.KodeSup = Barang.KodeSup

B. SELF JOIN adalah Join yang bergabung dengan sebuah table ke dirinya sendiri .
CONTOH : SELECT c1.KodeCus, c1.Nama, c1.Kontak
FROM Customer c1, Customer c2
WHERE c1.Nama = c2.Nama
AND c2.Kontak='Jim Jones'

OUTPUT
KodeCus Nama Kontak
------- ---- ------
1000000003 Fun4All Jim Jones
1000000004 Fun4All Denise L. Stephens


C. NATURAL JOIN adalah Join yang dimana dilakukan dengan menggunakan wildcard ( SELECT * ) untuk suatu table dan sub-kumpulan eksplit dan field untuk semua table lainya.

CONTOH : SELECT Customer.KodeCus, Penjualan.NoFaktur
FROM Customer INNER JOIN Penjualan
ON Customer.KodeCus = Penjualan.KodeCus

Untuk
mendapatkan kembali daftar semua pelanggan, termasuk pelanggan yang
tidak membuat pesanan, Anda dapat melakukan hal berikut :


INPUT
SELECT Customer.KodeCus, Penjualan.NoFaktur
FROM Customer LEFT OUTER JOIN Penjualan
ON Customer.KodeCus = Penjualan.KodeCus

OUTPUT
KodeCus NoFaktur
------- --------
1000000001 20005
1000000001 20009
1000000002 NULL
1000000003 20006
1000000004 20007
1000000005 20008


D. OUTER JOIN adalah sebuah join yang tidak memerlukan setiap record dalam dua table bergabung untuk memiliki catatan cocok . table bergabung dengan mempertahankan setiap catatan – bahkan jika tidak ada catatan yang cocok lainya ada. Luar bergabung membagi lebih lanjut lebih ke kiri luar bergabung , kanan luar bergabung , dan penuh luar bergabung , tergantung pada table (s) mempertahankan satu baris dari ( kiri, kanan atau keduanya )

CONTOH :

INPUT
SELECT Customer.KodeCus, Penjualan.NoFaktur
FROM Customer INNER JOIN Penjualan
ON Customer.KodeCus = Penjualan.KodeCus

Apa yg dimaksud dengan Arithmatic Operator , Boolean predicates , Logical Operators ?

Arithmetic Operator : operator yang digunakan untuk melakukan banyak operasi aritmatika akrab yang melibatkan perhitungan nilai numerik diwakili oleh literal, variabel, ekspresi lain, panggilan fungsi dan properti, dan konstanta.

Operator aritmatika + - * / \ ^

+ + . Penambahan atau ditambah operan. A + B menambahkan A dan B. A dan B harus memiliki yang sama ukuran, kecuali salah satu adalah skalar. skalar A dapat ditambahkan ke matriks ukuran.

- - Pengurangan atau operan minus AB mengurangi B dari A. A dan B harus memiliki
. ukuran yang sama, kecuali satu adalah skalar skalar A dapat dikurangkan dari matriks ukuran.

* * Perkalian matriks. C = A * B adalah produk aljabar matriks A dan B. Lebih tepatnya,
Untuk A dan B nonscalar, jumlah kolom A harus sama dengan jumlah baris A skalar B. dapat berkembang biak matriks dari berbagai ukuran.

.* .* Array perkalian. A. * B adalah elemen-dengan-produk unsur
arrays A and B. A dan B. A dan B harus memiliki ukuran yang sama, kecuali salah satu dari mereka adalah. skalar.

/ / Slash atau divisi kanan matriks ,B / A kira-kira sama dengan inv * B (A).
, B/A = (A'\B')'. Lebih tepatnya, B / A = (A '\ B') '.

./ . / . Array divisi kanan. A. / B adalah matriks dengan elemen A (i, j) / B (i, j).
AA dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar.

\ \ Backslash atau divisi kiri matriks., Jika A adalah matriks persegi, A \ B kira-kira . sama dengan inv (A) * B, kecuali ia dihitung dengan cara yang berbeda.

.\ . \ . Array meninggalkan divisi.. A. \ B adalah matriks dengan elemen B (i, j) / A (i, j). A
dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar.

^ ^ . Matrix kekuasaan. p ^ X X p kekuasaan, jika p adalah skalar., Jika p adalah integer,
daya dihitung dengan mengkuadratkan diulang., X Jika bilangan bulat negatif, X
terbalik pertama. Untuk nilai-nilai lain dari p, Jika x adalah skalar dan P adalah, matriks x ^ P x pangkat matriks P . menggunakan nilai eigen dan vektor eigen, di mana X dan P keduanya . matriks, adalah kesalahan.

.^ .. Array kekuasaan. A. ^ B adalah matriks dengan elemen A (i, j) B (i, j)
power. kekuasaan. A dan B harus memiliki ukuran yang sama, kecuali salah satunya adalah skalar.

Boolean predicates : Prolog penyedia operator perbandingan yang lebih umum, yang membandingkan syarat dan predikat untuk menguji kemampuan dan apakah istilah adalah identik













Logical Operator : predikat adalah fungsi, yang gilirannya suatu nilai boolean. demikian operator logika yang dibangun dalam bahasa. tanda koma di sisi kanan pada aturan conjuntion logis, simbol adalah implikasi logis. di addation Prolog memberikan negasi operator disjuntion. operator logika yang digunakan dalam definisi aturan


Operator tidak

Operator prefix tidak / 1 dapat ditempatkan sebelum tujuan untuk memberikan penyangkalan. Tujuan menegasikan berhasil jika tujuan asli gagal dan gagal jika tujuan asli berhasil. Contoh berikut menggambarkan penggunaan tidak / 1. Diasumsikan bahwa database tersebut berisi anjing klausa tunggal (fido).

Contoh :

?- not dog(fido).
no

?- dog(fred).
no

?- not dog(fred).
yes

?- X=0,X is 0.
X = 0

?- X=0,not X is 0.
no



Operator disjungsi

Operator disjungsi; / 2 (ditulis sebagai karakter titik koma) digunakan untuk mewakili 'atau'. Ini adalah operator infiks yang membutuhkan dua argumen, yang keduanya adalah tujuan. Tujuan1; Tujuan2 berhasil jika salah Tujuan1 atau Tujuan2 berhasil.

Contoh :


?- 6<3;7 is 5+2.
Yes

?- 6*6=:=36;10=8+3.
yes

Senin, 11 Oktober 2010

apa yang di mksd dengan FACT , RULE , QUERY , VARIABEL , COSTANT

a. FACT ( Fakta ) adalah ekspresi predikat yang membuat pernyataan deklaratif tentang masalah domain. Setiap kali variabel terjadi dalam ekspresi Prolog, hal ini diasumsikan secara universal dikuantifikasi. Perhatikan bahwa semua kalimat Prolog harus diakhiri dengan periode.

suka (john, Susi). / * John suka * Susi /
suka (X, Susi). / Setiap orang * suka * Susi /
suka (john, Y). / * John suka * semua orang /
suka (john, Y), suka (Y, john). / * John menyukai semua orang dan semua orang suka * John /
suka (john, Susie); suka (john, mary). / * Yohanes suka Susi atau John menyukai * Maria /
tidak (suka (john, pizza)). / * Yohanes tidak suka * pizza /
suka (john, Susie): - suka (john, mary) / * Yohanes menyukai Susi jika John menyukai Mary..

b. Rule ( Aturan ) adalah ekspresi predikat yang menggunakan implikasi logis (:-) untuk menggambarkan hubungan antara fakta. Jadi aturan Prolog mengambil bentuk

left_hand_side: - right_hand_side.

Kalimat ini diartikan sebagai: left_hand_side jika right_hand_side. left_hand_side Hal ini dibatasi untuk satu, positif, literal, yang berarti harus terdiri dari sebuah ekspresi atom positif. Hal ini tidak dapat ditiadakan dan tidak dapat berisi connectives logis.

Notasi ini dikenal sebagai klausa Horn. Dalam logika klausa Horn, sisi kiri klausa adalah kesimpulan, dan harus satu positif literal. Sisi kanan berisi tempat. Kalkulus klausa Tanduk setara dengan kalkulus predikat orde pertama.

Contoh aturan yang berlaku:

teman (X, Y): - suka (X, Y), suka (Y, X). / * X dan Y adalah teman-teman jika mereka saling menyukai * lain /
membenci (X, Y): - tidak (suka (X, Y)). / * X membenci Y jika X tidak suka * Y. /
musuh (X, Y): - tidak (suka (X, Y)), tidak (suka (Y, X)). / * X dan Y adalah musuh jika mereka tidak saling menyukai * lain /

Contoh aturan tidak valid:

left_of (X, Y): - right_of (Y, X) / * Kehilangan * periode /
suka (X, Y), suka (Y, X): - teman (X, Y). / LHS * bukan * literal tunggal /
tidak (suka (X, Y)): - membenci (X, Y). / LHS * tidak dapat menegasikan * /

c. Query adalah permintaan yang di berikan user untuk mengambil informasi yang tersimpan dalam database .

Contoh :
• Tmpilkan data pegawai yang tinggal di kota Surabaya
• Tampilkan harga barang yang besarnya kurang dari 10.000
• Tampilkan data dosen perempuan yang bekerja di jurusan Teknologi Informasi

Perintah yang menampilkan nomer pelanggan dan nama pelanggan :
Perintah SQL :

SELECT Nomer plg. Nama plg
FROM PELANGGAN;


d. Variabel adalah Perintah ditandai dengan string yang terdiri dari huruf, angka dan garis bawah karakter, dan dimulai dengan surat atas kasus. Dalam lingkungan Prolog, variabel bukanlah sebuah wadah, yang dapat ditugaskan untuk (tidak seperti bahasa pemrograman prosedural). perilaku adalah dekat dengan pola, yang semakin ditentukan oleh unifikasi


e. Costants : Perintah terdiri dari satu atau lebih karakter huruf kecil, dimulai dengan surat. Sebuah konstan tidak terdiri dari simbol Prolog lain (atom itu) dan itu tidak mewakili apa pun di dunia Prolog kecuali sendirild. Cara yang baik untuk berpikir atom adalah sebagai objek dari dunia Prolog.. Mereka tidak memiliki makna yang menyertainya.