Rabu, 30 Desember 2009

Pengolahan Citra Pada Gambar Penyakit Kanker Hati

BAB I
PENDAHULUAN

1.1 Latar Belakang
Kanker merupakan salah satu organ vital di dalam tubuh yang berperan besar pada kelangsungan hidup seseorang. Fungsi paling penting dari kanker adalah menyalurkan vitamin dan nutrisi ke seluruh tubuh, memproduksi protein yang akan membersihkan darah, dan mengeluarkan racun dari dalam tubuh. Ada dua tipe kanker yang berpotensi menyerang hati: Kanker primer adalah Sel-sel kanker pertama kali terbentuk di dalam hati dan selanjutnya menyebar dan merusak organ lain, Kanker jenis ini yang paling sering diderita masyarakat adalah hepatocellular carcinoma. Kanker Metastasized adalah Kanker yang menyerang hati ini berasal dari sel-sel kanker yang terbentuk di organ lain. Ia menyerang hati karena prinsip kerja hati yang menyaring darah dari racun dan virus. Organ-organ yang menjadi tempat tumbuh sel kanker diantaranya: colon, pankreas, perut, dan dada. Orang yang didiagnosis menderita kanker hati berusia diatas enam puluh tahun. Dari sebuah survei di Kanada,setiap tahun sekitar 1800 orang didiagnosis menderita kanker hati, dan separuh lebih adalah lelaki.
Penyebab kanker hati Penyebab kanker hati sampai sekarang belum diketahui secara pasti. Namun kanker hati dapat dikenali dari faktor-faktor yang bisa diidentifikas, penyakit yang pernah atau sedang diderita. Meliputi: Hepatitis B kronis, Terinfeksi hepatitis C, Cirrhosis pada liver, Diabetes mellitus, Terinfeksi racun, seperti jamur aflatoxin, vinyl chloride, anabolic steroids, dan arsenic, Akibat merokok dan Penyebab utama kerusakan hati adalah :
1. Tidur terlalu malam dan bangun terlalu siang adalah penyebabpaling utama.
2. Tidak buang air pada pagi hari.
3. Pola makan yang terlalu berlebihan
4. Tidak makan pagi.
5. Terlalu banyak mengkonsumsi obat-obatan.
6. Terlalu banyak mengkonsumsi bahan pengawet,zat tambahan, zat pewarna, pemanis buatan.
7. Minyak goreng yang tidak sehat. Sedapat mungkin kurangi penggunaan minyak goring saat menggoreng makanan, hal ini juga berlaku meski menggunakan minyak goreng terbaik sekalipun seperti olive oil.
8. Mengkonsumsi masakan mentah atau dimasak matang 3-5 bagian.Masakan yang digoreng harus dimakan habis saat itu juga, jangan disimpan.
Gejala dan komplikasi pada penderita kanker hati adalah Mengetahui gejala kanker hati sama halnya dengan melakukan trial error. Gejala yang sering ditunjukkan kadang tidak menunjukkan seseorang menderita kanker hati. Beberapa hal yang dirasa cukup menunjukkan seseorang kanker hati adalah sebagai berikut:
1. Ascites : Kondisi di mana liver mengalami akumulasi cairan sehingga mengganggu keseluruhan kinerja liver dan metabolisme tubuh.
2. Jaundice : Kulit menjadi berwarna kuning dan keseluruhan mata menjadi putih
3. Demam
4. Menggigil
5. Merasa lelah yang luar biasa
6. Nausea
7. Nyeri pada perut
8. Kehilangan gairah makan
9. Berat badan yang turun drastis
10. Nyeri pada punggung dan bahu
11. Urin yang berwarna gelap
12. Terjadi pendarahan di bagian dalam tubuh
Untuk memastikan bahwa seseorang menderita kanker hati, diperlukan perawatan oleh dokter. Beberapa tes yang bisa dilakukan adalah:
1. Tes darah untuk memeriksa kandungan enzim pada liver
2. Abdominal ultrasound untuk mengetahui ukuran liver dan apakah ada tumor di dalamnya
3. Magnetic resonance imaging (MRI) pada abdomen
4. Computed tomography (CT) scan pada abdomen
5. Laparoscopy
6. Biopsy
7. Angiography
8. Sinar X pada dada untuk mengetahui persebaran sel kanker
Didalam penulisan ini kita mengunakan MATLAB. MATLAB merupakan suatu program komputer yang bisa membantu memecahkan berbagai masalah matematis yang kerap kita temui dalam bidang teknis. Kita bisa memanfaatkan kemampuan MATLAB untuk menemukan solusi dari berbagai masalah numerik secara cepat, mulai hal yang paling dasar, misalkan sistem 2 persamaan dengan 2 variabel: x – 2y = 32 dan 12x + 5y = 12 hingga yang kompleks, seperti mencari akar-akar polinomial, interpolasi dari sejumlah data, perhitungan dengan matriks, pengolahan sinyal, dan metoda numerik. Salah satu aspek yang sangat berguna dari MATLAB ialah kemampuannya untuk menggambarkan berbagai jenis grafik,
sehingga kita bisa memvisualisasikan data dan fungsi yang kompleks.

1.2 Tujuan

Tujuan dari penulisan ini adalah untuk melihat gambar yang paling jelas dari beberapa metode. Disini kita menggunakan beberapa cara untuk mengetahui mengolah gambar antara hati yang normal dengan hati yang terkena kanker hati sebagai berikut:
• DCT : digunakan untuk kompresi karena mampu mengurangi terjadinya piksel yang sama pada daerah yang berdekatan.
• Deteksi Tepi : hanya dapat dilakukan menggunakan citra grayscale atau citra 2D.
• Dilasi
• Erosi
• Objek Counting : proses menghitung objek berdasarkan konektivitasnya terhadap piksel disekitarnya.
• FFT (Fast Fourier Transform)
• Filter Image
• Live Histogram : Histogram sangat penting dalam pengolahan citra termasuk video oleh karena itu pembuatan histogram secara live juga sangat dibutuhkan dalam proses interpretasi objek yang dianalis.
• Image Reconstruction
• Konvolusi : salah satu proses filtering image yang sering dilakukan pada proses pengambilan gambar.
• Region Of Interest (ROI) : Untuk bentuk lain atau area yang berbentuk tidak beraturan yang ingin dipisahkan dari image induk.



BAB II PEMBAHASAN


