Subscribe:

Ads 468x60px

Labels

Senin, 11 Februari 2013

Export SQL to Excel With Delphi


Alat dan bahan :
1. Komputer
2. Delphi
3. MySql + 1 Tabel sebagai contoh beserta data di dalam tabelnya
misal tabel anggota;

klo alat dah siap sekarng kita ke delphi nya :
yang dibutuhkan adalah :
1. tambahkan uses unit ComObj;
2. script dasar untuk membuat file excel :
//fungsi reftocell
function RefToCell(ARow, ACol: Integer): string;
begin
Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
end;

//-------------------------------
const
xlWBATWorksheet = -4167; // sebagai jenis WBATemplate, ada juga xlWBATChart = -4109;
var
XLApp, Sheet, Data: OLEVariant;
no,i: Integer;
rowstart,rg,cg:integer;
begin
//membuar array data dengan jumlah maksimal baris dan kolom
// [baris,kolom] dimulai dari baris=1 dan kolom=1
Data := VarArrayCreate([1, 3, 1,4], varVariant);
Data[1,1]:='no';
Data[1,2]:='nama';
Data[2,1]:='1';
Data[2,2]:='tomx';
Result := False;
XLApp := CreateOleObject('Excel.Application');
try
XLApp.Visible := False;
XLApp.Workbooks.Add(xlWBatWorkSheet);
Sheet := XLApp.Workbooks[1].WorkSheets[1];
Sheet.Name := 'percobaan';
Sheet.Range[RefToCell(1, 1), RefToCell(3,4)].Value := Data;
try
XLApp.Workbooks[1].SaveAs(AFileName);
Result := True;
except
MessageDlg('Export data ke excel gagal dilakukan, coba beberapa saat lagi ! atau hubungi admin',mtInformation,[mbOK],0);
end;
finally
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
XLAPP := Unassigned;
Sheet := Unassigned;
end;
end;
//---------------------------

dari dasar itu di kembangin deh.... datanya di ambil murni dari data tabel ;)
mudah-mudahan bermanfaat yah.

CATATAN PENTING :
Pada source download-an nanti koneksi ke database belum dilakukan, silahkan anda menginstal ODBC dan tentukan koneksi sendiri. kenapa? karena emang sengaja dikosongkan pada component AdoConnectionnya...

Jangan lupa juga sedikit sentuhan pada :
fungsi SqlKeExcel
...........
with ADOQuery1 do
begin
Close;
SQL.Text:='SELECT * FROM anggota'; //Tentukan sendiri tabel dalam database anda.
Open;
..........

kalau udah silahkan dah donlot pake link di bawah ini :
Klik Disini untuk mendownload

Mudah-Mudahan Bermanfaat....

Go Kendary Open SOurce
Sincerely YOurs

Export data hasil query ke excel di Delphi



Adakalanya kita membutuhkan laporan data dalam bentuk format file excel, yang mana laporan tersebut biasanya merupakan hasil dari sebuah query. Agar hal tersebut bisa kita lakukan, maka kita bisa menggunakan komponen tambahan yaitu ExcelExport yang dengan mudah kita bisa tambahkan ke component pallete dengan menginsallnya melalui menu Component >> Install Packages.
Langkah-langkahnya :
1. Tambahkan komponen scExcelExport pada form yang akan ada fasilitas untuk export ke excel
2. Tambahkan sebuah button untuk tombol export. Dan ketikkan code berikut, pada event onclick button tersebut.
(Misalkan kita akan mengeksport ke excel data beban mengajar dosen).
procedure Tflapbebanajar.BEksporClick(Sender: TObject);
begin
try
scExcelExport1.ExcelVisible:=True;
scExcelExport1.LoadDefaultProperties;
scExcelExport1.Dataset:=Qbebanajar; //nama komponen query
scExcelExport1.WorksheetName:=’Beban Mengajar Dosen’; //judul sheet
scExcelExport1.ConnectTo := ctNewExcel;
scExcelExport1.HeaderText.Text:= ‘BEBAN MENGAJAR DOSEN ‘;
scExcelExport1.HeaderText.Add(‘FAKULTAS SAINS DAN TEKNOLOGI’);
scExcelExport1.BeginRowTitles:=5; //mulai baris data
scExcelExport1.ExportDataset;
finally
scExcelExport1.Disconnect;
end;
end;

