header image
 

My Hibernate “Hello World” error…

Lanjutan dari posting sebelumnya..

Walau cuma sekedar aplikasi “Hello World” ternyata ada beberapa error yang sempat terjadi sebelum program berjalan sebagaimana mestinya. Berikut adalah beberapa error yang sempat aku alami serta bagaimana cara memperbaikinya.

1. Exception in thread “main” org.hibernate.HibernateException: /hibernate.cfg.xml not found

Error ini yang pertama kali kualami. Mengapa ? sesuai pesan errornya, hal ini terjadi karena java tidak berhasil menemukan file hibernate.cfg.xml. Pertama aku sempat bingung juga. Dimana file ini harusnya diletakkan ? Setelah coba-coba, akhirnya kutemukan tempatnya dan hilanglah errornya. Dimanakah itu ? Ternyata di folder /build/classess

2. Exception in thread “main” org.hibernate.MappingException: Resource: firsthibernate/User.hbm.xml not found

Sesuai pesan error, hal ini terjadi karena java tidak berhasil menemukan User.hbm.xml. Pastikan file ini berada di tempat yang kita tulis di file hibernate.cfg.xml Untuk kasus ku karena mappingnya seperti ini

<mapping resource=”firsthibernate/User.hbm.xml” />

Maka, file User.hbm.xml harus berada di folder

/build/classes/firsthibernate

3. Exception in thread “main” java.lang.NullPointerException
at org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:87)

Kalau 2 error di atas langsung bisa aku perbaiki. Untuk error yang ini aku sempat googling dulu karena panik. Maklum waktu itu aku udah ga sabar mau main World of Warcraft :P Ternyata error ini terjadi karena class yang di-map dalam file User.hbm.xml Ini ni line yang bertanggung jawab

<class name=”firsthibernate.User” table=”USERS” >

Pastikan class User ada di folder /build/classes/firsthibernate

That’s all.. ^_^

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

Introduction to Java Hibernate

Java Hibernate..

Hmm… pertama kali dengar kata itu adalah dari dosen mata kuliah Analisa dan Desain Beorientasi Objek. Menurut yang aku tangkap dari pertemuan kuliah waktu itu adalah bahwa hibernate adalah salah satu framework Java yang menangani koneksi database. Sejak saat itu aku mulai penasaran. Kayak apa sih hibernate itu. Secara selama ini aku selalu menggunakan cara manual untuk koneksi Database dengan Java.

Hmm… secara kemaren UAS sudah selesai, maka ada waktu luang sejenak untuk santai tidak dikejar-kejar deadline. Nah.. segera saja aku mencari tutorial yang bisa membuatku kenal dengan yang namanya hibernate. Akhirnya ketemu deh link ini :

http://www.visualbuilder.com/java/hibernate/tutorial

Nah, jadilah kemaren hari perkenalan pertamaku dengan hibernate.

Apa sih hibernate itu ?

HIbernate adalah sebuah tool mapping objek/relasional open source untuk Java yang dapat membantu kita mengembangkan persistent class dan persistent logic tanpa perlu memikirkan bagaimana menghandle data. Hibernate tidak hanya menangani mapping dari Java class ke table Database ( dan dari tipe data Java ke tipe data SQL ), tetapi juga menyediakan data query dan fasilitas retrieval yang dapat secara signifikan mengurangi development time yang dihabiskan untuk manual data handling di SQL dan JDBC.

Hibernate mempermudah untuk membangun aplikasi database berkinerja tinggi dengan Java. Kita hanya perlu menulis POJO ( Plain Old Java Object ) sederhana, membuat file XML mapping yang mendeskripsiskan relationship antara atribut database dan kelas dan memanggil beberapa Hibernate API untuk meload atau menyimpan persistent object.

