24.10.2012 Views

LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI ...

LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI ...

LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!