Wednesday, October 26, 2016

Converter Character ASCII Using Python

Code :  Output Program : thumbnail 1 summary
Code : 
#!/usr/bin/env python
#Johan Wahyudi
#Python
def converter(pilihan, character):
if pilihan == "1":
convert = []
for i in range(len(character)):
convert.append(str(ord(character[i])))
decimal = ' '.join(convert)
print "Hasil konversi ke Decimal : "+decimal
biner = []
for i in range(len(convert)):
biner.append(str(bin(int(convert[i]))))
binary = ' '.join(biner)
print "Hasil konversi ke Biner : "+binary
elif pilihan == "2":
ascii = []
l = character.split(' ')
for i in range(len(l)):
ascii.append(chr(int(l[i])))
data_ascii = ''.join(ascii)
print "Hasil Konversi ke Character Ascii :"+data_ascii
binn = []
for i in range(len(l)):
binn.append(bin(int(l[i])))
binner = ' '.join(binn)
print "Hasil konversi ke Biner : "+binner
elif pilihan == "3":
pisah = character.split(' ')
dec = []
for i in range(len(pisah)):
dec.append(str(int(pisah[i], 2)))
desimal =' '.join(dec)
print ("hasil konversi ke Decimal : ")+desimal
ascii_pecah = desimal.split(' ')
char_ascii = []
for i in range(len(ascii_pecah)):
char_ascii.append(chr(int(ascii_pecah[i])))
ascii_fix = ''.join(char_ascii)
print "Hasil konversi ke character Ascii : "+str(ascii_fix)
return exit()
def main():
print "Masukan Format Karakter yang akan di convert"
print " 1. Char Ascii\n 2. Decimal\n 3. Biner"
pilihan = raw_input("Input Option : ")
character = raw_input("Input Character :")
print converter(pilihan, character)
if __name__ == '__main__':
main()
Output Program :


Sunday, October 9, 2016

Classic Cipher : Caesar Cipher Encrypt & Decrypt

Hasil Program dengan menggunakan huruf kecil (lowercase): Hasil Program dengan menggunakan huruf besar (uppercase): Rum... thumbnail 1 summary
#!/usr/bin/env python
#Johan Wahyudi
from string import lowercase, uppercase
def caesar_en(text, key):
result = []
for c in text:
if c in lowercase:
enkripsi = lowercase.index(c)
enkripsi = (enkripsi + key) % 26
result.append(lowercase[enkripsi])
elif c in uppercase:
enkripsi = uppercase.index(c)
enkripsi = (enkripsi + key) % 26
result.append(uppercase[enkripsi])
else:
result.append(c)
return "".join(result)
def caesar_dec(ciphertext, key_dec):
hasil = []
for d in ciphertext:
if d in lowercase:
dekripsi = lowercase.index(d)
dekripsi = (dekripsi - key_dec) % 26
hasil.append(lowercase[dekripsi])
elif d in uppercase:
dekripsi = uppercase.index(d)
dekripsi = (dekripsi - key_dec) % 26
hasil.append(uppercase[dekripsi])
else:
result.append(d)
return "".join(hasil)
def main():
text = raw_input("masukkan text :" )
key = input ("masukkan key :")
print caesar_en(text, key)
print '\nEncrypting \"' + text + '\" dengan ROT' + str(key) + " => " + caesar_en(text, key) + '\n'
ciphertext = raw_input("masukkan ciphertext :" )
key_dec = input("masukkan key :" )
print caesar_dec(ciphertext, key_dec)
print '\nDecrypting \"' + ciphertext + '\" dengan ROT' + str(key_dec) + " => " + caesar_dec(ciphertext, key_dec) + '\n'
if __name__ == '__main__':
main()
Hasil Program dengan menggunakan huruf kecil (lowercase):


Hasil Program dengan menggunakan huruf besar (uppercase):


Rumus Dasar Program :
Rumus Enkripsi :

Rumus Dekripsi :


Ket :
C = Ciphertext , Pesan yang telah di enkripsi
P = PlainText, Pesan asli
K = Key, Kunci sandi
Mod = Modulo

Tabel Nilai huruf caesar cipher :


Penjelasan Program :

di python untuk membuat sebuah function di gunakan keyword def kemudian di ikuti nama functionnya, untuk membuat fungsi enkripsi caesar cipher disini saya menggunakan function caesar_en dengan parameter text dan key. Pada fungsi di atas isi dari parameter text di ubah menjadi array berdasarkan index(c).

Penjelasan Fungsi Mod 26 :

Hasil penjumlahakn dari index(c) dan key di mod (modulo) 26, yang artinya adalah sisa dari hasil bagi, kenapa di mod 26 ? Karena jumlah huruf dalam alfabet yang di gunakan dalam program ini berjumlah 26 huruf, apabila hasil penjumlahan dari index(c) dan key kurang dari 26, maka hasilnya adalah tetap, sedangkan apabila hasil penjumlahan dari index(c) dan key melebihi 26 maka hasil akhir yang di dapat adalah sisa dari 26, kita lihat contoh di bawah ini :

Hasil penjumlahan index(c) dan key kurang dari 26 :


Hasil Penjumlahan index(c) dan key lebih dari 26 :



Tabel Pembuktian (Enkripsi) :


Tabel Pembuktian (Dekripsi) :


untuk penjelasan apa itu Caesar Cipher silahkan cari di wikipedia aja hehe.. capek ane dari ane sekolah sampe kuliah masih aja bahas enkripsi jadul ini -,- .
terima kasih semoga bermanfaat :D