Sabtu, 09 Februari 2013

Type Data Pada MySQL

diposting oleh awal-zakki-fisip11 pada 25 September 2012

Pada artikel saya yang perdana ini akan membahas tipe - tipe data yang didukung oleh MySQL. Pemilihan tipe data merupakan suatu hal yang cukup penting dalam mengelola server. Salah satu sebabnya adalah berkaitan dengan ruang di harddisk dan memori yang akan “digunakan” oleh data-data tersebut.
Berikut ini akan diberikan tipe-tipe data yang didukung oleh MySQL yang terambil dari dokumentasi MySQL. Tipe - tipe data ini diberikan dalam bentuk yang siap dituliskan pada sintaks-sintaks MySQL, misalnya Create Table. Pada tipe-tipe data tersebut terdapat beberapa atribut yang memiliki arti sebagai berikut:
  • M, menunjukkan lebar karakter maksimum. Nilai M maksimum adalah 255.
  • D,  menunjukkan jumlah angka di belakang koma. Nilai maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak boleh lebih besar daripada M-2.
  • Atribut yang diberi tanda [ dan ] berarti pemakaiannya adalah optional.
  • Jika atribut ZEROFILL disertakan, MySQL akan otomatis menambahkan atribut UNSIGNED.
  • UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya tanda negatif).
Inilah tipe-tipe data tersebut:
  • TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang sangat kecil jangkauan nilainya, yaitu -128 hingga 127. Jangkauan unsigned adalah 0 hingga 255.
  • SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang kecil jangkauan nilainya, yaitu -32768 hingga 32767. Jangkauan unsigned adalah 0 hinga 65535. 
  • MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Integer tingkat menengah. Jangkauan nilainya adalah -8388608 hingga 8388607. Jangkauan unsigned adalah 0 hingga 16777215.
  • INT[(M)] [UNSIGNED] [ZEROFILL]
Integer yang berukuran normal. Jangkauan nilainya adalah -2147483648 hingga 2147483647. Jangkauan unsigned adalah 0 hingga 4294967295.
  • INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Sama dengan INT.
  • BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Integer berukuran besar. Jangkauan nilainya adalah -9223372036854775808 hingga 9223372036854775807. Jangkauan unsigned adalah 0 hingga 18446744073709551615.
  • FLOAT(precision) [ZEROFILL]
Bilangan floating-point. Tidak dapat bersifat unsigned. Nilai atribut precision adalah <=24 untuk bilangan floating-point presisi tunggal dan di antara 25 dan 53 untuk bilangan floating-point presisi ganda.
  • FLOAT[(M,D)] [ZEROFILL]
Bilangan floating-point presisi tunggal. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -3.402823466E+38 hingga -1.175494351E-38 untuk nilai negatif, 0, and 1.175494351E-38 hingga 3.402823466E+38 untuk nilai positif.
  • DOUBLE[(M,D)] [ZEROFILL]
Bilangan floating-point presisi ganda. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk nilai negatif, 0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif.
  • DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL]
Keduanya sama dengan DOUBLE.
  • DECIMAL[(M[,D])] [ZEROFILL]
Bilangan floating-point yang “unpacked”. Tidak dapat bersifat unsigned. Memiliki sifat mirit dengan CHAR. Kata “unpacked'' berarti bilangan disimpan sebagai string, menggunakan satu karakter untuk setiap digitnya. Jangkauan nilai dari DECIMAL sama dengan DOUBLE, tetapi juga tergantung dai nilai atribut M dan D yang disertakan. Jika D tidak diisi akan dianggap 0. Jika M tidak diisi maka akan dianggap 10. Sejak MySQL 3.22 nilai M harus termasuk ruang yang ditempati oleh angka di belakang koma dan tanda + atau -.
  • NUMERIC(M,D) [ZEROFILL]
Sama dengan DECIMAL. 
  • DATE
Sebuah tanggal. MySQL menampilkan tanggal dalam format 'YYYY-MM-DD'. Jangkauan nilainya adalah '1000-01-01' hingga '9999-12-31'.
  • DATETIME
