Sabtu, 17 Oktober 2009

Transposition Cipher

Transposition ciphers mengatur ulang huruf-huruf dari plaintext tanpa menggantinya. Sebagai contoh, transposition cipher yang sangat sederhana adalah the rail fence, di mana plaintext ditulis per huruf dalam dua baris dan kemudian dibaca per baris untuk dijadikan ciphertext.

The rail fence adalah contoh sederhana dari jenis transposition ciphers yang disebut juga dengan route ciphers. Umumnya, di route ciphers elemen-elemen plaintext (biasanya per huruf) ditulis ke dalam bentuk matriks yang disetujui oleh pengirim (transmitter) dan penerima (receiver).

Contoh berikut ini menggunakan kunci kata CIPHER, sebuah matriks dapat ditulis seperti berikut ini:


C I P H E R
1 4 5 3 2 6
B U K U
P
E S A N A N

T E L A H
D I K I R I
M





Tidak seperti sebelumnya, plaintext ditulis secara normal dari kiri ke kanan, dan ciphertext-nya akan dibaca dari atas ke bawah (per kolom). Urutan di mana kolom akan ditulis dari ciphertext disesuaikan dengan urutan kuncinya. Matriks di atas akan menghasilkan ciphertext: BE DM AAR UNLI USTIKAEK.

Kolom pertama C dalah pendahulu dalam urutan alphabet dibanding dengan huruf-huruf lainnya dalam kata “CIPHER”. Diikuti dengan kolom kedua E, dan seterusnya. Keamanan dalam metode enkripsi ini dapat ditingkatkan dengan enkripsi ulang hasil cipher dengan menggunakan transposisi lain. Hal itu dimungkinkan karena setiap hasil transposisi yang berupa ciphertext dapat ditransposisi dengan kunci lainnya untuk menghasilkan ciphertext berikutnya.


Berikut penerapannya dalam Visual Basic




Private Sub cmdDekripsi_Click()
'koneksi database
Adodc1.RecordSource = "select * from posisi"
Adodc1.Refresh

'hitung jumlah karakter pesan
p = Len(Trim(txtCipher.Text))
dpesan.Text = p

'hitung jumlah karakter kunci
k = Len(Trim(txtKunci.Text))
dkunci.Text = k

'hitung npembagi
npembagi = p / k
sisabagi = p Mod k
If sisabagi > 0 Then
npembagi = npembagi + 1
End If

'hitung jumlah record
jumlahrecord = Adodc1.Recordset.RecordCount

'hapus jika record telah berisi data
If jumlahrecord > 0 Then
For c = 1 To jumlahrecord
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
Next c
End If

'MEMASUKKAN KE DALAM DATABASE
'Menulis secara Horisontal/Berdasarkan record
'masukkan kata kunci dalam database
a = 1
For i = 1 To k
Adodc1.Recordset.AddNew
karkunci = Mid(txtKunci.Text, a, 1)
Adodc1.Recordset.Fields(1) = karkunci
a = a + 1
Adodc1.Recordset.Update
Next i
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.MoveNext

'Mengurutkan Kunci secara Ascending
Adodc1.RecordSource = "SELECT * FROM posisi ORDER BY 2 ASC"
Adodc1.Refresh


'Memasukkan CipherText dalam database
Adodc1.Recordset.MoveFirst
b = 1
For d = 1 To k
For e = 2 To npembagi + 1
Data = Mid(txtCipher.Text, b, 1)
Adodc1.Recordset.Fields(e) = Data
b = b + 1
Cipher = Cipher + Data
Next e
Adodc1.Recordset.MoveNext
Adodc1.Recordset.Update
On Error Resume Next
Next d

'Mengurutkan index secara Ascending
Adodc1.RecordSource = "SELECT * FROM posisi ORDER BY 1 ASC"
Adodc1.Refresh
'MEMBACA DATABASE
'Membaca secara Vertikal
'Perulangan untuk pengambilan karakter enkripsi
Adodc1.Refresh
For d = 2 To npembagi + 1
For e = 1 To Adodc1.Recordset.RecordCount
If Adodc1.Recordset.Fields(d) = " " Then
Data = " "
Else
Data = Adodc1.Recordset.Fields(d)
End If
pesan = pesan + Data
Adodc1.Recordset.MoveNext

'Masukkan hasil enkripsi ke CipherText
txtPesan2.Text = pesan
Next e
Adodc1.Recordset.MoveFirst
Next d
End Sub

Private Sub cmdEnkripsi_Click()
'koneksi database
Adodc1.RecordSource = "select * from posisi"
Adodc1.Refresh

'hitung jumlah karakter pesan
p = Len(Trim(txtPesan.Text))
epesan.Text = p

'hitung jumlah karakter kunci
k = Len(Trim(txtKunci.Text))
ekunci.Text = k

'hitung npembagi
npembagi = p / k
sisabagi = p Mod k
If sisabagi > 0 Then
npembagi = npembagi + 1
End If

'hitung jumlah record
jumlahrecord = Adodc1.Recordset.RecordCount

'hapus jika record telah berisi data
If jumlahrecord > 0 Then
For c = 1 To jumlahrecord
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
Next c
End If

'MEMASUKKAN KE DALAM DATABASE
'Penulisan Secara Vertikal
'masukkan kata kunci dalam database
a = 1
For i = 1 To k
Adodc1.Recordset.AddNew
karkunci = Mid(txtKunci.Text, a, 1)
Adodc1.Recordset.Fields(1) = karkunci
a = a + 1
Adodc1.Recordset.Update
Next i

'masukkan kata pesan dalam database
Adodc1.Recordset.MoveFirst
a = 1
For i = 2 To npembagi + 2
For j = 1 To k
'Isi sebagai data kosong ketika pesan telah habis
If a <= p Then
karkunci = Mid(txtPesan.Text, a, 1)
Adodc1.Recordset.Fields(i) = karkunci
a = a + 1
Else
karkunci = " "
Adodc1.Recordset.Fields(i) = karkunci
End If

'Memasukkan data
If j < k Then
Adodc1.Recordset.Update
Adodc1.Recordset.MoveNext
Else
Adodc1.Recordset.Update
End If
Next j
Adodc1.Recordset.MoveFirst
Next i

'Mengurutkan Kunci secara Ascending
Adodc1.RecordSource = "SELECT * FROM posisi ORDER BY 2 ASC"
Adodc1.Refresh

'MEMBACA DATABASE
'Membaca Database secara Horisontal(Membaca masing-masing record)
k = Len(Trim(txtKunci.Text))

'perulangan untuk record berikutnya
For c = 1 To k
For d = 2 To npembagi + 2
If Adodc1.Recordset.Fields(d) = " " Then
Data = " "
Else
Data = Adodc1.Recordset.Fields(d)
End If
pesan = pesan + Data
txtCipher.Text = pesan
Next d
Adodc1.Recordset.MoveNext
Next c
Adodc1.Recordset.MoveFirst

End Sub

Private Sub txtKunci_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub txtPesan_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub txtCipher_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Selasa, 08 September 2009

Contoh Kriptografi

• Caesar Cipher
Algoritma ini pertama kali digunakan oleh Julius Caesar, dan disebut juga sebagai Shift Cipher, yaitu dengan cara menggeser urutan abjadnya.
→ Plaintext : ABCDEFGHIJKLMNOPQRSTUVWXYZ
→ Cipher : DEFGHIJKLMNOPQRSTUVWXYZABC
Algoritma Caesar Cipher
Contoh:
Plain Text : RAHASIA
Cipher : UDKDVLD


Vigenere Cipher
Vigenere Cipher ditemukan oleh Blaise de Vigenere pada abad ke 16. Untuk menggunakan algoritma ini, maka diperlukan sebuah tabel vigenere dimana kolom paling kiri tabel menyatakan huruf-huruf kunci, sedangkan baris paling atas menyatakan huruf-huruf plaintext dan setiap baris di dalam tabel menyatakan huruf-huruf ciphertext.
Tabel Vigenere Chiper

Download Program Enkripsi dengan Metode Caesar Cipher dan Metode Vigenere Cipher

Kriptografi

Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Menurut Bruce Scheiner dalam bukunya "Applied Cryptography", kriptografi adalah ilmu pengetahuan dan seni menjaga message-message agar tetap aman (secure).

Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:

· Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.

· Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).

· Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.

· Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).


Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :

  • Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).
  • Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.
  • Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.
  • Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli.
  • Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.

Diagram Proses Enkripsi dan Dekripsi

Kamis, 04 Juni 2009

Tugas Akhir Semester 4

Tugas akhir semester 4 adalah melanjutkan tugas sebelumnya dengan menambahkan field "status". Pertama buat field status pada database.

Berikut koding tambahannya:

tampilan package pada JENI MVC


Buka Guru.java pada package jeni.struts.seminar.bean. Tambahkan “private int Status;”
Lakukan Enkaptulasi(getter and setter). Hasilnya seperti gambar di atas.



Pada file GuruAction.java dalam package jeni.struts.seminar.action tambahkan seperti gambar di atas.



Pada file GuruAddAction.java dalam package jeni.struts.seminar.action tambahkan seperti gambar di atas.



Pada file EditGuruAction.java dalam package jeni.struts.seminar.action tambahkan seperti gambar di atas.




Pada file GuruMySQLDAO.java dalam package jeni.struts.dao.guru tambahkan seperti gambar di atas. Untuk perintah INSERT dan UPDATE silahkan diteruskan sendiri.



Pada file GuruForm.java dalam package jeni.struts.seminar.form tambahkan seperti gambar di atas.

Untuk tampilan dalam file .jsp silahkan dimodifikasi sendiri.
Setelah selesai jalankan project tersebut. Untuk field status pada kategori guru sudah berhasil ditambahkan.
Selamat Mencoba!!!

Rabu, 27 Mei 2009

Tugas JENI

Tugas JENI semester 4 dapat di lihat DISINI
(Untuk tugas akhir belum saya upload)

Silahkan login dengan
Username : cherys
Password : chery


Untuk MySQL silahkan klik DISINI
Silahkan login dengan
Username : root
Password : amik

Rabu, 22 April 2009

Modern Technology creates Dependence

In this occasion, let me say my opinion about modern technology creates dependency. I agree that modern technology creates dependency. Technology as one of the developments of civilization and culture can not be avoided to be developed in line with human needs. Development of the technology does not depend on the age and place. Technology is also improving efficiency in various fields, especially in the problem of time, effort and cost through speed and accuracy of the information, and physical performance can be improved dramatically.

The impact of the modern technology can be felt by all people, from the sophistication audio video, television, air conditioner, mobile phone, ipod, computer equipment up to household. Almost all commodities mention offer dependency towards the human body that seems it needs to be touched of dependency every times. There is a problem appeared because of such dependency phenomena, as there are many people get trouble because AC is not working, there is no mobile phone signal, the computer hangs, the email is blocked, until the water heater does not work. It's impossible to mention the real difficulties one by one. Inconvenience conditions make them feel uncomfortable. It shows there is a great depending towards technology.

Tips that can be given to reduce the influence of technology the dependency are being critical and not to be just a follower to the modern technology in order to decrease of trends. Try to always ask about the effects of each modern technology. And also consider several factors, those are: family environmental, community, and the future.

by TheWhy

Selasa, 03 Maret 2009

Hasil Ujian JENI

Gradebook Information


Material Score Details Taken Date From Class
Binary Weight
1. Dasar-Dasar Pemrograman 103.00 85.83 2008-08-11 Jeni1_Kbm1
2. Struktur Kontrol 62.67 78.33 2008-08-18 Jeni1_Kbm1
3. JAVA Array 40.00 83.33 2008-08-11 Jeni1_Kbm1
4. JAVA Class 68.00 85.00 2008-08-11 Jeni1_Kbm1
5. Pewarisan dan Polimorphism 63.00 78.75 2008-08-16 Jeni1_Kbm1
6. Exception dan Assertions 53.33 78.43 2008-08-15 Jeni1_Kbm1
7. Tour Package java.lang 64.00 94.12 2008-08-11 Jeni1_Kbm1
8. Thread 44.00 78.57 2008-08-14 Jeni1_Kbm1
9. JAVA GUI 80.00 86.96 2008-08-12 Jeni1_Kbm1
10. IO Lanjut - Jaringan 80.00 80.00 2008-08-16 Jeni1_Kbm1
11. Skill Exam 0.00 80.00 2008-08-18 Jeni1_Kbm1
12. Course Feedback JENI V V 2008-08-18 Jeni1_Kbm1
13. FINAL EXAM JENI 140.67 70.33 2008-08-18 Jeni1_Kbm1

Material Score Details Taken Date From Class
Binary Weight
1. Pengenalan Java ME 72.00 90.00 2009-02-24 02Jeni2_Kbm1
2. High Level GUI 88.00 88.00 2009-02-24 02Jeni2_Kbm1
3. Low Level GUI 60.00 75.00 2009-02-25 02Jeni2_Kbm1
4. Persistence 98.00 94.23 2009-02-24 02Jeni2_Kbm1
5. Jaringan 46.00 82.14 2009-02-24 02Jeni2_Kbm1
6. JENI 2 FINAL EXAM 158.00 79.00 2009-02-25 02Jeni2_Kbm1
7. JENI 2 SKILL EXAM 0.00 80.00 2009-02-25 02Jeni2_Kbm1
8. Course Feedback V V 2009-02-25 02Jeni2_Kbm1

Material Score Details Taken Date From Class
Binary Weight
1. Pengenalan Pemrograman Web 72.67 90.83 2009-03-01 03Jeni3_Kbm1
2. Servlet 110.00 70.51 2009-03-03 03Jeni3_Kbm1
3. JSP, JDBC, dan SQL 154.00 89.53 2009-03-02 03Jeni3_Kbm1
4. JDBC 34.00 77.27 2009-03-01 03Jeni3_Kbm1
5. MVC dan Struts 170.67 90.78 2009-03-02 03Jeni3_Kbm1
6. MVC JSF 16.00 80.00 2009-03-01 03Jeni3_Kbm1
7. Final Exam JENI 3 151.33 83.15 2009-03-02 03Jeni3_Kbm1
8. JENI 3 SKILL EXAM 0.00 0.00 2009-03-02 03Jeni3_Kbm1
9. JENI 3 - Course Feedback V V 2009-03-02 03Jeni3_Kbm1

Selasa, 17 Februari 2009

Tentang MySQL

Structured Query Language (SQL) adalah salah satu dari sekian banyak bahasa pemrograman database yang paling popular. SQL merupakan bahasa pemrograman yang gratis dan mudah digunakan. SQL dibagun di laboratorium IBM San Jose California pada tahun 1970-an. SQL pertama kali dikembangkan sebagai bahasa pada database DB2 dan saat ini masih merupakan produk andalan IBM. SQL memungkinkan Anda untuk membuat database sekaligus mengelolanya, yaitu menambah, menghapus, mengubah, mencari data, dan lain sebagainya.

MySQL adalah sebuah bahasa program database server yang mampu menerima dan mengirimkan data dengan cepat dengan menggunakan perintah-perintah SQL. Di dalam MySQL terdapat 3 subbahasa, yaitu Data Definition Language (DDL), Data Manipulation Language (DML), dan Data Control Language (DCL).

  • Data Definition Language (DDL)
    1. Data Definition Language (DDL) adalah kumpulan perintah yang digunakan untuk membangun database. Dengan kata lain, suatu bentuk bahasa yang digunakan untuk mendefinisikan suatu tabel. Jadi, dengan bahasa ini, Anda akan mampu menciptakan database dari tabel.

  • Manipulation Language (DML)
    1. DML berfingsi setelah DDL digunakan. Apabila DDL digunakan untuk membuat database dan tabel serta mengubah struktur tabel, maka DML digunakan untuk memanipulasi dan mengelola isi/data dalam sebuah database. Query/statement yang digunakan dalam DML antara lain INSERT untuk memasukkan data, SELECT untuk memilih data, UPDATE untuk memperbarui data, dan DELETE untuk menghapus data.

  • Data Control Language (DCL)
    1. Setelah memahami perintah-perintah DDL dan DML, selanjutnya Anda akan mempelajari perintah yang digunakan untuk keperluan keamanan database dengan membuat hak akses tertentu bagi setiap user. Perintah-perintah ini disebut DCL, yaitu perintah Grant dan Revoke.
      GRANT
      Grant adalah perintah yang digunakan untuk memberikan hak-hak akses tertentu kepada seorang user. Grant diberikan oleh user yang mempunyai hak untuk memberikan Grant atau administrator (root).
      REVOKE
      Revoke merupkan kebalikan dari Grant, yaitu perintah untuk mencabut hak-hak untuk mengakses seluruh atau sebagian database.



    Selasa, 10 Februari 2009