Nah setelah membaca dan mencoba tutorial di link visualbuilder di atas, inilah beberapa kesimpulan yang aku dapatkan tentang cara menggunakan Hibernate ( based on tutorial at visualbuilder.com ) :

  • Pertama tentu saja adalah mendapatkan library hibernate. Aku ambilnya dari link ini http://www.roseindia.net/hibernate/hibernate.zip
  • Berhubung aku memakai netbeans ( NetBeans IDE 6.0 ), maka cara menambahkan library-nya adalah seperti gambar di bawah ini. Kemudian cari file .jar hasil ektraksi file zip di langkah pertama. Tambahkan semuanya aja :P . Oiya kerena aku memakai oracle, perlu juga menambahkan ojdbc14.jar

  • Selanjutnya tentu saja membuat table di database-nya. Syntax create table sudah ada di web visualbuilder, tinggal dijalanin aja.
  • Trus buat file XML konfigurasi Hibernatenya ( hibernate.cfg.xml ). Dari code yang ada di web kita tinggal ganti beberapa atribut seperti server, SID, username, dan password.
  • Lalu buat POJO-nya yaitu class User. Kelas inilah yang merupakan representasi table Users yang telah kita buat di databse.
  • Nah ini langkah yang penting. Yaitu membuat file XML mapping-nya. File ini akan memetakan kelas User ke table Users di database. Jangan lupa memasukkan file mapping ini ke hibernate.cfg.xml yang kayak gini ni :
    <mapping resource=“com/visualbuilder/hibernate/User.hbm.xml” />
  • klo udah, tinggal bikin business komponennya ( kelas UserManager ) dan Test Client ( kelas TestClient ) untuk menguji apakah mappingnya sudah berjalan.
  • Jika semua sudah siap, tinggal run file TestClient.java seperti gambar dibawah ini

  • Jika berhasil maka ouput akan tampak seperti output pada gambar di atas. Seperti ini:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
User saved with ID = 1
BUILD SUCCESSFUL (total time: 5 seconds)

  • Dan.. di database sudah masuk data 1 user seperti ini

Hehehe.. jadilah sudah sebuah Hibernate “Hello World” :P

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

Sekilas tentang TCP dan UDP

Wew.. semester 6 ini aku mengulang mata kuliah Jaringan Komputer. Duku waktu semester 4, “kecelakaan” dapat nilai D. Dan besok adalah UAS-nya.. seperti biasa, bingung belajarnya. Alias belajar pada h-1 :P

Apa sih yang dipelajari di mata kuliah ini.. di bawah ini adalah sedikit bagiannya :)

- Connectionless and Connection-oriented

Connectionless unreliable : pengiriman data dianggap pasti berhasil
Connection-oriented reiable : dibangun koneksi terlebih dahulu dengan cara mengirim pesan dan mengecek apakah pesan tersebut dibalas atau tidak , jika siap menerima maka data baru dikirim

- TCP ( Transmission Control Protocol )

Loss pada TCP dapat ditangani dengan acknowledgment dan restranssmission, pihak pengirim akan menunggu ack dari penerima sebelum mengirim segmen berikutnya, jika dalam waktu tertentu ack belum diterima maka pihdak pengirim akan melakukan retransmission segmen tersebut.

Flow Control : mengirim sesuai dengan daya tampung penerima. Misal kapasitas pengirim berupa timba 10 liter dan penerima hanya mempunyai timba 2 liter maka flow dikontrol sehingga data yang diterima dipecah menjadi masing 2 liter sesuai dengan kapasitas penerima

Congestion Control : bagaimanakah cara mendeteksi congested ( macet ) ? yaitu dengan cara mengecek ack yang datangnya terlambat

- UDP ( User Datagram Prorocol )

Connectionless, unreliable data transfer, no flow control, no congestion control, no acknowledgement, faster than TCP
- TCP and UDP

Digunakan UDP jika data loss tidak dipermasalahkan. TCP jika data yang diterima harus sama dengan data yang dikirim, biasanya untuk transfer file, browsing dll.

- Bagaimana data ditansfer melalui jaringan ?