Sebuah kombinasi dari waktu (jam) dan tanggal. MySQL menampilkan waktu dan tanggal dalam format 'YYYY-MM-DD HH:MM:SS'. Jangkauan nilainya adalah '1000-01-01 00:00:00' hingga '9999-12-31 23:59:59'.
  • TIMESTAMP[(M)]
Sebuah timestamp. Jangkauannya adalah dari '1970-01-01 00:00:00' hingga suatu waktu di tahun 2037. MySQL menampilkan tipe data TIMESTAMP dalam format YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, atau YYMMDD, tergantung dari nilai M, apakah 14 (atau tidak ditulis), 12, 8, atau 6.
  • TIME
Tipe data waktu. Jangkauannya adalah '-838:59:59' hingga '838:59:59'. MySQL menampilkan TIME dalam format 'HH:MM:SS'.
  • YEAR[(2|4)]
Angka tahun, dalam format 2- atau 4-digit (default adalah 4-digit). Nilai yang mungkin adalah 1901 hingga 2155, 0000 pada format 4-digit, dan 1970-2069 pada format 2-digit (70-69).
  • CHAR(M) [BINARY]
String yang memiliki lebar tetap. Nilai M adalah dari 1 hingga 255 karakter. Jika ada sisa, maka sisa tersebut diisi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 karakter, maka 3 karakter sisanya diisi dengan spasi). Spasi ini akan dihilangkan apabila data dipanggil. Nilai dari CHAR akan disortir dan diperbandingkan secara case-insensitive menurut default character set yang tersedia, kecuali bila atribut BINARY disertakan.
  • VARCHAR(M) [BINARY]
String dengan lebar bervariasi. Nilai M adalah dari 1 hingga 255 karakter. Jika nilai M adalah 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi.
  • TINYBLOB dan TINYTEXT
Sebuah BLOB (semacam catatan) atau TEXT dengan lebar maksimum 255 (2^8 - 1) karakter.
  • BLOB dan TEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 65535 (2^16 - 1) karakter.
  • MEDIUMBLOB dan MEDIUMTEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 16777215 (2^24 - 1) karakter.
  • LONGBLOB dan LONGTEXT
Sebuah BLOB atau TEXT dengan lebar maksimum 4294967295 (2^32 - 1) karakter.
  • ENUM('value1','value2',...)
Sebuah enumerasi, yaitu objek string yang hanya dapat memiliki sebuah nilai, dipilih dari daftar nilai 'value1', 'value2', ..., NULL atau nilai special "" error. Sebuah ENUM maksimum dapat memiliki 65535 jenis nilai.
  • SET('value1','value2',...)
Sebuah set, yaitu objek string yang dapat memiliki 0 nilai atau lebih, yang harus dipilih dari daftar nilai 'value1', 'value2', .... Sebuah SET maksimum dapat memiliki 64 anggota.

Nah, dengan mengenal tipe-tipe data yang didukung oleh MySQL, Anda dapat dengan tepat memilih tipe data yang Anda butuhkan dalam menyusun sebuah database.
Misalnya Anda hendak menyimpan data jumlah suatu stok barang yang tidak melebihi angka 200 misalnya, maka sebaiknya Anda memilih tipe data TINYINT yang diberi atribut UNSIGNED. Alasannya adalah jumlah stok tidak melebihi 200 dan tidak mungkin lebih kecil dari 0, dan tipe data TINYINT memiliki jangkauan 0 hingga 255, jadi memenuhi syarat untuk digunakan.
Contoh yang lain, misalnya Anda hendak membuat database nomor telpon dari teman-teman Anda. Memang nomor telpon seluruhnya terdiri dari angka, namun nampaknya tidak tepat bila disimpan dalam tipe data INT (atau bahkan BIGINT bila hendak menyimpan nomor handphone). Lebih baik dimasukkan ke dalam CHAR atau VARCHAR dengan M adalah 12. Mengapa 12? Karena nomor handphone terpanjang terdiri dari 12 digit. Sedangkan nomor telpon rumah terpanjang adalah 8 digit ditambah kode area terpanjang 4 digit, jadi angka 12 sangat pas.
Lalu bagaimana penerapannya dalam operasi MySQL? Misalnya Anda hendak membuat tabel stok barang dengan masing-masing field adalah kode barang, nama barang, harga barang, supplier, dan tanggal beli, maka kemungkinan perintah yang harus ditulis adalah sebagai berikut:
mysql> create table stok(
    -> kode char(5),
    -> nama varchar(20),
    -> harga mediumint unsigned,
    -> supplier char(5),
    -> tanggal date);