2.1 OBJEK YANG DIAMATI
Hati merupakan organ homeostasis yang memainkan peranan penting dalam proses metabolisma dalam manusia dan hewan. Istilah perubatan yang berkaitan dengan hati sering kali bermula dari perkataan Greek bagi hati iaitu hepar, menjadi hepato- atau hepatic. Hati berwarna perang kemerahan dan terletak di bawah diafragma iaitu di dalam rongga abdomen. Hati menerima makanan terlarut dalam darah apabila makanan ini tercerna dan diserap di usus. Pada percobaan kali ini, objek yang kami amati adalah hati seorang pria berusia 37 tahun.
Penyebab utama kerusakan hati adalah :
1. Tidur terlalu malam dan bangun terlalu siang adalah penyebab paling
utama.
2. Tidak buang air di pagi hari.
3. Pola makan yang terlalu berlebihan.
4. Tidak makan pagi.
5. Terlalu banyak mengkonsumsi obat-obatan.
6. Terlalu banyak mengkonsumsi bahan pengawet, zat tambahan, zat
pewarna, pemanis buatan.
7. Minyak goreng yang tidak sehat. Sedapat mungkin kurangi penggunaan minyak goreng saat menggoreng makanan, hal ini juga berlaku meski menggunakan minyak goreng terbaik sekalipun seperti olive oil. Jangan mengkomsumsi makanan yang digoreng bila kita dalam kondisi penat,kecuali dalam kondisi tubuh yang fit.
8. Mengkonsumsi masakan mentah (sangat matang) juga menambah bebanhati. Sayur mayur dimakan mentah atau dimasak matang 3 – 5 bagian. Sayur yang digoreng harus dimakan habis saat itu juga, jangan disimpan.
Kanker hati merupakan kanker yang sering dijumpai di Indonesia. Kanker ini dihubungkan dengan infeksi Hepatitis B atau Hepatitis C. Artinya pada umumnya penderita kanker hati pernah terinfeksi Hepatitis B atau C. Penyakit Hepatitis B dan Hepatitis C sering dialami penduduk Indonesia. Kedua penyakit ini ditularkan melalui cairan tubuh. Virus Hepatitis B dan Hepatitis C dapat ditularkan melalui hubungan seksual, jarum suntik, dan transfusi darah.
Pencegahan terhadap kanker disini adalah suatu tindakan yang berupaya untuk menghindari segala sesuatu yang menjadi faktor resiko terjadinya kanker dan memperbesar faktor protektif untuk mencegah kanker.
Para penderita kanker di Indonesia dapat memiliki harapan hidup yang lebih lama dengan ditemukannya tanaman “KELADI TIKUS” (Typhonium Flagelliforme/ Rodent Tuber) sebagai tanaman obat yang dapat menghentikan dan mengobati berbagai penyakit kanker dan berbagai penyakit berat lain. Tanaman sejenis talas dengan tinggi maksimal 25 sampai 30 cm ini hanya tumbuh di semak yang tidak terkena sinar matahari langsung.

2.2 PERALATAN/HARDWARE
Beberapa peralatan/hardware yang digunakan antara lain :
1. Monitor
2. CPU
3. Motherboard : BIOSTAR TA 790GX3 A2+
4. Prosessor : AMD Athlon X2 7750 BE
5. RAM : Team XTeam DARK PC 8500 2GB
6. VGA : ATI Radeon 3300
7. Keyboard
8. Mouse
9. Scanner

2.3 SOFTWARE
Software yang dipakai adalah MATLAB 7.7 sebagai software pengolahan citra dan analisis gambar dengan menggunakan system operasi windows XP dan Microsoft Word sebagai alat bantu dalam pengerjaan penulisan.

2.4 PROSES PENGAMBILAN GAMBAR
Proses pengambilan gambar pada penulisan ini dimulai dari mesin rontgen yang akan menghasilkan foto rontgen setelah itu foto tersebut di scan dengan sebuah scanner sehingga mendapatkan hasil file gambar berupa .jpg.

2.5 PENGOLAHAN DAN ANALISIS GAMBAR
MATLAB adalah sebuah bahasa dengan (high-performance) kinerja tinggi untuk komputasi masalah teknik. Matlab mengintegrasikan komputasi, visualisasi, dan pemrograman dalam suatu model yang sangat mudah untuk pakai dimana masalah-masalah dan penyelesaiannya diekspresikan dalam notasi matematika yang familiar. Penggunaan Matlab meliputi bidang–bidang:
• Matematika dan Komputasi
• Pembentukan Algorithm
• Akusisi Data
• Pemodelan, simulasi, dan pembuatan prototipe
• Analisa data, explorasi, dan visualisasi
• Grafik Keilmuan dan bidang Rekayasa

Memulai MATLAB
Perhatikan Dekstop pada layar monitor PC, anda mulai MATLAB dengan melakukan double-clicking pada shortcut icon MATLAB.
Selanjutnya akan mendapatkan tampilan seperti pada gambar berikut ini.


Sedangkan untuk mengakhiri sebuah sesi MATLAB, anda bisa melakukan dengan dua cara, pertama pilih File -> Exit MATLAB dalam window utama MATLAB yang sedang aktif, atau cara kedua lebih mudah yaitu cukup ketikkan type quit dalam Command Window


Menentukan Direktori Tempat Bekerja
Secara default untuk dapat bekerja dengan MATLAB pada directory Work ada di dalam Folder MATLAB.


Menyusun Progam Sederhana
Untuk dapat mengedit suatu file text yang tersusun dari beberapa perintah MATLAB dilakukan dengan menekan double-click pada icon "New M-File" yang ada di toolbar MATLAB.

Selanjutnya akan mendapatkan sebuah tampilan MATLAB Editor yang masih kosong seperti ini.



Pembacaan Image
Pada MATLAB, fungsi untuk melakukan pembacaan image standar yaitu:
imread(‘filename’)
Perintah ini digunakan untuk membaca beberapa format file diantaranya :

Hasil dari pembacaan imread(‘filename’) bisa berupa matriks dua dimensi jika gambar yang dibaca adalah gambar grayscale dan matrik 3 dimensi jika berupa gambar 3 dimensi.


DCT (Discrete Cosine Transform)
Persamaan DCT biasanya ditulis seperti dibawah ini:

DCT biasanya digunakan untuk kompresi karena mampu mengurangi terjadinya perulangan piksel yang sama pada daerah yang berdekatan.
Penggunaan DCT yaitu:
 Pada hati manusia normal :
gambar=imread('J:\normal.jpg');
gray=rgb2gray(gambar);
f=dct2(gray);
imshow(gray), colormap(jet),colorbar
figure,imshow(f), colormap(jet),colorbar

hasilnya yaitu:


 Pada hati manusia yang terkena kanker hati :
gambar=imread('J:\kanker_hati.jpg');
gray=rgb2gray(gambar);
f=dct2(gray);
imshow(gray), colormap(jet),colorbar
figure,imshow(f), colormap(jet),colorbar

hasilnya yaitu:



Deteksi Tepi
Seleksi objek biasanya selanjutnya dilakukan langkah deteksi tepi dalam proses pengolahan citra, di MATLAB proses pendeteksian tepi dilakukan dengan perintah/fungsi edge. Ada beberapa metode yang dapat dilakukan pada deteksi tepi menggunakana MATLAB yaitu metode sobel, prewitt, roberts, laplacian of gaussian, metode zero cross, dan canny.
Yang penting diperhatikan pada deteksi tepi bahwa hanya dapat dilakukan menggunakan citra grayscale atau citra 2-D.
Penggunaan metode deteksi tepi :
 Pada hati manusia normal :