Router : penghubung jaringan dengan jaringan
Circuit switching : jika jalannya penuh maka tidak bisa dimasuki lagi
Packect switching : connectionless, semua bisa mengirim, kemungkinan ada congested
TCP : protocol reliable data transfer diatas connectionless / packet switching yang tiak reliable data transfer sehingga saling melengkapi

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

is this the real me ?

Akhirnya semester 6 yang melelahkan ini telah mendekati detik-detik terakhirnya. Setelah selama kurang lebih 6 bulan sibuk berkutat dengan tugas, ketidak-jelasan dan kecemasan, akhirnya di minggu tenang ini ada waktu sejenak untuk menarik nafas dalam-dalam dan menyegarkan kembali kondisi diri baik fisik maupun mental. Dan seperti biasa merupakan waktu yang tepat untuk merenungkan kembali apa saja yang telah terjadi untuk dapat diambil pelajaran-pelajaran yang mungkin berguna di masa depan kelak.

Tak terasa memang, sudah berada di akhir semester 6, artinya sebentar lagi kelulusan menanti. Tapi semakin tua, aku sama sekali tidak merasa semakin mampu tetapi malah semakin sadar akan sebuah ketidakmampuan. Di awal semester, beberapa ketidakjelasan di kuliah seperti reksis,API,APL, kemudian disusul BDL setelah UTS membuatku kehilangan feel. Aku menjadi semakin bingung dan akhirnya cuma bisa mengikuti kemana arus membawaku pergi. Selain itu aku merasa bahwa aku semakin tidak mengenal diriku sendiri. Aku merasa bahwa semakin lama, aku semakin tidak paham, apa yang sedang kulakukan, kemana aku akan pergi dan apa tujuan yang ingin aku capai. Aku merasa hanya melakukan.. apa ya.. hmmm.. melakukan apa yang saat itu ingin dilakukan tanpa berpikir akibatnya nanti atau sekedar memikirkan apakah yang kulakukan saat ini itu benar apa salah. Pokoknya asal melakukan saja, ya.. seperti daun yang hanyut mengikuti arus di sungai. Hmm..

Ah sudahlah.. semakin dipikirkan, aku merasa semakin menyesal.. lupakan saja..

Tapi.. apakah semudah itu untuk melupakan.. hal-hal seperti masalah kuliah yang sebenarnya merupakan kewajiban dan tanggung jawab utamaku berada di sini.. semakin borosnya aku mengatur keuangan.. semakin seringnya aku cuma buang-buang waktu.. semakin seringnya aku melupakan kewajibanku.. semakin seringnya aku mengecewakan orang lain.. dan sebagainya.. dan sebagainya.. ah.. aku benar-benar merasa sangat bersalah kepada orang tuaku, keluargaku.. yang sudah menaruh harapan yang luar biasa besar kepadaku. Sekali lagi.. apa sih yang sebenarnya aku lakukan saat ini ?

Hmm.. begini saja.. mulai dari yanh kecil dulu.. hal apa sih yang paling aku bisa melakukannya. Setelah menengok ke belakang, ke masa laluku, ke masa kecilku, yang boleh dikatakan bisa sedikit dibanggakan setidaknya menurut orang tua dan keluarga.. ternyata aku itu setidaknya seperti berikut :

- hal yang paling bisa aku lakukan adalah belajar. Sejak jaman SD dulu, aku telah sadar ( walaupun dulu belum mengerti maksudnya apa sih ) bahwa aku paling mampu mempelajari sesuatu. Dalam waktu yang relatif singkat, pemahamanku akan suatu materi yang baru diberikan bisa dikatakan sangatlah bagus. Tetapi ada kelemahannya.. bahwa semakin lama pemahaman akan suatu materi itu tidak aku gunakan, maka semakin hilanglah hal itu. Ibarat besi yang mudah untuk dijadikan magnet tetapi daya magnetiknya tidak akan lama. Beda dengan baja yang susah dijadikan magnet, tetapi daya magnetiknya akan bertahan dalam jangkan waktu yang lama. Oleh karena itu.. aku haruslah rajin belajar.. mengingat kembali.. mempraktekkan dan selalu melakukan apa yang bisa aku lakukan, jika tidak ingin kehilangan kemampuan itu. Tidak salah jika orang menganggapku rajin.. karena tanpa kerajinan itu.. aku akan kehilangan diriku.. benarkah demikian ? Jawablah wahai diriku..
- kedua, aku bukanlah orang yang jenius.. walau sejak kecil banyak orang yang menganggapku seorang yang cerdas , pintar, pandai dan sejenisnya.. tetapi di dalam diriku aku sadar bahwa aku meraih semua itu hanya dengan dukungan lingkungan yang sangat mendukung ditambah kemampuan yang kusebut di point pertama. Keluargaku sangat full support dalam mendukung aku belajar.. semua hal yang berhubungan dengan pendidikan akan dijadikan prioritas, tidak peduli betapa susah meraihnya. ( saat nulis ini , aku semakin malu dengan apa yang sedang aku lakukan saat ini ) Ditambah teman-temanku yang senantiasa mendukung dengan adanya persaingan sehat dan hubungan yang baik. Juga lingkunganku yang cenderung sangat damai dan indah. Masa kecilku aku habiskan dengan indah. Pagi hari aku belajar di sekolah.. siang hari istirahat sebentar.. sore hari pergi ke mushola untuk ngaji.. pulang ngaji lihat TV sebentar.. trus setelah maghrib belajar.. selesai belajar liat tv.. setelah itu tidur. Itulah hidupku yang benar-benar ideal saat itu. Hmmm…
- ketiga.. sejak kecil.. sejak SD.. aku telah ditahbiskan, telah ditakdirkan untuk menjadi seorang gamer sejati. Dunia game adalah tempat ideal untukku, menjadi kuper bukanlah resiko yang besar dibandingkan dengan apa yang bisa kudapatkan di game. Aku mendapatkan identitas, kepercayaan diri, pengembangan kemampuan diri, ketrampilan berbahasa inggris, kemampuan menyelesaikan masalah.. menemukan solusi.. berpikir.. berpetualang.. tertawa senang.. menangis haru.. merasakan cinta.. berjuang.. merasakan indahnya kemenangan.. merasakan pahitnya kekalahan.. mendalami berbagai cerita kehidupan.. berlatih menjalin hubungan dan hal-hal lain yang mungkin orang lain tidak bisa membayangkannya. Entah hanya aku yang berpikir begini atau tidak .. yang jelas dari game aku mendapatkan semuanya.. dengan kemampuan analisis dan imaginasi serta pemahaman yang paling aku banggakan dari diriku.. aku dapat menyaring isi dari sebuah game menjadi inti dari pembelajaran diriku yang sesungguhnya. Pastilah tidak banyak yang merasakan ini.. bahkan apatis dan menganggap game hanya sekedar perusak moral, penumpul emosi.. pembuat kecanduan.. Tetapi itu hanyalah efek samping bagi yang tidak bisa .. apa ya istilahnya.. tidak bisa mendapatkan feel dan hanya bisa melihat bahwa game adalah kesenangan belaka.. hanya hiburan untuk senang-senang.. Tetapi entahlah.. bagiku game telah mengajarkan segalahnya untukku. Walau kadang aku terseret efek negatif kecanduannya juga. Menurutku tidaklah salah orang yang mengatakn bahwa dunia ini juga sebuah game atau permainan yaitu game atau permainan tentang kehidupan.
- keempat.. aku adalah seoarang anak mami, home boy, anak rumahan. Benar.. aku merasa senang dan baik-baik saja jika ada orang yang mengontrolku.. orang yang memperhatikanku.. mengarahkanku.. mengingatkanku jika aku salah.. memberitahu apa yang seharusnya aku lakukan. Orang bilang aku seperti robot saja.. salah.. walau aku suka diarahkan tetapi aku bisa berpikir.. tidak asal ikut seperti robot. Dengan bimbingan yang tepat.. aku sadar bahwa kinerjaku semakin tinggi.. aku hanya butuh pengontrol.. mungkin aku belum bisa mandiri. Menentukan pilihan sendiri. Kadang aku malas jika bebas menentukan apa yang seharusnya aku kerjakan seperti sekarang saat-saat ini. Mengapa sih bisa begitu ? Karena.. aku selalu melakukan sesuatu jika aku merasa hal itu benar dan ada landasan kuat yang menyatakan bahwa hal itu benar. Aku tidak suka coba-coba. Aku suka hal yang pasti. Seperti rumus dengan hasil yang eksak. Seperi syntax yang bisa mengatur output dengan tepat. Oleh karena itu aku benci hal-hal di sosial. Yang tidak jelas batas antara benar dan salah. Hal dimana kebenaran itu relatif. Sayang kehidupan bukanlah sesuatu yang eksak. Kehidupan tidak seteratur rumus dan syntax bahasa pemrograman. Mungkin karena hal inilah aku sering kehilangan arah di dunia ini.

Ah.. ternyata sudah terlalu panjang apa yang kutulis di sini.. ingin kulanjutkan, tetapi entah mengapa aku merasa ini waktunya berhenti.. hmmm baiklah.. mungkin saat ini cukup sampai di sini.

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

Wish..

- by Sowelu -
- D-Gray Man ED 6 -

sekaijuu ikutsu no ai no katachi arundarou
( How many forms can love take out there in the world? )

hitori hiori chigau mono wo kakaenagara ikiteru
( We all live with our own burdens to bear )

kazoku ya tomodachi ya onaji GOAL miru nakama
( As family, friends, and comrades, all sought the same goal, )

mina ga ite sasaeatte ima no watashi ga iru no
( because of their support, I was made into who I am today. )

itsumo soba ni atta taisetsu na momo
( Now I can finally see that I was living oblivious to )

kizukazuni ita koto shitta
( the important things that had always been right next to me. )

jibun no tame dake ni ikiru no wa sabishii
( None of us were born to live alone. )

sekkaku kono sekai ni umaretandakara
( And so, since we are fortunate enough to exist in this world, )

EVERYBODY HAS TO SAY GOODBYE
( if everybody has to say goodbye, )

sorenara ikutsumono egao wo anata ni agetai
( until then, I want to fill your days with smiles. )

===================================================================

Nice.. today is so nice… nice and nice…. thank’s 4 all :P

===================================================================

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

don’t go..

The scenery outside my window changes
as the seasons themselves leave me behind.

You were always there for me to quell my anxiety.
Why couldn’t I see it back then?

And as you slipped from my sight
the only thing I couldn’t bring myself to say was “don’t go”
It’s allright with me if you’re happy
but I won’t say that I am
Because I don’t think there’s anything that I can do
to fix this loathsome, twisted heart of mine

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