Perintah tersebut di atas akan membuat tabel bernama stok dengan field-field sebagai berikut:
Nama fieldTipe dataKeterangan
KodeChar(5)Kode barang biasanya memiliki jumlah karakter tetap, dalam contoh ini adalah 5.
NamaVarchar(20)Nama barang kemungkinan besar memiliki jumlah karakter yang berbeda-beda, sehingga cocok menggunakan varchar.
HargaMediumint UnsignedHarga tergantung dari jenis barangnya, pada contoh ini dianggap harga barang tertinggi di bawah 100 jutaan.
SupplierChar(5)Supplier biasanya juga dituliskan dalam kode tertentu yang jumlah karakternya tetap.
TanggalDateTanggal pembelian. Umumnya waktu pembelian tidak perlu disertakan, hanya tanggalnya saja.
Nah, 

Sabtu, 02 Februari 2013

Install ZeosDBO pada Delphi 7



ZeosDBO (Zeos Database Object) adalah database component Delphi utk ke database mysql, oracle, firebird, dll. Pada instalasi ini saya akan menunjukan cara instalasi pada Delphi 7. Di Delphi versi lebih baru sudah ada DBExpress utk koneksi ke database ini (mysql misalnya) tetapi hanya bersifat 1 arah (forward) dan perlu client dataset utk menggunakannya agar bisa 2 arah. Karena alasan ini, saya masih lebih memilih ZeosDBO dibanding component bawaan Delphi.
Langkah-langkah instalasi:
  1. Download ZeosLib di website nya.
  2. Extract lah file tersebut dan copy lah ke directory delphi 7 anda. (mis: C:\Program Files\Borland\Delphi7\ZEOSDBO-6.6.6-stable)
  3. Sekarang buka lah Delphi 7
  4. Bukalah file ZeosDbo.bpg melalui menu File > Open… kemudian browse ke folder tadi, dan cari folder packages\delphi7 kemudian arahkan ke file tsb.
  5. Buka Project Manager. (Shortcut: Ctrl+Alt+F11 atau dari Menu: View > Project Manager).
  6. Pilih salah satu project (file .bpl) di Project Manager, dan klik kanan, pilih Build All From Here.
  7. Pilih bagian ZComponentDesign, klik kanan, pilih Install.
  8. Buka menu Tools > Environtment Options, pilih Tab Library. Tekan Tombol [...] di Library Path.
  9. Akan muncul sebuah dialog dg judul “Directories”, tekan tombol [...] di bagian agak ke bawah.
  10. Arahkan ke folder zeosdb tadi, dan pilih folder build yg merupakan hasil compile dari komponen yg ingin kita install. (C:\Program Files\Borland\Delphi7\ZEOSDBO-6.6.6-stable\packages\delphi7\build)
  11. Kemudian tekan tombol “Add”.
  12. “OK”, “OK”, semua dialog otomatis tertutup. Instalasi telah selesai. Anda bisa melihat di tab component sekarang ada tab dg nama “Zeos Access“.
Penggunaan ZeosDBO ini masih membutuhkan library database yg bersangkutan. Biasanya ketika kita install database server sudah ada disertakan filenya. contohnya utk mysql, file library nya adalah:libmysql.dll. Karena saya menggunakan windows XP, kurang lebih lokasinya ada di: C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.dll. Aplikasi yg kita buat dengan zeosdbo ini nanti tidak membutuhkan instalasi mysql di komputer target. Ini yg saya sukai dari delphi, dimana hasil aplikasi yg kita buat begitu independent dan tidak membutuhkan proses instalasi di customer kita, cukup copy & paste saja. Jadi cukup kita sertakan file .dll tadi beserta file .exe buatan kita dalam folder yg sama, aplikasi kita sudah berjalan lancar. Jika tidak ingin menaruh dalam folder yg sama dg file .exe, file library .dll tadi bisa ditaruh di windows path spt C:\Windows, however saya lebih suka solusi yg pertama tadi karena lebih clean dan portable.

Kamis, 31 Januari 2013

Messagebox di Delphi


By AM Pein 


lama tidak posting delphi lagi ,lama banget dah,
langsung saja lah,,
yang sekarang kita berdelphi dengan messagebox gan,
jika yang kemarin merupakan message dialog,sekarang message box nya gan,sama kok seperti message dialog,cuma beda skripnya saja,jika lupa tentang messagedialog,bisa kunjungi message dialog delphi
secara fungsi delphi,penggunaan messagebox dalam delphi kira2 seperti ini gan:

messagebox(hWnd:HWND;lpText:PAnsiChar;lpCaption:PAnsiChar;uType:Cardinal);
yang dimana
hWnd:HWND; adalah handle nya,artinya kita bisa pakai angka 0 untuk membuat mesejbox dapat keluar dari form sehingga form dapat digeser,dan menggunakan self.handle supaya mesejbox fokus di form yang artinya mesejbox harus diklik tombolnya dan form otomatis tidak aktif.
lpText:PAnsiChar; adalah kata2 yang kita buat di kotak mesejbox nya.
lpCaption:PAnsiChar; adalah judul mesejbox nya.
uType:Cardinal; adalah type dari tombol dalam mesejbox beserta ikonnya.
sekarang kita percobaan membuat formnya,
kalo ane sederhana kaya ini aja gan :

nah kalau bisa kita samakan saja dulu gan supaya ane gampang ngejelasinnya.
pertama2 kita dobel klik button yang ini

lalu beri skrip seperti ini:
messagebox(self.handle,'ikon konfirmasi','coba lagi',mb_yesno+mb_iconinformation);
lalu button ini

skripnya kaya gini:
messagebox(self.Handle,'ikon warning','coba lagi',mb_okcancel+mb_iconwarning);
lalu ini

skripnya ini:
messagebox(self.Handle,'ikon stop','coba lagi',mb_abortretryignore+mb_iconstop);
dan terkahir yang ini:

dengan skrip:
messagebox(self.Handle,'ikon question','coba lagi',mb_yesno+mb_iconquestion);
buat tombol paling bawah yang ini:

if messagebox(self.Handle,'liat ni gan','liat',mb_yesno+mb_iconquestion) = 6 then
showmessage('anda menekan tombol yes')
else
showmessage('anda menekan tombol no');

disitu terlihat ada angka 6 kan?
itu merupakan message result gan,bahwa artinya jika ingin menggunakan statemen if diatas yang menggunakan message box dengan tombol yes no,maka untuk message result tombol yes,dalam delphi memakai angka 6
nih ane kasih tabel nya gan untuk tombol2 lain
message resultuntuk tombol
1:tombol OK
2:tombol Cancel
3:tombol Abort
4:tombol Retry
5:tombol Ignore
6:tombol Yes
7:tombol No
gimana gan??paham kan???

NB:
sebenarnya kita tidak harus terpaku mencontoh diatas,kita bisa mengkombinasikan tombol dalam mesej box beserta ikon2nya,,yang diatas hanya contoh,,bahkan satu tombolpun bisa ko.lalu coba ganti self.handle dengan angka 0 dan bandingkan perbedaanya ,,oke gan??semoga bermanfaat

Senin, 21 Januari 2013

CARA MEMBERI PASSWORD PADA FOLDER


Sebenarnya banyak cara untuk memberi password pada folder, tetapi kali ini saya akan posting dengan cara menggunakan notepad. Adakalanya kita mempunyai file yang sifatnya sangat pribadi dan kita tidak menginginkan file tersebut terbaca oleh orang lain,,,mungkin yang belum tau caranya pasti akan kesulitan bagaimana caranya agar file kita tidak bisa di baca oleh ornag lain,,,,,ok sob,,langsung aja........


1.Buatlah folder baru di komputer anda
2.buka notepad nya,,,,bagi yg belum tau. (klik star lalu all program lalu pilih accessories kemudian pilih notepad)
3.Copy kode dibawah ini ke notepad tadi.
cls@ECHO OFF
title Folder Locker
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Locker goto MDLOCKER
:CONFIRM
echo Are you sure want to Lock the folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%==password kamu goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Locker
echo Locker created successfully
goto End
:End


