Tuesday, August 28, 2007

Interpolasi Lagrange dengan Matlab

Formula yang digunakan untuk interpolasi Lagrange adalah sebagai berikut:
Sehingga dapat dibuat algoritmanya sebagai berikut:
  1. Tetapkan jumlah titik yang diketahui. Untuk menginputkan titik yang diketahui dapat meenggunakan dua array x dan y dengan jumlah data = jumlah titiknya. Dengan dua array akan lebih mudah mengatur perilaku data didalam program. Bisa juga menggunakan banyak array sejumlah titik yang diketahui, sehingga masing-masing pasang data disimpan dalam satu array. Cara ini terlihat lebih sederhana, tetapi lebih sulit dalam mengatur perilaku data. Dalam implementasi ini nantinya akan dipilih cara yang pertama, yakni menggunakan dua array x dan y.
  2. Mencari Li(x) dan P(x). Li(x) didapat sejumlah titik yang diketahui, sehingga diperlukan perulangan sebanyak titik yang diketahui. Demikian pula P(x) merupakan jumlahan dari perkalian yi dan Li(x), sehingga memerlukan perulangan yang jumlahnya sana dengan proses pencarian Li(x). Untuk mencari Li(x) diperlukan Qi(x) dan Qi(xi). Karena Qi(x) merupakan hasil perkalian (x-xi) sejumlah titik yang diketahui, maka diperlukan perulangan lagi untuk mencarinya. Tetapi yang harus diingat disini adalah bahwa, untuk (x-xi) tersebut tidak ikut dalam hasil perkalian. Sehingga proses hanya akan dilakukan untuk nilai selain (x-xi). Untuk Qi(xi) dapat dicari setelah Qi(x) diketahui dengan cara mensubstitusi nilai xi ke dalam Qi(x). Setelah Qi(x) dan Qi(xi) diketahui dapat dicari Li(x). Dan untuk selanjutnya mencari P(x).
Misalnya banyaknya titik yang diketahui adalah b, maka algoritma diatas dapat diperhalus menjadi sebagai berikut:
  1. Inputkan b.
  2. Dari i = 1 s.d b : Inputkan titik ke i
  3. Dari i = 1 s.d b: Cari Qi(x), Cari Qi(xi), Cari Li(x)
  4. Cari P(x)
Implementasinya sebagai berikut:
Output program sebagai berikut:


Thursday, July 26, 2007

Embedded teks ke dalam citra

Salah satu media yang sering dipakai untuk menyisipkan pesan/data adalah file image. Dalam contoh yang saya buat ini sengaja digunakan citra grayscale yang memiliki bentuk digital lebih sederhana jika dibandingkan dengan citra RGB. Pada citra grayscale, akan didapat sebuah matrik yang menunjukkan tingkat derajat keabuan dari masing-masing piksel. Sedangkan untuk citra RGB, akan didapat tiga buah matrik yakni matrik R, matrik G dan matrik B, tingkat R, G dan B dari citra. Metode penyisipan pesan yang dipakai adalah Least Significant Bit (LSB). Metode ini bekerja dengan cara mengganti bit terakhir dari masing-masing piksel dengan pesan yang akan disisipkan. LSB mempunyai kelebihan yakni ukuran gambar tidak akan berubah. Sedangkan kekurangannya adalah pesan/data yang akan disisipkan terbatas, sesuai dengan ukuran citra.
Citra sebelum disisipi pesan

Citra setelah disisipi pesan

Jika diperhatikan, penggantian bit terakhir tersebut tidak terlalu berpengaruh terhadap derajat keabuan citra. Maka dua gambar diatas gak beda kan..... Tapi kalo gambar yang bawah diekstrak, maka akan didapat pesan yang berbunyi : Rajin-rajinlah belajar# Tanda # digunakan buat mengakhiri pesan. Ada tiga kemungkinan yang terjadi setelah penggantian bit terakhir, yakni:
  1. Nilainya derajat keabuan tetap
  2. Nilai derajat keabuan berkurang 1
  3. Nilai derajat keabuan bertambah 1
Perubahan yang sedemikian kecil tersebut tidak mungkin akan dirasakan secara kasat mata, sehingga citra sebelum dan setelah disisipi pesan tidak akan nampak terjadi perubahan. Untuk sourcenya ditulis dengan MatLab tapi gak sempet upload.... habisnya ngeditnya lamaaaaa...... Tapi sementara baru aku buat untuk format BMP.