Download

12/29/2010

Bukit indah Ada Yang Berbentuk Penis Dan Vagina Manusia


Batu Alam ini mirip dengan organ seksual manusia alias mirip penis pria dan vagina wanita, gak percaya coba tengok deh gambarnya dibawah ini :



Batu alam yang benar-benar menakjubkan dan ini adalah keajaiban alam,  Namanya Batu Yang Yuan-shih terletak di taman dunia geologi - Danxiashan Wonsan, batu ini yang mirip alat kelamin laki-laki dewasa (penis) saat ereksi.






Klo batu Yuan Shi Yin, terletak Danxiashan Grand Lake Resort, karena namanya menyerupai alat kelamin perempuan.  tinggi batu ini 10,3 m dan lebar 4,8 meter, mwmbela tengah antara dasar lubang, mirip klitoris wanita pada vagina wanita,  ada juga rambut kemaluan dan sebagainya aneh dan dan terkesan porno tapi itu hanya batu alam.

12/15/2010

Cara Membuat Integer to Binary Konverter dan Sebaliknya di Delphi


Selamat siang agan-agan.Posting lagi juga ya akhirnya :D.Udah akhir taun nih , untuk itu mari kita tingkatkan pemahaman Delphi kita (hubungannya apa !? :hammer ).Pada postingan kali ini saya akan menyajikan tutorial Cara Membuat Integer to Binary Konverter dan Sebaliknya  di Delphi.Berawal dari sebuah pertanyaan di Grup Delphi di Facebook , hati saya tergugah untuk menulis posting ini.Sebagaimana kita tahu , bahwa komputer hanya mengenal bilangan biner , yang terdiri dari angka 0 dan 1.Apapun yang tampil sekarang ini di depan anda adalah hasil dari pengolahan bilangan

biner.Yuph , semuanya tersusun dari angka 0 dan 1.Udah ah , saya anggap agan-agan udah ngerti apa itu bilangan biner , kalo belum ngerti coba aja cari di mbah google.Mari lanjut ke topik.Dalam pembuatan program ini , kita membutuhkan 2 buah function.Yang pertama , ialah konverter dari biner ke integer , dan satu lagi dari integer ke biner.Okey , buka program anda sekarang.(untuk postingan kali ini , saya pake Delphi XE , tapi pake Delphi 7 juga bisa kok).Tambahkan komponen berikut.


Component
Properties
Keterangan
2 Tbutton
Caption:Integer To Binary dan Binary To Integer

2 TEdit
Name:edNilaiInteger dan edNilaiBinary

2 TLabel
Name:lblNilaInteger dan lblNilaiBiner
 

Susun komponen tersebut sebagai berikut











Okay , nah saatnya koding !! Tambahkan kode berikut setelah {$R *.dfm}


  1. function BinToInt(value:String):integer;  
  2. var i , nilaUkuran:Integer;  
  3. begin  
  4.   Result:=0;  
  5.   nilaUkuran:=Length(value);  
  6.   for i := nilaUkuran downto 1 do  
  7.     begin  
  8.       if value[i]='1' then Result:=Result + (1 shl(nilaUkuran-i));  
  9.     end;  
  10. end;  

Kode diatas merupakan konverter dari Binary Ke Integer.Bila kita liat , ada keyword yang cukup asing , yaitu shl.Apa fungsi shl itu !? Keyword shl berfungsi untuk melakukan pergeseran bitwise kiri Integer.Untuk mengetahui lebih dalam mengenai shl , silahkan cek kesini.Selanjutnya , kita akan membuat konverter dari Integer ke binary.Ketikan kode berikut setelah function di atas.


  1. function IntToBin(value:Longint;Nilai:integer):String;  
  2. var i :Integer;  
  3. begin  
  4.   Result:='';  
  5.   for i := Nilai downto 0 do  
  6.     begin  
  7.       if value and (1 shl i) <> 0 then  
  8.         begin  
  9.           Result := Result+'1';  
  10.         end  
  11.       else  
  12.         begin  
  13.           Result:=Result+'0';  
  14.         end;  
  15.     end;  
  16. end;  

Setelah kedua function tersebut selesai , saatnya memberikan kode untuk mengeksekusinya di Button.Double-click Button Integer To Binary dan ketikan kode berikut


  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. begin  
  3.   if (edNilaiInteger.Text<>'') then  
  4.     begin  
  5.       lblNilaiBiner.Caption:=IntToBin(StrToInt(edNilaiInteger.Text),7)  
  6.     end;  
  7. end;  

Kita akan mengconvert nilai integer menjadi 8 digit nilai biner.Lalu kenapa saya memasukan nilai 7 !? Karena bilangannya dimulai dari 0.Dan selanjutnya untuk Button Binary to Integer , ketikan kode berikut

  1. procedure TForm1.Button2Click(Sender: TObject);  
  2. begin  
  3.   if edNilaiBinary.Text<> '' then  
  4.     begin  
  5.       lblNilaInteger.Caption:=IntToStr(BinToInt(edNilaiBinary.Text));  
  6.     end;  
  7. end;  

