Escolar Documentos
Profissional Documentos
Cultura Documentos
Nurul Zukhaila
Nurul Indrianingsih
Selvidiah Mutiara Siti Rupiah
Desain Form
Algoritma
Untuk Mengenkripsikan plaintext Inputkan bit geser atau kunci pergeseran yang diinginkan Inputkan plaintext. Apabila plaintext berupa data klik browse, pilih data yang ingin dienkripsikan Klik Enkripsi untuk mengkonversi plaintext pada Text1 sesuai dengan pergeseran yang telah kita inputkan dalam bit geser, hasil enkripsi(CipherText) dari Text1 akan tampil pada Text2. Klik Save untuk menyimpan hasil enkripsi Untuk mendeskripsikan ciphertext Inputkan bit geser atau kunci pergeserannya Inputkan ciphertext. Apabila ciphertext berupa data klik browse, pilih data yang ingin dideskripsikan Klik Deskripsi untuk mengkonversi ciphertext pada Text3 sesuai dengan kunci pergeserannya, hasil deskripsi(plainText) dari Text3 akan tampil pada Text4. Klik Save untuk menyimpan hasil deskripsi
Pseudocode
ENKRIPSI Input(bit_geser) Input(Plaintext) x Timer For i 1 To Len(text1.Text) k Asc(Mid(text1.Text, i, i)) If ((k >= 65) And (k <= 90)) Then jk 65 m (j + bit) Mod 26 k m + 65 ElseIf ((k >= 97) And (k <= 122)) Then j k 97 m (j + bit) Mod 26 k m + 97 End If C C & Chr(k) text2.Text C Label7.Caption Len(text1.Text) & " karakter" Next i y Timer z CDbl(y) - CDbl(x) Label8.Caption z If text1.Text "" Then MsgBox "PLAINTEXT BELUM DIINPUTKAN" text1.SetFocus End If Output(ciphertext)
bit Val(Textbit.Text)
If Textbit.Text "" Then MsgBox "BIT GESER BELUM DIINPUTKAN" ElseIf Mid(Textbit.Text, 1, 1) "-" Then If Not IsNumeric(Mid(Textbit.Text, 2, 2)) Then MsgBox "INPUT SALAH" Else bit 26 - (Mid(Textbit.Text, 2, 2)) End If ElseIf Asc(Textbit.Text) < 45 Or (Asc(Textbit.Text) > 45 And Asc(Textbit.Text) < 48) Or Asc(Textbit.Text) > 122 Or (Asc(Textbit.Text) > 57 And Asc(Textbit.Text) < 65) Or (Asc(Textbit.Text) > 90 And Asc(Textbit.Text) < 95) Then MsgBox "INPUT SALAH" ElseIf Not IsNumeric(Textbit.Text) Then bit (Asc(UCase(Textbit.Text)) - 13) Mod 26 End If
DESKRIPSI Input(bit_geser) Input(ciphertext) x Timer bit Val(Textbit.Text) If Textbit.Text "" Then MsgBox "BIT GESER BELUM DIINPUTKAN" ElseIf Mid(Textbit.Text, 1, 1) "-" Then If Not IsNumeric(Mid(Textbit.Text, 2, 2)) Then MsgBox "INPUT SALAH" Else bit 26 - (Mid(Textbit.Text, 2, 2)) End If ElseIf Asc(Textbit.Text) < 45 Or (Asc(Textbit.Text) > 45 And Asc(Textbit.Text) < 48) Or Asc(Textbit.Text) > 122 Or (Asc(Textbit.Text) > 57 And Asc(Textbit.Text) < 65) Or (Asc(Textbit.Text) > 90 And Asc(Textbit.Text) < 95) Then MsgBox "INPUT SALAH" O(1) ElseIf Not IsNumeric(Textbit.Text) Then bit (Asc(UCase(Textbit.Text)) + 13) Mod 26 End If
For i 1 To Len(text3.Text) k = Asc(Mid(text3.Text, i, i)) If ((k >= 65) And (k <= 90)) Then j k 65 m ((bit + j) Mod 26) - ((2 * bit) Mod 26) If m < 0 Then k 91 + m Else k65 + m End If ElseIf ((k >= 97) And (k <= 122)) Then j k 97 m ((j + bit) Mod 26) - ((2 * bit) Mod 26) If m < 0 Then k 123 + m Else k m + 97 End If End If C C & Chr(k) text4.Text C Label10.Caption = Len(text3.Text) & " karakter" Next i y Timer z CDbl(y) - CDbl(x) Label8.Caption z If text1.Text "" Then MsgBox "CIPHERTEXT BELUM DIINPUTKAN" text1.SetFocus End If Output(Plaintext)
Kompleksitas Waktu
ENKRIPSI Input(bit_geser) Input(Plaintext) x Timer bit Val(Textbit.Text) If Textbit.Text "" Then O(1) O(1) O(1) O(1) For i 1 To Len(text1.Text) k Asc(Mid(text1.Text, i, i)) If ((k >= 65) And (k <= 90)) Then jk 65 m (j + bit) Mod 26 k m + 65 ElseIf ((k >= 97) And (k <= 122)) Then j k 97 m (j + bit) Mod 26 k m + 97 End If C C & Chr(k) text2.Text C Label7.Caption Len(text1.Text) & " karakter" Next i y Timer z CDbl(y) - CDbl(x) Label8.Caption z If text1.Text "" Then MsgBox "PLAINTEXT BELUM DIINPUTKAN text1.SetFocus End If Output(ciphertext)
O(n)
O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(1) O(1) O(1)
O(1)
O(1)
O(1)
O(1)
ElseIf Asc(Textbit.Text) < 45 Or (Asc(Textbit.Text) > 45 And Asc(Textbit.Text) < 48) Or Asc(Textbit.Text) > 122 Or (Asc(Textbit.Text) > 57 And Asc(Textbit.Text) < 65) Or (Asc(Textbit.Text) > 90 And Asc(Textbit.Text) < 95) Then MsgBox "INPUT SALAH" O(1)
DESKRIPSI Input(bit_geser) Input(ciphertext) x Timer bit Val(Textbit.Text) O(1) O(1) O(1) O(1)
For i 1 To Len(text3.Text) k = Asc(Mid(text3.Text, i, i)) If ((k >= 65) And (k <= 90)) Then j k 65 m ((bit + j) Mod 26) - ((2 * bit) Mod 26) If m < 0 Then k 91 + m Else k65 + m End If ElseIf ((k >= 97) And (k <= 122)) Then j k 97 m ((j + bit) Mod 26) - ((2 * bit) Mod 26) If m < 0 Then k 123 + m Else k m + 97 End If End If C C & Chr(k) text4.Text C Label10.Caption = Len(text3.Text) & " karakter Next i y Timer z CDbl(y) - CDbl(x) Label8.Caption z If text1.Text "" Then MsgBox "CIPHERTEXT BELUM DIINPUTKAN text1.SetFocus End If Output(Plaintext)
O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(n) O(1) O(1) O(1) O(1)
Tabel Percobaan
Banyaknya Karakter
GRAFIK
Kesimpulan
Berdasarkan analisis kompleksitas waktu pseudocode di atas menunjukan bahwa kompleksitas waktu program enkripsi dan deskripsi kelompok kami adalah O(n). Selain itu, grafik kompleksitas diatas juga menunjukan grafik lurus (y=x) namun mendekati grafik (y=x2). Dapat kita simpulkan bahwa kompleksitas waktu program di atas adalah O(n).