LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI ...
LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI ...
LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Laporan Praktikum FisKom RGB<br />
<strong>LAPORAN</strong> <strong>PRAKTIKUM</strong> <strong>FISIKA</strong> <strong>KOMPUTASI</strong><br />
<strong>INTERPRETASI</strong> GRAFIS INTENSITAS WARNA DASAR RGB<br />
PADA GAMBAR BITMAP MENGGUNAKAN DELPHI7<br />
Disusun untuk Memenuhi Tugas Mata Kuliah Praktikum Fisika Komputasi<br />
Oleh :<br />
SISKA ARIANI W.A<br />
NIM. 080913081<br />
JURUSAN <strong>FISIKA</strong><br />
DEPARTEMEN <strong>FISIKA</strong><br />
FAKULTAS SAINS DAN TEKNOLOGI<br />
UNIVERSITAS AIRLANGGA<br />
2012
Laporan Praktikum FisKom RGB<br />
A. Judul praktikum<br />
Interpretasi grafis intensitas warna RGB( Red Green Blue) pada suatu gambar<br />
bitmap menggunakan program Delphi7<br />
B. Tujuan praktikum<br />
� Menentukan intensitas warna dasar RGB(Red Green Blue) pada suatu<br />
gambar bitmap berdasarkan fungsi posisi<br />
� Membuat suatu program aplikasi Image Processing berbasis intensitas<br />
RGB<br />
C. Alat dan Bahan<br />
Alat yang digunakan adalah Program Delphi7.<br />
Bahan atau komponen didalamnya adalah:<br />
� 1 buah TImage (pada toolbar Additional)<br />
� 1 buah TChart (pada toolbar Additional)<br />
� 1buah TOpenDialog (pada toolbar Dialog)<br />
� 3 buah TLabel ( pada toolbar Standard)<br />
� 1 buah TScrollBar (pada toolbar Standard)<br />
� 1 buah TButton (pada toolbar Standard)<br />
D. Algoritma<br />
Algoritma secara umum adalah sebagai berikut:<br />
� procedure ketika Button di klik serta opendialog ke gambar bitmap<br />
� procedure ScrollBar digeser, maka posisi X, Y, Z akan berubah<br />
menunjukkan intensitas RGB<br />
� procedure FormCreate menyatakan format posisi, ukuran dan warna<br />
pada form ketika ada gambar dan tidak, serta procedure Chart dengan 3<br />
line masing-masing Red, Green dan Blue<br />
� prosedur Image1Click<br />
� procedure Image1MouseMove, berubahnya label X, Y, Z yang menyatakan<br />
posisi<br />
� Prosedur FormClose, yaitu prosedur yang akan diberi perintah agar<br />
program dapat dijalankan.
Laporan Praktikum FisKom RGB<br />
Pertama, masing-masing komponen disusun dalam form seperti berikut:<br />
Selanjutnya:<br />
Ini dia Object<br />
Inspector...<br />
Edit di sini...<br />
Untuk mengedit Label1, Label2, Label3, Ukuran TImage dan TOpenDialog dapat<br />
dilakukan di Object Inspector. Pada ukuran TImage kita atur dalam Object<br />
Inspector>Height dan Width kita ganti masing-masing 300. Artinya panjang<br />
image yang dapat ditampilkan kita batasi berukuran 300x300. Atau dapat diganti
Laporan Praktikum FisKom RGB<br />
sesuka kita jika ingin menurut ukuran gambar yang dimiliki. Label1, Label2,<br />
Label3 digunakan untuk menampilkan X,Y,dan Z.<br />
Untuk mengedit grafik dapat dilakukan dengan meng-klik kanan komponen<br />
TChart, kemudian pilih Chart--series untuk membuat garis grafik, pada<br />
praktikum ini kita buat 3 buah series untuk masing-masing Red, Green dan Blue.<br />
Edit label pada Line Chart dapat dilakukan di Chart--Title, sedangkan edit bentuk<br />
grafik terdapat pilihan bentuk (pie, Histogram, panah, diagram bagian dsb) serta<br />
pilihan 2D atau 3D dapat dilakukan di Chart—Series—Change—TeeChart Gallery.<br />
Edit warna line chart dapat dilakukan di Chart--Series--Border. Edit nama Grafik<br />
di Chart—Titles.<br />
Sedangkan source code secara lengkapnnya adalah sebagai berikut:<br />
unit Unit1;<br />
interface<br />
Part 1<br />
uses<br />
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br />
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, jpeg;<br />
type<br />
Part 2<br />
TForm1 = class(TForm)<br />
Image1: TImage;<br />
OpenDialog1: TOpenDialog;<br />
Chart1: TChart;<br />
Series1: TLineSeries;<br />
Series2: TLineSeries;<br />
Series3: TLineSeries;<br />
Label1: TLabel;<br />
Label2: TLabel;<br />
Label3: TLabel;<br />
ScrollBar1: TScrollBar;<br />
Button1: TButton;<br />
procedure Button1Click(Sender: TObject);<br />
procedure ScrollBar1Change(Sender: TObject);<br />
procedure Button2Click(Sender: TObject);<br />
procedure FormCreate(Sender: TObject);<br />
procedure Image1Click(Sender: TObject);<br />
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,<br />
Y: Integer);<br />
procedure FormClose(Sender: TObject; var Action: TCloseAction);<br />
private<br />
{ Private declarations }<br />
public
Laporan Praktikum FisKom RGB<br />
{ Public declarations }<br />
end;<br />
var<br />
Form1: TForm1;<br />
gambar2 :Tbitmap;<br />
implementation<br />
{$R *.dfm}<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
var<br />
red,green,blue:byte;<br />
a,b,lebar:Integer;<br />
Part 3<br />
warna:TColor;<br />
open:string;<br />
begin<br />
OpenDialog1.Execute;<br />
open:=OpenDialog1.FileName;<br />
Image1.Picture.LoadFromFile(open);<br />
scrollbar1.Enabled := True;<br />
gambar2.Assign(Image1.Picture);<br />
ScrollBar1.Max:=Image1.Picture.Height;<br />
end;<br />
procedure TForm1.FormCreate(Sender: TObject);<br />
begin<br />
gambar2:=TBitmap.Create;<br />
// ScrollBar1.Max:=Image1.Picture.Height;<br />
end;<br />
procedure TForm1.ScrollBar1Change(Sender: TObject);<br />
var<br />
red,green,blue:byte;<br />
Part 4<br />
a,b,lebar:Integer;<br />
warna:TColor;<br />
garis:TBitmap;<br />
begin<br />
Series1.Clear;<br />
Series2.Clear;<br />
Series3.Clear;<br />
b:=ScrollBar1.Position;<br />
lebar:=Image1.Picture.Bitmap.Width;<br />
garis:=TBitmap.Create;<br />
garis.Assign(gambar2);<br />
garis.Canvas.MoveTo(0,b);
Laporan Praktikum FisKom RGB<br />
garis.Canvas.LineTo(lebar,b);<br />
for a:=0 to lebar -1 do<br />
begin<br />
warna:=Image1.Picture.Bitmap.Canvas.Pixels[a,b];<br />
red:=GetRValue(warna);<br />
green:=GetGValue(warna);<br />
blue:=GetBValue(warna);<br />
Series1.AddXY(a,red);<br />
Series2.AddXY(a,green);<br />
Series3.AddXY(a,blue);<br />
end;<br />
Image1.Picture.Assign(garis);<br />
garis.Free;<br />
end;<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
var<br />
open:string;<br />
begin<br />
OpenDialog1.Execute;<br />
open:=OpenDialog1.FileName;<br />
Image1.Picture.LoadFromFile(open);<br />
end;<br />
Part 5<br />
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y:<br />
Integer);<br />
var<br />
Part 6<br />
warna:TColor;<br />
begin<br />
warna:=Image1.Picture.Bitmap.Canvas.Pixels[X,Y];<br />
Label1.Caption:= inttostr(GetRValue(warna));<br />
Label2.Caption:= IntToStr(GetGValue(warna));<br />
Label3.Caption:= IntToStr(GetBValue(warna));<br />
end;<br />
procedure TForm1.Image1Click(Sender: TObject);<br />
begin<br />
gambar2:=TBitmap.Create;<br />
ScrollBar1.Max:=Image1.Picture.Height;<br />
end;<br />
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br />
begin<br />
gambar2.Free;<br />
end;<br />
end.<br />
Selebihnya akan diulas pada pembahasan per-part-nya.
Laporan Praktikum FisKom RGB<br />
E. Pembahasan<br />
Penjelasan Tiap Part untuk source code diatas:<br />
Part 1<br />
Uses dalam source code Delphi7 adalah kode umum yang harus ada untuk<br />
mengawali source code dan merupakan macam-macam perintah yang digunakan<br />
dalam pembuatan program aplikasi.<br />
Part 2<br />
Type, yang dibawahnya bertuliskan TForm dan macam-macam komponen lain,<br />
yaitu TChart, TScrollBar, Label, Button dan Series. Maksudnya adalah dalam satu<br />
form ini dapat kita tempelkan berbagai macam komponen lain sesuai program<br />
aplikasi yang kita buat. Dalam kode inilah, komponen apasaja yang akan kita<br />
gunakan dideklarasikan. Tak lupa, di setiap komponen yang kita masukkan tadi<br />
harus disertai prosedur dibawahnya. Ini menerangkan bagaimana komponen-<br />
komponen tersebut bekerja.<br />
Part 3<br />
Bagian dibawah Implementation adalah urutan kerja sebuah program yang<br />
sebenarnya. Pada prosedur Button1.Click, pertama harus mendeklarasikan<br />
variable, yaitu byte yangdipakai sebagai perintah untuk membaca warna dalam<br />
bite, kemudian variable batasan integer yang digunakan sebagai perintah untuk<br />
pembacaan batas yang digunakan dalam gambar berupa integer, yaitu angka real<br />
yang kita definisikan sendiri dan Tcolor untuk membaca warna Tcolor, agar<br />
program dapat membaca Red Green Blue. Selanjutnya TOpenDialog digunakan<br />
sebagai prosedur agar ketika button di eksekusi dengan klik, akan membuka<br />
kotak dialog yang bertujuan untuk membuka file image. Nah, pada program ini<br />
kita batasi file image ber-ekstensi Bitmap saja, sehingga ketika kita klik Button,<br />
membuka Open Dialog yang terdeteksi hanya image yang Bitmap saja.<br />
Part 4<br />
Prosedur TScrollBar1.Change merupakan prosedur yang menjalankan Scrollbar,<br />
meliputi apa yang terjadi apabila Scrollbar tergeser. Source code pada bagian ini<br />
merupakan perintah untuk menjalankan komponen scrollbar sesuai variable<br />
yang sudah dideklarasikan sebelumnya, yaitu integer. garis:TBitmap merupakan<br />
perintah agar image yang dapat dibaca adalah bitmap saja dan pembacaan
Laporan Praktikum FisKom RGB<br />
TColor berdasarkan garis. Selanjutnya, Series1.Clear merupakan perintah agar<br />
disetiap perubahan geser yang ada, mengalami looping sesuai posisi terupdate<br />
sesuai TScrollBar Change-nya, posisi-clear-posisi dan seterusnya. Dan<br />
garis:=TBitmap.Create adalah Garis yang menyatakan TScrollBar yang ada,<br />
perintah dibuat dengan memunculkan garis ketika posisi scrollbar diubah-ubah<br />
pada batas (0,b).<br />
Part 5<br />
Selanjutnya adalah perintah warna:=Image1.Picture.Bitmap.Canvas.Pixels[a,b]; ini<br />
menyatakan warna yang dibaca dari image bitmap dengan menggunakan canvas<br />
yang bersatuan pixel, mengapa gambar harus bitmap?? Jawabnya karena bitmap<br />
adalah gambar yang tersusun dari titik-titik atau dot dan banyaknya dot disetiap<br />
luasan dinyatakan sebagai pixel, sehingga suatu gambar ber-ekstensi bitmap<br />
dengan luasan per-inci yang memiliki satu juta dot dinyatakan sebagai<br />
1MegaPixel. Itulah mengapa semakin besar pixel suatu kamera atau semakin<br />
besar dpi (dot per-Inch) suatu printer, maka akan menghasilkan kualitas gambar<br />
yang semakin baik. Semakin besar pixel berarti semakin baik pula resolusi<br />
gambar, karena pixel menyatakan kepadatan titik yang men-detailkan gambar.<br />
Kemudian red:=GetRValue(warna);… Series1.AddXY(a,red); menyatakan warna<br />
yang harus dipilih oleh masing-masing series. Sedangkan Garis.Free digunakan<br />
untuk memunculkan garis jika posisi scrollbar diubah.<br />
Part 6<br />
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y:<br />
Integer); merupakan perintah yang dijalankan ketika mouse digerakkan di atas<br />
gambar sehingga posisi akan muncul pada tiap komponen Label masing-masing.
Laporan Praktikum FisKom RGB<br />
Hasil Running Program setelah klik button dan sebelum Scrollbar digeser:<br />
Running setelah ScrollBar tergeser:<br />
Kita lihat dalam program ini, ketika scrollbar digeser maka intensitas juga<br />
berubah seiring berubahnya posisi garis dan ketika kita menggeser posisi mouse<br />
diatas gambar maka angka pada label berhighlight biru tersebut jga berubah<br />
sesuai posisi kita meletakkan mouse pointer.<br />
Ini dia...
Laporan Praktikum FisKom RGB<br />
Pada grafik interpretasi RGB, sumbu Y menyatakan intensitas yang mana skala<br />
warna ini adalah 0-255 sesuai dengan byte. Sedangkan sumbu X menyatakan 0-<br />
300 skala garis yang kita buat untuk menyatakan gambar bitmap. Pembacaan<br />
skala warna di tiap posisi titik menyatakan intensitas masing-masing Red, Green<br />
dan Blue. Pada gambar ini dapat kita lihat pada bagian mana dominan warna<br />
merah, hehe karena kebetulan saya memakai baju merah. Dan juga dapat kita<br />
simpulkan bahwa setiap warna sebenarnya adalah campuran dari warna-warna<br />
lain. Setiap warna terdiri dari campuran 3 warna dasar yaitu merah, hijau dan<br />
biru. Warna yang kita lihat, warna yang terdefinisi pada mata kita adalah warna<br />
dominan dari campuran tersebut. Warna dominan dalam Image Processing ini<br />
sering disebut sebagai Hue. Sedangkan warna putih dapat diuraikan sebagai<br />
campuran maksimum semua warna(Red+Green+Blue), jika putih sempurna<br />
maka Red, Green, Ble masing-masing bernilai 255.
Laporan Praktikum FisKom RGB<br />
Daftar Pustaka<br />
Soelistiono, Soegianto. 2010. Delphi5; dibuat untuk Mata Kuliah Fisika<br />
Komputasi UNAIR. Halaman 136-155.