Untuk kode lengkapnya , sebagai berikut


  1. unit Unit1;  
  2.   
  3. interface  
  4.   
  5. uses  
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  7.   Dialogs, StdCtrls;  
  8.   
  9. type  
  10.   TForm1 = class(TForm)  
  11.     edNilaiInteger: TEdit;  
  12.     Button1: TButton;  
  13.     lblNilaiBiner: TLabel;  
  14.     Button2: TButton;  
  15.     edNilaiBinary: TEdit;  
  16.     lblNilaInteger: TLabel;  
  17.     procedure Button1Click(Sender: TObject);  
  18.     procedure Button2Click(Sender: TObject);  
  19.   private  
  20.     { Private declarations }  
  21.   public  
  22.     { Public declarations }  
  23.   end;  
  24.   
  25. var  
  26.   Form1: TForm1;  
  27.   
  28. implementation  
  29.   
  30. {$R *.dfm}  
  31.   
  32. function BinToInt(value:String):integer;  
  33. var i , nilaUkuran:Integer;  
  34. begin  
  35.   Result:=0;  
  36.   nilaUkuran:=Length(value);  
  37.   for i := nilaUkuran downto 1 do  
  38.     begin  
  39.       if value[i]='1' then Result:=Result + (1 shl(nilaUkuran-i));  
  40.   
  41.     end;  
  42. end;  
  43.   
  44. function IntToBin(value:Longint;Nilai:integer):String;  
  45. var i :Integer;  
  46. begin  
  47.   Result:='';  
  48.   for i := Nilai downto 0 do  
  49.     begin  
  50.       if value and (1 shl i) <> 0 then  
  51.         begin  
  52.           Result := Result+'1';  
  53.         end  
  54.       else  
  55.         begin  
  56.           Result:=Result+'0';  
  57.         end;  
  58.     end;  
  59. end;  
  60.   
  61. procedure TForm1.Button1Click(Sender: TObject);  
  62. begin  
  63.   if (edNilaiInteger.Text<>'') then  
  64.     begin  
  65.       lblNilaiBiner.Caption:=IntToBin(StrToInt(edNilaiInteger.Text),7)  
  66.     end;  
  67. end;  
  68.   
  69. procedure TForm1.Button2Click(Sender: TObject);  
  70. begin  
  71.   if edNilaiBinary.Text<> '' then  
  72.     begin  
  73.       lblNilaInteger.Caption:=IntToStr(BinToInt(edNilaiBinary.Text));  
  74.     end;  
  75. end;  
  76.   
  77. end.  

Okey deh , jalankan program anda dan coba ketikan nilai integer pada edNilaiInteger.Contoh penampakannya











Untuk mengecek apakah valid bilangan biner tersebut , silahkan lihat disini Sekian untuk tutorial kali ini , semoga bermanfaat :)

12/10/2010

Cara Menambahkan Fungsi Undo pada komponen edit di delphi 7




Adakalanya secara tak sengaja kita menghapus teks yang sedang di input pada komponen edit.Tak masalah bila teks yang diinput hanya berisi 5 karakter misalnya.Namun bagaimana bila karakter tersebut berjumlah belasan !?Nomor faktur misalnya.Tentu akan repot dan kurang efisien bila harus di ketik ulang secara manual.Apalagi bila karakter yang diketikan njelimet.Untuk itu pada tutorial kali ini , saya akan menjelaskan mengenai Cara Menambahkan Fungsi Undo pada komponen edit di Delphi 7.Sehingga bila data yang di input pada edit terhapus , kita bisa meng-undo-nya tanpa harus mengetik ulang.Okey , mari kita mulai.

Buka borland Delphi 7 anda lalu tambahkan 1 buah komponen edit kedalam form1.Lalu pada event onChange komponen edit1 , ketikan kode berikut


  1. procedure TForm1.Edit1Change(Sender: TObject);  
  2. begin  
  3.   Edit1.Perform(EM_CANUNDO, 0, 0);  
  4. end;  

Kode diatas berfungsi untuk "menangkap" hasil ketikan kita pada komponen edit1.Lalu pada form1 properties keyPreview set menjadi true.Dan pada form1 event onKeyDown ketikan kode berikut


  1. procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  
  2.   Shift: TShiftState);  
  3. begin  
  4.   if Key= vk_escape  then //bila tombol escape ditekan  
  5.     begin  
  6.       Edit1.Perform(EM_UNDO, 0, 0); //undo  
  7.     end;  
  8. end;  

Coba jalankan program anda lalu ketikan sesuatu pada edit1.Setelah itu hapus teks yang telah anda ketikan lalu tekan escape/esc.Maka teks yang telah diketikan lalu di hapus tadi akan muncul kembali.Sekian tutorial kali ini semoga bermanfaat.

12/09/2010

Cara Membuat Aplikasi Client-Server Di Delphi XE Dengan Datasnap




Selamat siang agan sekalian.Apa kabarnya !? Mudah-mudahan selalu dalam keadaan sehat dan semangat untuk belajar.Pada postingan kali ini , saya akan memberikan materi mengenai Cara Membuat Aplikasi Client-Server Di Delphi XE Dengan Datasnap.Yuph , secara perlahan saya mulai bermigrasi ke Delphi XE.Jujur saja , saya sedikit bingung melototin tampilan IDE baru dari Embarcadero ini.Mungkin karena sudah familiar dengan Delphi 7 dan belum akrab sama IDE ini.Oia , saya menggunakan Delphi XE , bukan Delphi XE2.Lalu , maksud dari judul diatas apa !? Fokus saya dalam membangun sebuah aplikasi , ialah optimalisasi penggunaan program untuk kepentingan aplikasi database.Untuk itu , ketika pertama kali saya mencumbui IDE ini , sasaran saya adalah membangun aplikasi database berbasis client-server dengan konsep Multi-Tier.Wow , jangan dulu bingung.Karena pembahasan kali ini tidak sedalam itu , wong saya aja belum mudeng , hahaha.Kalo agan belum punya Delphi XE , bisa di download di situs resminya,Search aja di google :D.Maka dari itu , mari kita mulai untuk melucuti busana Cameron Diaz :hammer , Delphi XE maksudnya.Buat aplikasi baru.Ganti caption dari form1 menjadi Server Form dan tambahkan component berikut : TDSServer , TDSServerClass , TDSTCPServerTransport.Ketiga component tersebut bisa agan temukan di tab pallete DataSnap Server.Perhatikan gambar berikut.















Okey , selanjutnya pilih SaveAll.Simpan nama unit dengan nama MyServer dan nama project dengan nama MyServerProj.Selanjutnya , isi property server pada TDSServerClass dan TDSTCPServerTransport dengan TDSServer.Nah , selanjutnya buat unit baru , caranya pilih file > new > unit.Simpan unit baru tersebut dengan nama MyClass.Anda akan menemukan code pada unit baru tersebut sebagai berikut.


  1. unit MyClass;  
  2.    
  3. interface  
  4.    
  5. implementation  
  6.   
  7. end.  

Tambahkan kode berikut pada unit tersebut.Kita akan membuat sebuah function yang berfungsi untuk operasi penjumlahan.Simpel kan !? Biar gampang dimengerti gans :)


  1. unit MyClass;  
  2.   
  3. interface  
  4.   
  5. uses classes;  
  6.   
  7. type  
  8.   {$METHODINFO ON} //directive on  
  9.   TMyClass=class(TComponent) //inisialisasi object  
  10.     function sum(const a,b:Double):Double; //inisialisasi function  
  11.   end;  
  12.   {$METHODINFO OFF} //directive off  
  13.   
  14. implementation  
  15. {TMyClass}  
  16.   
  17. //implementasi function  
  18. function TMyClass.sum(const a: Double; const b: Double):Double;  
  19. begin  
  20.   Result:=a+b; //menjumlahkan nila a dan b , simple kan !? o.O  
  21. end;  
  22. end.  

Jangan lupa , include unit MyClass di unit MyServer.Caranya , pilih Server Form.Lalu pilih file > use units dan pilih MyClass.Selanjutnya , kita akan menentukan class yang akan di panggil oleh client.Caranya , pada TDSServerClass event OnGetClass , ketikan kode berikut.


  1. procedure TForm1.DSServerClass1GetClass(DSServerClass: TDSServerClass;  
  2.   var PersistentClass: TPersistentClass);  
  3. begin  
  4.   PersistentClass:=TMyClass;  
  5. end;  
  6. end.  

Ooowww kaaayyyy , setting untuk server sudah selesai.Sekarang saatnya melakukan setting untuk client.Pilih project manager (disamping kanan) , lalu klik kanan pada project group dan pilih add new project.Maka akan muncul dialog.Pilih VCL Form Application.Harusnya , muncul form baru.Rubah captionnya menjadi Client Form.SaveAll.Simpan file unit dengan nama MyClient , file project dengan nama MyClientProj , dan Group Project dengan nama DataSnapTest.Bila berhasil , maka tampilan project anda harusnya seperti gambar di bawah ini.














Selanjutnya , tambahkan 3 buah component TEdit dan 1 buah component TButton.Rubah property name ketiga TEdit tersebut masing-masing , editA , editB dan editResult.Rubah property caption TButton dengan nama Hitung.Setelah itu , tambahkan component lagi yaitu TSQLConnection yang terdapat pada tab pallete dbExpress.Rubah property driver menjadi DataSnap , connectionName menjadi DataSnapCONNECTION dan loginPrompt menjadi false.Susun component tersebut sebagai berikut.















Masuk ke tahap yang paling penting.Pada project manager , double-klik MyServerProj.dproj , setelah itu klik kanan dan pilih run without debugging.Maka form Server akan running , pilih minimize pada form dan biarkan tetap running.Selanjutnya pada project manager . double-klik MyClientProj.dproj.Lalu pilih component TSQLConnection pada form client dan rubah property Connected menjadi true.Penting , biarkan form server tetap running , karena bila tidak , maka component TSQLConnection property connected tidak bisa di set menjadi true.Selanjutnya , klik kanan pada component TSQLConnection dan pilih Generate DataSnap client classes.Maka akan muncul unit baru yang berisi informasi mengenai implementasi class pada server dan method yang terdapat pada class.Simpan unit baru tersebut dengan nama MyDSClient.Jangan lupa untuk meng-include-kan (bahasanya apa sih -,-") unit tersebut di unit MyClient.Caranya pilih form client , lalu pilih file > use unit dan pilih MyDSClient.Okay , masuk ke tahap akhir.Sebagaimana dikatakan sebelumnya , bahwa kita akan melakukan operasi penjumlahan.Dimana nilai kesatu yaitu editA akan di jumlahkan dengan nilai kedua yaitu editB.Dan ketika tombol hitung di tekan , maka hasilnya akan tampil di editResult.Kita sudah membuat function untuk process tersebut yang terdapat pada MyClass.Dan kita akan memanggilnya di form client.Double-klik button hitung dan ketikan kode berikut.


  1. procedure TForm2.Button1Click(Sender: TObject);  
  2. var temp:TMyClassClient;//inisialisasi TMyCLassClient  
  3.     a,b:Double;  
  4. begin  
  5.     //deklarasi temp yang merupakan TMyClassClient dan  
  6.     //menjadikan TSQLConnection sebagai parameter  
  7.    temp:=TMyClassClient.Create(SQLConnection1.DBXConnection);  
  8.    try  
  9.     a:=StrToFloat(editA.Text);  
  10.     b:=StrToFloat(editB.Text);  
  11.     editResult.Text:=FloatToStr(temp.sum(a,b));  
  12.    finally  
  13.     temp.Free;  
  14.    end;  
  15. end;  

Yuph , beres.Pada kondisi MyServerProj running , double-klick MyClientProj lalu pilih build dan run.Silahkan inputkan angka pada editA dan editB lalu tekan tombol hitung.Maka hasilnya akan tampil di editResult.Wow , untuk membuat aplikasi yang hanya melakukan operasi penjumlahan kok repot sekali !? Haha.Mungkin itu tanggapan anda.Jangan lihat dari fungsionalitas aplikasinya.Namun coba telaah konsep pembuatannya.Anda telah berhasil membuat aplikasi berbasis client-server dengan DataSnap.Bayangkan ketika kita membuat aplikasi dengan banyak client yang secara simultan menginputkan data ke database.Dengan konsep seperti ini , penanganan proses tersebut menjadi jauh lebih mudah dan performanya lebih cepat.Oia , sebelum anda menutup aplikasi ini jangan lupa untuk merubah TSQLConnection property connected menjadi false.Okey , sekian untuk postingan kali ini semoga bermanfaat.
Untuk source code tutorial ini bisa agan download DISINI.

12/07/2010

Advanced SystemCare Ultimate 6.0.8.289 Final Full Patch


Advanced SystemCare Ultimate 6.0.8.289 Final Incl Patch

Mirrors: Rapidshare | Sharebeast



FREE Download Advanced SystemCare Ultimate 6 Final Full Version - Advanced SystemCare Ultimate merupakan kumpulan dari beberapa utilitas dan antivirus milik IObit. Anda tidak perlu lagi mendownload Advance SystemCare Pro, IObit malware fighter dan software-software milik IObit secara terpisah hanya untuk merawat dan melindungi pc anda dari berbagai serangan program jahat yang banyak bertebaran di internet, karena di dalam Advanced SystemCare Ultimate terdapat semua kemampuan yang tertanam di dalam produk-produk Utilities & AntiVirus milik IObit.



Screenshot


Advanced SystemCare provides an always-on, automated, all-in-one PC Healthcare Service with anti-spyware, privacy protection, performance tune-ups, and system cleaning capabilities. This powerful and award-winning precision tool fixes stubborn errors, cleans out clutter, optimizes internet and download speeds, ensures personal security and maintains maximum computer performance automatically. Designed for the latest Windows system environment and to speed up your PC and provide more reliability. Safely cleans registry junk, compacts registry bloats and defragments the whole registry for maximum performance. Find and fix the registry errors others miss with our "Deep Scan" technology.



Features

  • Designed for the latest Windows system environment. Gives your PC better speed and reliability
  • Powerful Hard Drive Defrag and Optimization
  • Next-generation Registry Deep Clean and Optimization
  • Automated Working in the Background
  • Defends PC Security with Extra Protection
  • Quick and Extensive Clean-up for Hard Drives
  • Keeps Your PC Running at Peak Performance
  • Fixes Multiple System Errors

Unrivaled Detection Rate and Maximum Protection

No more worries about virus, spyware, adware, hijackers or any other E-threats. Your PC security is guaranteed with the combination of #1 ranked BitDefender antivirus technogly and IObit anti-malware engine. Unmatched detection rate assures you TOP PC security.



Enjoy Confident Security without System Slowdown

No more performance lag while conducting antivirus scanning and repairing. Unlike most of security suites that consume too much system resources, Advanced SystemCare Ultimate 6 does not affect system speed with the industry-leading security technology.



Safe Surf, Search, Download and Share with Confidence

The newly introduced Surfing Protection detects risky websites, while Proactive Virus Control technology monitors processes behavior in real-time, scans files shared with email and blocks possible threats that may harm your PC, ensuring you top online environment.



Get Highly-tuned Performance and 300% Internet Speedup

Already proven PC tune-up ability fully optimizes your Windows by unleashing the built-in power of your system. New Internet Boost technology accelerates internet downloading, web surfing, online gaming, youtube viewing up to 300% faster.



Performance Monitor Gives You Peace of Mind

New performance monitoring technology makes you remain confident with your PC, by presenting you a dashboard to update your system performance in real time. It also provides a quick launch option to fix your problems faster.



Uninterrupted Gaming or Working Experience

Turbo Boost, technology that terminates unnecessary services and applications, provides you a more efficient working and superb gaming experience. In addition, you can customize the configuration of different modes according to needs.



Over 20 dedicated Smart Tools for Daily PC Maintenance

Advanced SystemCare Ultimate 6 integrates the latest IObit Toolbox for daily PC maintenance and advanced needs. 26 dedicated smart tools are included for system cleaning, optimizing and repairing, and security enhancement, providing you an all-in-one solution to fully control your system.



Automatically Runs in the Background

Advanced SystemCare Ultimate 6 works continuously, automatically and quietly in the background on your PC. You can set the program on regular schedule or just let it run automatically when your PC is idle.



FREE, Award-Winning Customer Support for Every User

24/7 Technical Support and Community Support at your service.



100% Money-back Guarantee

When you purchase Advanced SystemCare Ultimate 6, your satisfaction is guaranteed. Within 60 days, you can request your money back if you're not satisfied with no questions asked.



Link download

Mirror via Rapidshare

Mirror via Sharebeast

Password: koskomputer

Installasi
1. Ekstrak rar
2. Install ASC Ultimate
3. Copy & Paste Patch ke direktori installasi program
4. Run Patch > Apply Patch
5. Enjoy

12/03/2010

Cara Membuat Animasi Sederhana Di Delphi 7




Selamat siang agan-agan.Pada kesempatan kali ini , saya akan membahas mengenai Cara Membuat Animasi Sederhana Di Delphi 7.Apakah bisa !? Bisa dong , walaupun gak secanggih flash.Animasi yang saya maksud ialah menggerakan komponen button ketika run-time.Sangat sederhana , namun cukup sebagai pemanis untuk program yang akan kita buat nantinya.Seperti apa cara membuatnya !? Makanya terus baca tutorial ini sampai selesai sembari di praktekan.Seperti biasa , buka borland delphi anda.

Setting form1 properties width menjadi 450.Tambahkan 1 komponen button rubah properties captionnya menjadi 'kanan'.Properties widthnya menjadi 90 dan properties left nya menjadi 30.Tambahkan juga 1 buah komponen timer , rubah properties intervalnya menjadi 10 dan properties enablednya false.Double-klik komponen timer1 dan tambahkan kode berikut



  1. procedure TForm1.Timer1Timer(Sender: TObject);  
  2. var a,b:Integer;  
  3. begin  
  4.   if Button1.Caption='kanan' then  
  5.     begin  
  6.       a :=  Button1.Left;  
  7.       b := a + 10;  
  8.       Button1.Left := b;  
  9.       if Button1.Left>=300 then  
  10.         begin  
  11.           Button1.Caption:='kiri';  
  12.           Timer1.Enabled := false;  
  13.         end;  
  14.     end  
  15.   else  
  16.     begin  
  17.       a :=  Button1.Left;  
  18.       b := a - 10;  
  19.       Button1.Left := b;  
  20.       if Button1.Left<=30 then  
  21.         begin  
  22.           Timer1.Enabled := false;  
  23.           Button1.Caption:='kanan';  
  24.         end;  
  25.     end;  
  26. end;  

Kode diatas berfungsi untuk menggerakan button ke kiri dan ke kanan.Dengan menambahkan properties leftnya secara berkala sampai pada nilai 300.Dan menguranginya sampai dengan 30.Double-klik button1 dan tambahkan kode berikut.


  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. begin  
  3.   Timer1.Enabled:=true;  
  4. end;  

Lalu jalankan program anda.Klik button1 dan harusnya button1 tersebut bergerak ke samping kanan.Setelah berhenti dan di klik lagi maka akan bergerak ke samping kiri.Sangat mudah bukan !? Cukup sekian tutorial kali ini semoga bermanfaat.

12/01/2010

Menerapkan USB HID pada Mikrokontroller sebagai keyboard (bagian I)

USB HID Keyboard Pada posting kali ini saya akan sedikit mengulas tentang Cara menerapkan USB HID pada mikrokontroler sebagai Keyboard dengan menghubungkannya dengan mikrokontroler .  Umumnya utuk berkomunikasi antara mikrokontroler dengan PC atau perangkat lain biasanya kita menggunakan fasilitas I2C, SPI dan serial rs232 biasa dengan kecepatan yang lebih lambat dari USB dan Serial dari mikrokontroler tersebut harus dihubungkan dengan pasanganya pada komputer atau bisa menggunakan usb to serial konverter terlebih dahulu untuk menghubungkannya dengan port usb komputer, Namaun kali ini kita akan mencoba mengulas dimana Mikrokontroler dapat terhubung langsung dengan PC atau device lain melalu port USB langsung (tanpa USB to Serial Konverter) dengan menerapkan protocol USB HID.  Mungkin sedikit review saya apa sebenernya USB HID itu dan seberapa pentingnya bagi aplikasi mikrokontroler.
Pengertian USB HID
USB seperti diketahui merupakan singkatan dari Universal Serial Bus yaitu suatu standar bus serial kecepatan tinggi untuk menghubungkan suatu perangkat dengan perangkat yang lain, seperti sekarang ini sebuah device selal memiliki PORT USB untuk menghubungkan device tersebut dengan device lain seperti pada Komputer, Laptop, Ponsel,dan banyak lagi yang lain.
Terus USB HID (Human Interface Device) sendiri itu apa???. USB HID itu sendiri merupakan sebuah class perangkat USB yang menggambarkan perangkat antarmuka seperti keyboard, mouse, game kontroler, dll. Intinya USB HID class yaitu mendefiniskan perangkat atau device yang digunakan hampir di setiap komputer modern. Fungsi ini memungkinkan produsen perangkat keras untuk merancang produk pada spesifikasi USB HID class agar dapat bekerja atau berhubungan dengan perangkat lunak yang juga memenuhi spesifikasi ini.
Jadi dengan menerapkan USB yang sesuai dengan spesifikasi HID ini sangat berguna jika kita mengembangkan aplikasi untuk OS Windows. Setiap perangkat vendor membutuhkahn driver kernel, namun perangkat HID TIDAK Membutuhkan itu, Ini beraarti bahwa kita tidak memerlukan sebuah Installer.
So dengan mengaplikasikannya pada device tertentu dalam hal ini Mikrokontroler dengan mengikuti protocol USB HID Class (dalam program yang didownloadkan) maka port usb dari mikrokontroller kemudian dihubungkan dengan sebuah komputer atau laptop maka di komputernya tidak membutuhkan installer lagi dan hal ini berbeda jika tidak menggunakan usb class, setiap perangkat yang dihubungkan ke windows SELALU membutuhkan installer.
Maaf tulisannya agak amburadul, maklum masih belajar nulis…xixi
Setelah ini di bagian selanjutnaya akan di bahas Step By Stepnya….ditunggu y :)

Menjalankan Aplikasi Hanya Satu Kali Di Delphi 7




Selamat pagi menjelang siang agan-agan.Pada postingan kali ini , saya akan membahas mengenai Menjalankan Aplikasi Hanya Satu Kali Di Delphi 7.Maksudnya !?Adakalanya kita hanya ingin menjalankan aplikasi yang kita buat hanya satu kali.Contohnya regedit windows yang hanya di jalankan satu kali.Berbeda dengan notepad , yang bisa di buka beberapa kali.Bila kita mengharapkan hal yang serupa untuk aplikasi yang kita buat , maka inilah caranya.Kenapa ini penting !? Bayangkan bila aplikasi database yang anda di buat di buka lebih dari satu kali.Tentunya berpotensi menyebabkan error.Dan kita tidak ingin itu terjadi.Mari kita mulai

Pertama , buka borland Delphi 7 anda.Lalu simpan aplikasi tersebut dimana saja sesuai selera anda.Pilih tab project -> view source.Maka akan muncul jendela baru pada layar bersi source project utama kita.Tambahkan kode berikut sebelum baris Application.Initialize.

  1. CreateMutex(nil , true , 'Object Mutex');  
  2.   if GetLastError = ERROR_ALREADY_EXISTS then  
  3.     begin  
  4.       ShowMessage('Program sudah di buka');  
  5.     end;  

Jangan lupa tambahkan windows dan dialogs pada klausa uses.Kode lengkapnya seperti ini setalah di tambahkan kode diatas.


  1. program Project1;  
  2.   
  3. uses  
  4.   Forms,  
  5.   windows,  
  6.   dialogs,  
  7.   Unit1 in 'Unit1.pas' {Form1};  
  8.   
  9. {$R *.res}  
  10.   
  11. begin  
  12.   CreateMutex(nil , true , 'Object Mutex');  
  13.   if GetLastError = ERROR_ALREADY_EXIST then  
  14.     begin  
  15.       ShowMessage('Aplikasi sudah di buka');  
  16.     end;  
  17.   Application.Initialize;  
  18.   Application.CreateForm(TForm1, Form1);  
  19.   Application.Run;  
  20. end.  

Jalankan dan simpan aplikasi anda.Setelah itu , buka folder tempat anda menyimpan aplikasi.Lalu double-klik file exe hasil kompilasi program tadi.Pada saat aplikasi di jalankan , coba anda double-klik lagi file exe tersebut.Harusnya , muncul pesan error berisi pesan diatas.Sekian tutorial kali ini , semoga bermanfaat.

11/30/2010

Cara Membuat Expired Date Untuk Aplikasi Di Delphi 7


Selamat siang agan-agan.Pada tutorial kali ini saya akan membahas mengenai Cara Membuat Expired Date Untuk Aplikasi Di Delphi 7.Maksudnya udah ngerti kan !? Kalau kita membuat aplikasi yang bertujuan untuk komersil dan di gunakan secara massal , maka kita harus membuat masa trial pada aplikasi kita.Nantinya bila sudah expired , maka user akan diminta untuk registrasi untuk menggunakannya lagi.Bungung !? Sama.Maka dari itu , lebih baik kita contoh kan saja dengan praktek.

Cara kerjanya seperti ini , bila user menjalankan aplikasi sebelum masa expired , maka akan tampil pesan bahwa masa expired aplikasi tinggal beberapa hari lagi.Namun bila user menjalankan aplikasi setelah lewat masa expired , maka aplikasi tidak akan bisa di jalankan.Lalu tunggu apalagi !? Silahkan buka borland Delphi 7 anda.Kita akan membuat procedure dengan nama expired.Ketikan kode berikut setelah {$R *.dfm}


  1. procedure expired;  
  2. var tahun , bulan , tanggal  , sisa:Integer;  
  3.     tempo : TDate;  
  4. begin  
  5.   tahun:=2011;  // tahun expired  
  6.   bulan:=07;    //bulan expired  
  7.   tanggal:=30;  //tanggal expired  
  8.   //membandingkan tanggal hari ini dengan tanggal expired  
  9.    if (Date >= EncodeDate(tahun, bulan, tanggal)) then  
  10.       begin  
  11.         ShowMessage('Masa trial software anda telah habis , silahkan registrasi');  
  12.         Application.Terminate;  
  13.       end  
  14.    else  
  15.     begin  
  16.     //mencari selisih tanggal antara tanggal expired , dan tanggal hari ini  
  17.       tempo:=EncodeDate(tahun , bulan , tanggal);  
  18.       sisa:=trunc(tempo-date);  
  19.       ShowMessage('Masa trial anda tersisa ' + IntToStr(sisa) +' Hari lagi' );  
  20.     end;  
  21. end;  

Untuk tanggal expired , anda bisa memodifikasinya dengan mencari tau tanggal kapan pertama kali aplikasi anda di jalankan dengan memanfaatkan fungsi dari registry.Anda bisa melihatnya DISINI.
Okey , setelah procedure expired dibuat maka anda tinggal memanggilnya pada form1 event on activate.Ketikan kodenya seperti di bawah ini.


  1. procedure TForm1.FormActivate(Sender: TObject);  
  2. begin  
  3.   expired;  
  4. end;  

Coba jalankan aplikasi anda.Atur-atur kembali tanggal expired yang di tulis tadi untuk mengecek apakah berfungsi dengan benar atau tidak.Sekian postingan kali ini semoga bermanfaat.

11/29/2010

Cara Membersihkan TEdit Secara Cepat Di Delphi 7



Selamat siang agan-agan.Pada postingan kali ini saya akan membahas mengenai Cara Membersihkan TEdit Secara Cepat Di Delphi 7.Maksudnya !? Biasanya ketika kita sudah selesai menginputkan data kedalam database , data yang di inputkan melalui komponen TEdit tentu harus di bersihkan untuk kemudian digunakan lagi dalam proses penginputan berikutnya.Bila ternyata jumlah komponen TEditnya sangat banyak , tentu akan merepotkan bila harus membersihkannya satu-satu.Mari kita contohkan dengan membuat program.Yang satu menggunakan cara lama , dan satu lagi menggunakan cara cepat.

1.Cara Lama
Buka borland Delphi 7 anda lalu tambahkan 10 buah component TEdit dan 1 buah component button.Buat sebuah procedure dengan nama bersihLama.Ketikan kode berikut setelah {$R *.dfm}


  1. procedure bersihLama;  
  2. begin  
  3.   with form1 do  
  4.     begin  
  5.       Edit1.Clear;  
  6.       Edit2.Clear;  
  7.       Edit3.Clear;  
  8.       Edit4.Clear;  
  9.       Edit5.Clear;  
  10.       Edit6.Clear;  
  11.       Edit7.Clear;  
  12.       Edit8.Clear;  
  13.       Edit9.Clear;  
  14.       Edit10.Clear;  
  15.   
  16.       Edit1.Enabled:=false;  
  17.       Edit2.Enabled:=false;  
  18.       Edit3.Enabled:=false;  
  19.       Edit4.Enabled:=false;  
  20.       Edit5.Enabled:=false;  
  21.       Edit6.Enabled:=false;  
  22.       Edit7.Enabled:=false;  
  23.       Edit8.Enabled:=false;  
  24.       Edit9.Enabled:=false;  
  25.       Edit10.Enabled:=false;  
  26.     end;  
  27. end;  

Lalu double-klik button1 dan ketikan kode berikut.


  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. begin  
  3.   bersihLama;  
  4. end;  

Sekarang jalankan program anda , lalu klik button1.Semua component TEdit yang ada langsung bersih dan tidak bisa di edit.Cara seperti itu memang tidaklah salah.Namun tentu akan memakan banyak waktu bila ternyata kita harus melakukan hal yang sama (mengetik semua nama component TEdit) secara berulang-ulang.Untuk itu , mari kita bandingkan dengan cara cepat.

2.Cara Cepat
Buat sebuah program baru di Delphi 7 anda.Tambahkan 10 buah component TEdit dan 1 buah component button.Buat sebuah procedure dengan nama bersihCepat.Ketikan kode berikut setelah {$R *.dfm}


  1. procedure bersihCepat;  
  2.  var i : Integer;  
  3. begin  
  4.   with Form1 do  
  5.     begin  
  6.       for i := 0 to ComponentCount-1 do  //menghitung jumlah component  
  7.       if (Components[i] is TEdit) then   //menyortir hanya component TEdit  
  8.       begin  
  9.         (Components[i] as TEdit).Text := '';  //mebersihkan TEdit  
  10.         (Components[i] as TEdit).Enabled:=false//disabled TEdit  
  11.       end;  
  12.   end;  
  13. end;  

Lalu double-klik button1 dan ketikan kode berikut.


  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. begin  
  3.   bersihCepat;  
  4. end;  

Jalankan program anda lalu klik pada button1.Apa yang terjadi !? Tentu hal sama ketika kita menggunakan caraLama.Namun kali ini , kode yang di gunakan jauh lebih sedikit tentunya.Lebih praktis , karena bila nantinya kita menambahkan component TEdit lagi , kita tidak perlu merubah kodenya sedikitpun.Okey , sekian untuk postingan kali ini , semoga bermanfat.

11/28/2010

Cara Mengecek Primary Key Pada Saat Input Di Delphi 7


Selamat malam agan-agan , postingan kali ini saya akan membahas mengenai Cara Mengecek Primary Key Pada Saat Input Di Delphi 7.Maksudnya !? Misalnya anda membuat aplikasi input barang.Setiap barang memiliki nama dan ID-nya masing-masing.ID atau primary key ini haruslah unik.Artinya tidak boleh lebih dari satu.Apa yang terjadi bila primary key lebih deri satu !? Ya error lah programnya.Untuk mencegah hal tersebut terjadi , mari kita bahas bersama-sama.Untuk postingan kali ini , kita tidak akan membuatnya dari nol , namun sedikit memodifikasi kode yang saya tulis pada postingan Tutorial Aplikasi Database Part-2.Cara pencegahan dopost primary key bukan hanya seperti ini , namun bila anda silahkan ikuti cara saya.
Cari kode seperti di bawah ini pada postingan Tutorial Aplikasi Database Part-2.


  1. Procedure TFinputBarang.edKodeBarangKeyPress(Sender: TObject);  
  2. Begin  
  3.  If key=#13 then  //fungsi bila tombol enter ditekan  
  4.   Begin  
  5.    If edKodeBarang.text <> '' then  
  6.     Begin  
  7.      edNama.setFocus;  
  8.     End;  
  9.   End;  
  10. End;  

Lalu modifikasi kode tersebut menjadi seperti ini.


  1. Procedure TFinputBarang.edKodeBarangKeyPress(Sender: TObject);  
  2. Begin  
  3. with DM.TBarang do  
  4. begin  
  5.  If key=#13 then  //fungsi bila tombol enter ditekan  
  6.   Begin  
  7.    If edKodeBarang.text <> '' then  
  8.     Begin  
  9.   //membandingkan edKodeBarang dengan data kode barang di database  
  10.   //kalo ada , langsung muncul pesan seperti kode di bawah  
  11.   if locate('kdBarang',edKodeBarang.text,[locaseinsensitive]) then  
  12.    begin  
  13.     showmessage('Maaf , kode barang sudah terdaftar dalam database');  
  14.     edkodeBarang.clear;  
  15.    end  
  16.   else  
  17.    begin  
  18.     edNama.setFocus;  
  19.    end;  
  20.     End;  
  21.   End;  
  22. End;  
  23. end;  

Intinya , kita hanya membandingkan saja edKodeBarang dengan data primary key pada database.JANGAN LUPA !! Tambahkan DB pada klausa uses.Kalau tidak maka program akan error.Karena penggunaan function [locaseinsensitive] tanpa menyertakan DB.Okey , sekian tutorial kali ini semoga bermanfaat.

11/27/2010

Cara Membuat Aplikasi Pemesanan Kantin Di Delphi 7


Selamat siang agan-agan.Postingan kali ini akan membahas mengenai Cara Membuat Aplikasi Pemesanan Kantin Di Delphi 7.Terdengar menarik !? Bagus kalau begitu.Aplikasi yang akan di buat , ialah yang di gunakan oleh kasir ketika ada pemesanan oleh pembeli.Aplikasi yang dibuat masih sederhana , namun yang perlu diperhatikan ialah logika atau alur dari aplikasi tersebut.Alurnya seperti ini : Kantin menyediakan beberapa jenis makanan dan minuman.Juga pelayanan di antar pemesanan.Ketika ada pembeli dengan memesan makanan serta minuman , kasir menginputkan pilihan tersebut pada
aplikasi.Ketika semua item telah di input , maka akan keluar jumlah / total yang harus di bayar oleh pemesan.Serta kembalian dari uang yang di bayarkan oleh pemesan.Sebaiknya anda bingung , karena saya akan menjelaskannya lewat praktek.Lalu tunggu apa lagi !? Buka borland Delphi 7 anda.Tambahkan komponen berikut kedalam form1


Komponen
Properties
Keterangan
Tlabel (7buah)
Caption : kantin anda , slogan , total bayar , bayar , kembalian , makanan , desert
Lihat gambar
Tbutton(2 buah)
Caption : hitung , baru

TRadioGroup
Caption : minuman ; Items : teh botol , jus jeruk , aqua gelas

TComboBox (2 buah)
Items Makanan : nasi ayam , nasi rawon , mie goreng ; items desert : semangka , pisang , ice cream

Tedit(3 buah)


TCheckBox
Caption : Diantar


Atur posisi komponen tersebut sesuai gambar di bawah ini :

 

Setelah itu !? Mari kita koding !!! Pertama , buat procedure kondisiAwal.Sebagai persiapan ketika aplikasi di jalankan.Ketikan kode berikut setelah {$R *.dfm}.Ketikan , bukan copas :)


  1. procedure kondisiAwal;  
  2. begin  
  3.   with form1 do  
  4.     begin  
  5.       Edit1.Clear;  
  6.       Edit2.Clear;  
  7.       Edit3.Clear;  
  8.       CheckBox1.Checked:=false;  
  9.     end;  
  10. end;  

Lalu pada form1 event onShow , panggil procedure tadi dengan cara sebagai berikut :


  1. procedure TForm1.FormShow(Sender: TObject);  
  2. begin  
  3.   kondisiAwal;  
  4. end;  

Selanjutnya , kita akan memberi kode untuk button hitung.Kondisi ketika kasir menekan tombol hitung.Double-klik button hitung dan ketikan kode berikut :


  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. var harga_minum , harga_makan , harga_dessert , total : real; //variable tambahan  
  3. begin  
  4.   if RadioGroup1.ItemIndex = 0 then  
  5.     begin  
  6.       harga_minum := 2000;  
  7.     end  
  8.   else  
  9.     if RadioGroup1.ItemIndex = 1 then   //pilihan menu minuman  
  10.       begin  
  11.         harga_minum := 3000;  
  12.       end  
  13.     else  
  14.       begin  
  15.         harga_minum := 1000;  
  16.       end;  
  17.   
  18.   if ComboBox1.Text = 'Nasi Ayam' then  
  19.     begin  
  20.       harga_makan := 5000;  
  21.     end  
  22.   else  
  23.     if ComboBox1.Text = 'Nasi Rawon' then  //pilihan menu makanan  
  24.       begin  
  25.         harga_makan := 6000;  
  26.       end  
  27.     else  
  28.       begin  
  29.         harga_makan := 3000;  
  30.       end;  
  31.   
  32.   if ComboBox2.Text = 'Semangka' then  
  33.     begin  
  34.       harga_dessert := 1500;  
  35.     end  
  36.   else  
  37.     if ComboBox2.Text = 'Pisang' then  //pilihan menu dessert  
  38.       begin  
  39.         harga_dessert := 1000;  
  40.       end  
  41.   else  
  42.     begin  
  43.       harga_dessert := 3000;  
  44.     end;  
  45.   
  46.   total := harga_minum + harga_makan + harga_dessert;  
  47.   if CheckBox1.Checked = true then  
  48.     begin  
  49.       total := total + 500;      //jika di antar , ada biaya tambahan  
  50.     end;  
  51.     Edit1.Text := FloatToStr(total);  //menghitung total pemesanan  
  52. end;  

Kode tersebut berfungsi untuk mengolah data pemesanan sehingga nantinya akan di tampilkan jumlah total dari besarnya uang yang harus di bayarkan oleh pembeli sesuai dengan item pemesanan.

Selanjutnya pada edit2 event onKeyPress ketikan kode berikut :

  1. procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);  
  2. var total , bayar , kembalian : real; //variable tambahan  
  3. begin  
  4.   if key = #13 then //bila tombol enter di tekan  
  5.     begin  
  6.       total := StrToFloat(Edit1.Text);  
  7.       bayar := StrToFloat(Edit2.Text);  
  8.       kembalian := bayar - total; //menghitung kembalian  
  9.       if bayar < total then   //bila uang kurang  
  10.         ShowMessage('Maaf , uang yang anda bayarkan kurang');  
  11.       Edit3.Text := FloatToStr(kembalian);  //jumlah kembalian  
  12.     end  
  13. end;  
Kode tersebut berfungsi untuk memproses perhitungan dari jumlah yang harus di bayar oleh pemesan dan uang kembalian untuk pemesan.Selanjutnya double-klik button baru dan panggil procedure kondisAwal sehingga kasir bisa menginputkan data baru. 


  1. procedure TForm1.Button2Click(Sender: TObject);  
  2. begin  
  3.   kondisiAwal;  
  4. end;  

Selesai , sekarang jalankan aplikasi tersebut lalu coba untuk melakukan input pada aplikasi.Ternyata tidak sulit bukan !? Bila ternyata anda belum mengerti , coba bandingkan dengan program yang saya buat.Silahkan untuk mendownloadnya DISINI.Okey , sekian untuk postingan kali ini semoga bermanfaat.
Newer Posts Older Posts Home
Aulia DirUt. Powered by Blogger.
 

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger