Kamis, 11 Januari 2018

Implementasi Kriptografi Menggunakan Algoritma Caesar Chiper dan Visual Basic .Net

Tidak ada komentar:
Pada dunia kriptografi terdapat jenis dan ragam algoritma yang dapat digunakan untuk mengenkripsi dan mendeskripsikan ulang data yang dianggap rahasia. Dalam kriptografi, sandi Caesar, atau sandi geser, kode Caesar atau Geseran Caesar adalah salah satu teknik enkripsi paling sederhana dan paling terkenal. Sandi ini termasuk sandi substitusi dimana setiap huruf pada teks terang (plaintext) digantikan oleh huruf lain yang memiliki selisih posisi tertentu dalam alfabet. Misalnya, jika menggunakan geseran 3, W akan menjadi Z, I menjadi L, dan K menjadi N sehingga teks terang "wiki" akan menjadi "ZLNL" pada teks tersandi. Nama Caesar diambil dari Julius Caesar, jenderal, konsul, dan diktator Romawi yang menggunakan sandi ini untuk berkomunikasi dengan para panglimanya.

Diatas mungkin sedikit penjelasan tentang algoritma Caesar Chiper. Kali ini saya akan membuat contoh penggunaan kriptografi menggunakan algoritma Caesar Chiper dan Visual Basic. Net. Buat sebuah project dengan nama CaesarChiper dan desai form menjadi seperti dibawah ini
Buat dua sebuah routin function yang masing - masing berfungsi untuk mengenkripsi dan mendeskripsikan teks.

a. Fungsi Enskripsi
     Public Function Encrypt(ByVal PlainText As String, ByVal Key As Integer) As String
        Dim PlainChar() As Char = PlainText.ToCharArray()
        Dim Ascii(PlainChar.Length) As Integer

        For Count As Integer = 0 To PlainChar.Length - 1
            Ascii(Count) = Asc(PlainChar(Count))
            If Ascii(Count) >= 65 And Ascii(Count) <= 90 Then
                Ascii(Count) = ((Ascii(Count) - 65 + Key) Mod 26) + 65
            ElseIf Ascii(Count) >= 97 And Ascii(Count) <= 122 Then
                Ascii(Count) = ((Ascii(Count) - 97 + Key) Mod 26) + 97
            End If
            PlainChar(Count) = Chr(Ascii(Count))
        Next

        Return PlainChar
    End Function

b. Fungsi Deskripsi
     Public Function Decrypt(ByVal CipherText As String, ByVal Key As Integer) As String
        Dim CipherChar() As Char = CipherText.ToCharArray()
        Dim Ascii(CipherChar.Length) As Integer

        For Count As Integer = 0 To CipherChar.Length - 1
            Ascii(Count) = Asc(CipherChar(Count))
            If Ascii(Count) >= 65 And Ascii(Count) <= 90 Then
                Ascii(Count) = ((Ascii(Count) - 65 - (Key Mod 26) + 26)) Mod 26 + 65
            ElseIf Ascii(Count) >= 97 And Ascii(Count) <= 122 Then
                Ascii(Count) = (((Ascii(Count) - 97 - (Key Mod 26) + 26)) Mod 26) + 97
            End If
            CipherChar(Count) = Chr(Ascii(Count))
        Next

        Return CipherChar
    End Function

