Pertemuan2 steganografi

17
ikatlah ilmu dengan menuliskannya Bab 2 Pengenalan Java 16 Pengenalan Java 6.1 Sejarah Java Java adalah bahasa pemrograman karya Sun Microsystem Inc, mulai dikembangkan pada tahun 1991 oleh James Gosling dan Patrick Naughton. Awalnya Java dibuat untuk perangkat konsumer seperti TV Kabel yang tidak memiliki banyak memori, sehingga Java memiliki karakteristik berukuran kecil. Java di tuntut harus netral pada arsitektur manapun, proyek ini diberi nama kode “Green”. Mulanya bahasa Java diberinama “OAK” kemudian diganti “Java” karena nama “OAK” sudah pernah digunakan sebelumnya. Java mulai popular pada tahun 1995 setelah Netscape memutuskan untuk membuat browser dilengkapi dengan Java, setelah itu diikuti oleh IBM, Symantec dan Microsoft. 6.2 Keunggulan Java a. Bahasa sederhana Java dirancang agar mudah dipelajari dan digunakan secara efektif. Semudah C seampuh C++ sehingga cenderung lebih mudah. b. Berorientasi Objek Pada Orientasi Objek, program sebagai sekelompok objek yang saling berinteraksi secara independen. c. Tangguh Java interpreter memeriksa semua akses sistem yang dilakukan, sehingga tidak akan menyebabkan crash terhadap sistem. Dengan mekanisme exception-handling kesalahan serius dapat ditangkap dan dikelola tanpa beresiko membuat sistem menjadi down. d. Bersifat Multithreading Dapat mengerjakan beberapa proses dalam waktu yang hampir bersamaan. e. Bersifat Multiplatform Karena Java menggunakan intepreter Java Virtual Machine (JVM), menjadikan bytecode yang di hasilkan dapat berjalan di banyak platform. f. Didukung Garbage Collector Garbage Collector berfungsi untuk mendealokasikan memori yang tidak diperlukan secara otomatis.

Transcript of Pertemuan2 steganografi

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 16

Pengenalan Java

6.1 Sejarah Java

Java adalah bahasa pemrograman karya Sun Microsystem Inc, mulai dikembangkan pada tahun 1991 oleh James Gosling dan Patrick Naughton. Awalnya Java dibuat untuk perangkat konsumer seperti TV Kabel yang tidak memiliki banyak memori, sehingga Java memiliki karakteristik berukuran kecil. Java di tuntut harus netral pada arsitektur manapun, proyek ini diberi nama kode “Green”. Mulanya bahasa Java diberinama “OAK” kemudian diganti “Java” karena nama “OAK” sudah pernah digunakan sebelumnya. Java mulai popular pada tahun 1995 setelah Netscape memutuskan untuk membuat browser dilengkapi dengan Java, setelah itu diikuti oleh IBM, Symantec dan Microsoft.

6.2 Keunggulan Java a. Bahasa sederhana

Java dirancang agar mudah dipelajari dan digunakan secara efektif. Semudah C seampuh C++ sehingga cenderung lebih mudah.

b. Berorientasi Objek Pada Orientasi Objek, program sebagai sekelompok objek yang saling berinteraksi secara independen.

c. Tangguh Java interpreter memeriksa semua akses sistem yang dilakukan, sehingga tidak akan menyebabkan crash terhadap sistem. Dengan mekanisme exception-handling kesalahan serius dapat ditangkap dan dikelola tanpa beresiko membuat sistem menjadi down.

d. Bersifat Multithreading Dapat mengerjakan beberapa proses dalam waktu yang hampir bersamaan.

e. Bersifat Multiplatform Karena Java menggunakan intepreter Java Virtual Machine (JVM), menjadikan bytecode yang di hasilkan dapat berjalan di banyak platform.

f. Didukung Garbage Collector Garbage Collector berfungsi untuk mendealokasikan memori yang tidak diperlukan secara otomatis.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 17

Dasar Pemrograman Java Pada bab ini akan dibahas dasar pemrograman Java sebagai pendukung sebelum

masuk ke tahapan implementasi algoritma LSB pada pemrograman Java.

7.1 Pengertian Kelas, Objek, dan Instance

a. Kelas

Kelas (class) merupakan blueprint atau cetakan yang berisi kumpulan

informasi (aturan) tentang karakteristik (data) dan tingkah laku (metode)

yang akan dimiliki oleh objek.

b. Objek

Objek adalah kesatuan entitas (benda) yang memiliki sifat karakteristik dan

fungsi yang merupakan representasi dari sebuah kelas.

c. Instance

Instance adalah proses perwujudan kelas menjadi objek. Dalam

pemrograman Java untuk melakukan Instance menggunakan keyword new.

7.2 Struktur Kontrol Java Eksekusi pada program umumnya dilakukan dari baris atas ke baris bawah, struktur kontrol akan mengatur eksekusi program dengan menggunakan pengambilan keputusan berupa perulangan dan percabangan yang memungkinkan program dalam kondisi untuk mengeksekusi blok program tertentu.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 18

7.2.1 Struktur Kontrol Percabangan Percabanagan adalah suatu pilihan yang dijalankan berdasarkan kondisi tertentu. Jika kondisi terpenuhi (true) maka terdapat pilihan yang dijalankan, sebaliknya jika kondisi tidak terpenuhi (false) maka pilihan tersebut tidak dijalankan. Terdapat 3 (tiga) jenis percabangan diantaranya : IF-THEN, IF-THEN-ELSE, SWITCH-CASE.

a. IF-THEN Pernyataan IF akan menyatakan bagian program yang akan di eksekusi jika dan hanya jika kondisi bernilai benar.

b. IF-THEN-ELSE

Pernyataan IF-THEN-ELSE digunakan apabila akan mengeksekusi bagian program dengan kondisi benar dan yang lain masuk ke dalam kondisi salah.

c. Nested IF

Pada dasarnya Nested IF sama dengan IF-THEN ataupun IF-THEN-ELSE, Nested IF terjadi ketika terdapat statemen IF di dalam statement IF atau sering disebut juga kondisi IF bersarang (Nested IF).

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 19

d. SWITCH-CASE Switch akan membentuk cabang untuk beberapa kondisi dari nilai yang di gunakan.

7.2.2 Struktur Kontrol Perulangan Perulangan adalah suatu statement yang dapat di jalankan secara berulang-ulang sampai berhenti pada kondisi tertentu. Terdapat 3 (tiga) jenis perulangan, diantaranya : FOR, WHILE, DO-WHILE.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 20

a. FOR

b. WHILE

c. DO-WHILE

7.3 Pernyataan Percabangan Pernyataan percabangan mengijinkan kita untuk mengatur aliran eksekusi program. Pada Java terdapat 3 (tiga) bentuk pernyataan percabangan, diantaranya : break, countinue dan return.

7.3.1 Pernyataan Break Pernyataan break memiliki 2 (dua) bentuk tidak berlabel (unlabeled) dan berlabel (labeled).

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 21

7.3.1.1 Pernyataan break tidak berlabel (unlabeled) Pernyataan break tidak berlabel digunakan untuk menghentikan jalannya perulangan SWITCH-CASE, FOR, WHILE dan DO-WHILE.

7.3.1.2 Pernyataan break berlabel (labeled) Pernyataan break berlabel akan menghentikan perulangan dibagian paling luar dari perulangan, dimana sebelumnya harus diberikan label. Berbeda dengan break tidak berlabel yang hanya digunakan untuk keluar dari sebuah perualangan, break berlabel digunakan untuk keluar dari banyak perulangan (Nested Loop).

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 22

7.3.2 Pernyataan Continue Pernyataan continue memiliki 2 (dua) bentuk tidak berlabel (unlabeled) dan berlabel (labeled). Pernyataan countinue digunakan untuk melanjutkan perulangan yang sedang dijalankan oleh pernyataan FOR, WHILE, DO-WHILE.