3.Setelah dimasukan ke notepad ganti tulisan yang berwarna merah dengan password yang anda inginkan kemudian save as dengan nama Lock.Bat dan simpan kedalam folder yg tadi sudah di buat.
4.Tutup notepad nya kemudian sobat klik folder tempat menyimpan notepad tadi,,,,lalu klik lock.bat nya,,,,nanti akan muncul folder yang bernama locker,,,kemudia klik folder lockernya lalu simpan file atau dokumen yang sobat inginkan ke dalam folder locker
5.Tutup folder locker lalu klik lagi lock.bat nya,nanti ada perintah seperti ini "Are you sure want to lock the file Y/N"
6.Lalu sobat ketik "Y" kemudian lihat,,file lockernya sudah tidak ada sudah tersembunyi
7.Untuk memunculkan kembali folder lockernya sobat klik lagi lock.bat nya,,,nanti ada perintah untuk memasukan password,,,,sobat masukan password yang sudah di buat tadi lalu enter,,,folder lockernya muncul kembali..............

Sebagai tambahan sob untuk kata "Are you sure  want to Lock the folder" itu bisa di ganti dengan kata2 yang sobat inginkan begitu pula dengan kata "Enter password to Unlock folder" terserah sobat mau ganti dengan kata2 sesuai keinginan sobat,,,,tetapi ini dilakukan sebelum sobat melakukan save as yah,,,,,,
Sekian dulu sob cara memberi password pada folder semoga aja artikel ini ada manfaatnya......salam bloger,,,,,,,

Kamis, 10 Januari 2013

Remote VNC via Speedy and Mikrotik



Pasti anda sekalian sudah pernah mendengar VNC, VNC merupakan sebuah program yang bisa melakukan remote desktop dari mana saja.
Sekarang kita akan membahas bagaimana cara melakukan remote desktop dari luar jaringan warnet yang menggunakan Speedy dan mikrotik sebagai routernya.

Skenario yang akan kita lakukan adalah sbb:

IP untuk masing-masing host
  1. Ip VNC Server : 192.168.2.3
  2. IP mikrotik : 192.168.1.2
  3. IP modem : 192.168.1.1
  4. IP Public speedy : 125.2.3.4
Langkah-langkah setting.
pertama kita akan mengatur ip forward di modem speedy yang akan mengarahkan port 5900 dari luar jaringan akan masuk ke mikrotik
  1. Masuk ke admin modem dengan ip 192.168.1.1
  2. Pilih menu Advance Setup –> NAT –> Virtual Server
  3. Setting Virtual Server sbb
  • Rule index = 1 (kalau sudah isi di 1 gunakan yang lain)
  • Application = VNC
  • Protocol = ALL
  • Start Port Number = 5900
  • End Port Number = 5900
  • Local IP Address = 192.168.1.2 (IP mikrotik yang mengarah ke Modem bukan yang ke lokal)

Setting diatas sudah mengarahkan bila ada request ke port 5900 maka akan diarahkan ke mikrotik, selanjutnya kita akan mengarahkan port tersebut menuju komputer yang akan di remote, settingnya adalah sbb :
  1. Masuk ke Mikrotik dengan menggunakan winbox atau terserah anda pakai apa :)
  2. Lakukan forward port dengan menggunakan IP – Firewall – NAT dengan setting sbb :
  • ip firewall nat add action=dst-nat chain=dstnat comment=”" disabled=no dst-address=192.168.1.2 dst-port=5900 protocol=tcp to-addresses=192.168.2.3 to-ports=5900
  • Ganti yang di bold dengan IP dan port anda
  • Jadi yang dilakukan pada script di atas adalah apabila ada request dengan tujuan 192.168.1.2dengan port 5900 maka akan diarahkan ke ip 192.168.2.3 (IP server VNCdengan port 5900
Apabila anda sudah melakukan setting diatas dengan benar, maka anda bisa melakukan remote desktop melalui VNC Viewer dengan memasukan IP public dari Speedy pada kasus ini adalah 125.3.4.5, setelah itu akan diminta password dan akan muncul desktop yang anda remote.
Semoga bisa bermanfaat.