Coding4ever’s Blog

Just coding… coding… and coding… because coding should be fun :)

Beberapa Alternatif Menampilkan File Gambar via Jaringan

| Comments

Di beberapa aplikasi seperti sistem informasi sekolah mengharuskan kita untuk menampilkan gambar pada form-form tertentu seperti Logo Sekolah, TTD Kepala Sekolah dan Foto Guru/Siswa.

Adapun komponen standar yang biasa digunakan untuk menampilkan gambar di Visual Basic adalah komponen Image dan PictureBox. Kodenya pun sangat sederhana bisa kita lihat seperti dibawah ini :

1
2
3
Private Sub cmdLoadFoto_Click()
    picSiswa.Picture = LoadPicture("Lokasi_file_gambar\file_foto.jpg")
End Sub

dan berdasarkan kode sederhana diatas akan kita kembangkan kodenya agar bisa menampilkan gambar via jaringan :

1. Menyimpan gambar langsung di database

Cara ini sangat efektif sekali untuk menyimpan gambar yang ukurannya kecil dan tidak terlalu banyak, misal logo sekolah atau TTD kepala sekolah. Jadi hilangkan pikiran2x kotor :D untuk menyimpan foto-foto guru/siswa langsung didatabase karena hal ini akan mempengaruhi kinerja database, walaupun jaman sekarang hardisk2xnya udah gede tapi tetap saja menyimpan gambar secara langsung (dalam jumlah banyak) kurang baik untuk kesehatan database :D.

Bagaimana cara menyimpan dan menampilkan gambar dari database sudah saya bahas tuntas diSINI.

2. Share folder

Nah klo file gambarnya lumayan banyak seperti foto guru/siswa, cara ini mungkin bisa dicoba. Jadi foto guru/siswanya dikumpulkan di dalam 1 folder kemudian di share, selanjutnya dari aplikasi tinggal panggil seperti berikut :

1
2
3
4
5
6
Private Sub cmdLoadFoto_Click()
    picSiswa.Picture = LoadPicture("\\ip_server\folder_yg_dishare\file_foto.jpg")

    'atau dengan menyebutkan langsung nama komputer
    picSiswa.Picture = LoadPicture("\\nama_komputer_server\folder_yg_dishare\file_foto.jpg")
End Sub

Permasalah yang sering muncul menggunakan cara ini adalah, folder yang dishare gagal/tidak dapat diakses dari komputer lain dan tentu saja kode diatas juga akan gagal menampilkan gambarnya.

Jika Anda menemukan kasus seperti ini, mungkin langkah-langkah berikut bisa di coba :

  1. Mengaktifkan File and Printer Sharing

  2. Mengaktifkan pilihan Use simple file sharing pada setting folder option

  3. Menyamakan user dan password komputer server dan klien

  4. Menonaktifkan windows firewall

Jika langkah-langkah diatas masih gagal juga, mungkin kita akan coba cara yang terakhir.

3. Memanfaatkan service FTP

Untuk mengaktifkan service FTP di windows (untuk contoh disini saya menggunakan windows xp sp2) kita bisa menggunakan Internet Information Services (IIS) atau memanfaatkan tool gratis yg banyak beredar dipasaran seperti FileZilla Server dan di artikel ini saya menggunakan FileZilla Server. Oke langsung saja download filenya diSINI.

Berikut langkah-langkah instalasi plus konfigurasinya.

1. Instalasi

Jalankan file FileZilla Server yang sudah Anda download kemudian tinggal ikuti saja wizard instalasinya.

2. Menambahkan group user

Disini kita akan menambahkan group dan user yang diberi izin untuk mengakses folder tertentu, dalam hal ini folder foto.

Setelah proses instalasi diatas selesai kita langsung dihadapkan pada form login.

Isikan password Administrator misalkan “admin”, setelah itu akan tampil form utama FileZilla Server Interface.

kemudian klik tombol toolber user group, setelah itu akan tampil dialog untuk menambahkan user group

isikan nama group misal “akses_foto”  seperti gambar diatas, selanjutkan kita akan menentukan folder yang akan diakses dengan mengaktifkan node Shared folders

3. Menambahkan user

kemudian klik tombol toolbar user accounts, setelah itu akan tampil dialog untuk menambahkan user.

kemudian jangan lupa isikan password usernya, misal “rahasia”

Langkah-langkah untuk menambahkan group dan user cukup sampai disini.

