Our social:

Latest Post

Minggu, 24 April 2016

Koneksi Database dengan Delphi & MySQL

Tulisan ini telah dipindahkan ke website baru kami, Tutorial Koneksi Database Menggunakan Delphi & MySQL. Komentar dan pertanyaan di blog ini tidak akan kami jawab lagi. Silahkan sampaikan komentar atau pertanyaan Anda pada link tulisan di atas.
Sedangkan untuk Delphi, MySQL dan Zeos, silahkan lihat Tutorial Koneksi Database Dengan Delphi, Zeos & MySQL. Terimakasih:)
Tingkat Kemahiran : Pemula
Software : Delphi 7, MySQL 4
INSTALASI MYSQL
MySQL Server dapat didownload di http://dev.mysql.com/. Petunjuk instalasi dapat Anda lihat pada dokumentasi yang disertakan dengan file arsip (*.zip) MySQL yang Anda download. Namun jika Anda tidak mau repot, berikut saya coba menunjukkan langkah-langkah instalasi MySQL Server sebagai service di Windows XP (SP2), dengan catatan, tidak ada modifikasi konfigurasi kecuali path-path MySQL.
·Untuk menginstall MySQl Server, ekstraklah file zip hasil download ke drive C:\ sehingga folder utama menjadi C:\MySQL-x.xx.
·Kemudian masuklah ke C:\MySQL-x.xx\, cari file-file dengan ekstensi *.cnf dan hapus. Hapus juga file My.cnf di drive C:\ jika ada. Hapus juga file my.ini di folder C:\Windows jika ada. Langkah ini untuk membuang kemungkinan konflik nantinya.
·Sekarang jalankan command prompt dari menu Start>Run, ketik CMD dan enter.
Ketik C:\ dan enter.
Ketik cd C:\MySQL-x.xx\Bin dan enter.
Ketik mysqld-nt –install dan enter, untuk menginstall MySQL sebagai service.
Ketik SC start mysql untuk menjalankan MySQL Service.
·Jika semuanya berjalan lancar, kini MySQL Server telah terinstall di komputer Anda.
Untuk menguji MySQL Server, kita akan mencoba membuat sebuah database dan sebuah tabel.
·Masih di command prompt,
ketik mysql -u root dan enter untuk menjalankan MySQL Client. Secara default user pada MySQL Server adalah root dan passwordnya kosong.
·Dari konsole MySQL Client, ketik perintah-perintah berikut ini:
mysql> Create database mydata;
Query OK, 1 row affected (0.00 sec)
mysql> use mydata;
Database changed
mysql> create table teman(
-> nama varchar(30) not null,
-> alamat varchar(100),
-> telepon varchar(15)
-> );
Query OK, 0 rows affected (0.05 sec)
Sampai di sini, Anda telah membuat sebuah database “mydata” dan sebuah tabel “teman” di dalamnya.
·OK, sekarang Anda bisa keluar dari konsole ini dengan mengetik
mysql> exit
Bye
KONEKSI DELPHI & MYSQL
Di Delphi, telah disediakan berbagai cara untuk berkomunikasi dengan MySQL Server, ada ADO/dbGo – dengan perantaraan MyODBC driver, ada juga BDE dengan memanfaatkan ODBC, ada pula dbExpress yang melakukan koneksi langsung ke Server dengan perantaraan library MySQL. Sampai nanti, yang akan kita bahas adalah dbExpress ini, sebab dbExpress adalah teknologi koneksi database asli dari Borland, dan sudah mendukung MySQL sejak Delphi 6. Meskipun demikian tidak tertutup kemungkinan bagi Anda untuk menggunakan komponen koneksi pihak ketiga dalam aplikasi Delphi Anda, seperti MyDac dan sebagainya. Jika Anda nantinya tertarik, http://www.torry.net menyediakan beragam library antarmuka Delphi – MySQL untuk Anda download.
OK, kini kita buat sebuah aplikasi baru di Delphi. Harap diingat, meski Delphi 6 sudah mendukung MySQL, namun yang saya gunakan dalam menulis posting ini adalah Delphi 2006. Kita lanjutkan dengan langkah-langkah berikut:
·Tambahkan sebuah TSQLConnection dari palette dbExpress ke form
­
jokorb_wordpress_post_mysql_delphi_1.gif
Atur property LoginPrompt menjadi False, lewat Object Inspector
·Klik kanan pada SQLConnection1 pada form dan pilih Edit Connection Properties
Sebuah dialog Connection Editor akan ditampilkan
jokorb_wordpress_post_mysql_delphi_2.gif
·Kita buat koneksi dengan mengklik tombol Add Conection
jokorb_wordpress_post_mysql_delphi_3.gif
Koneksi ini bertipe MySQL dan kita beri nama DBMyData
jokorb_wordpress_post_mysql_delphi_4.gif
Klik OK.
Kini kita atur property koneksi DBMyData ini seperti terlihat pada gambar berikut
jokorb_wordpress_post_mysql_delphi_5.gif
·Anda bias mencoba koneksi ini dengan mengklik tanda centang di bagian atas dialog. Jika pesan yang muncul menunjukkan koneksi sukses, selamat, Anda siap berksperimen dengan Delphi & MySQL!
·Klik OK untuk menutup dialog Connection Editor
·Kembali ke form, ubah properti SQLConnection1 menjadi True, sehingga koneksi ke MySQL menjadi aktif.
·Tambahkan sebuah TSQLTable dari palette dbExpress, sebuah TDataSource, TDataSetProvider dan TClientDataSet dari palette Data Access ke form
Atur properti SQLConnection milik SQLTable1 menjadi SQLConnection1 dan properti TableName menjadi “teman”, seperti yang telah kita buat pada langkah di atas.
jokorb_wordpress_post_mysql_delphi_6.gif
·Sekarang ubah properti Dataset dari DataSetProvider1 menjadi SQLTable1.
Ubah juga properti ProviderName dari ClientDataSet1 menjadi DataSetProvider1.
Terakhir, ubah properti DataSet dari DataSource1 menjadi ClientDataset1.
Dari langkah-langkah ini, kita bias melihat alur data dari server MySQL hingga ke GUI aplikasi kita dan juga sebaliknya, pada diagram berikut:
jokorb_wordpress_post_mysql_delphi_ilustrationdiagram.gif

Sebenarnya, akses data dalam table MySQL dapat langsung dilakukan antara DataSource1 dan SQLTable1, tapi karena SQLTable adalah dataset unidirectional (satu arah), penggunaan data control yang multidirectional menjadi tidak berfungsi dengan baik. Contoh, DBGrid, DBNavigator.
Pergerakan kursor penunjuk record pun hanya dapat bergerak dengan arah Next() dan First. Last() dan Next() tidak didukung.
Dataset unidirectional sangat menguntungkan saat koneksi ke SQL Server (pada umunya) mengembalikan sejumlah besar data, karena menghemat memori dan trafik network.
Delphi menyediakan cara mengatasi hal ini dengan menambahkan DataSetProvider dan ClientDataset di antara kedua komponen database di atas. Dataset provider berfungsi mengontrol data dari SQLTable, dan menyimpannya sementara secara lokal, dan kemudian direpresentasikan kembali dalam bentuk dataset oleh ClientDataset.

·OK. Kini kita tambahkan sebuah DBGrid [palette Data Controls] dan beberapa buah Button hingga tampilan form menjadi seperti ini:
jokorb_wordpress_post_mysql_delphi_7.gif
·Sekarang kodenya. Klik ganda Button1, yang memiliki caption “Pertama”. Ketikkan kode untuk navigasi ke data pertama
procedure TForm1.Button1Click(Sender: TObject);
begin
   ClientDataset1.First;
end;

Untuk Button Sebelumnya
procedure TForm1.Button2Click(Sender: TObject);
begin
if not ClientDataset1.Bof then
ClientDataset1.Prior
end;

Untuk Button Setelahnya
procedure TForm1.Button3Click(Sender: TObject);
begin
if not ClientDataset1.Eof do then
ClientDataset1.Next;
end;

Untuk Button Terakhir
1
2
3
4
procedure TForm1.Button4Click(Sender: TObject);
begin
ClientDataSet1.Last;
end;
Untuk Button Refresh
procedure TForm1.Button4Click(Sender: TObject);
begin
ClientDataSet1.Last;
end;

Untuk Button-Button lainnya dapat Anda lihat kodenya langsung pada demo program yang tersedia untuk Anda download di akhir tulisan ini.
·OK. Sekarang menampilkan data dari ClientDataset ke DBGrid. Seperti biasa, Anda cukup mengatur properti DataSource dari DBGrid1 menjadi DataSource1. Kini atur properti Active pada ClientDataset1 dan SQLTable1 menjadi True. Ubah juga properti Connection dari SQLConnection1 menjadi True.
·Jalankan program Anda.
jokorb_wordpress_post_mysql_delphi_8.gif