Kena virus lagi lewat autorun.inf :( .. kali ini yang beruntung menginfeksi adalah

Begini ceritanya.. sehabis kuliah rekayasa sistem di Lab Rekayasa Perangkat LUnak aka RPL hari senin lalu, aq mampir ke Laboratorium Pemrograman aka LP dengan niat mendownload anime D.Gray Man yang sekarang lagi aq ikuti. Di LP cukup ramai. Singkat cerita aq memilih komputer di pojok dekat jendela agar bisa liat suasana luar. Waktu pertama nancepin flasdisk, perasaan tidak enak sudah melanda karena muncul file tidak dikenal dengan sendirinya di flasdiskq yang sudah jelas pasti kerjaannya virus. Waktu ntu aq pikirnya cuma “ah.. paling cuma virus lokal cupu.. toh sudah biasa di LP yang biasa dipakai mahasiswa baru”

Nah.. waktu tiba di kos.. aq dengan santainya nancepin flasdiskq di komputer. Pikirq “ah autorun kan sudah aq disable.. gak mungkin kena” dan dengan lugunya getu :)) aq klik kanan icon flasdiskq di windows explorer dan memilih explore. Dan sukseslah virusnya menginfeksi komputerq :D Padahal aq sebelumnya sudah ragu apakah “klik kanan dan pilih explore” mengaktifkan autorun atau tidak. Dan sekarang dengan suksesnya virus ini menginfeksi, sudah jelas bahwa cara tersebut tidak aman karena mengaktifkan autorun yang sering dijadikan sarana infeksi kebayakan virus lokal. Biasanya dalam mode “maksimum security” di komputerq, akses ke flasdisk hanya aq lakukan dengan account guest yang tidak punya hak akses write di drive lain kecuali di folder document guest itu sendiri. Tapi berhubung sudah lama tidak kena virus, ( catatan : virus “autoply.exe” ini adalah virus ke-3 yg berhasil menginfeksi komputerq, 2 pertama dulu adalah brontox dan blue fantasy ), kewaspadaan sudah turun :D

Akhirnya kena virus lagi deh :(

Klo sudah kena gimana ? Ya jelas langsung aq bersihkan.. walaupun aq gak tau apa efek virus ini, wong setelah terinfeksi aq langsung melakukan pembersihan proses dan file induknya :p Berhubung virus ini cukup cupu.. permbersihannya lumayan mudah..

Pertama di task manager ada proses “svchost.exe” yang usernamenya adalah userq. Ya jelas ini viruslah.. kan “svchost.exe” adalah proses miliknya system. Jika dilihat menggunakan process explorer xp, malah terlihat jelas karena process ini tidak termasuk dalam tree process system. Langsung aq “kill tree” deh process ini beres. Trus langkah berikutnya, aq mau hapus file induknya. Karena folder option di-disable virus ini, aq gak bisa lihat file virus induknya yang hidden. Tapi karena virus tidak mendisable run dan cmd, maka virus akan nampak jika kita gunakan perintah “dir /a” di cmd. Trus untuk menghapus filenya, aq gunakan “killer machine”. Tinggal “browse virus from disk” dan arahkan ke file autoply.exe yang terlihat. Maka “killer machine” akan menghapus semua file induk dari virus ini tidak peduli di manapun tempat mereka bersembunyi… nice job :)) Yups.. beres dah.. untuk detail pembersihan dan penormalan kembali efek virus ini, silahkan lihat link di bawah ini

http://www.sophos.com/security/analyses/viruses-and-spyware/w32malasa.html#table3

Pilih tab “More Information”

Wew.. gak mau kena virus lagi aq.. ngrepotin orang aja.. padahal banyak kerjaan lain yang lebih penting :D

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

Menggerakkan mouse dan mengetik secara otomatis dengan memanfaatkan fungsi API Windows menggunakan VB6

Kemaren merupakan hari terakhir UTS, dan yang mendapat kehormatan menutup minggu UTS yang penuh perjuangan tersebut adalah UTS mata kuliah Pemrograman API yang diadakan di Laboratorium Pemrograman Jurusan Teknik Informatika ITS pada pukul 19.00 sampai 20.30.
Soalnya pun cukup mudah, cukup membuat aplikasi yang bisa secara otomatis mengirim “net send * nrp nama” dengan memanfaatkan fungsi API windows.

Berikut ini adalah cara pembuatannya. Selain itu akan dijelaskan pula, bagaimana menggerakkan mouse secara otomatis yang juga menggunakan fungsi API. Aplikasi yang memanfaatkan kedua fungsi ini, yaitu menggerakkan mouse dan mengetik secara otomatis disebut aplikasi robot digital.

# Mengetik secara otomatis #

