coding minigui

Tip dan Trik pembuatan menu tampilan dengan harbour minigui develop :

/*
MINIGUI – Harbour Win32 GUI library Demo/Sample

Copyright 2002-09 Roberto Lopez <harbourminigui@gmail.com>

http://harbourminigui.googlepages.com/

*/

#include “minigui.ch”
#include “miniprint.ch”

FIELD fname, lname, addr1, addr2, addr3

function main()

/*
cDRV := “\\192.168.1.7\XHARBOUR$\”
cDRV := “\\192.168.1.7\XHARBOUR$\”
cMAP := “C:\CPRN\”
*/

set menustyle extended
set interactiveclose query main
SET SCOREBOARD  OFF
SET CENTURY     ON
SET DELETED     ON
SET INTENSITY   ON
SET STATUS      OFF
SET BELL        OFF
SET CONFIRM     ON
SET MENU        ON
SET SAFETY      OFF
SET TALK        OFF
SET DATE        ITALIAN
SET DECIMAL     TO 2
SET ESCAPE      ON
SET EXCLUSIVE   OFF

DEFINE WINDOW winMain ;
AT 0, 0 WIDTH 700 HEIGHT 380 ;
TITLE “Program Cetak Java Computer for Yokatta Indonesia” ;
nosysmenu;
MAIN

DEFINE BKGBRUSH newBrush HATCHED IN WINDOW winmain ;
HATCHSTYLE HS_VERTICAL COLOR {0,200,0}

define statusbar FONT “MS SANS SERIF” SIZE 9 KEYBOARD
Date
clock
end statusbar
winMain.STATUSBAR.item(1) := ‘Java Computer System Network By supriadi Versi Trial 2.0 ‘+”    user : “+getcomputername()
DEFINE MAIN MENU

POPUP “&Inventory”
Item “Cetak Stock Bulanan Finished Goods”
Item “Cetak Stock Bulanan Finished Goods”
Item “Cetak Stock Bulanan Finished Goods”
Item “Cetak Faktur Pajak     “
separator
Item “E&xit” action thiswindow.release()
END POPUP

POPUP “&Penjualan”
Item “Cetak Delivery Order   ” ACTION doprn()
Item “Cetak Faktur Penjualan ” ACTION fakprn()
Item “Cetak Faktur Pajak     ” ACTION ppnprn()
separator
Item “Penjualan Urut Pelanggan”
separator
POPUP ” Exsport Ke EXCEL”
item ” Penjualan Urut Tanggal” action excel5()
item ” Penjualan Urut Pelanggan”  //action excel4()
END POPUP
END POPUP

POPUP “Pembel&ian”
Item “Cetak Purchase Order ” action poprn()
Item “Penjualan Urut Pelanggan”
separator

END POPUP

POPUP “&Hutang Dagang”
Item “Buku Hutang     “
Item “Ageing Hutang   “
separator
POPUP ” Exsport Ke EXCEL”
item ” Buku Hutang ” action bukuap()
item ” Ageing Hutang ” action agingap()
END POPUP
end POPUP

POPUP “Piutang &Dagang”
Item “Piutang Dagang     “
Item “Ageing Piutang     “
separator
POPUP ” Exsport Ke EXCEL”
item ” Buku Piutang   ” action bukuar()
item ” Ageing Piutang ” action agingar()
END POPUP
end POPUP

POPUP “&General Ledger”
Item  “Neraca Percobaan    ” action trial()
Item  “Rugi Laba & Neraca  ” action sheettrial()
Item  “Neraca(Balance Sheet)  ” action wneraca()
Item  “Income Statement (Laba/Rugi) ” action wlaba()
separator
POPUP “Exsport Ke EXCEL”
item ” Neraca Percobaan” action excel3()
item ” Rugi Laba & Neraca” action excel4()
item ” Buku Besar Neraca” action bkbesar2()
END POPUP
END POPUP