I = imread('J:\normal.jpg');
gray=rgb2gray(I);
BW1 = edge(gray,'prewitt');
BW2 = edge(gray,'canny');
BW3 = edge(gray,'sobel');
BW4 = edge(gray,'roberts');
BW5 = edge(gray,'log');
BW6 = edge(gray,'zerocross');
imshow(BW1);
figure, imshow(BW2)
figure, imshow(BW3)
figure, imshow(BW4)
figure, imshow(BW5)
figure, imshow(BW6)

hasilnya yaitu:




 Pada hati manusia yang terkena kanker hati :
I = imread('J:\kanker_hati.jpg');
gray=rgb2gray(I);
BW1 = edge(gray,'prewitt');
BW2 = edge(gray,'canny');
BW3 = edge(gray,'sobel');
BW4 = edge(gray,'roberts');
BW5 = edge(gray,'log');
BW6 = edge(gray,'zerocross');
imshow(BW1);
figure, imshow(BW2)
figure, imshow(BW3)
figure, imshow(BW4)
figure, imshow(BW5)
figure, imshow(BW6)

hasilnya yaitu :























Morphological Image Processing
Merupakan pengolahan citra yang berhubungan dengan bentuk dan struktur dari suatu objek, ada beberapa contoh teknik yang digunakan seperti dilasi, erosi dan objek counting.
 Dilasi
 Pada hati manusia normal :
gambar=imread('J:\normal.jpg');
gray=rgb2gray(gambar);
se = strel('ball',5,5);
dilat=imdilate(gray,se);
imshow(gambar)
figure, imshow(gray)
figure, imshow(dilat)

hasilnya yaitu :



 Pada hati manusia yang terkena kanker hati :
gambar=imread('J:\kanker_hati.jpg');
gray=rgb2gray(gambar);
se = strel('ball',5,5);
dilat=imdilate(gray,se);
imshow(gambar)
figure, imshow(gray)
figure, imshow(dilat)

hasilnya yaitu :



 Erosi
 Pada hati manusia normal :
gambar=imread('J:\normal.jpg');
gray=rgb2gray(gambar);
se = strel('ball',5,5);
dilat=imerode(gray,se);
imshow(gambar)
figure, imshow(gray)
figure, imshow(dilat)

hasilnya yaitu :



 Pada hati manusia yang terkena kanker hati:
gambar=imread('J:\kanker_hati.jpg');
gray=rgb2gray(gambar);
se = strel('ball',5,5);
dilat=imerode(gray,se);
imshow(gambar)
figure, imshow(gray)
figure, imshow(dilat)

hasilnya yaitu :



 Object Counting
Yaitu proses menghitung objek berdasarkan konektivitasnya terhadap piksel disekitarnya, bias berdasarkan 4 piksel koneksi atau menggunakan 8 piksel koneksi.
Fungsi yang digunakan untuk menghitung objek yaitu:
[labeled,numObjects] = bwlabel(imbw,4);
Sedangkan fungsi yang digunakan untuk memberi label dan warna yang berbeda pada setiap objek yaitu:
imlabel = label2rgb(labeled, @spring, 'c', 'shuffle');
Untuk implementasi dapat dilihat pada kode berikut :
 Pada hati manusia normal :
gambar=imread('gambar=imread('J:\normal.jpg');
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
[labeled,numObjects] = bwlabel(imbw,8);
imlabel = label2rgb(labeled, @spring, 'c', 'shuffle');
imshow(imbw)
figure,imshow(imlabel)

hasilnya yaitu :



 Pada hati manusia yang terkena kanker hati :
gambar=imread('J:\kanker_hati.jpg');
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
[labeled,numObjects] = bwlabel(imbw,8);
imlabel = label2rgb(labeled, @spring, 'c', 'shuffle');
imshow(imbw)
figure,imshow(imlabel)

hasilnya yaitu :



FFT (Fast Fourier Transform)
FFT didefiniskan berdasarkan persamaan berikut:



Ada dua cara untuk menampilkan hasil FFT yaitu berdasarkan magnitude yaitu dan log dari FFT yaitu log . Berikut program implementasi penggunaan FFT :
 Pada hati manusia normal :
gambar=imread('J:\normal.jpg');
red=gambar(:,:,1);
green=gambar(:,:,2);
blue=gambar(:,:,3);
f=fft2(gambar);
ff=abs(f);
flog=log(ff);
imshow(ff(:,:,3),[0 200]), colormap(jet),colorbar
figure,imshow(ff(:,:,3),[0 12]), colormap(jet),colorbar

hasilnya yaitu :




 Pada hati manusia yang terkena kanker hati :
gambar=imread('J:\kanker_hati.jpg');
red=gambar(:,:,1);
green=gambar(:,:,2);
blue=gambar(:,:,3);
f=fft2(gambar);
ff=abs(f);
flog=log(ff);
imshow(ff(:,:,3),[0 200]), colormap(jet),colorbar
figure,imshow(ff(:,:,3),[0 12]), colormap(jet),colorbar

hasilnya yaitu :



Filtering Image
Proses filtering secara khusus oleh matlab menggunakan fungsi built-in fspecial(special filter), dimana syntax umumnya adalah :
fspecial(filtername,parameter,..)
dimana:
• fspecial adalah jenis filter yang digunakan
• average = filter rata-rata
• disk = circular averaging filter
• gaussian = filter gauss
• laplacian = aproximasi operator 2-D laplace
• log= laplacian of gaussian filter
• motion= motion filter
• prewitt : Prewitt horizontal edge-emphasizing filter
• sobel : Sobel horizontal edge-emphasizing filter
• unsharp : unsharp contrast enhancement filter
Filter yang tersusun diatas kemudian diimplementasikan pada fungsi imfilter untuk image RGB (3-D) dan filter2 untuk image grayscale atau 2-D. Adapun penggunaanya seperti berikut dimana filter yang digunakan adalah filter gaussian dengan matriks 12x12, dan terlihat bahwa gambar hasil menjadi blur.

 Pada hati manusia normal :
gambar=imread('J:\normal.jpg');
gaussianFilter = fspecial('gaussian', [12, 12], 5)
hasil = imfilter(gambar, gaussianFilter, 'symmetric', 'conv');
subplot(1,2,1), image(gambar);
subplot(1,2,2), image(hasil), title('Blurred 1, blur matrix size 12');

hasilnya yaitu :


 Pada hati manusia yang terkena kanker hati :
gambar=imread('J:\kanker_hati.jpg');
gaussianFilter = fspecial('gaussian', [12, 12], 5)
hasil = imfilter(gambar, gaussianFilter, 'symmetric', 'conv');
subplot(1,2,1), image(gambar);
subplot(1,2,2), image(hasil), title('Blurred normal, blur matrix size 12');



hasilnya yaitu :














Live Histogram
Histogram sangat penting dalam pengolahan citra termasuk video oleh karena itu pembuatan histogram secara live juga sangat dibutuhkan dalam proses interpretasi objek yang akan dianalisis.
Pembuatan histogram pada MATLAB dilakukan seperti dibawah ini:
 Pada hati manusia normal :
gambar=imread('J:\normal.jpg');
red=gambar(:,:,1);
green=gambar(:,:,2);
blue=I(:,:,3);
gray2=0.3*red+0.5*green+0.2*blue ;
imhist(red)
figure, imhist(green)
figure, imhist(blue)
figure, imhist(gray)

hasilnya yaitu :



 Pada hati manusia yang terkena kanker hati:
gambar=imread('J:\kanker_hati.jpg');
imhist(gray)

hasilnya yaitu :

Image Reconstruction
Pada banyak kasus pengolahan citra baik proses binerisasi maupun deteksi tepi menghasilkan citra yang pada umumnya masih belum baik, oleh karena itu perlu dilakukan perbaikan citra/rekonstruksi citra kembali. Di MATLAB proses rekonstruksi dilakukan menggunakan fungsi imfill .
Penggunaan rekonstruksi image yaitu:
 Pada hati manusia normal :
gambar = imread('J:\normal.jpg');
[X,map] = rgb2ind(gambar, 128);
I = ind2gray(X,map);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
Ifill = imfill(imbw,'holes');
figure, imshow(imbw);figure, imshow(Ifill)

hasilnya yaitu :



 Pada hati manusia yang terkena kanker hati :
gambar = imread('J:\kanker_hati.jpg');
[X,map] = rgb2ind(gambar, 128);
I = ind2gray(X,map);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
Ifill = imfill(imbw,'holes');
figure, imshow(imbw);figure, imshow(Ifill)
hasilnya yaitu :



Konvolusi Image
Konvolusi adalah salah satu proses filtering image yang sering dilakukan pada proses pengolahan gambar. Pada MATLAB terdapat banyak sekali cara yang dapat dilakukan untuk melakukan proses konvolusi. Proses konvolusi dilakukan dengan menggunakan matriks yang biasa disebut mask yaitu matriks yang berjalan sepanjang proses dan digunakan untuk menghitung nilai representasi local dari beberapa piksel pada image.
Implementasi konvolusi ini yaitu:
 Pada hati manusia normal :
gambar=imread('J:\normal.jpg');
mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
hasil=conv2(double(imbw),mask,'valid');
imshow(gambar)
figure, imshow(hasil)

hasilnya yaitu :


 Pada hati manusia yang terkena kanker hati :
gambar=imread('J:\kanker_hati.jpg');
mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
hasil=conv2(double(imbw),mask,'valid');
imshow(gambar)
figure, imshow(hasil)

hasilnya yaitu :





Region Of Interest (ROI)
Kelemahan proses cropping jika itu merupakan daerah yang kita tertarik maka proses cropping hanya dapat digunakan untuk bentuk kotak (rectangular). Untuk bentuk lain atau area yang berbentuk tidak beraturan yang ingin dipisahkan dari image induk maka didefinisikan sebagai ROI (Region of Interest) dimana di MATLAB terdapat banyak sekali fungsi yang bisa digunakan, salah satunya yaitu roipoly(I,c,r) dimana I adalah matrik gambar, c adalah matrik titik kolom daerah yang menjadi ROI dan r adalah matrik titik baris daerah yang menjadi ROI. Penggunaan ROI yaitu:
 Pada hati manusia normal :
gambar=imread('J:\normal.jpg');
I=gambar(:,:,1);
c = [625 685 733 798 816 753 667];
r = [327 282 247 288 221 402 427];
BW = roipoly(I,c,r);
j = roifill(I,c,r);
figure, imshow(gambar)
figure, imshow(I)
figure, imshow(BW)
figure, imshow(j)

hasilnya yaitu :



 Pada hati manusia yang terkena kanker hati :
gambar=imread('J:\kanker_hati.jpg');
I=gambar(:,:,1);
c = [625 685 733 798 816 753 667];
r = [327 282 247 288 221 402 427];
BW = roipoly(I,c,r);
j = roifill(I,c,r);
figure, imshow(gambar)
figure, imshow(I)
figure, imshow(BW)
figure, imshow(j)

hasilnya yaitu :





















DAFTAR PUSTAKA


Daftar Pustaka Utama adalah Wikipedia
http://ms.wikipedia.org/wiki/Hati
searching tanggal 15 Oktober 2009
http://www.resep.web.id/obat/penyembuhan-kanker-dengan-tanaman-keladi-tikus.htm
searching tanggal 18 Oktober 2009
http://www.anneahira.com/pencegahan-penyakit/kanker-hati.htm
searching tanggal 23 Oktober 2009
http://www.blogdokter.net/2008/05/26/mencegah-kanker-hati/
searching tanggal 30 Oktober 2009


BAB III
KESIMPULAN DAN SARAN

3.1 Kesimpulan
Sesuai dengan tujuan dari pengamatan adalah untuk melihat perbedaan hasil dari pengolahan gambar untuk memperjelas bentuk gambar. Ada beberapa metode untuk pengolahan gambar, tiap-tiap metode mempunyai kelebihan dan kekurangan masing-masing. Misalnya pada deteksi gambar hanya dapat dilakukan dengan objek 2 dimensi. Sedangkan konvolusi merupakan proses yang paling sering digunakan pada proses pengolahan gambar ini, karena jika dilihat hasilnya setelah gambar atau objek tersebut diolah, maka dapat terlihat jelas gambar antara objek yang normal dan objek yang terkena penyakit kanker hati.

3.2 Saran
Apabila ingin dihasilkan perbedaan gambar yang lebih baik, sebaiknya gambar atau objek yang kita amati benar-benar dipilih gambar atau objek yang baik, misalnya perbedaannya sudah sedikit terlihat dan juga pemilihan metode yang akan digunakan untuk mengolah suatu gambara atau objek harus dipilih yang benar dapat menunjukan hasil yang maksimal untuk pengolahan ganbar atau objek tersebut.

Untitled

Kita tidak pernah tahu kemana hidup berjalan..
Kita bahkan tidak tahu akan jatuh cinta dan dicintai oleh siapa..
Kita juga bisa mengingat dan melupakan beberapa hal..
Dalam ke-egoan kita..
Keingintahuan membuat hati ingin memiliki kuasa..
Dalam nurani ketidaktahuan menelanjangi kuasa
Karna..
Apalah arti kehidupan bila telah diketahui..
Cinta dan seseorang tak lagi spesial..
Misteri membuat kita termotivasi untuk melakukan hal-hal terbaik..


By Achel

Sekilas Tentang Scilab

PENDAHULUAN

Sekilas mengenai Scilab
Scilab adalah suatu perangkat lunak yang dikembangkan untuk komputasi numerik dan visualisasi data. Pada awalnya Scilab dikembangkan oleh INRIA dan ENPC,Perancis,dan sekarang pengembangan dan pemeliharaan Scilab dilakukan oleh konsorium Scilab. Scilab mempunyai kelebihan dibandingkan dengan Matlab karena bersifat gatis (freeware) dan tersedia untuk berbagai sistem operasi diantaranya seperti Windows,Mac OS/X,Unix dan Linux.

Dasar-dasar penggunaan Scilab
Scilab dapat dijalankan dari menu  Start Scilab –x.y.x dimana x.y.z adalah versi dari Scilab. Cara lain adalah dengan melakukan klik ganda pada ikon Scilab di jendela desktop anda. Setelah itu akan muncul suatu jendela Scilab seperti berikut:



Gambar 1 Jendela Scilab

Keterangan
Simbol - - > yang terdapat pada jendela Scilab merupakan tanda bahwa Scilab siap untuk menerima suatu perintah yang akan kita berikan. Misalkan kita akan melakukan perhitungan yaitu 13+46 maka kita harus menuliskan ekspresi matematika tersebut setelah tombol - - > maka tekan tombol ENTER untuk melakukan eksekusi terhadap ekspresi matematika yang telah kita ketik sebelumnya. Scilab akan menampilkan hasil dari perintah yang telah kita berikan pada baris berikutnya. Hasil perhitungannya dapat diligat digambar 2 berikut ini:




Gambar 2 Hasil perhitungan perintah matematika

Setelah selesai melakukan perhitungan atau mengerjakan suatu perintah ang kita berikan maka Scilab akan kembali menampilkan tanda symbol - - >. Hal ini sebagai tanda bahwa Scilab telah siap untuk melakukan perintah yang lain.

Scilab juga dilengkapi dengan sistem bantuan (help),untuk melihat sistem bantuan (help).caranya ketik help pada symbol - - > help lalu tekan tombol ENTER. Pada jendela bantuan kita dapat memperoleh penjelasan yang detail mengenai suatu fungsi atau operator tertentu. Maka akan muncul jendela bantuan (help) seperti pada Gambar 3 berikut ini:



Gambar 3 Jendela bantuan (help)
Untuk mengakhiri penggunaan Scilab,gunakan menu File  Exit atau dengan menekan tanda yang terdapat pada bagian kanan atas jendela Scilab.

Variabel dan Ekpresi
Variabel adalah sebuah nama yang digunakan untuk menyimpan nilai suatu obyek.
Notasi statemen penugasan adalah sebagai berikut:

x = ekspresi
dimana x adalah nama variabel dan ekspresi adalah suatu ekspresi matematika. Nama
variabel di dalam Scilab adalah bersifat sensitif terhadap ukuran huruf, sehingga xawal dan Xawal adalah dua buah variabel yang berbeda. Selain variabel-variabel yang dapat kita buat sendiri, di dalam Scilab telah terpasang beberapa variabel khusus yang menyatakan suatu konstanta matematika, seperti %pi untuk = 3.1415927... , %i untuk i = 1 serta %e untuk e = 2.7182818... . Nilai dari suatu ekspresi yang kita masukkan akan ditampilkan pada baris berikutnya, kecuali jika pada akhir ekpresi tersebut kita tambahkan tanda titik koma (;). Apabila kita mempunyai suatu ekspresi yang cukup panjang dan tidak cukup untuk ditulis pada satu baris, maka kita harus menggunakan tanda titik tiga (…) pada akhir ekspresi, sebagai tanda bahwa ekspresi bersambung pada baris berikutnya. Untuk memperjelas perintah yang kita masukkan kita dapat menambahkan suatu baris komentar. Baris komentar dibuat dengan menggunakan tanda //. Segala sesuatu di belakang tanda tersebut akan diabaikan oleh Scilab. Baris komentar dapat ditulis pada suatu baris tersendiri atau di belakang suatu ekspresi.




Ruang Kerja
Variabel-variabel yang telah kita buat akan disimpan oleh Scilab dalam ruang kerja.
Untuk melihat nama-nama variabel yang telah dibuat, gunakan perintah who.
-->who


Terlihat bahwa perintah who, selain menampilkan variabel-variabel yang telah kita buat,
juga menampilkan variabel-variabel yang telah terpasang pada Scilab.
Untuk menghapus suatu variabel, gunakan perintah clear.
-->clear luas tinggi // menghapus variabel luas dan tinggi
-->clear // menghapus semua variabel yang telah kita buat

Operator-operator dan Fungsi-fungsi Matematika
Operator-operator untuk perhitungan aritmatika adalah sama dengan operator-operator
yang terdapat pada kalkulator atau perangkat lunak lainnya yaitu +, -, *, / dan ^. Dimana tanda-tanda tersebut masing-masing adalah simbol untuk operasi penjumlahan, pengurangan, perkalian, pembagian serta pemangkatan. Di dalam Scilab juga telah terpasang sejumlah fungsi-fungsi yang diperlukan dalam perhitungan matematika, seperti sqrt, abs, exp, sin, cos, tan dan lain sebagainya.

Berikut ini adalah contoh-contoh perhitungan matematika.


































PEMBAHASAN APLIKASI



Fungsi –fungsi tersebut digunakan untuk menganalisa suhu seseorang apakah mengalami sakit Hyporthermia. Hyporthermia itu sendiri adalah penurunan suhu tubuh (kedingingan) dari suhu normal, dan apabila kalau tidak cepat mengatasi situasi tersebut di gunung bisa berakibat fatal.














Kelebihan dan kekurangan Scilab

Kelebihan
 Mudah sekali digunakan
 Operasi aritmatik dan beberapa fungsi lainnya dapat langsung diperoleh hasilnya
 Pengerjaaan dapat dilakukan di 2 frame scilab yaitu di Scipad maupun di console
Namun console sering kali digunakan untuk melakukan proses kompiliasi program.

Kekurangan

 Tidak dapat mendefinisikan dan melakukan pemanggilan fungsi tertentu misalnya untuk variabel fungsi utama maupun lokal

aPa iTu LyX

 APA ITU LYX….?????
LyX merupakan metode baru dalam word prosessor. LyX menggunakan LaTeX dan memegang prinsip WYSWYM (What You See is What You Mean).
 Bagaimana menulis dengan LyX??

Seperti prinsipnya LyX yaitu WYSWYM (What You See is What You Mean), oleh karena itu kita tinggal mengikuti tata cara menulis LyX. Ada banyak sekali tipe class pada LyX, Kelas dapat dipilih dengan mengubah combobox yang ada pada kiri sebelah atas dari LyX window. Defaultnya adalah class standard .
- Yang pertama, class standard digunakan pada text standar bukan judul bab ataupun judul sub bab ataupun judul sub sub bab. Kita akan menggunakan class ini untuk tulisan biasa.
- Yang kedua, class Chapter dan Chapter*, merupakan class yang digunakan untuk judul utama dari suatu bab. Perbedaan antara yang tidak memakai bintang dengan yang memakai bintang adalah bahwa yang tidak memakai bintang maka akan ada tulisan Bab sebelum judul dan akan masuk ke daftar isi, sedangkan yang memakai bintang tidak memakai kata bab didepannya dan tidak masuk daftar isi.
- Yang ketiga, class Section, digunakan untuk judul suatu section/sub bab pada suatu bab.
- Yang keempat, class subsection, digunakan untuk judul sub section/ sub sub bab pada suatu bab.
- Yang kelima, class subsubsection, digunakan untuk judul sub sub section/ sub bab dari suatu bab.

 Cara-cara dengan menggunakan LaTeX atau dengan menggunakan fasilitas yang disediakan LyX sehingga mendapatkan tampilan seperti yang diinginkan.
Sebelumnya perlu diingatkan bahwa untuk memasukkan suatu LaTeX command maka dapat digunakan menu Insert->Tex Code atau dengan menekan tombol Ctrl+L.
1. Mengganti style penulisan nomer halaman

Commandnya adalah \pagenumbering{style}.
Ada dua style yang bisa digunakan yaitu arabic (1,2,3,…) dan roman (i,ii,ii,…).
Contoh kasus adalah ketika halaman dari abstrak, kata pengantar, daftar isi, daftar gambar, dan daftar tabel harus dalam bentuk romawi dimulai dari satu pada halaman depan dan berikutnya dua dan seterusnya. Setelah itu pada bab 1 diperlukan halaman berubah lagi menjadi 1 tetapi dengan huruf arabic .
Penyelesaiannya adalah dengan memberi command \pagenumbering{roman}
pada awal dokumen,
dan pada awal bab1 diberi command \setcounter{page} 1 \pagenumbering{arabic}




2. Mengosongkan Halaman

Hanya memberikan command \thispagestyle{empty} maka semua style dari halaman akan dihilangkan (nomer halaman, header).

3. Mengatur jarak antar baris pada list
Untuk memperpendek jarak antara baris dapat digunakan command \setlength{\parskip} {-3pt}
4. Tips untuk membuat halaman biodata/Daftar Riwayat Hidup
Pertama, cari wrapfigure.sty di google dan di downlad. Untuk user Linux, copy file tersebut ke direktori /usr/share/texmf/tex/latex/lyx/ dan jalankan texhash (pada super user). Restart LyX.
- Untuk membuatnya pertama masukkan command berikut pada Latex preamble pada menu Document->Settings \usepackage{wrapfig}
- Lalu masukkan command berikut pada tempat dimana akan dibuat daftar riwayat hidup. \begin{wrapfigure}[7]{l}{40mm}
Angka 7 berarti imagenya terdiri dari 7 baris spasi. Trus huruf l berarti image berada di kiri. Dan terakhir angka 40 berarti imagenya punya lebar 40mm=4cm. Setelah command diatas, masukkan imagenya, trus masukkan command berikut setelahnya. \end{wrapfigure} , Sisanya dapat ditulis seperti biasa.
5. Menambahkan sesuatu ke daftar isi
Tinggal masukkan command berikut setelah judul standar atau chapter*. \addcontentsline{toc}{chapter}{Bibliografi}

Selasa, 29 Desember 2009

Korelasi

LISTING PROGRAM

uses crt;
type korelasi = object
pers_reg,a,r,jumx,jumy,jumxy,b:real;
s,jumy2,jumx2: real;
x,y,xy,x2,y2: array[1..20] of real;
procedure input;
procedure hitung;
procedure tampil;
end;
var i,n,pil:integer;
kor:korelasi;

procedure korelasi.input;
begin
clrscr;
write('masukkan banyak data : ');
readln(n);
for i:=1 to n do
begin
write('Masukkan nilai X[',i,'] : ');
readln(x[i]);
end;
for i:=1 to n do
begin
gotoxy(30,i+1);
write('Masukkan nilai y[',i,'] : ');
readln(y[i]);
end;
end;

procedure korelasi.hitung;
begin
clrscr;
for i:=1 to n do
begin
xy[i]:=x[i]*y[i];
x2[i]:=x[i]*x[i];
y2[i]:=y[i]*y[i];
jumx:=jumx+x[i];
jumy:=jumy+y[i];
jumxy:=jumxy+xy[i];
jumx2:=jumx2+x2[i];
jumy2:=jumy2+y2[i];
b:=((n*jumxy)-(jumx*jumy));
a:=(n*jumx2 - jumx*jumx) * ( n*jumy2 - jumy*jumy ) ;
s:=sqrt(a);
r:=b/s;
end;
end;

procedure korelasi.tampil;
begin
clrscr;
gotoxy(1,1); writeln('*********************************');
writeln(' x y x2 xy y2'); writeln('*********************************');
for i:= 1 to n do
begin
gotoxy(3,i+3);write(x[i]:2:1);
gotoxy(9,i+3);write(y[i]:2:1);
gotoxy(16,i+3);write(x2[i]:2:1);
gotoxy(22,i+3);write(xy[i]:2:1);
gotoxy(28,i+3);write(y2[i]:2:1);
end;
gotoxy(1,n+4);
writeln('--------------------------------');
gotoxy(3,n+5);write(jumx:2:1);
gotoxy(9,n+5);write(jumy:2:1);
gotoxy(16,n+5);write(jumx2:2:1);
gotoxy(22,n+5);write(jumxy:2:1);
gotoxy(28,n+5);write(jumy2:2:1);
writeln;
writeln;
writeln('b = ',b:2:2);
writeln('a = ',a:2:2);
write('persamaan korelasinya : ',r:2:2);
readln;
end;

{program utama}
begin
repeat
clrscr;
writeln('<<>>');
writeln('1.INPUT');
writeln('2.TAMPIL');
writeln('3.EXIT');
write('PILIHAN : ');readln(pil);
case pil of
1: kor.input;
2: begin
kor.hitung;
kor.tampil;
end;
end;
until pil=3;
end.


LOGIKA PROGRAM
Program diatas adalah program untuk mencari persamaan korelasi dari suatu data X dan Y yang akan ditampilkan dalam tabel. Bila program ini kita jalankan, maka program ini akan menampilkan suatu bentuk tampilan menu utama, dimana dalam menu ini kita harus menginput suatu nilai yang nantinya akan disimpan dalam variable pil. Bila kita memasukkan nilai 1, maka program akan menjalankan procedure korelasi.input, dimana kita akan memasukkan sejumlah data untuk masing-masing variable X dan Y. kemudian bila kita memasukkan nilai 2, maka program akan menjalankan procedure korelasi.hitung, dimana procedure akan melakukan sejumlah perhitungan untuk mencari nilai-nilai variable yang digunakan dalam mencari persamaan korelasi seperti a, b, s dan r. jika kita memasukkan nilai 3, maka program akan menampilkan semua nilai variabel-variabel yang telah di operasikan dalam bentuk tabel dan juga menampilkan nilai var a dan b, serta menampilkan nilai dari persamaan korelasinya.
:
procedure korelasi.input ; digunakan untuk memasukkan nilai-nilai masing-masing untuk var X&Y.
procedure korelasi.hitung ; digunakan untuk mencari nilai dari variable-variabel lain berdasarkan nilai X&Y yang telah diketahui.
procedure korelasi.tampil ; menampilkan semua nilai X&Y dalam bentuk tabel dan juga nilai dari kesalahan baku serta persamaan korelasinya.
PENJELASAN PROGRAM
uses crt;
type korelasi = object
pers_reg,a,r,jumx,jumy,jumxy,b:real;
s,jumy2,jumx2: real;
x,y,xy,x2,y2: array[1..20] of real;
procedure input;
procedure hitung;
procedure tampil;
end;
var i,n,pil:integer;
kor:korelasi;

Uses crt adalah header file yang digunakan pada program pascal. Kemudian kita mendefinisikan suatu type korelasi yang bertype objek. Dimana dalam objek ini kita mendefinisikan beberapa variabel dengan type-typenya seperti yang dapat kita lihat dalam program. Variabel-variabel ini dapat digunakan pada semua fungsi dan procedure yang juga termasuk dalam objek ini. Kemudian kita juga mendefinisikan beberapa procedure,seperti yang dapat dilihat dalam program, dimana procedure-procedure ini dapat dijalankan pada program utama dengan memanggil nama obyeknya. Kemudian Disini kita mendefinisikan suatu variabel yang bersifat global, dan suatu variabel objek bernama “kor”.
procedure korelasi.input;
begin
clrscr;
write('masukkan banyak data : ');
readln(n);
for i:=1 to n do
begin
write('Masukkan nilai X[',i,'] : ');
readln(x[i]);
end;
for i:=1 to n do
begin
gotoxy(30,i+1);
write('Masukkan nilai y[',i,'] : ');
readln(y[i]);
end;
end;

Ini adalah procedure yang bernama procedure korelasi.input, dimana procedure ini akan menjalankan suatu fungsi untuk memasukkan nilai inputan untuk variabel n, dimana variabel n adalah jumlah banyaknya data dalam proses korelasi. Kemudian, dilakukan suatu proses perulangan untuk memasukkan nilai bagi masing-masing nilai X dan Y yang akan digunakan dalam menentukan persamaan korelasi. Banyaknya x dan y yang dimasukkan adalah tergantung nilai n, sehingga banyaknya perulangan yang terjadi adalah sebanyak nilai n juga. Sehingga nilai untuk X dan Y dapat digunakan dalam program.
procedure korelasi.hitung;
begin
clrscr;
for i:=1 to n do
begin
xy[i]:=x[i]*y[i];
x2[i]:=x[i]*x[i];
y2[i]:=y[i]*y[i];
jumx:=jumx+x[i];
jumy:=jumy+y[i];
jumxy:=jumxy+xy[i];
jumx2:=jumx2+x2[i];
jumy2:=jumy2+y2[i];
b:=((n*jumxy)-(jumx*jumy));
a:=(n*jumx2 - jumx*jumx) * ( n*jumy2 - jumy*jumy ) ;
s:=sqrt(a);
r:=b/s;
end;
end;

Ini adalah suatu procedure yang bernama procedure korelasi.hitung. dalam procedure ini, akan dilakukan suatu proses untuk mncari nilai-nilai dari var X2, var XY, jumXY , jumX2, jumY2, jumX, dan jumY. Untuk mencari nilai-nilai tersebut, kita menggunakan suatu proses perulangan sebanyak n, dimana kita akan menghitung data-data tersebut berdasarkan variabel-variabel array. Untuk mencari nilai X2 yang berype array, kita akan mengalikan nilai nilai dari var X ke-i dengan var X ke-i juga, sehingga kita akan mendapatkan nilai kuadrat dari var X.
Hal ini berlaku juga untuk mencari nilai-nilai dari variabel yang lain, dimana kita menggunakan array ke- sesuai dengan nilai i dalam perulangan For...do.
Kemudian kita akan menghitung nilai dari variabel b dan a yang dicari berdasarkan rumus dari korelasi, kemudian nilai a akan diakarkan ke var s, kemudian nilai korelasi dicari dengan mncari nilai dari var r seperti dalam program.
procedure korelasi.tampil;
begin
clrscr;
gotoxy(1,1); writeln('*********************************');
writeln(' x y x2 xy y2'); writeln('*********************************');
for i:= 1 to n do
begin
gotoxy(3,i+3);write(x[i]:2:1);
gotoxy(9,i+3);write(y[i]:2:1);
gotoxy(16,i+3);write(x2[i]:2:1);
gotoxy(22,i+3);write(xy[i]:2:1);
gotoxy(28,i+3);write(y2[i]:2:1);
end;
gotoxy(1,n+4);
writeln('--------------------------------');
gotoxy(3,n+5);write(jumx:2:1);
gotoxy(9,n+5);write(jumy:2:1);
gotoxy(16,n+5);write(jumx2:2:1);
gotoxy(22,n+5);write(jumxy:2:1);
gotoxy(28,n+5);write(jumy2:2:1);
writeln;
writeln;
writeln('b = ',b:2:2);
writeln('a = ',a:2:2);
write('persamaan korelasinya : ',r:2:2);
readln;
end;

Ini adalah procedure yang bernama korelasi.tampil. dimana dalam procedure ini kita akan menampilkan hasil-hasil nilai variabel yang kita cari sebelumnya di procedure korelasi.hitung. dalam procedure ini kita akan menampilkan nilai-nilai tersebut dalam bentuk tabel.
Dalam menampilkan nilai-nilai tersebut, kita menggunakan perulangan dan perintah gotoxy(), yang dapat mengatur tampilan dalam layar. Kita dapat melihat bahwa nilai-nilai setiap variabel seperti var X ditampilkan memanjang kebawah, dan begitu juga dengan variabel-variabel yang lain, seperti tabel korelasi.
Setelah kita menampilkan nilai seluruh variabel, dibawah tabel tesebut kita akan menampilkan jumlah nilai dari masing-masing variabel. Dalam hal ini kita juga menggunakan perintah for..do dan gotoxy(), seperti yang kita lihat dalam program. Kemudian kita akan menampilkan nilai dari variabel a, b, s, serta r dan juga persamaan dari korelasinya yang berupa suatu nilai real.
{program utama}
begin
repeat
clrscr;
writeln('<<>>');
writeln('1.INPUT');
writeln('2.TAMPIL');
writeln('3.EXIT');
write('PILIHAN : ');readln(pil);
case pil of
1: kor.input;
2: begin
kor.hitung;
kor.tampil;
end;
end;
until pil=3;
end.

Ini adalah program utama dalam program ini. Disini kita akan menampilkan suatu menu yang akan terus ditampilkan karena digunakan statement repeat...until
Sehingga selama nilai var pil tidak sama dengan 3, menu ini akan ditampilkan terus. menu yang akan ditampilkan dapat kita lihat seperti didalam program.
Dalam bagian ini kita juga menggunakan perintah case...of untuk menentukan procedure mana yang akan dijalankan sesuai dengan pilihan menu. Dimana dalam case...of kita juga memanggil procedure dengan memanggil nama objeknya terlebih dahulu.

OUTPUT PROGRAM

Tampilan menu program.

Tampilan output program apabila kita memasukkan pilihan 1. INPUT.

Tampilan output program apabila kita memasukkan pilihan 2. TAMPIL.


Membuat Database dengan PHPMyAdmin

Membuat Database dengan PHPMyAdmin

Phpmyadmin adalah suatu aplikasi yang dibuat dengan bahasa pemrograman PHP, yang ditujukan untukpengelolaanbasis data MySQL melalui internet. Fungsi phpmyadmin sama dengan software lain seperti SQLYOG dan MySQL FRONT. Hanya saja phpmyadmin merupakan free software. Phpmyadmin juga merupakan alat bantu administrasi database berbasis web yang memang dibuat khusus untuk mengelola database.

LISTING PROGRAM

Input.php

NPM :

Nama :

Kelas :

Listing diatas merupakan listing yang digunakan untuk membuat tampilan untuk menginput data. Digunakan input type yang merupakan text yang pertama adalah untuk menginput npm, yang kedua digunakanuntuk menginput nama dan yang terakhir digunakan untuk meginput kelas. Apabila telah selesai memasukkan inputan, maka selanjutnya klik input dan selanjutnya data yang telah kita input tadi akan masuk ke dalam database.

Action.php

$mysql_host = 'localhost';

$mysql_user = 'root';

$mysql_password = '';

$mysql_database = '4ia06';

mysql_connect($mysql_host, $mysql_user, $mysql_password);

mysql_select_db($mysql_database);

$sql = "INSERT INTO mahasiswa VALUES('$_POST[npm]', '$_POST[nama]', '$_POST[kelas]')";

mysql_query($sql);

$sql = "SELECT * FROM mahasiswa";

$qry = mysql_query($sql);

echo '

';

while($data=mysql_fetch_array($qry)) {

echo "

";

}

echo '

NPMNamaKelas
$data[npm]$data[nama]$data[kelas]
';

?>

Listing selanjutnya diberi nama action.php. Listing ini didalamnya berisi listing untuk koneksi ke database. Kemudian memasukan data dengan menggunakan insert, sebelumnya kita telah membuat database yang isinya npm,nama, dan kelas. Sebelumnya pada input.php kita diminta untuk menginputkan data yang berupa npm, nama dan kelas. pada listing diatas juga dibuat sebuah table yang digunakan untuk menyimpan data-data tersebut.

OUTPUT PROGRAM

IPTABLES

IPTABLES

Iptables adalah salah satu tools firewall default pada system operasi linux. Iptables ini bekerja baik di kernel 2.4.x-2.6.x sedangkan untuk kernel 2.2.x masih menggunakan ipchains. Perintah 'iptables' digunakan untuk mengelola, memaintain, menginspeksi rule-rule IP packet filter dalam kernel linux.

Firewall IPTables packet filtering memiliki tiga aturan yaitu:

1. INPUT

=> Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa mengelola komputer mana saja yang bisa mengakses firewall. misal: hanya komputer IP 192.168.1.100 yang bisa SSH ke firewall dan yang lain tidak boleh.

2. OUTPUT

=> Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset, karena bisa membatasi kemampuan firewall itu sendiri.

3. FORWARD

=>paket data yang diterima dari satu jaringan dan diteruskan ke jaringan lainya.

Perintah umum iptables :

$iptables [-t table] command [match] [target/jump]

Selain itu juga terdapat beberapa option dasar yang cukup sering dalam mengkonfigurasi iptables :

  • -A

Tambahan aturan ini ke rantai aturan yang ada. Rantai atau chain yang valid adalah INPUT, FORWARD, dan OUTPUT. Biasanya lebih banyak menggunakan rantai INPUT yang berdampak pada paket data yang masuk

  • -L

Memperlihatkan daftar aturan yang telah dipasang di iptables.

  • -m state

Menjelaskan daftar dari kondisi / state bagi aturan untuk di bandingkan. Beberapa state yang valid, adalah :

NEW => sambungan baru dan belum pernah terlihat sebelumnya

RELATED => sambungan baru, tapi berhubungan dengan sambungan lain telah diizinkan.

ESTABLISHED => sambungan yang telah terjadi.

INVALID => lalu lintas paket data yang karena berbagai alasan tidak bisa di identifikasi

  • -m limit

Dibutuhkan oleh aturan jika ingin melakukan pembandingan dan pencocokan dalam waktu / jumlah tertentu. Mengizinkan penggunaan option –limit. Berguna untuk membatasi aturan logging.

  • --limit

Kecepatan maksimum pencocokan, diberikan dalam bentuk angka yang diikuti oelh ”/seconf”,”/minute”,”/hour”, atau ”/day” tergantung seberapa sering kita ingin melakukan pencocokan aturan. Jika option ini tidak digunakan maka secara defaultnya adalah ”3/hour”

  • -p

Protokol yang digunakan untuk sambungan.

  • --dport

Port tujuan yang digunakan oleh aturan iptables. Bisa berupa satu port, bisa juga satu batasan jangkauan ditulis sebagai start:end, yang akan mencocokan semua port start sampai end

  • -j

Jump ke target yang spesifik. Iptables mempunyai empat target default, yaitu :

ACCEPT

Accept / menerima paket dan berhenti memproses aturan dalam rantai aturan ini.

REJECT

Akses ditolak, koneksi dari komputer klien yang melewati firewall langsung terputus, biasanya terdapat pesan “Connection Refused”. Target Reject tidak menghabiskan bandwidth internet karena akses langsung ditolak, hal ini berbeda dengan DROP.

DROP

Akses diterima tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan - akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet yang sibuk dengan trafik tinggi Target Drop sebaiknya jangan digunakan.

LOG

Log/catat paket, dan teruskan pemrosesan aturan di rantai aturan ini. Mengijinkan penggunaan option --log –prefix dan --log -level

  • --log –prefix

Jika pencatatan dilakukan, letakan text atau tulisan sebelum catatan.

  • --log –level

Pencatatan menggunakan syslog level.

  • -i

Melakukan pencocokan jika paket yang masuk dari interface tertentu.

  • -I

Memasukan aturan ke iptables.

  • -v

Menampilkan lebih banyak informasi di layar

Untuk dapat melihat manual iptables, silakan ketik perintah ini pada terminal :

$man iptables

Perintah dasar Iptables :

  1. Untuk melihat aturan yang sudah ada di iptables :

$iptables -L

  1. Untuk mengijinkan sesi sambungan yang terbentuk untuk menerima lalu lintas paket data

$iptables -A INPUT -m state –state ESTABLISHED, RELATED -j accept

  1. Untuk melakukan pemblokiran paket data.

$iptables -A INPUT -j DROP

  1. Untuk melakukan pencatatan paket yang di log , perintah yang paling cepat adalah :
$iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

  1. Untuk menyimpan konfigurasi iptables

Jika kita booting komputer yang kita gunakan, maka apa yang kita lakukan ini akan hilang. Kita pun harun mengetikkan ulang semua perintah yang kita masukan satu per satu ketika komputer hidup. Agar lebih effesien, kita dapat menggunakan iptables-save dan iptables-restore untuk menyimpan dan merestore iptables

Kita dapat menyimpan konfigurasi iptables agar di start setiap kali booting menggunakan perintah :

              $sh -c "iptables-save > /etc/iptables.rules"
 

Setelah itu memodifikasi /etc/network/interfaces agar aturan iptables yang kita gunakan dapat berjalan secara automatis. Kita perlu mengetahui ke interface mana aturan yang akan digunakan. Biasanya menggunakan eth0. Untuk interface wireless, kita dapat mencek penggunaaannya mengunakan perintah,

$ iwconfig

  1. Untuk menonaktifkan atau mematikan fiewall, maka perintahnya :

$iptables –F