• Tidak ada hasil yang ditemukan

APLIKASI PENYISIPAN DATA KE DALAM CITRA TERMAMPAT BERFORMAT GIF DENGAN BAHASA PEMROGRAMAN DELPHI

N/A
N/A
Protected

Academic year: 2021

Membagikan "APLIKASI PENYISIPAN DATA KE DALAM CITRA TERMAMPAT BERFORMAT GIF DENGAN BAHASA PEMROGRAMAN DELPHI"

Copied!
80
0
0

Teks penuh

(1)

Tugas Akhir

untuk memenuhi sebagian persyaratan mencapai

Derajat Sarjana Teknik

Oleh

Arif Nur Budisetiyo

L2F 304 217

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS DIPONEGORO

SEMARANG

2007

(2)

HALAMAN PENGESAHAN

Laporan Tugas Akhir dengan judul “APLIKASI PENYISIPAN DATA KE DALAM CITRA TERMAMPAT BERFORMAT GIF DENGAN BAHASA PEMROGRAMAN DELPHI ” yang disusun oleh

Nama : Arif Nur Budisetiyo NIM : L2F304217

Telah disetujui dan disahkan untuk dijadikan laporan Tugas Akhir sebagai salah satu syarat menyelesaikan pendidikan program Strata Satu Jurusan Teknik elektro Fakultas Teknik Universitas Diponegoro Semarang.

Menyetujui dan mengesahkan

Pembimbing I Pembimbing II

Achmad Hidayatno, S.T., M.T. R. Rizal Isnanto, S.T., M.M., M.T.

NIP. 132 137 933 NIP. 132 288 515

Tanggal………. Tanggal………...

Mengetahui a.n. Dekan

Ketua Jurusan teknik Elektro Fakultas Teknik Universitas Diponegoro

Ir. Sudjadi, M.T. NIP. 131 558 567 Tanggal………….

(3)

Tugas Akhir

APLIKASI PENYISIPAN DATA KE DALAM CITRA

TERMAMPAT BERFORMAT GIF DENGAN BAHASA

PEMROGRAMAN DELPHI

yang dipersiapkan dan disusun oleh

Arif Nur Budisetiyo

L2F304217

telah dipertahankan di depan para Dosen Penguji

pada tanggal 19 Juni 2007

dan dinyatakan telah memenuhi syarat

Susunan Dosen Penguji

Tanda tangan

Ketua/Anggota

: Ir. Sudjadi, M.T

……….

Tanggal : ……….

Sekretaris/Anggota : Darjat, S.T, M.T

……….

Tanggal : ……….

Anggota

: Imam Santoso, S.T, M.T

……….

(4)

ABSTRAK

Teknologi digital saat ini telah memberi kemudahan untuk melakukan akses serta mendistribusikan berbagai informasi dalam format digital. Steganografi adalah teknik menyembunyikan data rahasia di dalam media digital sehingga keberadaan data rahasia tersebut tidak dapat diketahui oleh orang lain. Pemampatan GIF merupakan bentuk pemampatan tak berugi sehingga tidak menghilangkan data yang terkandung di dalamnya. Delphi merupakan bahasa pemrograman visual yang memiliki fasilitas pengolah angka, basis data, grafik, dan animasi, sehingga memungkinkan untuk membuat program dengan komponen visual dalam bentuk objek.

Piksel suatu citra berwarna tersusun oleh tiga elemen warna RGB (red, green, dan blue). Dengan mengganti satu bit LSB elemen RGB tersebut, dapat diperoleh ruang pada citra untuk menyimpan pesan rahasia. Langkah-langkah penelitian ini adalah: (1) Citra yang telah diambil di reduksi warna dari 24-bit menjadi 8-bit yang berfungsi untuk menyiapkan citra ke dalam format GIF, (2) Menduplikasi palet yang berfungsi untuk menyamakan palet warna pada citra asli, (3) Menyisipkan satu bit ke dalam bit terakhir citra, (4) Menyimpan citra hasil steganografi dalam format GIF, (5) Menguji keberhasilan program dengan melakukan proses desteganografi.

Hasil penelitian adalah bahwa ukuran citra menentukan kapasitas data yang dapat disisipkan. Semua data mampu disisipkan ke dalam citra jika kapasitas di bawah maksimal yang mampu ditampung citra uji. Namun, pengujian tidak berhasil dilakukan dengan data uji di atas kapasitas maksimal yang dapat ditampung oleh citra. Proses steganografi dapat dilakukan jika citra dari aplikasi ini maksimal berukuran 6800 5000 piksel karena kebutuhan memori untuk membuka citra tersebut. Untuk menyisipkan data dalam format teks hanya dibutuhkan waktu 1 sampai 3 detik karena ukuran berkas di bawah 20 KB. Waktu yang dibutuhkan untuk menyisipkan data audio dan video 30 sampai 35 detik karena ukuran berkas mendekati 1 MB. Semua data yang disisipkan berhasil diambil kembali sama dengan data semula pada proses desteganografi.

(5)

ABSTRACT

Digital technology in this time has given amenity to access and also distribute various information in digital format. Steganography is technique hide secret data in digital media so that the secret data existence can be ignored by others. GIF Compression represents loseless compression form so that it does not eliminate data which is consisted in it. Delphi represents visual language programming which has a several facilities, such as spreadsheet, database, graph, and animation, so that it is enable to make program with visual component in object form colour.

Pixel of a chromatic is set by three colour RGB elements (red, green, and blue). By Changing one bit RGB LSB element, then some space of an image to save a secret message can be obtained . This research stages are: (1) Reducing colour format from 24-bits to 8-bit in order to prepare the image into a GIF format, (2) Duplicating palette function to equalize palette colour as an original image, (3) Inserting one bit into last bit of image, (4) Saving images result of steganography in GIF format, (5) Testing program result by the desteganography process.

Result of the research is the image size determine their data capacities which can be inserted. All data can be inserted into image if their capacities are below their maximum sizes capable to be accomodated by a testing image. However, some test will fail if test data which have maximum capacities can be accomodated by image. Steganography process can be done if image from this application has a maximum size of 6800 5000 pixel because it needs a large memory to open the image. To insert data in text format it requires 1 until 3 second because it’s file size below 20 KB. The time needed for inserting audio and video data is 30 until 35 second because it’s file size almost 1 MB. All inserted data can be recovered into original data by a desteganography process

(6)

KATA PENGANTAR

Puji syukur ke hadirat Allah Subhanallahu Wa Ta’ala, karena berkat limpahan Rahmat dan Hidayah-Nya penulisan laporan tugas akhir ini dapat diselesaikan dengan baik.

Tugas akhir berjudul Aplikasi Penyisipan Data Ke dalam Citra Termampat Berformat Gif dengan Bahasa Pemrograman Delphi ini disusun untuk memenuhi sebagian persyaratan mencapai Derajat Sarjana Teknik pada Jurusan Teknik Elektro, Fakultas Teknik Universitas Diponegoro.

Penyelesaian laporan tugas akhir ini karena dukungan dari berbagai pihak. Untuk itu pada kesempatan ini, Penulis ingin menyampaikan terima kasih kepada:

1. Bapak Ir. Sudjadi, M.T. selaku Ketua Jurusan Teknik Elektro

2. Bapak Achmad Hidayatno, S.T., M.T. selaku pembimbing I yang telah memberikan petunjuk dan bimbingan selama proses penyelesaian tugas akhir ini

3. Bapak R. Rizal Isnanto, S.T., M.M., M.T. selaku pembimbing II yang telah memberikan petunjuk, bimbingan, dan saran selama proses penyelesaian tugas akhir ini

4. Bapak dan Ibu tercinta atas doa dan dukungannya

5. Semua pihak yang telah membantu dalam penyelesaian tugas akhir ini

Penulis menantikan saran dan kritik yang membangun untuk kesempurnaan penelitian ini.

Semoga tugas akhir ini dapat memberikan sumbangan pengetahuan yang berguna bagi pembaca.

Semarang, Mei 2007

(7)

DAFTAR ISI

Halaman Judul... i

Halaman Persetujuan... ii

Halaman Pengesahan ... iii

Motto dan Persembahan... iv

Abstrak ...v

Abstract ... vi

Kata Pengantar ... vii

Daftar Isi ... viii

Daftar Gambar... xi

Daftar Tabel ... xiii

Daftar Lampiran ... xiv

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah...1

1.2 Tujuan Penelitian ...1

1.3 Batasan Masalah ...1

1.4 Metode Penelitian ...2

1.5 Sistematika Penulisan ...3

BAB II DASAR TEORI 2.1 Pengolahan Citra Digital ...4

2.2 Pemampatan Data Citra...7

2.2.1 Resolusi ...9

2.2.2 Kedalaman Bit...9

2.2.3 Konsep Redundansi...9

a. Subsampling...9

b. Pengurangan Kedalaman Bit...10

c. Penyandian Transformasi...10

2.3 Pemampatan GIF...10 2.3.1 Langkah-langkah agar Kapasitas Berkas GIF menjadi Lebih Kecil.11

(8)

2.3.2 Format Berkas GIF...12 2.4 Algoritma LZW...12 2.4.1 Algoritma Pemampatan LZW ...12 2.4.2 Algoritma Penirmampatkan LZW...14 2.5 Steganografi ...15 2.5.1 Sejarah Steganografi ...16 2.5.2 Kegunaan Steganografi ...17 2.5.3 Metode Steganografi ...18 1. Metode Penanaman ...18

2. Metode Least Significant Bit...19

2.5.4 Algoritma Penyisipan Data ...21

BAB III PERANCANGAN PROGRAM 3.1 Perangkat Keras ...23 3.2 Perangkat Lunak ...23 3.3 Bagan-alir Program ...24 3.3.1 Pengambilan Citra...24 3.3.2 Reduksi Warna ...25 3.3.3 Duplikasi Palet ...27

3.3.4 Penyisipan Data ke Citra...28

3.3.5 Menyimpan Hasil Citra ke Format GIF ...29

3.3.6 Pengambilan Data dari Citra format GIF ...29

3.3.7 Konfirmasi Sandi ...31

BAB IV HASIL PENELITIAN DAN PEMBAHASAN 4.1 Hasil Penelitian ...34

4.1.1 Menjalankan Program ...34

4.1.2 Pembacaan Citra ...38

4.1.3 Steganografi Citra ...38

4.1.4 Menyimpan ke dalam Format GIF...40

(9)

4.2 Uji Coba dengan Data Sisipan di Bawah Kapasitas Maksimal Citra...41

4.2.1 Uji Coba dengan Data Uji Teks Dokumen (*.txt) ...42

4.2.2 Uji Coba dengan Data Uji Teks Dokumen (*.doc,*.xls, ... *.ppt,*.pdf)...43

4.2.3 Uji Coba dengan Data Uji Citra (*.jpeg,*.gif,*.PNG) ...44

4.2.4 Uji Coba dengan Data Uji Audio dan Video (*.mp3,*.rm,*.3gpp).44 4.3 Uji Coba dengan Data Sisipan di Atas Kapasitas Maksimal Citra dan... Pengujian Maksimal Citra Stego...45

4.4 Uji Coba Keberhasilan Pengambilan Data Hasil Steganografi...48

BAB V PENUTUP 5.1 Kesimpulan ...51 5.2 Saran...51 DAFTAR PUSTAKA ...52 BIODATA MAHASISWA ...54 LAMPIRAN...55

(10)

DAFTAR GAMBAR

Gambar 2.1 Koordinat nilai intensitas pada citra...4

Gambar 2.2 Komposisi warna RGB ...5

Gambar 2.3 Prose konversi citra analog ke citra digital beserta pengirimannya....8

Gambar 2.4 Hasil berkas pemampatan LZW...11

Gambar 2.5 Hasil pemampatan LZW ...14

Gambar 2.6 Proses steganografi dengan metode penanaman ...18

Gambar 2.7 Steganografi berbasis citra digital dengan metode penyisipan LSB .19 Gambar 2.8 Proses penggunaan kunci-stego pada steganografi ...20

Gambar 3.1 Bagan alir program...24

Gambar 3.2 Diagram alir program pengambilan data...30

Gambar 4.1 Jendela pembuka ...35

Gambar 4.2 Tampilan jendela utama program ...35

Gambar 4.3 Tampilan menu utama...36

(a) Menu program ...36

(b) Menu Bantuan ...36

Gambar 4.4 Tampilan jendela tentang program ...36

Gambar 4.5 Tampilan data tambahan ...38

Gambar 4.6 Tampilan data yang ditampung melebihi kapasitas ...39

Gambar 4.7 Tampilan ukuran data yang dapat disisipkan ...39

Gambar 4.8 Tampilan progress bar...40

Gambar 4.9 Tampilan citra ...40

(a) Citra asli...40

(b) Citra hasil ...40

Gambar 4.10 Jendela informasi hanya berkas GIF ...41

Gambar 4.11 Jendela informasi citra tidak terdapat data sisipan ...41

Gambar 4.12 Konfirmasi password...41

Gambar 4.13 Citra uji...42

(a) Citra 1 ...42

(11)

(c) Citra 3 ...42

(d) Citra 4 ...42

Gambar 4.14 Tampilan kesalahan data melebihi kapasitas ...46

Gambar 4.15 Tampilan tanggapan program utama data melebihi kapasitas ...46

Gambar 4.16 Tampilan kesalahan maksimal citra stego...47

Gambar 4.17 Tampilan tanggapan program utama maksimal citra stego...48

Gambar 4.18 Tampilan dialog menyimpan berkas ...50

(12)

DAFTAR TABEL

Tabel 2.1 Tahapan proses pemampatan LZW...13 Tabel 2.2 Tahapan proses penirmampatkan LZW ...15 Tabel 4.1 Hasil pengujian dengan data uji teks dokumen (*.txt) ...42 Tabel 4.2 Hasil pengujian dengan data uji teks dokumen (*.doc, *.xls, *.ppt, ... *.pdf)...43 Tabel 4.3 Hasil pengujian dengan data citra (*.jpg, *.gif, *.PNG) ...44 Tabel 4.4 Hasil pengujian dengan data audio dan video (*.mp3, *.rm,... *.3gpp) ...44 Tabel 4.5 Hasil pengujian dengan data uji diatas kapasitas daya tampung ... citra...45 Tabel 4.6 Hasil pengujian maksimal citra stego ...47 Tabel 4.7 Pengujian keberhasilan data hasil steganografi...49

(13)

BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Kemajuan teknologi informasi yang pesat serta potensi pemanfaatannya yang luas, membuka peluang bagi pengaksesan, pengelolaan, dan pendayagunaan citra digital dalam volume yang besar secara tepat dan akurat.

Steganografi merupakan salah satu cara untuk menyembunyikan suatu pesan data rahasia di dalam data atau pesan lain yang tampak tidak mengandung apa-apa, kecuali bagi orang yang mengerti kuncinya. Dalam bidang keamanan komputer, steganografi digunakan untuk menyembunyikan data rahasia saat enkripsi yang dilakukan tidak bersamaan. Jadi, walaupun enkripsi berhasil dipecahkan (decipher) pesan / data rahasia tetap tidak terlihat. Selain itu, pada kriptografi pesan disembunyikan dengan diacak sehingga pada kasus-kasus tertentu dapat dengan mudah mengundang kecurigaan, sedangkan pada steganografi pesan disamarkan dalam bentuk yang relatif aman sehingga tidak terjadi kecurigaan itu. Steganografi dapat digunakan pada berbagai macam bentuk data, yaitu citra, audio, dan video.

Pada tugas akhir ini akan dibahas penyisipan data ke dalam sebuah citra yang hasil akhirnya berupa citra berformat GIF dengan metode penyisipan LSB.

1.2 Tujuan Penelitian

Tujuan dari pembuatan Tugas Akhir ini adalah untuk menyisipkan data rahasia kedalam sebuah citra berformat GIF dengan metode penyisipan LSB.

1.3 Batasan Masalah

Pembatasan masalah pada penulisan tugas akhir ini sebagai berikut :

1. Proses Steganografi yang dilakukan adalah menyisipkan LSB ke dalam citra yang akan disisipi oleh data rahasia.

(14)

2. Data rahasia yang akan dsisipkan berupa data teks (*. txt, *.doc,*. Pdf), data citra (*.jpeg, *.gif, *.PNG) serta data audio (*.mp3) dan video (*.rm, *.3gpp).

3. Citra masukan berupa citra berwarna yang akan disisipi oleh data rahasia berupa citra belum dimampatkan berformat *.bmp maupun citra yang telah dimampatkan berformat *.jpeg,*. jpg, *.ico, *.wmf.

4. Hasil akhir dari data yang telah disisipi data rahasia disimpan ke dalam citra 8 bit dalam citra berformat GIF.

1.4 Metode Penelitian

Langkah-langkah untuk menyelesaikan tugas akhir adalah sebagai berikut: 1. Metode Studi Literatur

Bahan-bahan pustaka yang diperlukan untuk melengkapi dan mempelajari sesuai dengan masalah yang dihadapi.

2. Metode Pengumpulan Data

Data-data yang diperlukan diperoleh melalui dokumen-dokumen yang berkaitan dan internet.

3. Metode Perancangan Sistem

Sistem yang dirancang menggunakan proses Steganografi dengan metode penyisipan LSB.

4. Metode Implementasi Sistem

Metode implementasi sistem merupakan metode untuk menyajikan hasil rancangan ke dalam pemrograman. Pada proses penyisipan data rahasia ke citra menggunakan sistem operasi Windows dengan bahasa pemrograman Borland Delphi 2006.

5. Metode Pengujian Sistem

Pengujian sistem dilakukan dengan menyisipkan ke dalam LSB sebuah citra apakah sudah berjalan sesuai dengan yang dikehendaki.

(15)

1.5 Sistematika Penulisan

BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah, batasan masalah, dan metodologi yang digunakan untuk mengerjakan Tugas Akhir ini.

BAB II DASAR TEORI

Bab ini berisi dasar teori yang menjadi landasan pengerjaan Tugas Akhir. Dasar teori ini meliputi kompresi citra GIF, Steganografi dan penyisipan LSB pada citra.

BAB III PERANCANGAN DAN IMPLEMENTASI

Bab ini berisi tentang perancangan perangkat lunak yang akan digunakan untuk melakukan analisa pada tugas akhir ini, serta implementasi Steganografi dengan memanfaatkan penyisipan LSB. BAB IV HASIL PENELITIAN DAN PEMBAHASAN

Bab ini akan dilakukan penelitian berupa sebuah sistem yang dapat digunakan untuk menyisipkan data rahasia ke dalam sebuah citra, hasil pengujian dan pembahasan

BAB V KESIMPULAN DAN SARAN

Bab ini menjelaskan tentang kesimpulan dari keseluruhan penjabaran sekaligus rekomendasi untuk pengembangan lebih lanjut.

(16)

BAB II DASAR TEORI

2.1 Pengolahan Citra Digital

Citra digital dapat didefinisikan sebagai fungsi dua variabel, f , dimana x

dan y adalah koordinat spasial dan nilai f

y x, y

x, adalah intensitas citra pada koordinat tersebut, hal tersebut diilustrasikan pada Gambar 2.1. Teknologi dasar untuk menciptakan dan menampilkan warna pada citra digital berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru (Red, Green, Blue - RGB). Komposisi warna RGB tersebut dapat dijelaskan pada subbab 2.2.

Gambar 2.1. Koordinat nilai intensitas pada citra

Sebuah citra diubah ke bentuk digital agar dapat disimpan dalam memori komputer atau media lain. Proses mengubah citra ke bentuk digital bisa dilakukan dengan beberapa perangkat, misalnya scanner, kamera digital, dan handycam.

(17)

Ketika sebuah citra sudah diubah ke dalam bentuk digital (selanjutnya disebut citra digital), bermacam-macam proses pengolahan citra dapat dilakukan terhadap citra tersebut.

Gambar 2.2 Komposisi Warna RGB

Ada banyak aplikasi pengolahan citra digital, namun pada dasarnya tujuan dari pengolahan citra digital adalah :

1. Peningkatan kualitas citra (Image enhancement)

Operasi peningkatan kualitas citra bertujuan untuk menekankan ciri-ciri tertentu pada citra yang kemudian digunakan sebagai bahan analisis. Contohnya antara lain : kecerahan dan peningkatan kualitas tepi , penapisan derau, dan penajaman. Peningkatan kualitas citra berguna dalam operasi ektraksi ciri, analisis citra, dan tampilan informasi visual. Proses peningkatan kualitas itu sendiri tidak akan menambah isi informasi yang sudah ada, tetapi akan meningkatkan cakupan dinamis

(18)

dari ciri yang dipilih sehingga ciri yang akan dianalisis tersebut akan dapat dideteksi dengan mudah.

2. Pemulihan citra (Image restoration)

Perbaikan citra berhubungan dengan penghilangan atau peminimasian degradasi yang diketahui pada citra. Ini termasuk penghilangan blur pada citra yang mengalami degradasi sehubungan dengan keterbatasan sensor atau lingkungannya, penapisan derau, dan koreksi terhadap distorsi geometris atau ketaklinearan yang disebabkan oleh sensor. 3. Pengukuran dan analisis citra (Image measurement and analysis)

Pengukuran dan analisis citra bertujuan untuk melakukan pengukuran kuantitatif dari sebuah citra untuk menghasilkan deskripsi tentang citra tersebut. Dalam bentuk yang paling sederhana berupa pembacaan label dari barang belanjaan, atau mengukur besar dan orientasi sel darah dalam sebuah citra medis.

4. Rekonstruksi citra (Image reconstruction)

Rekonstruksi citra dari proyeksi adalah kelas khusus dari permasalahan perbaikan citra dimana sebuah objek dua (atau lebih) dimensi direkonstruksi dari beberapa proyeksi satu dimensi. Tiap-tiap proyeksi diperoleh dengan memproyeksikan sinar-X paralel (atau radiasi tajam lainnya) melalui objek tersebut.

5. Pemampatan data citra (Image data compression)

Jumlah data yang diasosiasikan dengan informasi visual adalah sangat besar, sehingga penyimpanannya akan membutuhkan kapasitas penyimpanan yang sangat-sangat besar. Meskipun kapasitas penyimpanan dari beberapa media penyimpanan cukup besar, kecepatan aksesnya biasanya berbanding terbalik terhadap kapasitasnya. Pemampatan data citra berhubungan dengan minimisasi jumlah bit yang diperlukan untuk menyajikan sebuah citra. Mengenai pemampatan citra akan dibahas lebih lanjut pada subbab pemampatan data citra.

(19)

2.2 Pemampatan Data Citra

Seperti yang telah disebutkan sebelumnya, tujuan pemampatan data citra adalah untuk mengurangi ukuran berkas yang menyimpan data citra tersebut. Berkas data citra biasanya berisi sejumlah besar informasi yang berulang dan banyak bagian yang tidak relevan. Teknik pemampatan data mengeksploitasi redundansi dan ketakrelevanan dengan mentransformasi berkas data menjadi berkas yang lebih kecil dari yang mana berkas citra aslinya nanti dapat direkonstruksi sama persis atau hampir sama dengan aslinya.

Secara umum teknik pemampatan dapat dibagi menjadi dua bagian besar, tak berugi dan berugi. Algoritma pemampatan tak berugi menghilangkan hanya informasi berulang saja, sehingga pada saat penirmampatkan, citra yang telah dimampatkan dapat ditampilkan tepat seperti aslinya. Algoritma pemampatan berugi selain menghilangkan informasi yang berulang, juga menghilangkan informasi yang tidak relevan, dan dengan demikian hanya memungkinkan rekonstruksi yang mendekati citra aslinya, bukannya duplikat yang sama persis. Sebagaimana dapat kita perkirakan, algoritma pemampatan berugi memungkinkan rasio yang lebih tinggi. Contoh jenis pemampatan data citra yang berkarakteristik tak berugi adalah GIF Encoding. Dalam tugas akhir ini, akan membahas tentang pemampatan citra yang berkarakteristik tak berugi.

Pemampatan citra bertujuan untuk meminimalkan jumlah bit yang diperlukan untuk menunjukkan citra. Apabila sebuah foto berwarna berukuran 3 inci x 4 inci diubah ke bentuk digital dengan tingkat resolusi sebesar 500 (dpi), maka diperlukan 3 x 4 x 500 x 500 = 3.000.000 piksel. Setiap piksel terdiri dari 3

byte dimana masing-masing byte menunjukkan warna merah, hijau, dan biru.

sehingga citra digital tersebut memerlukan volume penyimpanan sebesar 3.000.000 x 3 byte +1024 = 9.001.024 byte setelah ditambahkan jumlah byte yang diperlukan untuk menyimpan format awalan citra.

Citra tersebut tidak bisa disimpan ke dalam disket yang berukuran 1.4 MB. Selain itu, pengiriman citra berukuran 9 MB memerlukan waktu lebih lama. Untuk koneksi internet dial-up (56 kbps), pengiriman citra berukuran 9 MB

(20)

memerlukan waktu 21 menit. Untuk itulah diperlukan pemampatan citra sehingga ukuran citra tersebut menjadi lebih kecil dan waktu pengiriman citra menjadi lebih cepat. Citra yang belum dimampatkan disebut citra mentah. Sementara citra hasil pemampatan disebut citra termampatkan (compressed image). Proses pengiriman dan penyimpanan citra tersebut diilustrasikan pada Gambar 2.3.

Citra Digital 9 MB Citra analog Foto berwarna ukuran 3 X 4 inch Citra Digital 3 MegaPiksel Scanner 600 dpi Disimpan dalam disket Dikirim ke internet melalui modem

Gambar 2.3 Proses Konversi citra analog ke citra digital beserta pengirimannya

Pemampatan citra dikembangkan untuk memudahkan penyimpanan dan pengiriman citra. Teknik pemampatan yang ada sekarang memungkinkan citra dimampatkan sehingga ukurannya menjadi jauh lebih kecil daripada ukuran asli. Ada dua tipe utama pemampatan data, yaitu pemampatan tipe tak berugi dan pemampatan tipe berugi. Pemampatan tipe berugi adalah pemampatan yang menghilangkan informasi selama proses pemampatan. Akibatnya kualitas citra yang dihasilkan jauh lebih rendah daripada kualitas citra asli. Sementara itu, pemampatan tak berugi tidak menghilangkan informasi setelah proses pemampatan terjadi, akibatnya kualitas citra hasil pemampatan tidak menurun. Namun demikian, rasio pemampatan yang digunakan untuk pemampatan tak berugi lebih kecil daripada rasio pemampatan pada pemampatan berugi.

Parameter-parameter citra yang penting dalam proses pemampatan diantaranya adalah sebagai berikut :

(21)

2.2.1 Resolusi

Resolusi citra menyatakan ukuran panjang kali lebar dari sebuah citra. Resolusi citra biasanya dinyatakan dalam satuan piksel . Semakin tinggi resolusi sebuah citra, semakin baik kualitas citra tersebut. Namun, tingginya resolusi menyebabkan semakin banyaknya jumlah bit yang diperlukan untuk menyimpan dan mentransmisikan data citra tersebut.

2.2.2 Kedalaman Bit

Kedalaman bit menyatakan jumlah bit yang dipelukan untuk menunjukkan tiap piksel citra pada sebuah frame. Kedalaman bit biasanya dinyatakan dalam satuan bit/piksel. Semakin banyak jumlah bit yang digunakan untuk menunjukkan sebuah citra, maka semakin baik kualitas citra tersebut.

2.2.3 Konsep Redundansi

Redundansi merupakan suatu keadaan dimana penunjukkan suatu elemen data tidak bernilai signifikan dalam menunjukkan keseluruhan data. Keadaan ini menyebabkan data keseluruhan dapat ditunjukkan secara lebih kompak dengan cara menghilangkan penunjukkan dari sebuah elemen data yang redundan. Redundansi yang terdapat pada citra statik adalah redundansi spasial. Metode pemampatan citra berdasarkan redundansi spasial diantaranya adalah sebagai berikut :

a. Subsampling

Subsampling merupakan metode pemampatan dengan mengurangi jumlah piksel yang diperlukan untuk menunjukkan suatu citra. Subsampling dapat dilakukan dengan dua cara. Cara pertama adalah mengambil piksel-piksel tertentu dari citra, misal piksel-piksel pada baris dan kolom saja. Cara kedua adalah dengan mengambil rata-rata dari kelompok piksel dan menggunakan nilai tersebut sebagai ganti nilai kelompok piksel ini. Cara ini lebih kompleks, tetapi menghasilkan kualitas yang lebih baik. Subsampling sebanding dengan pengurangan resolusi.

(22)

b. Pengurangan kedalaman bit

Metode ini dilakukan dengan mengurangi jumlah bit yang digunakan untuk mre-penunjukkankan suatu piksel. Misalnya dengan mengurangi kedalaman bit dari 16 bit/piksel menjadi 8 bit/piksel. Metode ini mengurangi kualitas citra. Pada tugas akhir ini digunakan metode ini untuk mengurangi kedalaman bit karena citra yang digunakan adalah citra format GIF.

c. Penyandian transformasi

Penyandian transformasi merupakan transformasi data dari kawasan ruang ke kawasan frekuensi. Cara ini menghasilkan data yang lebih mudah diproses untuk pemampatan lebih lanjut. Transformasi yang populer digunakan antara lain Alihragam Kosinus Diskret (DCT) yang dipakai dalam pemampatan JPEG dan Alihragam Wavelet Diskret (DWT) yang digunakan dalam pemampatan JPEG 2000.

2.3 Pemampatan GIF

Graphic Interchange Format (GIF, dibaca jiff, tetapi kebanyakan orang

menyebutnya dengan giff ) yang dibuat oleh Compuserve pada tahun 1987 untuk menyimpan berbagai citra dengan format bitmap menjadi sebuah berkas yang mudah untuk diubah pada jaringan komputer. GIF adalah berkas format citra yang paling tua pada web, dan begitu dekatnya berkas format ini dengan web pada saat itu sehingga menggunakan format ini. GIF mendukung sampai 8 bit piksel , itu

berarti maksimum jumlah warnanya 256 warna (2PP

8

PP= 256 warna), dan mengunakan varian dari algoritma pemampatan Lempel-Ziv Welch (LZW).P

[2]

P P

LZW adalah algoritma pemampatan tak berugi, antara pemampatan dan penirmampatkan waktunya adalah simetris . LZW menggunakan kamus data (sering disebut dengan tabel penerjemah atau tabel string) untuk menunjukkan data menjadi linier di dalam masukan laju tak termampat. Pertama kali suatu urutan ditemukan sandi yang berbeda, maka sandi tersebut dan ditambahkan ke dalam kamus data. Semua data yang ada dibandingkan dengan data masukan ,jika sama maka diwakilkan dengan sebuah sandi.

(23)

2.3.1 Langkah-langkah agar kapasitas berkas GIF menjadi lebih kecil Jika menginginkan kapasitas berkas GIF yang sangat kecil, maka dalam merancangnya disimpan orientasi baris LZW. GIF dimampatkan dengan redundansi mendatar dan jangan menambahkan detil tegak atau derau ke dalam citra GIF. Orientasi kanal mendatar dari sebuah warna yang dimampatkan lebih baik daripada menggunakan orientasi kanal tegak. Untuk menghidari adanya perubahan citra, yaitu dengan cara mengurangi baris dari sebuah warna. Semua itu merupakan karakteristik dari algoritma pemampatan LZW yang terbaik, contohnya terlihat pada Gambar 2.4.

Gambar 2.4 Hasil Berkas Pemampatan LZW

Berkas GIF dapat disimpan dalam dua jalan : secara berurutan ( Dari atas ke bawah) dan pembagian dengan baris ( 8 baris, 4 baris dan 2 baris). Pembagian baris pada citra dengan resolusi yang rendah dan cepat dimana secara gradual datangnya lebih fokus dengan perubahan dari penambahan kapasitas berkas.

(24)

2.3.2 Format Berkas GIF

Terdapat dua tipe dari GIFs, antara lain:

1. GIF87a : support dengan interlacing dan kapasitas dari beberapa berkas. Tehnik itu dinamakan GIF87 karena pada tahun 1987 standar ini ditemukan dan dijadikan standar.

2. GIF89a : adalah kelanjutan dari spesifikasi GIF87a dan penambahan pada transparansi, pemberian tulisan dan animasi dari text dan citra. Algoritma pemampatan LZW yang digunakan oleh GIF adalah salah satu algoritma pemampatan tujuan umum yang terbaik, pemampatan LZW tidak dirancang untuk citra yang mempunyai spesifikasi tinggi. Algoritma LZW tidak dapat digunakan dengan baik pada bilevel (hitam dan putih) atau true color images.

2.4 Algoritma LZW

Algoritma LZW dikembangkan dari metode pemampatan yang dibuat oleh Ziv dan Lempel pada tahun 1977. Algoritma ini melakukan pemampatan dengan menggunakan kamus, dimana fragmen-fragmen teks diganti dengan indeks yang diperoleh dari sebuah kamus. Prinsip sejenis juga digunakan dalam sandi Braille, di mana sandi-sandi khusus digunakan untuk menunjukkan kata-kata yang ada. Pendekatan ini bersifat adaptif dan efektif karena banyak karakter dapat disandikan dengan mengacu pada string yang telah muncul sebelumnya dalam teks. Prinsip pemampatan tercapai jika referensi dalam bentuk pointer dapat disimpan dalam jumlah bit yang lebih sedikit dibandingkan string aslinya.

2.4.1 Algoritma pemampatan LZW

Algoritma pemampatan LZW sebagai berikut :

1. Kamus diinisialisasi dengan semua karakter dasar yang ada : {‘A’..’Z’,’a’..’z’,’0’..’9’}.

2. P menunjukkan karakter pertama dalam laju karakter. 3. C menunjukkan karakter berikutnya dalam laju karakter. 4. Apakah string (P + C) terdapat dalam kamus ?

(25)

• Jika ya, maka P adalah P + C (gabungkan P dan C menjadi string baru).

i. Keluaran sebuah sandi untuk menggantikan string P.

ii. Tambahkan string (P + C) ke dalam kamus dan berikan nomor / sandi berikutnya yang belum digunakan dalam kamus untuk string tersebut. iii. String P menggantikan string C.

5. Apakah masih ada karakter berikutnya dalam laju karakter ? Jika ya, maka kembali ke langkah 2.

Jika tidak, maka keluaran sandi yang menggantikan string P, lalu terminasi proses berhenti.

Sebagai contoh, string “ABBABABAC” akan dimampatkan dengan algoritma LZW. Isi kamus pada awal proses diset dengan tiga karakter dasar yang ada: “A”, “B”, dan “C”. Tahapan proses pemampatan ditunjukkan pada Tabel 2.1. Kolom posisi menyatakan posisi sekarang dari laju karakter dan kolom karakter menyatakan karakter yang terdapat pada posisi tersebut. Kolom kamus menyatakan string baru yang sudah ditambahkan ke dalam kamus dan nomor indeks untuk string tersebut ditulis dalam kurung siku. Kolom keluaran menyatakan sandi keluaran yang dihasilkan oleh langkah pemampatan. Hasil proses pemampatan ditunjukkan pada Gambar 2.5.

Tabel 2.1 Tahapan proses pemampatan LZW

Langkah Posisi Karakter Kamus Keluaran

1. 1 A [4] A B [1] 2. 2 B [5] B B [2] 3. 3 B [6] B A [2] 4. 4 A [7] A B A [4] 5. 6 A [8] A B A C [7] 6. 9 C - - - [3]

(26)

Gambar 2.5 Hasil Pemampatan LZW

Proses penirmampatkan pada LZW dilakukan dengan prinsip yang sama seperti proses pemampatan. Algoritma penirmampatkan dijelaskan sub bab 2.4.2. Pada awalnya, kamus diinisialisasi dengan semua karakter dasar yang ada. Lalu pada setiap langkah, sandi dibaca satu per satu dari laju sandi. Dikeluarkan string dari kamus yang berkorespondensi dengan sandi tersebut, dan ditambahkan string baru ke dalam kamus. Tahapan proses penirmampatkan ini ditunjukkan pada Tabel 2.2. Metode LZW yang diterapkan dalam penelitian ini berbentuk dinamis, dimana hanya dilakukan satu kali pembacaan terhadap berkas yang akan dimampatkan balik. Penyandian data dilakukan secara bersamaan dengan proses penambahan string baru ke dalam kamus.

2.4.2 Algoritma penirmampatkan LZW

Algoritma penirmampatkan LZW sebagai berikut :

1. Kamus diinisialisasi dengan semua karakter dasar yang ada : {‘A’..’Z’,’a’..’z’,’0’..’9’}.

2. CW menunjukkan sandi pertama dari laju sandi (menunjuk ke salah satu karakter dasar).

3. Lihat kamus dan keluaran string dari sandi tersebut (string CW) ke laju karakter.

4. String PW menggantikan string CW, dimana CW menunjukkan sandi berikutnya dari laju sandi.

5. Apakah string CW terdapat dalam kamus ? . Jika ada, maka : i. keluaran string CW ke laju karakter

(27)

ii. P menunjukkan string PW

iii. C menunjukkan karakter pertama dari string CW

iv. Tambahkan string (P+C) ke dalam kamus. Jika tidak, maka : a. P menggantikan string PW

b. C menggantikan karakter pertama dari string.PW

c. Keluaran string (P+C) ke laju karakter dan tambahkan string tersebut ke dalam kamus (sekarang berkorespondensi dengan CW); 6. Apakah terdapat sandi lagi di laju sandi ? Jika ya, maka kembali ke

langkah 4. Jika tidak, maka terminasi proses berhenti.

Tabel 2.2 Tahapan proses penirmampatkan LZW

Langkah Sandi Keluaran Kamus

1. [1] A - - - 2. [2] B [4] A B 3. [2] B [5] B B 4. [4] A B [6] B A 5. [7] A B A [7] A B A 6. [3] C [8] A B A C 2.5 Steganografi

Steganografi adalah suatu teknik untuk menyembunyikan informasi yang bersifat pribadi dengan sesuatu yang hasilnya akan tampak seperti informasi normal lainnya. Steganografi biasanya sering disalah artikan dengan kriptografi karenanya keduanya sama-sama bertujuan untuk melindungi informasi yang berharga. Perbedaan yang mendasar antara keduanya yaitu steganografi berhubungan dengan informasi tersembunyi sehingga tampak seperti tidak ada informasi tersembunyi sama sekali. Jika seseorang mengamati objek yang menyimpan informasi tersembunyi tersebut, dan tidak menyangka bahwa terdapat pesan rahasia dalam objek tersebut. Hal ini menyebabkan seseorang tidak akan berusaha memecahkan informasi dari objek tersebut.

(28)

(tersembunyi) dan Graptos (tulisan). Steganografi di dunia modern biasanya mengacu pada informasi atau suatu arsip yang telah disembunyikan ke dalam suatu arsip citra digital, audio, atau video. Satu hal penting yang menjadi kelebihan steganografi adalah kemampuannya untuk menipu persepsi manusia, manusia tidak memiliki insting untuk mencurigai adanya arsip-arsip yang memiliki informasi yang tersembunyi di dalamnya, terutama bila arsip tersebut tampak seperti arsip normal lainnya. Namun, begitu terbentuk pula suatu teknik yang dikenal dengan steganalysis, yaitu suatu teknik yang digunakan untuk mendeteksi penggunaan steganografi pada suatu arsip. Seorang steganalyst tidak berusaha untuk melakukan dekripsi terhadap informasi yang tersembunyi dalam suatu arsip, yang dilakukan adalah berusaha untuk menemukannya. Terdapat beberapa cara yang dapat digunakan untuk mendeteksi steganografi seperti melakukan pengamatan terhadap suatu arsip dan membandingkannya dengan salinan arsip yang dianggap belum direkayasa, atau berusaha mendengarkan dan membandingkan perbedaannya dengan arsip lain bila arsip tersebut adalah dalam bentuk audio.PP

[11]

P P

2.5.1 Sejarah Steganografi

Seperti kriptografi, penggunaan steganografi sebetulnya telah digunakan berabad-abad yang lalu bahkan sebelum istilah steganografi itu sendiri muncul. Berikut adalah contoh penggunaan steganografi di masa lalu:

1. Selama terjadinya Perang Dunia ke-2, tinta yang tidak tampak telah digunakan untuk menulis informasi pada lembaran kertas sehingga saat kertas tersebut jatuh di tangan pihak lain hanya akan tampak seperti lembaran kertas kosong biasa. Cairan seperti air kencing, susu, vinegar, dan jus buah digunakan sebagai media penulisan sebab bila salah satu elemen tersebut dipanaskan, tulisan akan menggelap dan tampak melalui mata manusia.

2. Pada sejarah Yunani kuno, masyarakatnya biasa menggunakan seorang pembawa pesan sebagai perantara pengiriman pesan. Pengirim pesan tersebut akan dicukur rambutnya, untuk kemudian dituliskan suatu pesan

(29)

pada kepalanya yang sudah botak. Setelah pesan dituliskan, pembawa pesan harus menunggu hingga rambutnya tumbuh kembali untuk dapat mengirimkan pesan kepada pihak penerima. Pihak penerima kemudian akan mencukur rambut pembawa pesan tersebut untuk melihat pesan yang tersembunyi.

3. Metode lain yang digunakan oleh masyarakat Yunani kuno adalah dengan menggunakan lilin sebagai media penyembunyi pesan mereka. Pesan dituliskan pada suatu lembaran, dan lembaran tersebut akan ditutup dengan lilin untuk menyembunyikan pesan yang telah tertulis. Pihak penerima kemudian akan menghilangkan lilin dari lembaran tersebut untuk melihat pesan yang disampaikan oleh pihak pengirim.

2.5.2 Kegunaan Steganografi

Seperti perangkat keamanan lainnya, steganografi dapat digunakan untuk berbagai macam alasan, beberapa diantaranya untuk alasan yang baik, namun dapat juga untuk alasan yang tidak baik. Untuk tujuan legitimasi dapat digunakan pengamanan seperti citra dengan tanda air dengan alasan untuk perlindungan hak cipta. Digital tanda air (yang juga dikenal dengan sidik jari, yang dikhususkan untuk hal-hal menyangkut hak cipta) sangat mirip dengan steganografi karena menggunakan metode penyembunyian dalam arsip, yang muncul sebagai bagian asli dari arsip tersebut dan tidak mudah dideteksi oleh kebanyakan orang. Steganografi juga dapat digunakan sebagai cara untuk membuat pengganti suatu nilai hash satu arah (yaitu pengguna mengambil suatu masukan panjang variabel dan membuat sebuah keluaran panjang statis dengan tipe string untuk melakukan verifikasi bahwa tidak ada perubahan yang dibuat pada variabel masukan yang asli).

Selain itu juga, steganografi dapat digunakan sebagai catatan tag untuk citra langsung. Terakhir, steganografi juga dapat digunakan untuk melakukan perawatan atas kerahasiaan informasi yang berharga, untuk menjaga data tersebut dari kemungkinan sabotase, pencuri, atau dari pihak yang tidak berwenang. Sayangnya, steganografi juga dapat digunakan untuk alasan yang ilegal. Sebagai

(30)

contoh, jika seseorang telah mencuri data mereka dapat menyembunyikan arsip curian tersebut ke dalam arsip lain dan mengirimkannya keluar tanpa menimbulkan kecurigaan siapapun karena tampak seperti email atau arsip normal. Selain itu, seseorang dengan hobi menyimpan pornografi, atau lebih parah lagi menyimpannya dalam hard disk. Mereka dapat menyembunyikan hobi buruknya melalui steganografi. Begitu pula dengan masalah terorisme, steganografi dapat digunakan oleh para teroris untuk menyamarkan komunikasi mereka dari pihak luar.PP

[9]

2.5.3 Metode Steganografi

Terdapat banyak metode yang digunakan dalam menyembunyian data ke dalam data lainnya. Berikut adalah penjelasan mengenai beberapa metode yang banyak digunakan dalam steganografi.

1. Metode Penanaman

Steganografi menyimpan pesan rahasia dalam suatu arsip yang biasanya diparameteri oleh suatu kunci-stego, dan pendeteksian atau pembacaan atas informasi tersembunyi tersebut dapat dilihat pada gambar 2.6.

Kunci-stego

Kunci-stego Proses

penanaman

Stego < jenis data > Sampul

< Jenis Data > ekstraksiProses Menanam

< Jenis Data >

Menanam < Jenis Data >

Gambar 2.6 Proses steganografi dengan metode penanaman

Metode penanaman ini juga biasa disebut dengan metode injection karena pesan rahasia disuntikkan langsung pada arsip lainnya dengan sedikit pengacakan atau enkripsi.PP

[9]

(31)

2. Metode Least Significant Bit

Dalam kawasan citra, steganografi dilakukan dengan metode penggantian atau penyisipan bit pada LSB atau sering disebut manipulasi derau (noise

manipulation). Disebut demikian karena pesan rahasia pada citra yang disisipkan,

akan mengubah piksel tertentu pada citra. Jika perubahan tersebut terlihat, akan nampak seperti derau pada citra tersebut. Pendekatan ini melibatkan citra berformat tak berugi, dan pesan disisipkan dan diambil secara langsung, tanpa melibatkan proses alih ragam. Sedangkan dalam kawasan alih ragam, proses dilakukan dengan melibatkan manipulasi dari algoritma alih ragam citra.

Citra Awal A0 A1 A5 A4 A3 A7 A6

Lokasi Bit dari piksel yang akan disisipi P0 A1 A5 A4 A3 A7 A6 Pesan Rahasia

Citra Stego/Pembawa = Citra Awal + sia

Pesan Raha

Lokasi Bit yang telah disisipi

data

(32)

Dalam metode penyisipan LSB seperti yang ditunjukkan oleh Gambar 2.7, steganografi dilakukan dengan cara mengganti satu bit piksel citra awal (A0)

dengan bit-bit dari pesan rahasia (P0) yang akan disembunyikan. Berkas citra

pembawa yang telah disisipi pesan rahasia, atau disebut juga berkas atau citra stego, dapat dikirimkan ke penerima. Penerima dapat mengekstraksi pesan tersebut atau melakukan desteganografi dari citra pembawa sehingga mendapatkan bit-bit pesan tersembunyi dari citra pembawa.

Beberapa versi dari metode LSB telah bermunculan. Kini sangat memungkinkan untuk menggunakan menggunakan pembangkit nomer acak yang diinisialisasi dengan kunci-stego dan mengkombinasikan keluarannya dengan data masukan, dan kemudian menyembunyikannya dalam suatu arsip citra. Kehadiran seorang pengawas tidak cukup untuk meyakinkan keberhasilan penambahan sebuah pesan di lokasi tertentu (pada rentetan bit tertentu), karena pengawas itu sendiri sangat mungkin mengubah letak dari pesan rahasia tersebut, walaupun tidak mengetahui lokasi dari pesan rahasia tersebut atau tidak dapat membacanya karena telah dienkripsi. Karena itulah penggunaan kunci-stego menjadi penting karena keamanan atas suatu sistem pengaman tidak dapat didasarkan pada kerahasiaan dari algoritmanya itu sendiri, namun karena adanya keberadaan dari suatu kunci rahasia.PP

[13]

PP Gambar 2.8 menunjukkan proses tersebut.

Posisi pembangkit

Urutan

Penanaman Tulisan yang harus ditanam

Data citra

Kunci pengguna Letak Urutan Citra Stego

Gambar 2.8 Proses penggunaan kunci-stego pada steganografi

Metode LSB pada umumnya beroperasi pada citra bitmap. Data yang disembunyikan tidak dapat dikategorikan sebagai tanda air karena jika terjadi perubahan kecil pada citra tersebut (pemotongan, pemampatan, atau degradasi warna), maka informasi tersembunyi tersebut akan hilang walaupun perubahan yang terjadi selama proses penanaman tidak terlihat. PP

[9]

(33)

2.5.4 Algoritma Penyisipan data

Algoritma penyisipan data menggunakan metode penyisipan LSB yaitu menyisipkan satu bit pada posisi bit yang terendah.Terdapat dua tahap yaitu penyandian dan pengawasandian. Langkah-langkahnya adalah sebagai berikut : Penyandian

Langkah 1 Buat palet baru sebanyak 128 dari hasil reduksi warna. Jika data citra 24 bit dibuat menjadi hanya 8 bit.

Langkah 2 Mengubah tiap piksel citra menjadi deretan bit-bit dalam bentuk 8-bit.

Langkah 3 Tiap 8-bit piksel sebuah citra diubah ke dalam indeks warna, indeks tersebut menunjukkan nomor palet warna. Misal : nilai 5 merupakan palet warna biru.

Langkah 4 Mengubah data sisipan kedalam deretan bit-bit dalam bentuk 8-bit. Misal : karakter ’A’ dalam bit ’01110001’.

Mengambil satu bit data sisipan untuk dsisipkan ke piksel pertama dari citra uji.

M = N + i (2.1)

M = nilai palet baru

N = nilai palet yang disisipi data i = bit data

Dalam satu piksel hanya dapat disisipi 1-bit data saja. Dari persamaan tersebut dapat diketahui nilai palet baru setelah penyisipan. Jika data yang disispi ’0’ maka nilai palet tidak berubah, namun jika data sisipan bernilai ’1’ maka akan merubah nilai palet. Perubahan nilai palet akan merubah warna.

Langkah 5 Membuat palet baru yang sama dengan palet awal. Berarti nomor palet 0,1...127 mempunyai warna sama dengan nomor palet 128,129,...255. Palet baru ini digunakan untuk memanipulasi warna palet yang mengalami perubahan saat disisipi data.

Langkah 6 Melakukan langkah 1 sampai ke 5 untuk piksel selanjutnya per baris sampai data sisipan habis.

(34)

Pengawasandian

Langkah 1 Memindai per baris piksel dalam satu citra

Langkah 2 M < N berarti tidak ada data sisipan. Jika M > N berarti terdapat data sisipan. Dalam contoh : nilai N = 5, jika N<5 berarti tidak ada data sisipan. Jika N>5 berarti ada data sisipan.

Langakah 3 Bit yang ada pada piksel ditampung sementara sampai tersusun 8-bit. Dari bit-bit yang telah tersusun diubah menjadi satu karakter kembali. Misal dari bit-bit yang tersusun ’01110001’ atau kembali menjadi karakter ’A’.

(35)

BAB III

PERANCANGAN PROGRAM

Pada perancangan program ini dijelaskan spesifikasi perangkat-keras dan perangkat-lunak yang digunakan untuk membuat dan menjalankan program. Berikut penjelasan perangkat-keras dan perangkat-lunak yang digunakan.

3.1 Perangkat-keras

Perangkat-keras yang digunakan untuk membuat dan menjalankan program adalah satu set komputer jinjing (laptop). Berikut spesifikasi perangkat-keras yang digunakan.

1. Merek : HP Compaq nx6120

2. Sistem Komputer : Intel Pentium Centrino M 1,87 GHz

3. Sistem Operasi : Microsoft Windows XP Profesional

Service Pack 2

4. Media Tampilan : VGA (true color 32 bit, 1024 800 piksel) dengan chipset intel Xtreme 128 Mb

5. Media masukan : mouse

6. Memori : 512 MB RAM.

3.2 Perangkat-lunak

Perangkat-lunak yang digunakan adalah Borland Delphi. Borland Delphi merupakan paket pemrograman yang bekerja dalam sistem operasi Windows, agar dalam pembuatan program dapat dikompilasi, persyaratan minimal pembuatan program menggunakan perangkat lunak Delphi dan sistem operasi Microsoft Windows XP Profesional harus dipenuhi. Hal ini untuk

(36)

menghindari jika dalam perangkat lunak versi sebelumnya tidak terdapat beberapa fungsi yang ada pada versi sesudahnya.

3.3. Bagan-alir Program

Bagan-alir pembuatan program untuk melakukan Penyisipan data citra menggunakan teknik penyisipan bit LSB dimulai dari pengambilan citra sampai dengan mengambil data yang telah disisipkan ke dalam citra GIF. Pada Gambar 3.1 ditunjukkan bagan-alir yang digunakan dalam perancangan program Penyisipan data.

Mulai

Pengambilan citra

Duplikasi palet warna Reduksi warna

24 bit ke 8 bit

Penyisipan bit ke LSB

Simpan citra dalam format GIF

Berhenti

(37)

3.3.1 Pengambilan Citra

Citra yang diolah adalah citra warna digital 24-bit yang belum dimampatkan dengan berkas penyimpanan berekstensi *.bmp atau yang telah dimampatkan dengan berkas penyimpanan *.jpeg, *.jpeg, *.gif . Citra digital tersebut selanjutnya dibaca dengan perintah :

procedure TMainForm.Bukafilegambar1Click(Sender: TObject); begin

if OpenPictureDialog1.Execute then begin button3.Visible:=false; button2.Visible:=true; modedecode:=false; image1.picture.LoadFromFile(openpicturedialog1.FileName); maxchar:=image1.Width*image1.Height div 8; adagambar:=true; hasprocess:=false;

StatusBar1.SimpleText:='Silahkan ketik atau ambil file data(teks) yang akan disisipkan. Maksimal '+inttostr(maxchar)+' karakter.';

GroupBox1.Caption:=' Gambar (maksimal '+inttostr(maxchar)+' byte dapat disisipkan) ';

end; end;

parameter width dan height merupakan lebar dan panjang dari citra asli

dalam bentuk citra digital. Pengambilan gambar hanya akan dilakukan apabila tidak dibatalkan pemilihan berkas dalam OpenPictureDialog1, atau dengan kata

lain OpenPictureDialog jadi dieksekusi. Pertama-tama yang dilakukan adalah

membuat FormCitra sebagai tempat untuk menampilkan citra, dengan menggunakan fungsi Application.CreateForm.

3.3.2 Reduksi warna

Citra yang akan direduksi warnanya, pertama-tama diubah dulu ke dalam bit agar mudah untuk mengurangi ke dalaman bit citra tersebut. Program untuk merubah berkas citra ke dalam bit :

(38)

procedure loaddata(var d:TDataRek;fn:string); var f:file; begin assignfile(f,fn); reset(f,1); setlength(d.data,filesize(f)); blockread(f,d.data[0],filesize(f)); d.namafile:=ExtractFileName(fn); d.size:=filesize(f); closefile(f); d.id:='###'; end; function datatobits(x:tdatarek):tbits; var n,i,j:integer; b:^byte; begin result:=tbits.create; b:=@x; result.Size:=8*(sizeof(x)-4)+8*(high(x.data)+1);

Sebelum berkas diubah ke bit terlebih dahulu ditampung ke memori program. setlength(d.data,filesize(f)) berfungsi menampung berkas yang akan disimpan. Untuk merubah ke bit diperlukan variabel n, i, j berupa integer. Sedangkan variabel bberfungsi untuk menyatakan ke dalam byte.

Format berkas header berisi sandi, nama berkas, jumlah d bit yang disisipkan. Untuk setiap 1 piksel diwakili 1 bit, jadi untuk 8 piksel berarti terdapat 1 byte. Dalam berkas citra yang akan disisipi data untuk mengetahui jumlah maksimum data yang akan disisipi dapat dihitung dengan persamaan :

8

max w h (3.1)

Perintah program :

(39)

Setelah diubah ke bit kemudian diproses untuk reduksi warna yang berfungsi agar dapat disimpan ke dalam format GIF ( karena hanya 8 bit ).

Btmpp, btmp merupakan pernyataan citra bitmap dalam bahasa program delphi.

Langkah pengurangan warna citra yaitu inisialisasi terlebih dahulu citra, kemudian di set lebar, tinggi, dan format warna.

btmpp:=tbitmap.create; // inisialisasi

btmpp.Width:=image1.Width; // set lebar btmpp.height:=image1.Height; // set tinggi btmpp.PikselFormat:=pf24bit; // set format warna

Membuat palet kanvas yang baru untuk diubah warna dari 24 bit warna menjadi 8 bit warna.

btmpp.Canvas.Draw(0,0,image1.picture.Graphic);

btmp:=ReduceColors(btmpp,rmPalette,dmFloydSteinberg,0,mypalet);

3.3.3 Duplikasi palet

Pembentukan palet duplikat berfungsi untuk menciptakan palet 128 warna dasar yang sama dengan palet warna citra aslinya. Jadi warna ke 0 dan 128 adalah sama, 1 dan 129 sama dan demikian seterusnya sampai palet ke 255.

function mypalet:HPALETTE; var i,r,g,b : integer; Pal : tMaxLogPalette; begin Pal.palVersion := $0300; Pal.palNumEntries := 256; i:=0; for r := 0 to 3 do for g := 0 to 7 do for b := 0 to 3 do begin

(40)

Penggunaan warna RGB pada program ini dipilih komposisi warna R = 3, G = 7, dan B = 3. Berarti ada sebanyak 128 warna dari kombinasi RGB. 22= 4 level warna merah, 23= 8 kombinasi warna hijau, dan 22= 4 kombinasi warna biru. Dengan demikian warna hijau yang paling dominan dan memiliki kombinasi yang paling banyak Untuk membuat data palet dengan warna tertentu digunakan perintah sebagai berikut :

with (Pal.palPalEntry[i]) do begin peRed := r*255 div 3; // merah peGreen := g*255 div 7; // hijau peBlue := b*255 div 3; // biru peFlags := PC_NOCOLLAPSE;

end;

Setelah didapat warna yang sama dengan palet citra, kemudian dibuat data palet untuk warna yang sama dengan diatas namun untuk (nomor warna+128).

with (Pal.palPalEntry[i+128]) do begin peRed := r*255 div 3; peGreen := g*255 div 7; peBlue := b*255 div 3; peFlags := PC_NOCOLLAPSE; end; inc(i); end; Result := CreatePalette(pLogPalette(@Pal)^); end;

3.3.4 Penyisipan data ke citra

Penyisipan data rahasia ke dalam citra pada tugas akhir ini menggunakan metode penyisipan LSB. Data yang akan disisipkan diubah terlebih dahulu ke bit agar mudah dalam melakukan penyisipan. Letak penyisipannya terletak pada posisi bit terendah.

Proses perubahan data ke bit :

loaddata(dr,edit5.text); dr.pass:=edit4.text;

(41)

for j:=0 to 7 do begin

result.Bits[n]:=(x.data[i] and (1 shl j))>0; inc(n); // majukan n

end;

Proses penyisipan bit LSB :

n:=0;

for y:=0 to btmp.Height-1 do begin p:=btmp.ScanLine[y];

for x:=0 to btmp.Width-1 do begin

if (n<data.size) and data.bits[n] then p^:=p^+128; inc(n); // bits berikutnya

inc(p); // picel berikutnya

pb1.Position:=n*100 div (btmp.width*btmp.height); end;

Fungsi Scanline digunakan untuk membaca nilai piksel langsung pada

memori citra, sehingga pengolahan citra dapat dilakukan secara lebih cepat dibandingkan cara konvensional.

3.3.5 Menyimpan hasil citra ke format GIF

Setelah citra diproses, langkah terakhir adalah menyimpan hasil citra yang telah disisipi ke dalam format GIF. Hasil keluaran citra yang telah berformat GIF memiliki jumlah 28warna = 256 warna ( karena hanya terdapat 8 bit ). Proses penyimpanan ke format GIF :

procedure TMainForm.SimpansebagaiGIF1Click(Sender: TObject); begin

if not hasprocess then begin

Application.MessageBox('Gambar belum diproses !','Kesalahan',0);

exit; end;

(42)

mygif.SaveToFile(savepicturedialog1.filename); end;

3.3.6 Pengambilan data dari citra format GIF

Untuk citra yang telah disimpan dari program tersebut semua adalah dalam format GIF. Proses pengambilan data dari citra ditunjukkan bagan alir pada Gambar 3.2.

Mulai

Pengambilan citra GIF

Tanya sandi Benar Simpan Data Proses Data Berhenti Salah

(43)

Cuplikan program untuk pengambilan data dari citra :

procedure TMainForm.Bukafile1Click(Sender: TObject); var x,y:integer; p:^byte; b:byte; n:integer; id:string[5]; db:^byte; dn:integer; tt:tdatetime; begin

// mendecode gambar GIF untuk mengambil data yg disisipkan

if OpenPictureDialog1.Execute then begin tt:=now;

if

pos('.gif',lowercase(openpicturedialog1.FileName))=0 then begin application.MessageBox('Hanya file GIF’,’Informasi’,0); exit;

end;

Perintah diatas digunakan untuk mengambil citra GIF saja, jadi jika citra yang disimpan tidak dalam format *.GIF berarti program tidak dapat menampilkan citra yang akan didekode.

edit5.text:=''; edit6.text:=''; modedecode:=true; image1.picture.LoadFromFile(openpicturedialog1.FileName); image2.picture.Assign(image1.Picture); adagambar:=true; hasprocess:=true; n:=0; b:=0;

// load file yang akan didecode

mygif.LoadFromFile(openpicturedialog1.FileName); id:='';

(44)

db:=@ext; dn:=0;

for y:=0 to mygif.height-1 do begin p:=mygif.Bitmap.ScanLine[y];

for x:=0 to mygif.Width-1 do begin

Perintah edit5.text:=''; berguna untuk mengosongkan nama berkas. modedekode:=true; digunakan untuk menentukan bentuk program yang

dipanggil adalah bentuk dekode. Setelah citra sudah ditampilkan , db:=@ext

merupakan pointer ke lokasi penyimpan bit.

3.3.7 Konfirmasi Sandi

Konfirmasi sandi diperlukan untuk membuka citra yang telah disimpan ke dalam format GIF. Cuplikan programnya :

edit4.text:=inputbox('Keamanan','Masukkan kata sandi',''); if edit4.text<>ext.pass then application.MessageBox('Kata sandi anda salah !','Informasi',0)

else begin button2.Visible:=false; button3.Visible:=true; edit4.Enabled:=false; edit5.text:=ext.namafile; edit6.text:=inttostr(ext.size);

StatusBar1.SimpleText:='Silahkan simpan data yang tersimpan di gambar ini.';

GroupBox1.Caption:=' Gambar Yang akan didekode '; end;

Jika sandi yang dimasukkan salah maka akan ada jendela peringatan yang berbunyi “kata sandi anda salah” , sehingga data tidak dapat didekode. Namun jika kata sandi benar maka data dapat di dekode.

mygif.LoadFromFile(openpicturedialog1.FileName); id:='';

db:=@ext; dn:=0;

(45)

p:=mygif.Bitmap.ScanLine[y]; for x:=0 to mygif.Width-1 do begin if p^>=128 then b:=b+(1 shl n); inc(p);

n:=n+1; if n=8 then begin n:=0;

if length(id)<3 then id:=id+chr(b); if dn<sizeof(tdatarek)-4 then db^:=b;

if dn>=sizeof(tdatarek)-4)and dn<sizeof(tdatarek)-4+ext.size) then db^:=b;

inc(db); inc(dn);

if dn=sizeof(tdatarek)-4 then begin setlength(ext.data,ext.size); db:=@ext.data[0]; end; b:=0; end; end;

if (length(id)=3) and (id<>#3'##') then break; end;

tt:=(now-tt)*(24*60*60);

label1.caption:='Waktu proses :'+format('%5.5f detik',[tt]);

if id<>#3'##' then application.MessageBox('Gambar ini tidak mengandung data !','Informasi',0)

else begin

Untuk mendekode pada citra dibaca tiap-tiap piksel apakah bit ke 7 bernilai 1, untuk setiap 8 piksel digabungkan menjadi 1 karakter ASCII. Jika sudah terkumpul 8 bit, disimpan di header dan terakhir disimpan di data. Jika ukuran berkas sudah diketahui dengan perintah :

if dn=sizeof(tdatarek)-4

Disiapkan pointer penampung data dengan perintah :

setlength(ext.data,ext.size); db:=@ext.data[0];

(46)

b:=0; end;

Untuk mengetahui citra tersebut ada sisipannya adalah dengan perintah :

if (length(id)=3) and (id<>#3'##') then break;

Jika ada sisipannya berarti bisa disimpan, dengan perintah :

edit5.text:=ext.namafile;

edit6.text:=inttostr(ext.size);

StatusBar1.SimpleText:='Silahkan simpan data yang tersimpan di gambar ini.';

GroupBox1.Caption:=' Gambar Yang akan didecode '; end;

(47)

BAB IV

HASIL PENELITIAN DAN PEMBAHASAN

Hasil penelitian yang dibahas mulai dari tampilan program, bagaimana menjalankan program, proses pengolahan citra, hingga dihasilkan citra yang telah tersteganografi. Keterangan-keterangan yang mengikuti citra hasil steganografi juga akan ditampilkan pada program.

4.1 Hasil Penelitian

Hasil penelitian yang dibahas adalah hasil dari program yang telah dirancang dan dibuat untuk melakukan steganografi terhadap citra warna yang belum dimampatkan citra format *.bmp maupun citra yang telah dimampatkan berformat *.jpeg,*. jpg, *.GIF, dan *.wmf. Pembahasan dilakukan mulai dari proses steganografi, analisis, hingga keterangan-keterangan yang dihasilkan selama proses steganografi berlangsung.

4.1.1 Menjalankan Program

Program yang telah dibuat dengan Delphi dapat dijalankan dengan langsung membuka folder TA dan klik dua kali pada berkas penyusup data.exe Pada Gambar 4.1 ditunjukkan tampilan jendela pembukaan. Setelah jendela pembuka muncul terdapat dua tombol yaitu tombol Masuk dan tombol Keluar. Tekan tombol masuk jika ingin melanjutkan program dan tekan tombol keluar jika tidak ingin meneruskan program. Tampilan jendela menu utama ditunjukkan pada Gambar 4.2.

(48)

Gambar 4.1 Jendela pembuka.

Gambar 4.2 Tampilan jendela utama program

Pada menu utama Program dan Bantuan, di dalamnya masih terdapat beberapa menu yang dapat digunakan. Dalam menu utama Program terdapat menu Buka file gambar, Buka file data, Buka file dan Keluar dari sistem. Pada menu utama Bantuan terdapat menu Tentang program dan Tentang saya. Berikut beberapa tampilan dari menu utama dan menu-menu yang ada di dalamnya seperti ditunjukkan pada Gambar 4.3.

(49)

(a) Menu Program (b) Menu Bantuan Gambar 4.3 Tampilan menu utama.

Jika sebelum memulai program steganografi diinginkan informasi dalam menjalankan program, dapat di klik menu utama Bantuan dan klik menu Tentang program, sehingga akan ditampilkan jendela informasi yang berisi petunjuk penggunaan program. Jika telah paham akan petunjuk yang diberikan, untuk menutup jendela informasi dapat ditekan tombol Ok yang terletak di pojok bawah. Tampilan jendela informasi ditunjukkan pada Gambar 4.4.

(50)

Jendela utama program pada Gambar 4.2 menampilkan citra yang akan dilakukan proses penyisipan data. Pada jendela utama ini akan ditampilkan citra asli, citra hasil, nama berkas data yang disisipkan, ukuran berkas data yang disisipkan, kolom password, dan waktu yang dibutuhkan dalam proses steganografi.

Berikut dan langlah-langkah dalam menjalankan program penyisipan data ke dalam citra termampat berformat GIF:

1. Buka program aplikasi ini, di dalamnya dapat dilihat menu utama Program yang terdiri atas menu Buka file gambar, Buka file data, Buka file dan Keluar dari sistem. Di dalam menu utama Bantuan terdapat menu Tentang program dan Tentang saya.

2. Untuk memulai program steganografi citra warna dapat diklik menu Buka file gambar pada fasilitas menu utama Program.

3. Citra warna yang telah dipilih akan ditampilkan pada jendela Input gambar dan data. Pada menu utama juga di informasikan maksimal data yang dapat disisipkan.

4. Selanjutnya klik menu Buka file data dari menu utama Program.

5. Data yang dipilih akan ditampilkan ukuran berkasnya dan letak penyimpanan berkas data tersebut. Data yang disisipkan tidak boleh melebihi kapasitas maksimal data yang dapat disisipkan ke citra.

6. Isi password terlebih dahulu untuk keamanan data tersebut.

7. Tekan tombol proses untuk memulai penyisipan data, Program berjalan ditandai dengan progress bar.

8. Pilih tombol Simpan, maka citra warna yang telah disisipi data akan disimpan ke dalam citra berformat GIF. Proses steganografi selesai, jika diinginkan keluar dari program, klik menu utama Program kemudian klik menu Keluar dari sistem.

9. Klik menu Buka file untuk membuka data hasil steganografi, terdapat konfirmasi password untuk membuka data yang akan dibuka.

(51)

10. Jika password benar maka citra yang berisi data yang telah disisipkan dan telah disimpan dalam format GIF dapat diambil.

11. Tekan tombol Simpan data untuk menyimpan data yang telah disisipkan di dalam citra GIF.

12. Setelah data yang diinginkan disimpan maka proses pengambilan data yang disisipkan berakhir. Proses desteganografi selesai, jika diinginkan keluar dari program, klik menu utama Program kemudian klik menu Keluar dari sistem.

4.1.2 Pembacaan Citra

Citra yang dibaca adalah citra warna 24-bit berformat *.bmp maupun citra yang telah dimampatkan berformat *.jpeg,*. jpg, *.ico, *.gif, dan *.wmf ditampilkan pada jendela utama sebagai citra asli. Pembacaan citra dilakukan dengan perintah yang telah dijelaskan pada perancangan program. Contoh hasil pembacaan citra ditunjukkan pada Gambar 4.9. Pada jendela utama tidak hanya ditampilkan citra asli, tetapi juga citra hasil. Citra hasil dapat ditampilkan jika sudah dilakukan proses steganografi.

4.1.3 Steganografi Citra

Proses steganografi dimulai dengan pengambilan data yang akan disisipkan namun tidak melebihi kapasitas maksimal yang dapat diproses. Ukuran berkas data yang disisipkan dapat diketahui dari tampilan data tambahan yang terletak pada sebelah kanan jendela program menu utama. Tampilan data tambahan terlihat pada Gambar 4.5.

(52)

Gambar 4.6 Tampilan data yang ditampung melebihi kapasitas

Jika syarat telah dipenuhi maka data dapat diproses untuk dilakukan steganografi kedalam citra. Pada Gambar 4.6 merupakan tampilan informasi mengenai kesalahan yang terjadi pada program jika data yang akan disisipkan melebihi kapasita8s yang dapat ditampung data citra. Perhitungan kapasitas maksimal data yang bisa disisipkan dari persamaan 3.1 dapat diketahui jika suatu citra mempunyai ukuran 800 600 piksel. Berarti w = 800 dan h = 600, maka :

KB h w 60 8 600 * 800 8 max

Untuk mengetahui kapasitas data yang dapat ditampung oleh citra dapat diketahui pada menu utama yang terletak diatas tampilan citra asli. Dengan memilih tampilan input gambar dan data. Seperti pada Gambar 4.7.

Gambar 4.7 Tampilan ukuran data yang dapat disisipkan

Tekan tombol proses yang terletak di sebelah kanan jendela utama program untuk melakukan steganografi. Pada saat mengolah terdapat tampilan progress bar yang menandai program sedang berlangsung, dan setelah selesai maka akan ditampilkan juga waktu yang dibutuhkan untuk mengolah. Seperti yang ditunjukkan pada Gambar 4.8.

(53)

Gambar 4.8 Tampilan progress bar

4.1.4 Menyimpan ke dalam format GIF

Setelah selesai melakukan steganografi, citra hasil steganografi ditampilkan pada menu utama program dengan mengklik output. Citra asli dan citra hasil tidak ditampilkan dalam satu tampilan, namun dapat dipilih dengan mengklik input gambar dan data untuk melihat citra asli dan mengklik output untuk memilih citra hasil. Seperti yang ditunjukkan pada Gambar 4.9.

(a) (b)

Gambar 4.9 Tampilan citra asli (a) dan citra hasil steganografi (b)

Pada jendela utama program bagian output terdapat tombol simpan di bagian kiri bawah yang berfungsi untuk menyimpan citra hasil steganografi. Citra yang disimpan dalam format GIF.

4.1.5 Mengambil data dari citra GIF

Jika kita ingin mengambil citra hasil steganografi dengan cara mengklik Buka file pada jendela menu utama. Citra yang telah disimpan dalam format GIF, jadi program hanya dapat mengambil berkas citra dalam format GIF. Pada

(54)

Gambar 4.10 merupakan jendela informasi jika citra yang dibuka selain dalam format GIF.

Gambar 4.10 Jendela informasi hanya berkas GIF

Program juga memberitahukan jika citra GIF yang di buka tidak mengandung data penyisipan. Pada Gambar 4.11 memberikan informasi bahwa berkas citra yang dibuka tidak berisi data sisipan. Program menanyakan password terlebih dahulu jika ingin membuka berkas citra steganografi yang telah disimpan, seperti terlihat pada Gambar 4.12.

Gambar 4.11 Jendela Informasi citra tidak terdapat data sisipan

Gambar 4.12 Konfirmasi password

4.2 Uji Coba Dengan Data Sisipan di bawah Kapasitas Maksimal Citra Pada uji coba ini diuji tingkat keberhasilan dan waktu yang dibutuhkan untuk melakukan steganografi yaitu setiap citra diuji dengan data uji berupa data teks, data audio dan video. Citra yang akan diujikan adalah citra 1, citra2, citra 3, citra 4 seperti ditunjukkan pada Gambar 4.13.

Gambar

Gambar 2.1. Koordinat nilai intensitas pada citra
Gambar 2.2 Komposisi Warna RGB
Gambar 2.3 Proses Konversi citra analog ke citra digital beserta pengirimannya
Gambar 2.4 Hasil Berkas Pemampatan LZW
+7

Referensi

Dokumen terkait

Buku Pintar Asuransi; Mengenal dan Memilih Asuransi yang Menguntungkan Nasabah.. Jurus Pintar ASURANSI; Agar Anda Tenang, Aman

Rumusan masalah Karya Tulis Ilmiah ini adalah sebagai berikut: (1) Apakah latihan statik kontraksi dapat mengurangi nyeri pada daerah di sekitar luka incisi?, (2) Apakah

4) Dalam banyak hal, belajar merupakaan proses percobaan (dengan kemungkinan berbuat keliru) dan conditioning atau pembiasaan. 5) Kemampuan belajar seseorang siswa

Judul Skripsi : Pengaruh Pelatihan, Upah terhadap Produktivitas kerja karyawan pada Industri genteng di Desa Margodadi, Seyegan, Sleman, Daerah Istimewa

Suatu graf siklus titik ajaib, di mana titik diberi label v + 1 sampai 2 v , maka graf siklus akan mempunyai bilangan ajaib minimum yang bergantung pada banyaknya jumlah titik

Pada penderita yang tidak dapat diberikan oral karena gangguan absorpsi gastrointestinal atau lainnya maka dianjurkan pemberian intravena.Glukokortikosteroid sistemik membutuhkan

This chapter presents the framework Agile SPI, designed to motivate SMEs towards improving and certifying their software development processes, which is based on the integration

Tujuan penelitian ini adalah untuk mengetahui apakah hasil belajar IPA siswa kelas 5 SDN Blotongan 03 semester ganjil tahun pelajaran 2016/2017 dapat ditingkatkan melalui