Pertama-tama yang perlu dilakukan tentu adalah mendeklarasikan fungsi API yag akan dipakai. Dalam hal ini adalah keybd_event. Soal penjelasan fungsi ini secara lengkap beserta paramater dan contoh penggunaannya, bisa dilihat di API Guide. Cara pendeklarasiannya adalah sebagai berikut :

Private Declare Sub keybd_event Lib “user32.dll” (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Delarasikan juga konstanta untuk even menekan tombol dan menghentikan penekanan tombol.

Const KEYEVENTF_KEYUP = &H2
Const KEYEVENTF_KEYDOWN = &H0

Selain itu saya juga mendeklarasikan fungsi API Sleep untuk membuat jeda antara pengetikan huruf yang satu dengan yang lain. Deklarasinya adalah sebagai berikut :

Private Declare Sub Sleep Lib “kernel32″ (ByVal dwMilliseconds As Long)

Selanjutnya adalah mendeklarasikan konstanta virtual key untuk masing-masing tombol pada keyborad yang akan digunakan. Di sini saya menggunakan nilai ascii dalam bentuk hexadecimal.

Const VK_N = &H4E
Const VK_E = &H45
Const VK_T = &H54
Const VK_SPACE = &H20
Const VK_S = &H53
Const VK_D = &H44
Const VK_U = &H55
Const VK_P = &H50
Const VK_I = &H49
Const VK_A = &H41
Const VK_LSHIFT = &HA0
Const VK_ENTER = &HD
Const VK_8 = &H38
Const VK_5 = &H35
Const VK_1 = &H31
Const VK_0 = &H30
Const VK_3 = &H33

Persiapan sudah cukup. Sekarang tinggal menggunakannya sesuai kebutuhan kita. Pada soal UTS saya, aplikasi dituntut mampu mengirim pesan berupa nrp dan nama menggunakan net send. Untuk melakukannya saya mengetikkan perintah net send nya di menu run yang disediakan windows. Untuk memanggil window tersebut cukup dengan menekan tombol left windows dan tombol r. Oiya.. di aplikasi ini saya memasukan codenya di event tombol click artinya code akan dijalankan ketika user meng-click tombol.

Private Sub Command1_Click()
keybd_event VK_LWIN, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_R, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_R, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_N, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_N, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_E, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_T, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_T, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_SPACE, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_SPACE, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_S, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_S, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_E, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_N, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_N, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_D, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_D, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_SPACE, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_SPACE, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_LSHIFT, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_8, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_8, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_SPACE, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_SPACE, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_5, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_5, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_1, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_1, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_0, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_0, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_5, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_5, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_1, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_1, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_0, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_0, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_0, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_0, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_0, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_0, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_1, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_1, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_3, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_3, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_SPACE, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_SPACE, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_S, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_S, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_U, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_U, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_P, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_P, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_R, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_R, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_I, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_I, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_A, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_A, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_D, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_D, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_I, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_I, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_ENTER, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_ENTER, 0, KEYEVENTF_KEYUP, 0
End Sub

Cukup mudah bukan ? Sekarang cara untuk menggerakkan mosue secara otomatis. Di sini saya hanya menggunakan event leftdown ( untuk menekan tombol kir mouse ), leftup ( mengangkat tombol kiri mouse ) dan move ( yaitu menggerakkan mouse sejauh parameter x dan y ). Penjelasan lengkap dan contoh lainnya bisa dilihat di API Guide,

# menggerakkan mouse secara otomatis #

Dalam aplikasi ini, saya mencoba memanfaatkan fungsi API mouse_event untuk menggambar pola sederhana di aplikasi paint windows ( mspaint ). Untuk itu, saya gunakan juga fungsi API shell_execute untuk menjalankan program mspaint-nya. Digunakan juga fungsi API Sleep untuk jeda loading aplikasi mspaint dan penggambaran menggunakan mouse event.

Untuk deklarasi fungsi API yang digunakan adalah sebagai berikut :

Private Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA” (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1

Untuk fungsi shell_execute saya letakkan di kode bagian form, sedangkan untuk Sleep dan Mouse_event saya buatkan modul khusus. Di modul tersebut saya buat juga prosedur untuk menggambarnya. Selengkapnya adalah sebagai berikut :

Public Declare Sub Sleep Lib “kernel32″ (ByVal dwMilliseconds As Long)

Public Declare Sub mouse_event Lib “user32″ (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MOVE = &H1

Public Sub gambar()
Dim count As Integer
Dim pat As Integer
count = 0
pat = 3
While count <> 20
‘ garis datar ke kanan
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_MOVE, pat, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
‘ garis datar ke bawah
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_MOVE, 0, pat, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
pat = pat + 3
‘ garis datar ke kiri
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_MOVE, -pat, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
‘ garis datar ke atas
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_MOVE, 0, -pat, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
pat = pat + 3
count = count + 1
Wend
End Sub

Selanjutnya tinggal memanggilnya. Saya buat tombol di form untuk melakukannya..

Private Sub Command1_Click()
ShellExecute Me.hwnd, vbNullString, “mspaint”, vbNullString, “C:\”, SW_SHOWNORMAL
Call Sleep(1000)
Call gambar
End Sub

Selamat mencoba. Sadarilah betapa mudahnya cara pembuatannya dan betapa exciting hasilnya. Juga betapa luas pengembangan yang bisa dilakukan baik untuk tujuan positif maupun yang negatif.

Sekian.. Terima Kasih..

Sek.. sek.. bentar.. bentar .. kok aq ngrasanya gaya bahasa tulisan di atas gak kayak biasanya ya ? Sok formal getu dan pake “saya” segala :P Wew.. ga tau juga .. nulisnya refleks saja dan ternyata begitulah hasilnya :))

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

stand and fight..

” Janganlah menyerah dengan keadaan, jika sekarang sedang kurang
beruntung, sedang mengalami kekalahan….BANGKITLAH!! karena
sesungguhnya kemenangan akan diberikan kepada siapa saja yg telah
berusaha sekuat kemampuannya. “

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.

Day 5.. shapeshifting..

Yups.. ni hari kelima aq terpaksa merubah siang menjadi malam dan malam menjadi siang.

Dan bisa ditebak yang menjadi kambing hitamnya adalah tugas-tugas, baik kuliah maupun bukan. Ya terpaksa begadang sampai jam 4 pagi hanya demi memenuhi tuntutan deadline. Dimulai dari jumat malam dimana tugas BDL meminta jatah waktunya. Dan sabtu pun dilahap BDL untuk mengejar deadline minggu. Trus di minggu malam ada deadline reksis sama imagine yang mulai menghantui. Senin malam giliran tugas pola menghajar. Selesai pola kira-kira jam 1 dini hari, lanjut imagine sampai jam 4 pagi. Wew.. belum cukup selasa malam harus imagine lagi sampai posting ini dibuat. Alasannya deadline pembuatan video progress adalah syuting yang difasilitasi jurusan besok jam 8 pagi. Ga tau bisa bangun apa ndak, wong tadi pagi saja aq sampai bolos kuliah pola :P

Dalam 5 hari, benar-benar tidak ada waktu untuk bernafas sejenak. Panggilan datang silih berganti. Sampai nyuci baju di kos aja ga sempat :P Jadi jarang banget di kos, paling cuma mandi dan tidur aja. Itupun tidak lama. Wew.. aq sadar bahwa pola hidup seperti ini sangat tidak sehat, oleh karena itu harus segera dirubah :)  Ya semga saja, tugas-tugasnya tidak selamanya menggila seperti ini :P

PS : - minggu depan UTS :lol:

- makasih buat yang udah OL malem dan dini hari, nambah semangat aja :D

Take the Magic: The Gathering ‘What Color Are You?’ Quiz.