DEFINE POPUP ‘Background Window’
ITEM ‘&AWAL’ ACTION SetBrush( 1 ) image ‘d:\soalgui\res\open.bmp’
ITEM ‘&GREEN’ ACTION SetBrush( 2 )
ITEM ‘&BLUE’ ACTION SetBrush( 3 )
ITEM ‘&VERTICAL’ ACTION SetBrush( 4 )
separator
ITEM ‘&HORIZONTAL’ ACTION SetBrush( 5 ) image ‘d:\soalgui\res\edit_field.bmp’
ITEM ‘&FDIAGONAL’ ACTION SetBrush( 6 )
ITEM ‘&BDIAGONAL’ ACTION SetBrush( 7 )
ITEM ‘&CROSS’ ACTION SetBrush( 8 )
ITEM ‘&DIAGCROS’ ACTION SetBrush( 9 )
separator
ITEM ‘&HEARTS’ ACTION SetBrush( 10 )  image ‘d:\soalgui\res\ins_field.bmp’
ITEM ‘&WALL’ ACTION SetBrush( 11 )
ITEM ‘S&TEEL’ ACTION SetBrush( 12 )
ITEM ‘S&QUARE’ ACTION SetBrush( 13 ) image ‘d:\soalgui\res\open.bmp’
ITEM ‘&SMILES’ ACTION SetBrush( 14 )

END POPUP

POPUP “About &Me”
Item “Tentang Saya ” action msginfo(saya(),”Mengenai saya & Java Computer System Network”)
Item “E&xit” action thiswindow.release()
END POPUP

END MENU
DEFINE IMAGE SHEET3
ROW 60
COL 20
WIDTH 650
HEIGHT 100
PICTURE ‘D:\YOKATA\LOGO3.GIF’
END IMAGE

END WINDOW

winMain.center
winMain.activate

return nil

function PrintList()
Local mPageNo, mLineNo, mPrinter

mPrinter := GetPrinter()

If Empty (mPrinter)
return nil
EndIf

SELECT PRINTER mPrinter ORIENTATION PRINTER_ORIENT_PORTRAIT PREVIEW

START PRINTDOC NAME “Address”
START PRINTPAGE

select addr
GO TOP

mPageNo:=0
mLineNo:=0

DO WHILE .NOT. EOF()

IF mLineNo>=260 .OR. mPageNo=0
mPageNo++
IF mPageNo>1
mLineNo += 5
@ mLineNo, 105 PRINT “Continue to Page “+LTRIM(STR(mPageNo)) CENTER
END PRINTPAGE
START PRINTPAGE
ENDIF

@ 20, 20 PRINT “ADDRESS LIST”
@ 20,190 PRINT “Page: “+LTRIM(STR(mPageNo)) RIGHT
@ 25, 20 PRINT DATE()

mLineNo:=35
@ mLineNo, 20 PRINT “First Name”
@ mLineNo, 50 PRINT “Last Name”
@ mLineNo, 80 PRINT “Address”

mLineNo += 5
@ mLineNo,20 PRINT LINE TO mLineNo,140
mLineNo += 2
ENDIF

@ mLineNo, 20 PRINT fname
@ mLineNo, 50 PRINT lname
@ mLineNo, 80 PRINT addr1
mLineNo += 5
@ mLineNo, 80 PRINT addr2
mLineNo += 5
@ mLineNo, 80 PRINT addr3
mLineNo += 5

DO EVENTS
SKIP

ENDDO

END PRINTPAGE
END PRINTDOC

return nil

function CreateData()
local aDbf := {}, i

REQUEST DBFCDX
RDDSETDEFAULT( “DBFCDX” )

if !file(“addr.dbf”)
aadd(adbf,   {“fname”,   “c”,   20,   0})
aadd(adbf,   {“lname”,   “c”,   20,   0})
aadd(adbf,   {“addr1″,   “c”,   40,   0})
aadd(adbf,   {“addr2″,   “c”,   40,   0})
aadd(adbf,   {“addr3″,   “c”,   40,   0})

dbcreate(“addr”, adbf)

if select(“addr”) = 0
use addr exclusive
endif
select addr