Klik dua kali pada tombol Enkripsi lalu ketikkan kode berikut :
    Private Sub btnEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncrypt.Click
        If txtTeks.Text.Trim = "" Or txtKey.Text.Trim = "" Then
            MessageBox.Show("Masukkan teks dan kunci untuk dienkripsi!", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Else
            Try
                txtHasil.Text = Encrypt(txtTeks.Text.Trim, txtKey.Text.Trim)
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End If
    End Sub

Klik dua kali pada tombol Deskripsi lalu ketikkan kode berikut :
    Private Sub btnDecrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecrypt.Click
        If txtHasil.Text.Trim = "" Or txtKey.Text.Trim = "" Then
            MessageBox.Show("Masukkan teks dan kunci untuk dideskripsi!", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Else
            Try
                txtHasil.Text = Decrypt(txtTeks.Text.Trim, txtKey.Text.Trim)
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End If
    End Sub

Jalankan program dan masukkan contoh kata maupun kalimat kedalam kotak teks. Isi dari kunci sebatas angka tidak bisa huruf maupun kombinasi angka dan huruf. Klik tombol Enkripsi maka hasilnya seperti berikut
Untuk mengembalikan teks hasil enkripsi tadi, salin teks dari kotak Hasil dan tempelkan ke kotak Teks kemudian klik tombol Deskripsi dan hasilnya bisa dilihat pada gambar berikut
Metode ini bisa diterapkan pada model enkripsi password login pada sistem anda. Namun algoritma ini masih sederhana sehingga perlu pengembangan lebih lanjut agar lebih sulit dipecahkan ketika ada pihak - pihak tidak bertanggung jawab yang ingin mendeskripsi password anda secara ilegal.

Jumat, 15 Desember 2017

Mengubah Karakter Field pada SQL Server

Tidak ada komentar:
Pada SQL Server terdapat banyak fungsi dan manfaatnya. Salah satunya adalah fungsi REPLACE yang berfungsi untuk mengubah karakter maupun kata dalam sebuah field sesuai yang kita inginkan. Saya ingin mengubah kata 'boxes' pada field QuantityPerUnit menjadi 'dus', perhatikan contoh dibawah ini :
SELECT ProductName,UnitPrice,QuantityPerUnit,
REPLACE(QuantityPerUnit,'boxes','dus') AS Change
FROM [products] 
WHERE QuantityPerUnit like '%boxes%'
Ketika saya jalankan perintah diatas maka secara otomatis akan mengubah karakter ataupun kata yang akan diubah, namun hasilnya bukanlah mengubah langsung pada field yang dimaksud melainkan sifatnya sementara. Berikut hasilnya
Anda bisa menyesuaikan fungsi diatas sesuai dengan case yang terdapat pada sistem anda. Selamat mencoba.

Senin, 04 Desember 2017

Membuat Fungsi Pencarian Data dengan Visual Basic .Net

Tidak ada komentar:
Sebuah sistem hendaknya dibangun dengan konsep User Friendly atau mudah digunakan. Aktifitas yang biasa dilakukan pengguna adalah mencari data - data yang telah lalu dengan tujuan mungkin untuk analisa data dan sebagainya. Untuk menambahkan fungsi pencarian data pada program ikuti langkah - langkah dibawah ini :

1. Buat sebuah projek pada Visual Basic .Net dengan nama Pencarian.sln.
2. Desain antar muka seperti dibawah ini.
3. Buat sebuah SubRoutin dengan nama Pencarian, kemudian ketikkan listing berikut
Private Sub Pencarian()
  Dim CnnDb As New OleDbConnection(My.Settings.Koneksi)
  CnnDb.Open()

  Dim str As String = "SELECT Orders.OrderID, Orders.OrderDate,Customers.CompanyName," & _
  "Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity " & _
  "FROM Products INNER JOIN ((Customers INNER JOIN Orders " & _
  "ON Customers.CustomerID = Orders.CustomerID) INNER JOIN [Order Details] " & _
  "ON Orders.OrderID = [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID " & _
  "WHERE (((Customers.CompanyName) Like '%" & Me.txtCari.Text &  "%'))"
  Dim adp As New OleDbDataAdapter(str, CnnDb)
  Dim dt As New DataTable
  adp.Fill(dt)
  Me.grid.DataSource = dt
End Sub

4. Klik dua kali pada kontrol textbox dan ketikkan SubRoutin Pencarian yang telah dibuat tadi.

Private Sub txtCari_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCari.TextChanged
   Me.Pencarian()
End Sub

ketikkan juga listing dibawah ini ke dalam routin event klik pada tombol Clear

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
   Me.txtCari.Text = ""
   Me.Pencarian()
End Sub
5. Jalankan program kemudian ketikkan keyword atau kata kunci yang akan dicari.
Pada gambar diatas saya masukkan kata kunci 'carnes' sehingga data yang muncul hanyalah data yang berisi kata 'carnes' berdasarkan pencarian pada field CompanyName. Anda bisa mengganti parameter pencarian berdasarkan field yang diinginkan atau bisa juga dengan kombinasi semua field yang ada. Demikian tutorial singkat kali ini dan semoga membantu.

Rabu, 29 November 2017

Pembacaan Data dengan Label dan Progress Bar pada Visual Basic .Net

Tidak ada komentar:
Dalam membangun sebuah aplikasi diperlukan tampilan yang menarik agar terkesan tidak kaku dan monoton. Ketika aplikasi membaca baris data, kita bisa memanfaatkan kombinasi antara objek Label dan Progress Bar untuk mengetahui proses pembacaan data. Adapun Label berfungsi untuk menampilkan isi data, sedangkan Progress Bar digunakan untuk membaca progres jumlah data yang diproses. Buatlah sebuah project dengan nama LabelProgressBar dan desain tampilan form seperti ini
Klik dua kali pada tombol Proses, kemudian ketikkan listing dibawah ini
Private Sub btnProses_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProses.Click
  Dim cnnDB As New OleDbConnection(My.Settings.Koneksi)
  cnnDB.Open()
  Dim adp As New OleDbDataAdapter(
  "Select od.OrderID,pd.ProductName From [Order Details] od " & _
  "Left Join Products pd On pd.ProductId=od.ProductId " & _
  "Order By od.OrderID", cnnDB)
  Dim dt As New DataTable
  adp.Fill(dt)
  Me.prgBar.Value = 0
  Me.prgBar.Maximum = dt.Rows.Count - 1
  For i As Integer = 0 To dt.Rows.Count - 1
      Me.lblProses.Text = dt.Rows(i)("ProductName")
      Me.lblProses.Update()
      Me.lblRecord.Text = i.ToString & " Record."
      Me.lblRecord.Update()
      Me.prgBar.Value = i
  Next
End Sub
Setelah project dijalankan terlihat hasilnya seperti dibawah ini
Demikian tutorial tentang pembacaan data menggunakan objek label dan progress bar.

Senin, 20 November 2017

Menampilkan Nomor Urut pada DataGriView dengan Visual Basic .Net

Tidak ada komentar:
Pada komponen DataGridView terdapat sebuah class yang berfungsi untuk menampilkan urutan data berupa nomor. Urutan nomor yang dimunculkan tentunya tergantung dari banyak data yang ditampilkan. Hal ini bisa memudahkan bagi pengguna jika ingin melihat jumlah dari baris data yang ada. 
1. Buat sebuah project baru menggunakan Visual Basic .Net dan beri nama DataGridUrut 
2. Desain Form menjadi seperti berikut
3. Klik dua kali pada objek form, kemudian ketikkan listing berikut

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   Dim cnnDb As New OleDbConnection(My.Settings.Koneksi)
   cnnDb.Open()
   Dim adp As New OleDbDataAdapter("Select * from Orders", cnnDb)
   Dim dt As New DataTable
   adp.Fill(dt)
   Me.grid.DataSource = dt
End Sub

4. Kembali ke Design Form klik dua kali pada objek DataGridView. Pada combo box Method Name pilih event CellFormatting
5. Pada routin CellFormatting ketikkan listing

Private Sub grid_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles grid.CellFormatting
  grid.Rows(e.RowIndex).HeaderCell.Value = CStr(e.RowIndex + 1)
End Sub

6. Jalan project dan hasilnya bisa dilihat seperti dibawah ini
Detail nomor urut bisa dilihat pada kolom yang berwarna merah .

Selasa, 14 November 2017

Tips Koneksi Database Menggunakan Model Universal Data Link (UDL) dan Visual Basic .NET

Tidak ada komentar:
A. Membuat dan Menguji koneksi dengan file UDL


Banyak cara yang bisa dilakukan untuk menghubungkan database dengan bahasa pemrograman berbasis desktop apakah menggunakan Visual Basic 6.0/.Net, C#, J# dan lain - lain. Salah satu teknik yang bisa digunakan yaitu dengan memanfaatkan model Universal Data Link (UDL). UDL merupakan sebuah file yang berfungsi untuk membuat dan memverifikasi rangkaian koneksi Data ActiveX Object(ADO) dengan sumber data OLE DB. Dan koneksi yang dibangun terbatas pada driver OLE DB yang termasuk didalammya database SQL Server, Oracle, Access dan Foxpro. Pada artikel ini saya hanya menunjukkan cara koneksi ke database Access dengan file UDL. Berikut langkah - langkahnya :
1. Buat sebuah file UDL dengan cara klik kanan desktop kemudian pilih New -> Text Document.
2. Klik kanan pada file Text Document tadi lalu klik rename. Ganti nama beserta ekstensi file menjadi link.udl sehingga bentuk ikonnya menjadi seperti ini
3. Klik dua kali pada file link.udl akan muncul jendela konfigurasi seperti ini
4. Pilih Microsoft Jet 4.0 OLE DB Provider lalu klik next.
5. Klik tombol browse database dan arahkan letak database anda. Kemudian klik tombol Test Connection, jika muncul pesan Test connection succeeded. berarti koneksi ke database berhasil.
6. Selanjutnya buat sebuah projek dengan Visual Basic.Net dengan nama KoneksiUDL.
7. Desain sebuah Form menjadi seperti ini
8. Klik dua kali pada tombol Test Koneksi kemudian ketikkan lising berikut
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
Try
   Dim udlConn As New OleDb.OleDbConnection
   udlConn.ConnectionString = "File Name=" & Application.StartupPath & "\link.udl;"
   udlConn.Open()
   MsgBox("Koneksi Berhasil...!", MsgBoxStyle.Information, "Perhatian")
Catch ex As Exception
   MsgBox("Ups...Ada kesalahan : " & ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End Sub
9. Jalankan projek anda dan klik tombol Test Koneksi. Jika tidak ada kesalahan pada langkah - langkah diatas maka akan muncul pesan seperti berikut :

B. Memanggil dan Menampilkan Data pada DataGridView dengan File UDL


Setelah berhasil membuat dan menguji koneksi dengan file UDL, selanjutnya saya akan coba menampilkan data dari database yang telah terkoneksi dengan file UDL tadi. Desain form sebelumnya dengan menambahkan 1 objek tombol dan 1 objek DataGridView sehingga menjadi seperti dibawah ini
Klik dua kali pada tombol Tampil Data kemudian ketikkan listing berikut
Private Sub btnTampil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTampil.Click
Try
   Dim udlConn As New OleDb.OleDbConnection
   udlConn.ConnectionString = "File Name=" & Application.StartupPath & "\link.udl;"
   udlConn.Open()

   Dim adp As New OleDb.OleDbDataAdapter("SELECT * FROM Orders", udlConn)
   Dim dt As New DataTable
   adp.Fill(dt)
   Me.dgUDL.DataSource = dt
Catch ex As Exception
   MsgBox("Ups...Ada kesalahan : " & ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End Sub
Jalankan kembali projek anda lalu klik tombol Tampil Data dan hasilnya seperti dibawah ini
Demikian tutorial tentang membuat dan menguji koneksi ke database menggunakan file UDL. Selamat mencoba dan semoga bermanfaat.

Rabu, 11 Oktober 2017

Cara Import Database File MySQL Berukuran Besar dengan PhpMyAdmin

1 komentar:
Dalam dunia pemrograman berbasis web pada umumnya sering kita mendengar istilah PhpMyAdmin yang sering digunakan kebanyakan programer web untuk manajemen database MySQL. PhpMyAdmin merupakan aplikasi manajemen database berbasis web yang berfungsi untuk membuat database, tabel, query, trigger dan lain sebagainya. Namun ada salah satu fungsi dari PhpMyAdmin yang berfungsi untuk mengimport struktur database dalam bentuk file yang didalam file tersebut terdiri dari baris-baris query atau perintah dan apabila baris perintah yang ada pada file tersebut dijalankan maka akan terbentuk sebuah database sistem pada MySQL. Hanya saja dalam pengaturan awal PhpMyAdmin untuk fasilitas import file database ukuran file dibatasi hanya sekitar 2 MB saja, bagaimana bila file yang akan diimport lebih besar?. Pada tutorial ini saya akan berbagi cara mengatasi masalah tersebut. Perlu diketahui bahwa disini saya menggunakan PhpMyAdmin versi 4.0.10, Apache Server versi 2.2 dan database MySQL versi 5.5.11 dan saya berhasil ketika mempraktekkannya.

Sebelumnya saya akan menunjukkan kepada anda ketika saya mengimport database MySQL yang berukuran lebih dari 19 MB dengan pengaturan default PhpMyAdmin, maka sistem akan menolak dengan menampilkan pesan sebagai berikut
Keterangan diatas menjelaskan bahwa file yang kita import terlalu besar dan melampai nilai batas yang telah ditentukan. Untuk mengatasinya ikuti tahapan - tahapan berikut :

1. Buka aplikasi PhpMyAdmin anda.

2. Buat sebuah database dengan mengklik tombol Databases.

3. Masukkan nama database, kemudian pilih Create
Sebelum melangkah ke tahapan import database, terlebih dahulu ubah pengaturan pada file php.ini. Karena saya menggunakan Apache Server sebagai web service, maka biasanya file tersebut terletak di dalam folder Apache\php.

4. Buka file php.ini dengan program editor, disini saya menggunakan Notepad++.

5. Cari baris perintah post_max_size dan pada baris inilah tersimpan pengaturan limit upload database file MySQL. Nilai defaultnya adalah 8MB, sekarang ganti menjadi 128MB.
6. Kemudian cari baris perintah upload_max_filesize, dimana nilai defaulnya adalah 2MB. Ubah nilainya menjadi 200MB atau sesuai keinginan anda.
7. Simpan perubahan file.

8. Reset web service anda bisa melalui Service Manager atau dari Apache Service Monitor dengan mengklik tombol Restart.
9. Buka PhpMyAdmin anda dan jika sebelumnya sudah terbuka, lakukan refresh pada halaman PhpMyAdmin.

10. Klik nama database yang telah dibuat pada panel kiri.

11. Klik tombol Import pada Dashboard.
Perhatikan pada kotak merah, disana tertulis batas maximal database file yang bisa diupload sudah berubah dan mencapai 128MB.

12. Uji pengaturan tadi dengan memilih tombol Browse, kemudian pilih letak database file yang akan diupload.
13. Pilih tombol Go pada bagian bawah halaman dan tunggu hingga proses selesai.
Proses import database file MySQL berhasil dilakukan. Periksa semua objek yang ada pada database baik tabel dan isinya, trigger, procedures, views dan lain - lain apakah sudah sesuai atau tidak dengan isi dari database file yang diimport. Semoga tutorial ini bisa membantu dan bermanfaat bagi anda.

Selasa, 10 Oktober 2017

Fungsi Case When pada SQL Server

Tidak ada komentar:
Untuk menguji suatu nilai field dalam sebuah query, kita bisa menggunakan fungsi Case When pada SQL Server. Sama halnya dengan fungsi If Then, hanya saja fungsi If Then tidak bisa digunakan atau disisipkan dalam baris query. Dalam SQL Server fungsi If Then hanya bisa menguji nilai masukkan, kemudian mengeksekusi perintah apa selanjutnya yang akan dilakukan, sedangkan fungsi Case When bisa disisipkan ke dalam sebuah query. Berikut ini adalah bentuk dari fungsi Case When.
SELECT field1,
CASE 
WHEN [field1] = 1 THEN 'Hasil'
WHEN [field1] = 2 THEN 'Hasil'
WHEN ...
ELSE 'Hasil' END AS [alias]
FROM [table] ORDER BY [field]
Sebagai contoh saya ingin menentukan nilai dari sebuah field yang apabila nilai dari field tersebut adalah 1 maka hasilnya adalah Januari, jika 2 maka Februari dan seterusnya. Buatlah sebuah contoh tabel seperti dibawah ini

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[bulan](
 [idbulan] [int] NOT NULL
 CONSTRAINT [PK_bulan] PRIMARY KEY CLUSTERED 
(
 [idbulan] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

Isi tabel dengan menggunakan perintah berikut

INSERT INTO [bulan] ([idbulan])VALUES(1)
INSERT INTO [bulan] ([idbulan])VALUES(2)
INSERT INTO [bulan] ([idbulan])VALUES(3)
INSERT INTO [bulan] ([idbulan])VALUES(4)
INSERT INTO [bulan] ([idbulan])VALUES(5)
INSERT INTO [bulan] ([idbulan])VALUES(6)
INSERT INTO [bulan] ([idbulan])VALUES(7)
INSERT INTO [bulan] ([idbulan])VALUES(8)
INSERT INTO [bulan] ([idbulan])VALUES(9)
INSERT INTO [bulan] ([idbulan])VALUES(10)
INSERT INTO [bulan] ([idbulan])VALUES(11)
INSERT INTO [bulan] ([idbulan])VALUES(12)

Gunakan perintah SELECT idbulan FROM bulan untuk melihat isi tabel
Sesuai dengan contoh yang saya bahas diatas bahwa saya ingin jika nilai field idbulan adalah 1 maka hasilnya adalah Januari, jika 2 maka hasilnya Februari dan seterusnya.

SELECT idbulan,
CASE 
WHEN idbulan = 1 THEN 'Januari'
WHEN idbulan = 2 THEN 'Februari'
WHEN idbulan = 3 THEN 'Maret'
WHEN idbulan = 4 THEN 'April'
WHEN idbulan = 5 THEN 'Mei'
WHEN idbulan = 6 THEN 'Juni'
WHEN idbulan = 7 THEN 'Juli'
WHEN idbulan = 8 THEN 'Agustus'
WHEN idbulan = 9 THEN 'September'
WHEN idbulan = 10 THEN 'Oktober'
WHEN idbulan = 11 THEN 'Nopember'
ELSE 'Desember' END AS namabulan
FROM bulan ORDER BY idbulan

Jalankan perintah diatas, jika benar maka hasilnya seperti berikut
Penggunaan fungsi Case When tidak terbatas hanya pada satu parameter pengujian saja, bisa juga ditambah lebih dari satu parameter sebagai contoh

SELECT field1,
CASE 
WHEN [field1] = 1 AND [field2] = 3 AND ... THEN 'Hasil'
ELSE 'Hasil' END AS [alias]
FROM [table] ORDER BY [field]

Pada query diatas parameter yang diuji lebih dari satu, sehingga hasil yang diinginkan bisa lebih relevan.