KODE SELENGKAPNYA
Berikut kode lengkap aplikasi yang baru kita buat di atas.

unit umain;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBXpress, FMTBcd, StdCtrls, Grids, DBGrids, DB, Provider,
  DBClient, SqlExpr;
type
  TForm1 = class(TForm)
    SQLConnection1: TSQLConnection;
    SQLTable1: TSQLTable;
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientDataset1.First;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  if not ClientDataset1.Bof then
    ClientDataset1.Prior
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  if not ClientDataset1.Eof then
    ClientDataset1.Next;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
  ClientDataSet1.Last;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
  if ClientDataset1.ChangeCount>0 then
    ClientDataset1.ApplyUpdates(-1);
  ClientDataset1.Refresh;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
  ClientDataset1.Delete;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
  ClientDataset1.Append;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
  ClientDataset1.Edit;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
  ClientDataset1.Cancel;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
  if ClientDataset1.ChangeCount>0 then
    ClientDataset1.ApplyUpdates(-1);
end;
end.


DOWNLOAD
Dan Berikut, Anda bias mendownload MySQL Server, library LIBMYSQL.DLL yang saya gunakan dalam tulisan ini, dan demo program yang kita buat di atas.
Catatan, file-file download harus diubah ekstensinya ke .zip , sebaiknya scan dengan antivirus dulu sebelum diekstrak.
 sumber

Mengkoneksikan Database MySql di Delphi


Jellykom | Mengkoneksikan Database MySql di Delphi - Dalam dunia programming, penggunaan database merupakan suatu hal pokok yang tak bisa dipisahkan, tak terkecuali Delphi. Penggunaan database bisa mempermudah programmer untuk menyimpan data-data penting dengan aman dan mudah. Salah satu Data Base Management System (DBMS) yang sering digunakan yaitu MySql.
Dibawah ini adalah langkah-langkah yang digunakan untuk mengkoneksikan database MySql dengan Borland Delphi 7. Terdapat 3 tahapan pertama, yaitu membuat database MySql, tahapan kedua mengkonfigurasi ODBC Connector, tahap ketiga menghubungkan ODBC Connector ke Form Delphi. Untuk softwarenya, silahkan unduh dibawah ini:
Database MySQL (Pilih Satu): [Download MySQL[Download Xampp[Download Wamp]


ODBC Connector [Download ODBC Connector]


Tahap 1, Membuat Database MySQL

1. Buat sebuah database MySQL, misalnya "belajar"

 2. Buat Tabel dan field yang sobat inginkan, lalu tentukan masing-masing fieldnya

Tahap 2, Mengkoneksikan database MySQL Pada ODBC Connector

1. Aktifkan ODBC Connector melalui Run Program (Win+R), lalu ketikan "ODBCAD32"
 
2. Setelah muncul jendela ODBC Data Source Administrator, buat Data Source Baru dengan                   mengklik "ADD", lalu pilih MySQL ODBC ANSI Driver
3. Isikan konfigurasinya seperti pada gamber dibawah ini. Pada bagian "User", isikan user yang sobat gunakan pada user MySQL. Bila belum pernah mengubahnya, maka gunakan "root" dan kosongkan password. Tekan "Test" untuk menguji apakah database sudah terhubung.
Tahap 3, Menghubungkan MySQL ke form delphi

1. Buat sebuah form pada delphi. Lalu masukan juga komponen-komponen berikut
  • ADO Connecion1
  • ADO Query1
  • Data Source1
  • DBGrid1

2. Klik ganda ADO Connectio1, lalu klik "Build". Setelah muncul link properties, pilih "OLE DB Provider for ODBC Drivers" lalu klik Next. Isikan nama Data Source yang sebelumnya telah dibuat pada ODBC Conncetor (contoh: belajar). Klik Test untuk ujicoba.

3. Seting Komponen lain dengan konfigurasi dibawah ini:
4. Finish...

Sekian yang bisa saya bagikan dengan sobat sekalian. Apabila sobat belum paham dengan tutorial diatas, sobat bisa menanyakannya langsung dengn saya. Semoga bermanfaat.
Good Luck...


sumber

Error pada Delphi 7 = Unable to rename 'C:\Program Files\Borland\Delphi7\Bin\delphi32.$$$' to 'C:\Program Files\Borland\Delphi7\Bin\delphi32.dro'

Unable to rename 'C:\Program Files\Borland\Delphi7\Bin\delphi32.$$$' to 'C:\Program Files\Borland\Delphi7\Bin\delphi32.dro'

adalah error yang biasa muncul jika anda menginstal borland delphi 7 ke win 7 .... ada beberapa langkah yang bisa dilakukan untuk menghindari hal tersebut.

1. Buka folder C:\Program Files\Borland\Delphi7, cari folder BIN, klik kanan pada folder BIN pilih properties
    Hilangkan tanda biru/ ceklis pada Read-only . OK

2. Klik kanan lagi pada folder BIN, pilih properties, pada tab security pilih edit
    pastikan semua permission for users terceklis Allow


Tab Security


Edit Scurity

3. Buka Folder Bin cari file application yang bernama delphi32 (ukuran 533 kB) , Klik kanan, pilih Properties.
    Pada tab Compatibility, ceklist pada Run this program as an administrator



4. cari folder Projects klik kanan pada folder Projects pilih properties
    Hilangkan tanda biru/ ceklis pada Read-only . OK



Selamat mencoba
sumber

Kamis, 21 April 2016

Cara Membuat Custom Recovery Image di Windows 8 & 8.1

Pertama-tama buka command prompt dengan kemampuan Administrator.

Setelah itu ketika command prompt terbuka, copy dan paste perintah dibawah ini, dan tekan Enter jika sudah.
C:\ disini adalah tempat dimana kamu dapat menyimpan file hasil recovery image yang kamu buat yaitu CustomRefresh.wim, kamu bisa menggantinya dengan drive dimanapun kamu inginkan.
mkdir C:\RefreshImage
recimg -CreateImage C:\RefreshImage

Ketika proses sudah selesai hingga 100% semua, custom recovery image tinggal kamu gunakan untuk melakukan refresh di Windows 8 dan Windows 8.1.
Cara Membuat Custom Recovery Image untuk Refresh Windows 8 & 8.1

Jangan biarkan teman kamu kudet & kuper, bagikan info ini

sumber

Selasa, 12 April 2016

Cara Mengatasi Windows 10 Tidak Bisa Shutdown

Baru 2 Minggu menggunakan Windows 10 sudah bermasalah dari tanggal 30 Agustus. Masalahnya lumayan aneh pas di shutdown malah restart. Saya coba restart mana tahu bisa shutdown tapi tetap normal jadi restart juga, hahaha... Kemudian ikuti cara di youtube ternyata malah jadi sleep total (tidak bisa dibangunkan), terpaksa tekan kontak off di PSU. Dari tanggal 30 Agustus sampai 1 September baru menemukan solusinya. Karena di beberapa situs isinya sama semua hanya sleep total hasilnya. Cara fix Windows 10 cant shutdown sebagai berikut:

#CARA 1.
1. klik Start, ketik 'regedit' dan tekan enter.



2. Buka HKEY_LOCAL_MACHINE, SOFTWARE, Microsoft, Windows NT, CurrentVersion, Winlogon.

3. klik ganda pada PowerdownAfterShutdown, ubah dari 0 menjadi 1, lalu klik OK.

4. Hasilnya silahkan tes di Shutdown :)


#CARA 2.
1. ketik "power options" di bagian Search.

2. klik Choose what the power buttons do.

3. klik Change settings that are currently unavailabe.

4. Hilangkan centang pada Turn on fast startup... dan Hibernate, lalu klik Save changes.

5. Silahkan tes di Shutdown :)


Karena sekarang sudah pindah ke windows 7 jadi tidak bisa memberikan screenshot aslinya.

#CARA 3. (jika Anda ingin memberikan SS silahkan upload ke postimage.org dan linknya tinggalkan di komentar)
1. klik kanan di desktop, pilih New, klik Shortcut.

2. pastekan [%windir%\System32\shutdown.exe /s /t 0] seperti dibawah ini, klik Next.

3. klik Finish.

4. klik ganda shutdown.


#CARA 4.
1. klik Start, klik Device Manager.

2. klik tanda (>) di System devices.

3. klik 2x Intel(R) Management Engine Interface.

4. klik tab Driver.

5. Pastikan Driver Version nya 11.x, lalu klik Roll Back Driver (akan berubah menjadi 9.x).

6. atau klik Uninstall, lalu [unduh] dan install driver intel management engine 9.x.

sumber

Minggu, 03 April 2016

Mempercepat Koneksi Internet Dengan Squid Proxy

Fungsi Squid Proxy!!
Sebagian besar pengguna internet mungkin tidak menyadari bahwa setiap kali mengakses situs sebenarnya yang mereka lakukan adalah mendownload semua data berupa tulisan, link, teks, gambar dan file lain dalam halaman tersebut. Nah, data-data tersebut akan disimpan ke dalam komputer dalam bentuk cache sehingga pada saat berkunjung kembali ke situs tersebut, semua data yang terdapat dalam halaman tersebut tidak akan di download seluruhnya melainkan hanya beberapa update-an terbarunya saja dan sebagiannya lagi diambil dari cache yang tersimpan dalam komputer.
Instalasi dan Setting Squid Proxy
Langkah pertama, silahkan anda download file Squid Proxy di bawah ini dengan cara mengcopy link download di bawah ini dan mempastekannya ke address bar kemudian tekan enter : 
http://adf.ly/L6wF3
Password : lost-sector.net

Setelah proses download filenya selesai, lanjutkan dengan mengekstrak filenya ke c:\squid\ dan untuk settingannya, perhatikan langkah-langkah di bawah ini : 1. Buka Menu Start Windows » All Program » Accessories » Run dan masukkan perintah-perintah di bawah ini satu per satu. 
c:\squid\sbin\squid.exe -z [Enter]
c:\squid\sbin\squid.exe -d l -D [Enter]
c:\squid\sbin\squid.exe -i [Enter]
c:\squid\sbin\squid.exe -O -D [Enter]
Cara Mempercepat Koneksi Internet Dengan Squid Proxy
2. Selanjutnya, Jalankan Service Panel melalui Control Panel » Administrative Tools » Services atau Buka Lagi Menu Start » All Program » Accessories » Run ketik Services.msc [Enter] 
Cara Mempercepat Koneksi Internet Dengan Squid Proxy
Cara Mempercepat Koneksi Internet Dengan Squid Proxy
3. Untuk settingan pada browser, ubah proxy ke Address 127.0.0.1 dan port 3128. 
Setting Proxy Untuk Google Chrome
Cara Mempercepat Koneksi Internet Dengan Squid Proxy
[Klik untuk memperbesar gambar]
Setting Proxy Untuk Mozilla Firefox
Cara Mempercepat Koneksi Internet Dengan Squid Proxy
[Klik untuk memperbesar gambar]

Setelah semua proses tersebut di atas dilakukan, silahkan anda mencobanya dan rasakan perbedaannya. 
Uninstall Squid Proxy...!!!

Untuk meng-uninstall squid, caranya sangatlah mudah. Buka Menu Start » All Program » Accessories » Run dan masukkan perintah c:\squid\sbin\squid -r -n squid [Enter]

Jumat, 01 April 2016

PHP direct printing to DOT MATRIX printer

Direct printing is still the mainstay for print-scoring affair, especially for programs / POS applications. Because this application requires speed in doing print document .

Sewaktu bermigrasi ke pemrograman  berbasis Web yang paling saya takutkan adalah mendapat project yang mengharuskan  mencetak dalam bentuk STRUK. ternyata benar saya mendapat project  program SPP di salah satu sekolah yang mengharuskan mencetak kedalam struk. Awalnya saya membuatnya dengan Fpdf tetapi ternyata hasil print  jadi kacau dan tidak bisa dibaca.
dan  akhirnya bisa juga mencetak  langung ke printer dari scrip PHP.Ada beberapa tahan supaya kita bisa cetak langsung ke printer.  
1. Sharing dahulu printernya
    misal nama printer LX-300 kemudian sharing dengan nama EPSONLX.
2Catat IP Address komputer yang terhubung ke printer 
3. Buat perintah seperti dibawah ini  dan simpan di web server misal dengan nama cetak.php:

INI AKAN DI CETAK\n"; $Data .= "INI AKAN DI CETAK\n"; $Data .= "INI AKAN DI CETAK\n"; $Data .= "INI AKAN DI CETAK\n"; $Data .= "We Love PHP Indonesia\n"; $Data .= "--------------------------\n"; fwrite($handle, $Data); fclose($handle); copy($file, "//192.168.1.1/EPSONLX"); # Lakukan cetak unlink($file); ?>

4. Coba panggil file php dari browser, maka printer akan langsung mencetak.dan berhenti  ketika script selesai di cetak. Hal ini berbeda jika kita mengunakan pdf yang  akan terus  menggulung kertas  sampai satu lembar.
KETERANGAN PROGRAM:
- mula-mula membuat file temporary
- mengisi file dangan $data.
- copy $data ke alamat printer yang di sharing untuk di cetak


direct print php

Setelah hasil uji coba xampp untuk windows dari versi 1.6.3, 1.6.4, 1.6.8, 1.7.1, 1.7.3, 1.7.4, 1.7.7, sepertinya yang versi 1.7.3 mempunyai banyak bug karena program-program web saya jadi kacau ketika dibuka pada browser, padahal versi php 5.2 yg ada di xampp 1.7.3 tersebut sama dengan versi sebelumnya (xampp 1.7.1 juga menggunakan php versi 5.2) dan extension php_printer.dll perlu ditambahkan sendiri pada xampp versi 1.7.1 keatas, letakkan pada direktori xampp\php\ext. xampp 1.7.1 kebawah sudah diikut sertakan extension php_printer.dll, hanya saja secara default statusnya masih disable, kita perlu mengaktifkannya dengan merubah konfigurasi pada file php.ini yang terletak difolder xampp\php. hilangkan tanda ; didepan tulisan extension=php_printer.dll. kemudian restartlah service apache pada xampp. extension ini hanya support sampai xampp 1.7.4 karena belum ada pengembangan lagi sejak 2010. untuk versi xampp 1.7.7 belum tersedia update extension php_printer.

ekstensi php_printer.dll merupakan modul php agar kita dapat mencetak langsung ke printer (direct printing) untuk program-program berbasis web yang membutuhkan nota ataupun laporan maka diperlukan cara mencetak yang lebih cepat, karena umumnya programmer php akan menggunakan 2 untuk mencetak data dengan php, antara lain:
1. menggunakan fungsi javascript print.window()
2. mencetak teks dalam bentuk PDF yang dimuat dalam browser lalu diprint.

jika ekstensi sudah dipasang silahkan coba mencetak langsung dengan printer anda. berikut script untuk testing cetak langsung menggunakan ekstensi php_printer.dll. simpan dengan nama testprinter.php dan taruh difolder htdocs pada xampp

$lipsum = 'Eh, ini adalah testing aplikasi cetak teks langsung ke printer dengan PHP lhoo....'; /* contoh text */
$printer = printer_open("Canon iP2700 series");  /* tulis dan buka koneksi ke printer */  
printer_write($printer, $lipsum); /* write the text to the print job */ 
printer_close($printer);  /* close the connection */
?>

untuk mencetak data secara langsung ke printer pada linux bisa menggunakan CUPS dan jika anda ingin melakukan direct printing ke printer dot matrix berikut cara yang dijelaskan di mocopat.wordpress.com. disitu dijelaskan cara mencetak nota langsung ke printer dot matrix tanpa menggunakan fungsi javascript print.window(), dirubah ke bentuk pdf, ataupun extension php_printer.dll

saya sendiri menggunakan xampp versi 1.7.4, perbedaanya dari versi sebelumnya adalah pada xampp 1.7.4 sudah menggunakan php versi 5.3, jika ada semacam error saat membuka xampp control panel itu merupakan sebuah bug saja dan kasus yang saya temukan bug tersebut terjadi saat kita menginstall xampp 1.7.4 pada windows 7 64bit, sebenarnya bug tersebut tidak mengganggu fungsi-fungsi dari xampp itu sendiri. jika kalian menemukan bug yang sama dengan tulisan

XAMPP Component Status Check failure [3].
Current directory: C:\xampp
Run this program only from your XAMPP root directory.

langkah untuk memperbaikinya adalah buka dan edit registry windows dengan cara ketikan regedit pada kotak dialog run, kemudian arahkan ke HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\xampp. rubah isi Install_Dir, yang semula c:\xampp menjadi c:\\xampp (double backslash)

berikut extensi php_printer.dll untuk php versi 5.3 pada xampp 1.7.4, download php_printer-svn20100319-5.3-vc6-x86.zip

Senin, 29 Juni 2015

Login YII menggunakan database MySQL

  • Buka file UserIdentity.php di \protected\components\UserIdentity.php
  • Cari syntax ini, beri tanda comment di syntax nya dengan /* */ menjadi seperti ini
/*
public function authenticate()

{
$users=array(
// username => password
'demo'=>'demo',
'admin'=>'admin',
);
if(!isset($users[$this->username]))
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($users[$this->username]!==$this->password)
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
$this->errorCode=self::ERROR_NONE;
return !$this->errorCode;
}
}
*/
  • Lalu tambahkan syntax ini di bawahnya
public function authenticate()
    {
        $user=User::model()->findByAttributes(array('username'=>$this->username));
        if($user===null){
            $this->errorCode=self::ERROR_USERNAME_INVALID;  
}
        else if($user->password!==$this->password)
            {$this->errorCode=self::ERROR_PASSWORD_INVALID;}
        else
        {
            $this->errorCode=self::ERROR_NONE;
        }
        return !$this->errorCode;
    }
  • Simpan file
Catatan :
Nama tabel di database harus user, dan nama kolomnya iduser/userid ; username ; password

sumber

Minggu, 28 Juni 2015

Membuat operasi login, logout dan register pada yii

Operasi yang akan kita kerjakan adalah yang berkaitan dengan database. Silahkan lihat tutor sebelumnya jika anda belum memahami teknik menghubungkan database pada yii disini. Okeh, pertama-tama mari kita buat buat dua buah table di database, yaitu table “user” dan table “level” yang isinya sebagai berikut:
CREATE TABLE IF NOT EXISTS `tbl_level_admin` (
`id_level` int(11) NOT NULL AUTO_INCREMENT,
`level` varchar(20) NOT NULL,
PRIMARY KEY (`id_level`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
INSERT INTO `tbl_level_admin` (`id_level`, `level`) VALUES
(1, ‘Super Admin’),
(2, ‘Admin’),
(3, ‘Customer’);
CREATE TABLE IF NOT EXISTS `tbl_user_admin` (
`id_user` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL,
`password` varchar(50) NOT NULL,
`enkrip` varchar(50) NOT NULL,
`email` varchar(30) NOT NULL,
`inisial` varchar(10) DEFAULT NULL,
`deskripsi` text,
`id_level` int(11) NOT NULL,
PRIMARY KEY (`id_user`),
KEY `id_level` (`id_level`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
ALTER TABLE `tbl_user_admin`
ADD CONSTRAINT `tbl_user_admin_ibfk_1` FOREIGN KEY (`id_level`) REFERENCES `tbl_level_admin` (`id_level`);
Setelah itu buatlah operasi CRUD untuk tabel “tbl_user_admin” dengan menggunakan gii seperti pada tutor sebelumnya. Setelah selesai, mari kita hubungkan form login yang sudah ada pada aplikasi web bawaan yii dengan database kita. Berikut caranya:
Pertamax, buka file pada folder: protected/components/UserIdentity.php.
Ganti code pada function authenticate menjadi code dibawah ini:
public function authenticate()
{
$user=UserAdmin::model()->find(‘LOWER(username)=?’,array(strtolower($this->username)));
if($user===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if(!$user->validatePassword($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$user->id_user;
$this->username=$user->username;
$this->errorCode=self::ERROR_NONE;
}
return $this->errorCode==self::ERROR_NONE;
}
Selesai, sekarang form login anda sudah terhubung dengan database “tbl_user_admin” kita tadi…
Kalo ada login tentu ada juga form register. Nah, sekarang mari kita buat form register kita. Sebelumnya kita tentukan dulu bahwa di form register nanti akan ada validasi sbb:
-ada captcha dan isian pada captcha harus sesuai dengan yang ada di gambar
-validasi pada inputan email
-ada validasi password1 dan password2 untuk memastikan bahwa user tidak salah mengetik password
-username, password, email, captcha tidak boleh kosong
-memberi panjang minimal dan maksimal pada beberapa inputan
Okeh, stelah selesai menentukan batasannya, mari kita mulai…. Berikut caranya:
Buka file pada protected/controllers/UserAdminControllers.php.
Karena kita mau menambahkan captcha pada controllers, mari kita tambahkan captcha seperti pada penjelasan yang ada disini, yaitu dengan menambahkan code berikut pada “UserAdminControllers”:
public function actions()
{
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
‘captcha’=>array(
‘class’=>’CCaptchaAction’,
‘backColor’=>0xFFFFFF,
),
// page action renders “static” pages stored under ‘protected/views/site/pages’
// They can be accessed via: index.php?r=site/page&view=FileName
‘page’=>array(
‘class’=>’CViewAction’,
),
);
}
Agar captcha diizinkan untuk diakses user yang akan register(belum login) maka kita berikan akses dengan merubah method accessRules() menjadi seperti berikut:
return array(
array(‘allow’, // allow all users to perform ‘index’ and ‘view’ actions
‘actions’=>array(‘create’,’captcha’),
‘users’=>array(‘*’),
),
array
Selesai sudah kita otak-atik controllers ny, sekarang saatnya kita otak-atik modelnya dengan cara:
Buka protected/models/UserAdmin.php
Ubah isinya sehingga menjadi seperti berikut:
class UserAdmin extends CActiveRecord
{
public $password2;
public $verifyCode;
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return ‘tbl_user_admin';
}
public function rules()
{
return array(
array(‘username, password, email,verifyCode’, ‘required’),
array(‘verifyCode’, ‘captcha’, ‘allowEmpty’=>!extension_loaded(‘gd’)),
array(‘id_level’, ‘numerical’, ‘integerOnly’=>true),
array(‘username, email’, ‘length’, ‘max’=>30),
array(‘username’, ‘filter’, ‘filter’=>’strtolower’),
array(‘username’,’unique’),
array(‘password, enkrip’, ‘length’, ‘max’=>50,’min’=>5),
array(‘password2′, ‘length’, ‘max’=>50, ‘min’=>5),
array(‘password’, ‘compare’,’compareAttribute’=>’password2′),
array(‘inisial’, ‘length’, ‘max’=>10),
array(’email’,’email’,’checkMX’=>true),
array(‘deskripsi’, ‘safe’),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array(‘id_user, username, email, inisial, deskripsi, id_level’, ‘safe’, ‘on’=>’search’),
);
}
public function relations()
{
return array(
‘idLevel’ => array(self::BELONGS_TO, ‘LevelAdmin’, ‘id_level’),
);
}
public function attributeLabels()
{
return array(
‘id_user’ => ‘Id User’,
‘username’ => ‘Username’,
‘password’ => ‘Password’,
’email’ => ‘Email’,
‘inisial’ => ‘Inisial’,
‘deskripsi’ => ‘Deskripsi’,
);
}
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare(‘id_user’,$this->id_user);
$criteria->compare(‘username’,$this->username,true);
$criteria->compare(‘password’,$this->password,true);
$criteria->compare(‘enkrip’,$this->enkrip,true);
$criteria->compare(’email’,$this->email,true);
$criteria->compare(‘inisial’,$this->inisial,true);
$criteria->compare(‘deskripsi’,$this->deskripsi,true);
$criteria->compare(‘id_level’,$this->id_level);
return new CActiveDataProvider(get_class($this), array(
‘criteria’=>$criteria,
));
}
public function validatePassword($password)
{
return $this->hashPassword($password,$this->enkrip)===$this->password;
}
public function hashPassword($password,$salt)
{
return md5($salt.$password);
}
public function beforeSave()
{
$isinya=$this->generateSalt();
$dua=$this->password;
$this->enkrip=$isinya;
$this->password=$this->hashPassword($dua,$isinya);
$this->id_level=3;
return true;
}
protected function generateSalt()
{
return uniqid(”,true);
}
}
public $password2;
public $verifyCode;
dua baris di atas untuk menampung variabel password2(password konfirmasi) dan verifyCode(captcha).
public function rules() ===> mendefinisikan batasan/validasi dari variabel yang ada.
public function attributeLabels()===> mengeset label yang ada pada masing-masing variabel
public function validatePassword($password)===>mengecek apakah password sudah benar ato belum
public function hashPassword($password,$salt)===>mengenkripsi password sesuai dengan code yang diberikan
public function beforeSave()===>perintah ini dijalankan sebelum dilakukan penyimpanan
protected function generateSalt()===>menggenerate otomatis code enkripsi password.
Setelah kita otak-atik models ny, mari kita otak-atik views nya dengan cara:
Buka file pada protected/views/userAdmin/_form.php. Ubah code ny hingga menjadi seperti berikut:

Setelah mengubah code _form.php menjadi seperti gambar di atas, sekarang berikan link pada form login agar user dapat mengakses form register. Buka protected/views/site/login.php
Lalu tambahkan code berikut:
Belum punya akun,

Setelah itu, buka aplikasi anda pada browser anda. Klik menu login, dan akan ada link yang akan mengarahkan anda pada menu register, klik menu register tersebut. Maka akan keluar tampilan seperti berikut:
Silahkan coba jalankan dan lihat hasilnya…
Selamat mencoba…
Saya bukanlah seorang master, hanya seorang pelajar yg mencoba sharing isi kepalanya..
Jika ada kesalahan dari yg saya buat, mohon koreksi…
Semoga membantu…
sumber