for i = 1 to 100
append blank
replace fname with “First name “+ltrim(str(i))
replace lname with “Last name “+ltrim(str(i))
replace addr1 with “Address LineNoe One “+ltrim(str(i))
replace addr2 with “Address LineNoe Two “+ltrim(str(i))
replace addr3 with “Address LineNoe Three “+ltrim(str(i))
next
else
if select(“addr”) = 0
use addr exclusive
endif
select addr
endif

return nil

STATIC PROCEDURE EXCEL3()  //neraca percobaan
Local oExcel, oHoja, oChart
USE (cDRV+”TRIAL”) NEW EXCLUSIVE
USE // Cerramos el archivo DBF

// Abrimos Excel
oExcel:= CreateObject( “Excel.Application” )

// Verificamos si hay error
if Ole2TxtError() != ‘S_OK’
MsgInfo(‘Excel no esta disponible’,’Advertencia’)
Return
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cDRV+”TRIAL.DBF”) // Abrimos el BDF
//oExcel:Workbooks:Open(GetCurrentFolder()+”\TRIAL.DBF”) // Abrimos el BDF
oExcel:Set(“DisplayAlerts”,.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( “ActiveSheet” ) // Activamos la hoja
// MsgInfo(“Data disimpan dengan File TRIAL.XLS “)
oExcel:ActiveWorkbook:SaveAs(“D:\backup\TRIALBALANCE.XLS”,-4143)
MsgInfo(“Data disimpan dng nama: TRIALBALANCE.XLS”+chr(13)+”En: “+GetCurrentFolder())

RETURN

STATIC PROCEDURE EXCEL4()  //neraca percobaan
Local oExcel, oHoja, oChart
USE (cDRV+”RGLB”) NEW EXCLUSIVE
USE // Cerramos el archivo DBF

// Abrimos Excel
oExcel:= CreateObject( “Excel.Application” )

// Verificamos si hay error
if Ole2TxtError() != ‘S_OK’
MsgInfo(‘Excel no esta disponible’,’Advertencia’)
Return
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cDRV+”RGLB.DBF”) // Abrimos el BDF
//oExcel:Workbooks:Open(GetCurrentFolder()+”\TRIAL.DBF”) // Abrimos el BDF
oExcel:Set(“DisplayAlerts”,.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( “ActiveSheet” ) // Activamos la hoja
// MsgInfo(“Data disimpan dengan File TRIAL.XLS “)
oExcel:ActiveWorkbook:SaveAs(“D:\backup\NERACA LAJUR.XLS”,-4143)
MsgInfo(“Data disimpan dng nama: NERACA LAJUR.XLS”+chr(13)+”En: “+GetCurrentFolder())

RETURN

STATIC PROCEDURE EXCEL5()  //penjualan
Local oExcel, oHoja, oChart
Local lRet := .T.
USE (cDRV+”SALES”) NEW EXCLUSIVE
USE // Cerramos el archivo DBF

// Abrimos Excel
oExcel:= CreateObject( “Excel.Application” )

if Ole2TxtError() != ‘S_OK’
lRet := .F.
MsgInfo(‘Excel Application Not Installed’,’Perhatian !!!!’)
Return
else
oExcel:Quit()
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cDRV+”SALES.DBF”) // Abrimos el BDF
oExcel:Set(“DisplayAlerts”,.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( “ActiveSheet” ) // Activamos la hoja
oExcel:ActiveWorkbook:SaveAs(“D:\backup\SALES.XLS”,-4143)
MsgInfo(“Data disimpan dng nama: SALES.XLS”+chr(13)+”En: “+GetCurrentFolder())

RETURN

STATIC PROCEDURE bukuap()  //buku hutang
Local oExcel, oHoja, oChart
Local lRet := .T.
USE (cDRV+”BUKUAP”) NEW EXCLUSIVE
USE // Cerramos el archivo DBF

oExcel:= CreateObject( “Excel.Application” )

if Ole2TxtError() != ‘S_OK’
lRet := .F.
MsgInfo(‘Excel Application Not Installed’,’Perhatian !!!!’)
Return
else
oExcel:Quit()
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cDRV+”BUKUAP.DBF”) // Abrimos el BDF
oExcel:Set(“DisplayAlerts”,.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( “ActiveSheet” ) // Activamos la hoja
oExcel:ActiveWorkbook:SaveAs(“D:\backup\BUKUAP.XLS”,-4143)
MsgInfo(“Data disimpan dng nama: BUKUAP.XLS”+chr(13)+”En: “+GetCurrentFolder())

RETURN

STATIC PROCEDURE agingap()  //aging hutang
Local oExcel, oHoja, oChart
Local lRet := .T.
USE (cDRV+”AGINGAP”)  NEW EXCLUSIVE
USE

oExcel:= CreateObject( “Excel.Application” )
if Ole2TxtError() != ‘S_OK’
lRet := .F.
MsgInfo(‘Excel Application Not Installed’,’Perhatian !!!!’)
Return
else
oExcel:Quit()
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cDRV+”AGINGAP.DBF”) // Abrimos el BDF
oExcel:Set(“DisplayAlerts”,.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( “ActiveSheet” ) // Activamos la hoja
oExcel:ActiveWorkbook:SaveAs(“D:\backup\AGINGAP.XLS”,-4143)
MsgInfo(“Data disimpan dng nama: AGINGAP.XLS”+chr(13)+”En: “+GetCurrentFolder())

RETURN

STATIC PROCEDURE agingar()  //aging hutang
Local oExcel, oHoja, oChart
Local lRet := .T.
USE (cDRV+”AGINGAR”)  NEW EXCLUSIVE
USE

oExcel:= CreateObject( “Excel.Application” )
if Ole2TxtError() != ‘S_OK’
lRet := .F.
MsgInfo(‘Excel Application Not Installed’,’Perhatian !!!!’)
Return
else
oExcel:Quit()
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cDRV+”AGINGAR.DBF”) // Abrimos el BDF
oExcel:Set(“DisplayAlerts”,.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( “ActiveSheet” ) // Activamos la hoja
oExcel:ActiveWorkbook:SaveAs(“D:\backup\AGINGAR.XLS”,-4143)
MsgInfo(“Data disimpan dng nama: AGINGAR.XLS”+chr(13)+”En: “+GetCurrentFolder())

RETURN

STATIC PROCEDURE bukuar()  //Buku Piutang
Local oExcel, oHoja, oChart
Local lRet := .T.
USE (cDRV+”BUKUAR”)  NEW EXCLUSIVE
USE

oExcel:= CreateObject( “Excel.Application” )
if Ole2TxtError() != ‘S_OK’
lRet := .F.
MsgInfo(‘Excel Application Not Installed’,’Perhatian !!!!’)
Return
else
oExcel:Quit()
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cDRV+”BUKUAR.DBF”) // Abrimos el BDF
oExcel:Set(“DisplayAlerts”,.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( “ActiveSheet” ) // Activamos la hoja
oExcel:ActiveWorkbook:SaveAs(“D:\backup\BUKUAR.XLS”,-4143)
MsgInfo(“Data disimpan dng nama: BUKUAR.XLS”+chr(13)+”En: “+GetCurrentFolder())

RETURN

STATIC PROCEDURE BKBESAR2()  //buku BESAR
Local oExcel, oHoja, oChart
Local lRet := .T.
USE (cDRV+”BKBESAR2″) NEW EXCLUSIVE
USE // Cerramos el archivo DBF

oExcel:= CreateObject( “Excel.Application” )
if Ole2TxtError() != ‘S_OK’
lRet := .F.
MsgInfo(‘Excel Application Not Installed’,’Perhatian !!!!’)
Return
else
oExcel:Quit()
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cDRV+”BKBESAR2.DBF”) // Abrimos el BDF
oExcel:Set(“DisplayAlerts”,.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( “ActiveSheet” ) // Activamos la hoja
oExcel:ActiveWorkbook:SaveAs(“D:\backup\BKBESAR2.XLS”,-4143)
MsgInfo(“Data disimpan dng nama: BKBESAR2.XLS”+chr(13)+”En: “+GetCurrentFolder())

RETURN

20 Tanggapan

  1. bagaimana cara membuat program dengan database mysql di compile dengan minigui bgmana sample prgramnya dan bisa menampilkan data
    trim boss

  2. maaf compil dengan minigui,bcc55 ato xharbour, saya coba prg hapir sama seperti ini saya compile dengan minigui
    compile bisa oke tetapi belu bisa buka data /connect dg data mysql

    demikian

    terima kasih atas balansannya dan saya tunggu lagi sharingnya Boss

    • Dear
      Mas Imam,

      Mohon maaf baru bisa balas dikarenakan cuti pulang kampung di cirebon

      Betul saya pakai BCC5 dan untuk masalah mas imam adalah :
      Lakukan Proses Berikut ini
      1. Copy paste LIBMSYSQL.dll ke C:\WINDOWS\SYSTEM32
      2. Bikin file BCC32.CFG dan Ilink32.cfg di folder C:\BORLAND\BCC55\BIN\
      3. BCC32.CFG berisi :
      -I”c:\Borland\BCC55\Include”
      -L”c:\Borland\BCC55\Lib;c:\Borland\BCC55\Lib\PSDK”
      4. Ilink32.CFG berisi :
      -L”c:\Borland\BCC55\Lib;c:\Borland\BCC55\lib\PSDK”
      5. Setelah disimpan di RESTART komputer anda
      6. Coba di kompile kembali sample MYSQL Clietnya
      7. Connect MYSQL jangan Lupa Root dan Password rootnya

      Makasih dan jika ada yg harus di diskusikan kembali bisa By YM di : priadi_jcsn@yahoo.com

      Saya berharap mas imam mau sharing coding yg telah dibuat , supaya buat referensi pengemar minigui exstended di indonesia

  3. Ok Bos Terima kasih sekali atas waktunya buat saya
    sebelumnnya minta maaf saya belum bisa buat program yang bisa saya tampilkan di tempat Mas ini msalahnya saya coba compile bcc55 wac..h masih belum pas mudah – mudah kalau nanti saya sudah bisa saya akan turut sharing blog ini mas Trimas
    nanti saya tak coba lagi Mas

  4. Salam kenal pak Priadi, saya sebenarnya sudah 2 tahun lalu pingin belajar xharbour tapi baru kesempatan ini saya mau melanjutkan lagi.
    Makasih pak sudah membuat Blog khusus xharbour minigui ini jadi saya tambah semangat belajar.
    Langsung saja saya sudah copy paste coding minigui ini dan saya sudah install borland, xharbour & minigui 1.8 extendednya akan tetapi setelah dicompile terjadi error sbb:

    Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
    Error: Unresolved external ‘_HB_FUN_DOPRN’ referenced from C:\MINIGUI\TEST\TEST1
    .OBJ
    Error: Unresolved external ‘_HB_FUN_FAKPRN’ referenced from C:\MINIGUI\TEST\TEST
    1.OBJ
    Error: Unresolved external ‘_HB_FUN_PPNPRN’ referenced from C:\MINIGUI\TEST\TEST
    1.OBJ
    Error: Unresolved external ‘_HB_FUN_POPRN’ referenced from C:\MINIGUI\TEST\TEST1
    .OBJ
    Error: Unresolved external ‘_HB_FUN_TRIAL’ referenced from C:\MINIGUI\TEST\TEST1
    .OBJ
    Error: Unresolved external ‘_HB_FUN_SHEETTRIAL’ referenced from C:\MINIGUI\TEST\
    TEST1.OBJ
    Error: Unresolved external ‘_HB_FUN_WNERACA’ referenced from C:\MINIGUI\TEST\TES
    T1.OBJ
    Error: Unresolved external ‘_HB_FUN_WLABA’ referenced from C:\MINIGUI\TEST\TEST1
    .OBJ
    Error: Unresolved external ‘_HB_FUN_SETBRUSH’ referenced from C:\MINIGUI\TEST\TE
    ST1.OBJ
    Error: Unresolved external ‘_HB_FUN_SAYA’ referenced from C:\MINIGUI\TEST\TEST1.
    OBJ

    Link error.

    Sebelumnya sy ucapkan makasih, mohon pencerahannya.

    • mas moko ,
      Makasih sebelumnya mau berbagi pengalaman dengan saya mengenai minigui .
      Untuk informasi saya memakai minigui extended ( Grigory Filatov & team ) dengan compiler BCC 52
      sedangkan untuk proses compiler saya memakai MPM utility ( semuanya ada di paket menigui extended )

      Kesalahan error Unresolved exsternal c:\minigui\test\test1 menunjukan ada function atau variabel test tidak diketemukan sedangkan dalam coding saya test1 tidak ada (saya tdk menggunakan variabel ini ) .

      Mas moko , mohon informasinya proses mas moko dalam compilenya gimana ..?
      JIka ada yg perlu di diskusikan silahkan email atau YM saya di priadi_jcsn@yahoo.com

      Makasih

      Supraidi

  5. Sudah bisa pak, ternyata itu menunjukkan function, jadi saya beri tanda ‘//’ … u melewati pemanggil func/prosedur tersebut.

    makasih.

  6. mohon petunjuknya pak…
    sy sudah install HMG 1.9 , BCC55 & PSPAD 4.5.4, sy copy paste menutampilan lalu sy simpan dng nama menu.prg trus gimana biar menu.prg td biar jd menu.exe ? harap maklum amat sangat pemula, thc b4

  7. alhamdulillah dah bisa pak.. ternyata sy turunkan versi sebelumnya jadi OK.. thx a lot aja lah..

  8. klo buat ABSENSI sidik jari kira2 gimana Pak? mohon pencerahannya…

    • Dear ma sam

      Mas sam , makasih dah mau mampir ke blog ini dan mohon maaf untuk finger print coding saya belum coba ,
      sekali lagi makasih masukannya , nanti saya coba kumpulkan informasi mengenai fingerprint tetapi saya punya program absensi fingerprint dan licencinya di pegang teman saya

      • fingerprint dng HMG tetep bisa kan? kira2 ribet ga ya? sy kira jawaban dari 2 pertanyaan ini amat sys butuhkan.. syukur2 ada contoh program ambil-simpan-baca kembali fingerprint lebih bagus lg hehe… thx ya

  9. oiya kira2 sy boleh bantu2 maintenance clients ga ya? tanpa gaji gpp koq… itung2 mengisi waktu luang hehe… sy tinggal di PHP- Bekasi Utara

    • Makasih mas sam , berkenan kerja sama dengan kami dan mohon maaf untuk saat ini kami hanya berisi orang2 dekat serta sahabat sahabat yang sudah kami kenal lama , sekali lagi makasih

  10. sy da baca ttg DATABASE mySQL dsini,makasi buanyak.. trus kira2 klo pake database FIREBIRD gimana? bisa kan? sorry klo bannyak tanya.. maklumlah amat sangat pemula!

    • Dear Mas sam,

      Sekali lagi untuk database saya baru memakai database MYSQL dan Native DBF , tetapi kalu dilihat dari sample yang ada pasti bisa juga untuk database FIREBIRD , ( untuk saat ini saya baru fokus 2 database itu dan fokus menggembangkan aplikasi dengan minigui extended )

  11. met siang pak, mau ikutan gabung, saya juga baru belajar minigui, tapi dah lama pakai clipper, saya pengen konversi program saya ke minigui, kira-kira banyak perubahan gak yah ?
    saya coba bikin tampilan di minigui ide, tapi begitu saya run kok gak bisa yah pak, harus di gimanakan pak ? boleh minta contoh program kecil untuk entry data dengan kondisi simpan data ke database? trima kasih banyak pak

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

%d bloggers like this: