Rabu, 28 Juni 2023

Kriptografi Klasik Caesar Cipher dan Implementasinya dengan Pemrograman Python

Kriptografi, sebagai ilmu dan seni mengamankan informasi rahasia, telah menjadi bagian tak terpisahkan dari sejarah manusia. Sebelum era computer modern, algoritma kriptografi disebut sebagai kriptografi klasik. Kriptografi klasik adalah cara orang-orang terdahulu melindungi pesan rahasia mereka dan juga menjadi landasan bagi pengembangan teknik kriptografi modern yang lebih kompleks saat ini. Salah satu bentuk kriptografi klasik yang paling terkenal adalah sandi substitusi. Dalam sandi substitusi, setiap huruf dalam pesan digantikan dengan huruf lain berdasarkan aturan tertentu. Sebagai contoh, salah satu bentuk sandi substitusi yang terkenal adalah sandi Caesar Cipher, yang dinamai dari Julius Caesar. Dalam sandi ini, setiap huruf digeser sejumlah langkah tertentu dalam alfabet. Misalnya, jika geserannya adalah 3, maka huruf A akan digantikan dengan huruf D, huruf B dengan huruf E, dan seterusnya. Pesan yang telah dienkripsi dengan sandi Caesar hanya dapat dibaca oleh orang yang mengetahui aturan geseran tersebut. Namun, sandi substitusi memiliki kelemahan yang dapat dieksploitasi. Jika seseorang berhasil menebak aturan penggantian yang digunakan, mereka dapat dengan mudah membaca pesan yang dienkripsi. Berikut ini implementasi sandi Caesar Cipher dengan pemrograman python.


def encrypt(text, shift):
encrypted_text = ""
for char in text:
if char.isalpha():
if char.islower():
encrypted_text += chr((ord(char) - ord('a') + shift) % 26 + ord('a'))
else:
encrypted_text += chr((ord(char) - ord('A') + shift) % 26 + ord('A'))
else:
encrypted_text += char
return encrypted_text

def decrypt(encrypted_text, shift):
decrypted_text = ""
for char in encrypted_text:
if char.isalpha():
if char.islower():
decrypted_text += chr((ord(char) - ord('a') - shift) % 26 + ord('a'))
else:
decrypted_text += chr((ord(char) - ord('A') - shift) % 26 + ord('A'))
else:
decrypted_text += char
return decrypted_text
plain_text = input("Masukkan pesan: ")
shift_amount = int(input("Masukkan jumlah pergeseran(Sandi): "))
encrypted = encrypt(plain_text, shift_amount)
print("Pesan terenkripsi:", encrypted)
decrypted = decrypt(encrypted, shift_amount)
print("Pesan terdekripsi:", decrypted)

Jumat, 16 Juni 2023

Source Code Python untuk Mencari Luas dan Keliling

Berikut ini source code python untuk contoh mencari luas dan keliling suatu bidang. silakan dikoreksi atau dimodifikasi apabila terdapat kesalaha.

import math

def calculate_area(shape):
if shape == "persegi":
side = float(input("Panjang sisinya yaitu: "))
area = side ** 2
print("Luas persegi ini adalah:", area)
elif shape == "segitiga":
side1 = float(input("Panjang sisi pertama: "))
side2 = float(input("Panjang sisi kedua: "))
side3 = float(input("Panjang sisi ketiga: "))
s = (side1 + side2 + side3) / 2
area = math.sqrt(s * (s - side1) * (s - side2) * (s - side3))
print("Luas segitiga ini adalah:", area)
elif shape == "lingkaran":
radius = float(input("Jari-jari lingkarannya: "))
area = math.pi * radius ** 2
print("Luas lingkaran ini adalah:", area)
else:
print("Maaf kami tidak menemukan bidang yang dimaksud.")

def calculate_circumference(shape):
if shape == "persegi":
side = float(input("Panjang sisinya adalah: "))
circumference = 4 * side
print("Keliling persegi ini adalah:", circumference)
elif shape == "segitiga":
side1 = float(input("Masukkan panjang sisi pertama: "))
side2 = float(input("Masukkan panjang sisi kedua: "))
side3 = float(input("Masukkan panjang sisi ketiga: "))
circumference = side1 + side2 + side3
print("Keliling segitiga ini adalah:", circumference)
elif shape == "lingkaran":
radius = float(input("Jari-jari lingkaran yang akan dihitung kelilingnya: "))
circumference = 2 * math.pi * radius
print("Keliling lingkaran ini adalaha:", circumference)
else:
print("Maaf, kami tidak menemukan bidang ini.")

shape = input("masukkan bidang yang akan dihitung: ")
calculate_area(shape)
calculate_circumference(shape)

Kamis, 15 Juni 2023

Uji ANOVA dengan menggunakan Python

 Berikut ini contoh source code Python untuk uji ANOVA

import scipy.stats as stats

# definisikan data setiap grup
grup1 = [1, 2, 3, 4, 5]
grup2 = [2, 4, 6, 8, 10]
grup3 = [3, 6, 9, 12, 15]

# Lakukan uji ANOVA
f_statistic, p_value = stats.f_oneway(grup1, grup2, grup3)

# definisikan derajat kebebasan
df_between = 2
df_within = 12

# definisikan level signifikansi
alpha = 0.05

# hitung nilai kritis F
f_critical = stats.f.ppf(1 - alpha, df_between, df_within)

# tampilkan hasilnya
print("F-statistic:", f_statistic)
print("p-value:", p_value)
print("Critical F-value:", f_critical)

Jika nilai F-statistik (F-statistic) lebih besar dari nilai F-kritis (critical F-value), hipotesis nol ditolak sehingga tidak ada perbedaan signifikan dalam rata-rata tiap grup.