7.3.2.1 Pernyataan Continue Tidak Berlabel Pernyataan countinue tidak berlabel (unlabeled) akan melewati bagian pernyataan setelah pernyatan ini dituliskan (next statement).

7.3.2.2 Pernyataan Continue Berlabel Bentuk pernyataan continue berlabel (labeled) akan keluar dari perulangan yang sedang terjadi dan dilanjutkan ke pernyataan berikutnya yang sudah diberi label.

7.3.3 Pernyataan Return Pernyataan return digunakan untuk keluar dari sebuah method. Terdapat 2 (dua) bentuk, diantaranya : return dengan mengembalikan sebuah nilai, dan tidak mengembalikan sebuah nilai. Dalam mengembalikan sebuah nilai, tipe data nilai tersebut harus sama dengan tipe data pada method yang dibuat. Pembahasan mengenai return akan dilanjutkan pada pembahasan method.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 23

7.4 Method Method digunakan untuk membagi program kompleks menjadi bagian yang lebih kecil sehingga dapat digunakan berulang-ulang. Method pada Java mirip dengan fungsi / prosedur dalam bahasa pemrograman lainnya. Method dapat dibedakan menjadi 2 (dua), diantaranya : method yang mengembalikan nilai dan method yang tidak mengembalikan nilai.

7.4.1 Method Void Method void adalah method yang tidak mengembalikan nilai, method ini hanya menjalankan intruksi yang ada di dalamnya tanpa mengembalikan hasil dari intruksi yang telah dijalankan.

7.4.2 Method Non Void Method Non Void adalah method yang tidak void (mengembalikan nilai), method ini akan menjalankan intruksi yang ada di dalamnya dan mengembalikan hasil dari intruksi tersebut kepada pemanggilnya.

7.5 Method Constructor Method konstruktor adalah method yang pertama kali dijalankan ketika suatu objek dari sebuah kelas diciptakan. Pada saat proses instance dari sebuah kelas, intruksi di dalam konstruktor akan dijalankan untuk melakukan inisialisasi dari sebuah kelas. Terdapat beberapa hal penting mengenai konstruktor, diantaranya :

1. Nama konstruktor sama dengan nama kelas. 2. Kelas dapat mempunyai lebih dari 1 (satu) konstruktor.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 24

3. Konstruktor dapat mempunyai 0 (nol), 1 (satu) atau lebih parameter.

7.6 Parameter Parameter pada dasarnya adalah nilai yang dikirimkan sebagai pendukung intruksi yang dilakukan pada method.

Terdapat 2 (dua) teknik pelewatan parameter (parameter passing), diantaranya : pelewatan dengan nilai (pass by value), dan pelewatan dengan acuan (pass by reference).

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 25

7.6.1 Pelewatan dengan Nilai (Pass By Value) Pada teknik pass by value nilai yang dikirimkan akan disalin kepada parameter pemanggil sehingga tidak akan mempengaruhi nilai awal.

7.6.2 Pelewatan dengan Acuan (Pass By Reference) Pada teknik pass by reference yang dikirmkan bukanlah nilai, malainkan alamat lokasi nilai tersebut. Perubahan yang terjadi pada nilai tersebut akan mempengaruhi nilai awalnya.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 26

7.7 Pendekatan Berorientasi Objek Pendekatan berorientasi objek adalah sebuah konsep untuk membagi bagian program sebagai objek-objek yang saling berinteraksi satu sama lainnya, sebagaimana objek yang memiliki sifat dan perilaku. Untuk dapat berorientasi objek terdapat 3 konsep penting yang harus digunakan, diantaranya : Inhearitance, Encapsulation, Polymorphism.

7.7.1 Pewarisan (Inhearitance) Pewarisan adalah proses penciptaan kelas baru dengan menurunkan sifat umum kelas yang telah ada (superclass), sehingga kelas turunannya (subclass) hanya perlu menambahkan sifat khusus yang dimilikinya. Pewarisan dapat dilakukan dengan keyword extends.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 27

7.7.2 Pengapsulan (Encapsulation) Pengapsulan adalah proses membungkus program sehingga dapat menjaga bagian internal program dari pengaksesan eksternal yang tidak diinginkan. Penyembunyian informasi dilakukan dengan menerapkan kendali private atau protected pada elemen data.

7.7.3 Polymorphism Polymorphism berarti banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek-objek tersebut memiliki antarmuka identik namun memiliki perilaku yang berbeda.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 28

7.8 Java Modifier

Modifier adalah sifat yang dimiliki oleh setiap attribute, method maupun kelas dalam

bahasa pemrograman Java.

7.8.1 Access Modifier

Akses modifier digunakan untuk menentukan spesifikasi tingkat akses, akses

modifier berlaku untuk kelas, interface, metode, dan variable.

No. Modifier Kelas dan Interface Metode dan Variable

1. default Tampak di paketnya Diwarisi oleh subkelasnya di paket yang sama dengan kelasnya. Dapat di akses oleh metode-metode di kelas-kelas yang sepaket.

2. public Tampak di manapun Diwarisi oleh semua subkelasnya. Dapat diakses di manapun.

3. protected Tidak dapat diterapkan Diwarisi oleh semua subkelasnya. Dapat diakses oleh metode-metode di kelas-kelas yang sepaket.

4. private Tidak dapat diterapkan Tidak diwarisi oleh subkelasnya. Tidak dapat diakses oleh kelas lain.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 29

7.9 Bitwise Operation

Bitwise operation adalah operasi matematika yang digunakan untuk proses pada

level bit dari sebuah bilangan bulat (integer). Berikut adalah tabel mengenai bitwise

operation pada Java :

Bitwise Operator

Deskripsi Penjelasan Contoh

& AND Jika kedua nilai bernilai 1, maka

hasilnya 1, selebihnya 0.

9 & 5

1001 & 0101 =

0001

| OR

Jika salah satu dari nilai atau kedua

nilai bernilai 1, maka hasilnya 1, selebihnya 0.

9 & 5

1001 & 0101 =

1101

^ XOR Jika salah satu dari nilai bernilai 1,

maka hasilnya 1, selebihnya 0.

9 ^ 5

1001 & 0101 =

1100

~ Complement

Komplemen adalah nilai kebalikan,

komplemen 0 adalah 1, komplemen 1 adalah 0.

~00110010 = 11001101

<< Left Shift

X << Y

Pergeseran X ke kiri oleh Y bit,

urutan bit besar (kiri) hilang, sementara 0 mengisi bit yang kecil

(kanan).

11101101 << 2 =

10110100

>> Right Shift Signed

X >> Y

Pergeseran X ke kiri oleh Y bit,

urutan bit kecil hilang (kanan),

sementara 0 mengisi bit yang besar(kiri).

11101101 >> 2 =

00111011

>>> Right Shift Unsigned

X >>> Y

Pergeseran X ke kanan Y, urutan bit kecil hilang (kanan), sementara 0

mengisi bit besar (kiri). Operator ini

hanya bekerja pada nilai 32 dan 64 bit.

11111111 11111111 11111111 11111111 >>> 2 = 00111111 11111111

11111111 11111111

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 30

7.9.1 Contoh Penggunaan Bitwise Operation

Pada pemrograman Java, sudah terdapat pustaka kelas untuk konversi ke dalam

bilangan basis(2), basis(4), basis(16) melalui bilangan basis(10) sehingga kita dapat

menggunakan fungsi-fungsi tersebut seperti contoh di atas.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 31

Digital Image Processing pada Java

8.1 Penjelasan Digital Image Processing Digital Image Processing (DIP) berkaitan dengan memanipulasi gambar digital menggunakan komputer digital. Pada Java sudah disediakan pustaka kelas java.awt.Image, kelas Image merupakan superclass yang mewakili pemrosesan gambar grafis. BufferedImage merupakan kelas turunan dari kelas Image, digunakan untuk menangani dan memanipulasi data gambar. ImageIO digunakan untuk membaca dan menulis data pada citra.

ikatlah ilmu dengan menuliskannya

Bab 2 – Pengenalan Java 32

Contoh program untuk membuat file gambar menjadi grayscale.