LAMPIRAN A: SOURCE CODE PROGRAM CLASS METODE

dokumen-dokumen yang mirip
STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Pertemuan ke-1 STREAM DAN IO. A. TUJUAN : Mampu mengimplementasikan kelas-kelas untuk menangani aliran data.

File & Stream. Kegunaan File : file : ini. dengan. iostream.h) suatu. stream, Jika. dapat menghubungkan. mendeklarasikan. kita.

PEMROGRAMAN JAVA : STREAM DAN FILE

Badiyanto, S.Kom., M.Kom. PBO java

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Cara Membaca File Text di JAVA

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

BAB Argument Command-Line dan System Properties

DASAR PEMOGRAMAN JAVA

//PROGRAM " tidak dapat dibaca")); import java.io.file; Date tanggal = new Date(); import java.io.ioexception;

FILE & STREAM Bab FILE

BAB II VARIABEL DAN TIPE DATA

2 TIPE DATA DAN VARIABEL

BAHASA PEMROGRAMAN JAVA

Algoritma QR Code Digital Signature dengan Memanfaatkan Fingerprint

Pertemuan 7 File pada Java

PEMAHAMAN DASAR DASAR JAVA

PENGAKSESAN FILE DI JAVA

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

Materi kuliah I/O & FILE. Ir. Roedi Goernida, MT.

PRAKTIKUM 8 FILE INPUT OUTPUT

1.Tujuan. 2. Latar Belakang. Tahu tipe-tipe stream yang umum digunakan Menggunakan class File dan methodnya

LAMPIRAN A : LISTING PROGRAM

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Memiih Penyimpanan Internal atau External

PRAKTIKUM 7 DASAR INPUT OUTPUT

Aplikasi Fungsi Hash MD5 untuk Pengecekan Konten Laman Website

BAB 1 KONSEP DASAR JAVA

SUMBER BELAJAR PENUNJANG PLPG

A. Judul Percobaan/praktikum Tipe Data, Keyword, Variabel, Operator dan Teknik Konfersi

Pengenalan C++ Oleh : Dewi Sartika

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Bahasa Pemrograman :: Dasar Pemrograman Java

Riwayat Pendidikan: SDK Lemuel II, Pos Pengumben, Jakarta Barat SMPK Lemuel, Pos Pengumben, Jakarta Barat SMUN 78, Kemanggisan, Jakarta Barat

Introduction To Stream

Metode Binnary Searching di Java Console

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

MESIN ATM. Gambar 1. Gambar 2

Input Nilai tanpa Case String di Java

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

ShortHand If Else di Java

Pemrograman Socket menggunakan TCP

Modul 3 Flow Control dan Input

Elemen Dasar Dalam Bahasa Java

LISTING PROGRAM. Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Java Basic. Variabel dan Tipe Data. Lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu informasi (nilai)

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Metode Sequential Searching di Java Console

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

KONSEP DASAR PEMROGRAMAN BERORIENTASI OBYEK

Metode Insertion Sort di Java Console

PEMROGRAMAN JARINGAN MODUL 3 STREAM

OPERATOR-OPERATOR DALAM JAVA

Tidak perlu ditentukan jumlah karakternya Inisialisasi iili i: Langsung tanpa kata kunci new Langsung dengan kata kunci new

MODUL 9 Material Texture

Pertemuan 2 Struktur Kontrol Percabangan

BAB 3 PERANCANGAN PROGRAM

Praktikum JTable. Gambar 1

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

DASAR PEMROGRAMAN JAVA

PENGENALAN JAVA (2)

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

DAFTAR ISI. DAFTAR ISI... vii. DAFTAR GAMBAR... x. DAFTAR TABEL... xii I. PENDAHULUAN Latar Belakang Rumusan Masalah...

Pemrograman Lanjut. Class, dan Instance Variable. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

Operasi File. terdapat 5 konstruktor dan 7 method untuk membuat file yang akan diakses menggunakan byte stream.

Modul Praktikum 3 Pemograman Berorientasi Objek

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

BAB III ANALISIS MASALAH

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

IOSTREAM bagian 2. Kholid Fathoni

LAMPIRAN A : LISTING PROGRAM

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

BAB IV IMPLEMENTASI DAN PENGUJIAN

LAPORAN PRAKTIKUM STRUKTUR DATA

Record Management System. Muhammad Zen S. Hadi, ST. MSc.

Pemrograman Berorientasi Objek. Beni Suranto, S.T.

UNIVERSITAS KOMPUTER INDONESIA

BAB 5 Mendapatkan Input dari Keyboard

Pertemuan 3 Struktur Perulangan pada Java

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

BAB 5 Mendapatkan Input dari Keyboard

A. TUJUAN PEMBELAJARAN

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

I/O (Input dan Output)

PERTEMUAN V STREAM DAN OOP TUJUAN PRAKTIKUM. 2. Praktikan memahami pemrograman berbasis objek dengan mengetahui karakteristik OOP.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PERCOBAAN 1 : Ketik program di bawah ini, bila terjadi kasalahan waktu compile dan runtime, betulkan!

Transkripsi:

LAMPIRAN A: SOURCE CODE PROGRAM CLASS METODE package steganalisis; import java.io.ioexception; public class Metode { public String bitmapinputname; public String bitmapoutputname; public int[] buffer; public int panjangpesan; public String pesan; public int bitmapmsgsize; public String bitmapmsg; private int c, j, p; private int hasil; private int posisi; public void EnhancedLSB() throws IOException { int[] data = bmpimg.getpixeldata(); for(int i = 0, n = data.length; i < n; i++) { int curdata = bmpimg.getcurrentbyte(i); int newcurdata = this.ceklsb(curdata); bmpimg.setcurrentbyte(i, newcurdata); bmpimg.savebitmapfile(this.bitmapinputname + "- analysis.bmp"); private int ceklsb(int adata) { if (adata % 2 == 0) { return 0; return 255; public String Ekstraksi() throws IOException { buffer = bmpimg.getpixeldata(); posisi = 0; panjangpesan = 0; // ambil panjang pesan for (j = 0; j < 8; j++) { this.ambilpanjangpesan(); i++) { pesan = ""; for (int i = 0; i < panjangpesan && posisi < buffer.length;

this.bacapesan(); return pesan; private void ambilpanjangpesan() { int t = buffer[posisi]; // data bitmap di posisi yg sesuai int bit = ((t & 1) == 1? 1 : 0); // apakah bit ke-j bernilai 1 atau 0 panjangpesan += bit << j; ++posisi; // ke posisi berikutnya private void bacapesan() { char karakter = 0; for (j = 0; j < 8 && posisi < buffer.length; j++) { int t = buffer[posisi]; // data bitmap di posisi yg sesuai int bit = ((t & 1) == 1? 1 : 0); // apakah bit ke-j bernilai 1 atau 0 karakter += bit << j; ++posisi; // ke posisi berikutnya pesan += karakter; public boolean apakahbitmap24bitnocompress() throws IOException { int[] buf = bmpimg.buffer; //bitmap BM if (buf[0x0] == 0x42 && buf[0x1] == 0x4D) { // bitmap 24bit int bitperpiksel = buf[0x1c] + (buf[0x1d] << 8); if (bitperpiksel == 24) { //bitmap tidak terkompresi if ((buf[0x1e] + (buf[0x1f] << 8) + (buf[0x20] << 16) + (buf[0x21] << 24)) == 0) { //bitmap tdk terkompresi return true; //bitmap terkompresi // bitmap bukan 24 bit // bukan bitmap public boolean SisipLSB() throws IOException { Bitmap bmpimg = new Bitmap();

bmpimg.readbitmapfile(this.bitmapinputname); buffer = bmpimg.getpixeldata(); int imgsize = bmpimg.bfsize; int curp = 0; if((bitmapmsgsize*8+8) <= imgsize) { //simpan panjang pesan for (j = 0, p = 0; j < 8 && p < buffer.length; j++, p++){ this.sisippanjangpesan(); int adata = hasil; bmpimg.setcurrentbyte(p, adata); ++curp; //ke posisi berikutnya for (int i = 0; i < bitmapmsgsize; i++) { // 1 karakter pada pesan, terdiri dari 8 bit c = bitmapmsg.charat(i); // 8 bit pada 1 karakter pesan tersebut ditempatkan ke dalam 8 byte data bitmap for (j = 0, p = curp; j < 8 && p < buffer.length; j++, p++) { this.sisippesan(); int adata = hasil; // tulis ke BMP output bmpimg.setcurrentbyte(p, adata); ++curp; // ke posisi berikutnya bmpimg.savebitmapfile(this.bitmapoutputname); return true; // tempat tidak cukup private int sisippanjangpesan() { int t = buffer[p]; // data bitmap di posisi yg sesuai int bit = ((bitmapmsgsize & (1 << j)) == (1 << j)? 1 : 0); // apakah bit ke-j bernilai 1 atau 0 hasil = (bit == 1? (t 0x1) : (t & (0xFF << 1))); // sisipkan ke LSB private int sisippesan() { int t = buffer[p]; // data bitmap di posisi yg sesuai int bit = ((c & (1 << j)) == (1 << j)? 1 : 0); // apakah bit ke-j pada pesan bernilai 1 atau 0 hasil = (bit == 1? (t 0x1) : (t & (0xFF << 1))); // sisipkan ke LSB

LAMPIRAN B: SOURCE CODE PROGRAM CLASS BITMAP package steganalisis; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; public class Bitmap { FileInputStream fin; FileOutputStream fout; int[] buffer; int[] biheader; int[] bfheader; int[] bufdata; // Bitmap file header int bfsize; public void getfileheader() { bfsize = buffer[0x2] + (buffer[0x3] << 8) + (buffer[0x4] << 16) + (buffer[0x5] << 24); bfheader = new int[14]; for(int a = 0, b = 14; a < b; a++) { bfheader[a] = buffer[a]; public void getinfoheader() { biheader = new int[40]; for(int a = 14, b = 54, c = 0; a < b; a++, c++) { biheader[c] = buffer[a]; public int[] getpixeldata() { bufdata = new int[buffer.length - 54]; for(int a = 54, b = buffer.length, c = 0; a < b; a++, c++) { bufdata[c] = buffer[a]; return bufdata; public void setfileheader() throws IOException { for(int a = 0, b = bfheader.length; a < b; a++) { fout.write(bfheader[a]); public void setinfoheader() throws IOException { for(int a = 0, b = biheader.length; a < b; a++) { fout.write(biheader[a]);

public void setpixeldata() throws IOException { for(int a = 0, b = bufdata.length; a < b; a++) { fout.write(bufdata[a]); public int getcurrentbyte(int ke) { int hasil = bufdata[ke]; public void setcurrentbyte(int ke, int newdata) { bufdata[ke] = newdata; public void readbitmapfile(string inputname) throws IOException { fin = new FileInputStream(inputName); buffer = new int[fin.available()]; for (int a = 0, b = buffer.length; a < b; a++) { buffer[a] = fin.read(); getfileheader(); getinfoheader(); getpixeldata(); if (fin!= null) { fin.close(); fin = null; { public void savebitmapfile(string outputname) throws IOException fout = new FileOutputStream(outputName); setfileheader(); setinfoheader(); setpixeldata(); if (fout!= null) { fout.close(); fout = null;