4. Mendaftarkan port FTP

Agar port FTP (defaultnya 21) bisa diakses komputer lain, maka port tersebut harus kita daftarkan di windows firewall. Jika windows firewallnya dinonaktifkan maka langkah-langkah ini bisa kita abaikan.

Berikut langkah-langkah mendaftarkan port FTP.

  1. Masuk ke Control Panel -> Windows Firewall, kemudian aktifkan tab Exceptions

  1. Klik tombol Add Port, kemudian isikan informasi Name dan Port number

  1. Jika berhasil pada list Programs and Services akan ditampilkan port yang baru kita daftarkan

5. Ngetes service FTP via command prompt

Setelah semua proses selesai mulai dari instalasi, konfigurasi group dan user yang diakhiri dengan mendaftarkan port FTP, saatnya kita mencoba untuk mengetes service FTPnya dari komputer lain.

Dengan asumsi ip server adalah “192.168.0.6”, kita masuk ke dos prompt kemudian ketik ftp 192.168.0.6

Jika konfigurasi service FTP yang kita lakukan dilangkah-langkah sebelumnya benar, kita akan diminta untuk memasukkan username dan password dan jika berhasil prompt akan berganti menjadi ftp> yang menandakan bahwa username dan password kita benar.

Untuk testing lebih lanjut, kita akan coba menampilkan daftar direktori dan file dengan printah ls.

terakhir untuk keluar dari prompt ftp ketik printah bye.

Sampe disini semua persiapan kita sudah selesai dan saatnya mengeluarkan jurus pamungkas :D untuk mengakses service FTP dari vb.

Ada banyak referensi salah satunya bisa langsung merujuk ke sumber Microsoft atau yang paling gampang dengan memanfaatkan kelas FTPClass, untuk contoh disini saya akan menggunakan kelas FTPClass.

Berikut contoh penggunaan kelas tersebut.

1. Menampilkan daftar direktori dan file

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub cmdDaftarFile_Click()
    Dim objFTP      As FTPClass
    Dim objFTPFile  As FTPFileClass

    Dim serverName  As String
    Dim userName    As String
    Dim password    As String

    serverName = "192.168.0.6"
    userName = "k4m4r82"
    password = "rahasia"

    Set objFTP = New FTPClass
    If objFTP.OpenFTP(serverName, userName, password) Then
        If objFTP.SetCurrentFolder("/") Then
            For Each objFTPFile In objFTP.Files
                List1.AddItem objFTPFile.FileName
            Next
        End If
        objFTP.CloseFTP

    Else
        'TODO : tampilkan pesan gagal membuka port FTP
    End If
    Set objFTP = Nothing
End Sub

2. Menampilkan file gambar sesuai dengan pembahasan inti artikel kita kali ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub cmdLoadFoto_Click()
    Dim objFTP      As FTPClass

    Dim serverName  As String
    Dim userName    As String
    Dim password    As String
    Dim foto        As String

    serverName = "192.168.0.6"
    userName = "k4m4r82"
    password = "rahasia"

    foto = "02024112.jpg" 'contoh nama file gambar yang ingin ditampilkan

    Set objFTP = New FTPClass
    If objFTP.OpenFTP(serverName, userName, password) Then
        If objFTP.SetCurrentFolder("/") Then
            If objFTP.FileExists(foto) Then 'cek dulu file gambarnya dan jika ada...
                Call objFTP.GetFile(foto, App.Path & "\" & foto, True) 'download file gambarnya ke komputer lokal
                picSiswa.Picture = LoadPicture(App.Path & "\" & foto) 'baru ditampilkan
            End If
        End If
        objFTP.CloseFTP

    Else
        'TODO : tampilkan pesan gagal membuka port FTP
    End If
    Set objFTP = Nothing
End Sub

Selamat MENCOBA :)

visual basic

Tentang Penulis

Software developer yang fokus mengembangkan aplikasi di atas platform .NET (Desktop, ASP.NET MVC, Web Service) dan Android. Senang mempelajari teknologi baru terutama di bidang OOP, Design Pattern, ORM, Database dan Continuous Integration & Deployment.
Saat ini bekerja sebagai staf IT di salah satu PTS di Yogyakarta sebagai senior software developer. Di waktu luang insya Alloh akan terus berbagi pengalaman di blog ini :)

« Horeeee lebaran lagi :) Merubah setting Regional and Language Options via aplikasi »

Comments