Senin, 14 Desember 2020

Konfigurasi Virtual Host Windows

 Virtual Host berguna kalau kakak ingin membuat custom domain di local pada proyek. Misal proyek ingin dibuka pada domain http://latihan-toko-online.local atau http://latihan-toko-online.test dst. Domain jika diketik di browser akan mengarah ke website yang sudah kita buat. Biasanya kan tanpa virtual host kita bisa simpan saja proyek di htdocs dan membukanya pada URL http://localhost/folderproyek.

Sekali lagi, kalau tidak ada kepentingan membuat custom domain di lokal, cukup gunakan http://localhost saja. Simpan proyek folder di htdocs. Tidak perlu repot membuat virtual host.

Nah jika masih ingin membuat virtual host gini kak :

  1. Sudah install Xampp? sebaiknya install Xampp terbaru ya. Disini https://www.apachefriends.org/download.html download versi PHP 7.
  1. Sudah jalan baik Xamppnya? jika sudah, buka folder xamppnya. Di C apa D ? misal di C ya. Buka C:\xampp\apache\conf\extra\httpd-vhosts.conf Hapus semua content disitu, kita persimple aja. Misal folder latihan di xampp htdocs namanya latihan dan kita ingin agar website kita diakses dengan domain http://latihan.local maka isikan seperti ini :
<VirtualHost *:80>
   ServerAdmin admin@latihan.local
   DocumentRoot "C:/xampp/htdocs/latihan"
   ServerName latihan.local
   ServerAlias www.latihan.local
   ErrorLog "logs/latihan-error.log"
   CustomLog "logs/latihan-access.log" common
</VirtualHost>
  1. Lanjut buka file C:\Windows\System32\drivers\etc\hosts pada Windows. Buka notepad dengan wewenang administrator.. Sisipkan kode ini :

127.0.0.1 latihan.local

Itu untuk memberi perintah pada komputer kita, jika membuka latihan.local arahkan ke server lokal.

  1. Terakhir, restart servernya kak.

Minggu, 06 Desember 2020

Membuat cetak printer langsung untuk proses tracer RM di RSU

 Permasalahan ini saya alami saat ikut membantu mengembangkan sistem informasi RSU. salah satu proses yang dibutuhkan oleh pengguna adalah hasil/output proses pendaftaran yang di inputkan bagian/petugas  pendaftaran adalah cetak langsung printer, tanpa meng KLIK tombol. cetakan langsung ke printer ada tiga jenis/macam : label, tracer RM untuk bagian tracer (tempatnya berbeda dengan bagian pendaftaran) dan di pendaftaran adalah label.

maka saya dan teman-teman mengolah dan menganalisa proses. 

1. Tanamkan program berbasis web (apache) di komputer bagian tracer. pastikan setting php_printer.dll dan extension=php_printer.dll di komputer tracer terlebih dahulu.

2. copy kan file php_printer.dll ke  folder xampp/php/ext

    php_printer.dll harus disesuaikan dengan versi php yang digunakan.

3. Installkan program untuk mencetak langsung ke printer.

adapun kodingnya sbb :

<?php 

// $printer2 = printer_open("\\\DESKTOP-GQCTL0H\EPSON L565 Series"); //open printer ZDesigner GC420t (EPL)

$antrian='';

$row='';

$tanggal = date("d-m-Y");

$jam = date("H:i:s");

$var_magin_left = 5; 

$nama = @isset($_GET['nama']) ? @$_GET['nama'] : '';

$rm = @isset($_GET['no_rm']) ? @$_GET['no_rm'] : ''; 

$tgllahir    = @isset($_GET['tgllhr']) ? @$_GET['tgllhr'] : ''; 

$no_urut = @isset($_GET['no_urut']) ? @$_GET['no_urut'] : '';   

$status = @isset($_GET['status']) ? @$_GET['status'] : '';  

$klinik = @isset($_GET['klinik']) ? $_GET['klinik'] : ''; 

$dokter = @isset($_GET['dokter']) ? $_GET['dokter'] : '';

$bayar = @isset($_GET['cara_bayar']) ? $_GET['cara_bayar'] : '';

$alamat = @isset($_GET['alamat']) ? $_GET['alamat'] : ''; 

$umur = @isset($_GET['umur']) ? $_GET['umur'] : ''; 

$jk = @isset($_GET['jk']) ? $_GET['jk'] : '';  


$p = printer_open('Honeywell PC42t (203 dpi) - DP');

printer_set_option($p, PRINTER_MODE, "RAW"); // mode disobek (gak ngegulung kertas)


//then the width

printer_set_option( $p,PRINTER_RESOLUTION_Y, 940);

printer_start_doc($p);

printer_start_page($p);


$font = printer_create_font("Arial Black", 35, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p, $font);

printer_draw_text($p, $nama ,50,-5);//LEFT , TOP

//printer_draw_text($p, "",250,20);

// Header Bon

$font2 = printer_create_font("Arial Black", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p, $font2); 

printer_draw_text($p, "RM : ".$rm, 50, 30); //x , y 

printer_draw_text($p, "( ".$jk." )", 350, 30); //x , y (Jejeran dengan RM)


$font3 = printer_create_font("Arial", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p, $font3); 


printer_draw_text($p, $tgllahir, 50, 60);// x=50, y=100

printer_draw_text($p, $umur." th", 350, 60); //jejeran sama tgl lahir


$font4 = printer_create_font("Arial", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p, $font4); 


printer_draw_text($p, $alamat, 50, 100);  

printer_end_page($p);

printer_end_doc($p);


printer_start_doc($p);

printer_start_page($p);

printer_close($p); 

 //Label kedua 

$p1 = printer_open('Honeywell PC42t (203 dpi) - DP');

printer_set_option($p1, PRINTER_MODE, "RAW"); // mode disobek (gak ngegulung kertas)

//then the width

printer_set_option( $p1,PRINTER_RESOLUTION_Y, 940);

printer_start_doc($p1);

printer_start_page($p1);


$font1 = printer_create_font("Arial Black", 35, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p1, $font1);

printer_draw_text($p1, $nama ,50,-5);//LEFT , TOP

//printer_draw_text($p, "",250,20);

// Header Bon

$font21 = printer_create_font("Arial Black", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p1, $font21); 

printer_draw_text($p1, "RM : ".$rm, 50, 30); //x , y 

printer_draw_text($p1, "( ".$jk." )", 350, 30); //x , y (Jejeran dengan RM)


$font31 = printer_create_font("Arial", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p1, $font31); 


printer_draw_text($p1, $tgllahir, 50, 60);// x=50, y=100

printer_draw_text($p1, $umur." th", 350, 60); //jejeran sama tgl lahir


$font41 = printer_create_font("Arial", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p1, $font41); 


printer_draw_text($p1, $alamat , 50, 100);  

printer_end_page($p1);

printer_end_doc($p1);

printer_start_doc($p1);

printer_start_page($p1);

printer_close($p1); 

//label ketiga


$p4 = printer_open('Honeywell PC42t (203 dpi) - DP');

printer_set_option($p4, PRINTER_MODE, "RAW"); // mode disobek (gak ngegulung kertas)


//then the width

printer_set_option( $p4,PRINTER_RESOLUTION_Y, 940);

printer_start_doc($p4);

printer_start_page($p4);


$font4 = printer_create_font("Arial Black", 35, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p4, $font4);

printer_draw_text($p4, $nama,50,-5);//LEFT , TOP

//printer_draw_text($p, "",250,20);

// Header Bon

$font24 = printer_create_font("Arial Black", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p4, $font24); 

printer_draw_text($p4, "RM : ".$rm, 50, 30); //x , y 

printer_draw_text($p4, "( ".$jk." )", 350, 30); //x , y (Jejeran dengan RM)

$font34 = printer_create_font("Arial", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p4, $font34); 

printer_draw_text($p4, $tgllahir, 50, 60);// x=50, y=100

printer_draw_text($p4, $umur." thn", 350, 60); //jejeran sama tgl lahir


$font44 = printer_create_font("Arial", 30, 10, PRINTER_FW_NORMAL, false, false, false, 0);//Font Style , Ukuran Font

printer_select_font($p4, $font44); 

printer_draw_text($p4, $alamat, 50, 100);  

printer_end_page($p4);

printer_end_doc($p4);

printer_start_doc($p4);

printer_start_page($p4);

printer_close($p4);  

//Untuk yang POS

$antrian='';

$row='';

$tanggal = date("d-m-Y");

$jam = date("H:i:s");

$var_magin_left = 5;

$p2 = printer_open('POS-90');

printer_set_option($p2, PRINTER_MODE, "RAW"); // mode disobek (gak ngegulung kertas)

//then the width

printer_set_option( $p2,PRINTER_RESOLUTION_Y, 940);

printer_start_doc($p2);

printer_start_page($p2);

$font = printer_create_font("Tahoma", 30, 15, PRINTER_FW_NORMAL, false, false, false, 0);

printer_select_font($p2, $font);

printer_draw_text($p2, "Tarcer Rekam Medik",100,0);//LEFT , TOP

$font1 = printer_create_font("Arial Black", 35, 15, PRINTER_FW_NORMAL, false, false, false, 0);

printer_select_font($p2, $font1);

printer_draw_text($p2, $rm ,50,30);//LEFT , TOP

printer_draw_text($p2, $no_urut ,350,30);//LEFT , TOP

printer_draw_text($p2, $nama ,50,70);//LEFT , TOP

$font5 = printer_create_font("Tahoma", 30, 15, PRINTER_FW_NORMAL, false, false, false, 0);

printer_select_font($p2, $font5);

printer_draw_text($p2, $status ,50,100);//LEFT , TOP

printer_draw_text($p2, $klinik ,50,130);//LEFT , TOP

printer_draw_text($p2, $dokter ,50,160);//LEFT , TOP

printer_draw_text($p2, $bayar ,50,190);//LEFT , TOP

printer_draw_text($p2, $tanggal,50,220);//LEFT , TOP

printer_draw_text($p2, $jam,250,220);//LEFT , TOP 

printer_end_page($p2);

printer_end_doc($p2);

printer_start_doc($p2);

printer_start_page($p2);

printer_close($p2); 

?>

kemudian pada modul pendaftaran ditanamkan script untuk mengirimkan data ke komputer tracer. bisa dengan menggunakan array maupun dengan cara yang lain. sertakan beserta url (ip address komputer tracer.

Pastikan setting printer yang dibutuhkan, dan sesuaikan pada script diatas.

Demikian beberapa langkah untuk bisa mencetak langsung ke printer di tempat yang berbeda.



Selasa, 22 September 2020

Membuat Script Cetak Printer Langsung Menggunakan PHP

Dibeberapa Instansi/perusahaan, Cetak langsung ke printer menjadi sesuatu yang penting. disamping untuk mengurangi interface, ternyata cetak langsung ke printer bisa mengurangi proses di sistem. sehingga pengguna bisa lebih cepat melakukan kerja.
Disini saya mencoba dengan menggunakan XAMPP dan melakukan sharing printer tujuan di OS Windows 7 dan versi PHP yang saya install PHP versi 5.6.

PHP sudah menyediakan extensi yang bernama php_printer untuk menyelesaikan masalah ini, hanya saja extension ini tidak terinstall secara otomatis ketika anda menginstall PHP baik secara terpisah atau menggunakan Xampp, jadi anda harus menginstallnya secara manual.

Untuk menginstall library ini, silahkan download library php_printer dan silahkan pilih file yang sesuai dengan versi PHP yang anda gunakan. jika sudah silahkan extract ke C:\xampp\php\ext.

Kemudian kita akan mendaftarkan extensi ini agar dikenali oleh PHP, cara nya silahkan buka file php.ini yang ada pada folder C:\xampp\php\ dan tambahkan script berikut ini :

extension=php_printer.dll
setelah itu jangan lupa lakukan save dan silahkan restart apache anda untuk mendapatkan perubahan, sekarang silahkan buka halaman phpinfo().

printer

Printer Supportenabled
Version0.1.0-dev
Default printing deviceSend To OneNote 2007
Module stateworking
RCS Version$Id$

Seperti yang terlihat bahwa sekarang extension php_printer sudah terpasang dengan baik, langkah selanjutnya kita akan melakukan percobaan untuk print data secara langsung.

Script Cetak Data Secara Langsung Dengan PHP

sekarang kita akan membuats cript untuk mencetak data langsng ke printer ketika file ini dibuka, silahkan buat sebuah file baru dengan nama cetak_langsung.php dan tulis script berikut ini :

<?php 
    $x=1;   
    $text  = "Hasaniva Service\n";
    $text .= "Jl. Surabaya Jawa Timur\n";
    $text .= "-------------------------\n";
    $text .= "No Antrian Anda : $x\n";
    $text .= "                         \n";
    $text .= "-------------------------\n";
    $text .= "Budayakan Tertib Antri\n";
    $text .= "Terima Kasih atas kunjungannya.. Mas Udin..!!\n";
    $text .= date("d/m/Y h:i:s")."\n";
    $printer = printer_open("\\\OGI\EPSON L220 Series"); //jika printer sharing 
    printer_write($printer, $text);   
    printer_close($printer);	
?>
anda bisa mendapatkan informasi printer pada settingan devices and printer pada control panel, silahkan sesuaikan dengan printer yang ingin anda gunakan ketika mencetak data.

selanjutnya silahkan buka web browser anda dan akses file tersebut, jika script yang anda tulis sudah benar maka seharusnya printer akan langsung mencetak data yang anda tulis tadi.


#SemogaBermanfaat

Rabu, 03 Juni 2020

Mengatasi Permasalahan Reload Halaman pada Web dengan framework CI

Hari kedua ditempat yang baru, menuntut pekerjaan dengan pola yang baru. saya yang terbiasa ngoding dengan PHP Jadoel (native), dituntut menggunakan framework CI, itu dikarenakan beberapa web dan Sistem yang sudah dibangun di lingkup pemerintah daerah menggunakan Framework CI. untung saja banyak teman yang mau membantu proses MIGRASI OTAK dan ILMU yang saya lakukan.

Permasalahan muncul di web dan PPID OPD di hari kedua saya masuk, halaman index selalu reload (refresh), sehingga saat mau melakukan pencarian tidak bisa berhasil. Hal pertama yang saya lakukan adalah menginstall di Lokal web dan PPID OPD. kemudian saya coba cari permasalahan.

Yang paling membahagiakan saya adalah, teman yang mau berbagi ilmu nya.. dengan mas Fahrudin, saya minta bantuan dan masukkan. dan alhamdulillah di temukan.

  1. Web OPD permasalahannya di file codec_helper.php (./application/helper). script di fungsi clang diubah. yang tadi nya $this->session->set_userdata($ses); diubah CI()->session->set_userdata($ses); 
  2. Kemudian yang sistem PPID ada perubahan di file ppid.php (./controllers/ppid.php), ada perubahan di fungsi language:

            function language($lang){
    $fl = base_url()."assets/lang/$lang.json";
      $dict = @file_get_contents($fl);
        $ses['lang']        = $lang;
          $ses['clang']       = $dict;
            $this->session->set_userdata($ses);
                             // header("Refresh: 0");  Di non aktifkan
                //redirect(base_url());
                        }

                  Kemudian saya replace kan hasil perubahan ke server. Alhamdulillah terselesaikan.
                  Demikian hal pertama di tempat yang baru saya bekerja. Terimakasih kepada teman yang sudah mau berbagi ilmunya.

                  Sabtu, 11 April 2020

                  Cara Mengatasi Hp Advan S50K yang Bootloop

                  Jika Advan S50K anda hank, Lupa pola, Lupa Pin, Mungkin jalan satu-satunya mesti dihard reset, Nah kali ini saya akan membagikan cara hard reset Advan Vandroid S50K beserta vidio tutorialnya.

                  1. Pastikan baterai minimal 50 % untuk menghindari hal yang tidak diinginkan
                  2. Matikan Advan vandroid S50K kamu
                  3. Dalam posisi mati, Tekan Volume Down (-) dan Tombol power bersamaan
                  4. Tahan sampai muncul Logo Advan Android
                  5. Setelah muncul Logo Android segera lepas kedua tombol yang kita tekan tadi
                  6. Setelah masuk menu recovery Gunakan tombol Vol Down (-) dan tombol Vol Up (+) untuk memilih menu pilihan di mode recovery
                  7. Pilih wipe data and factory reset
                  8. lalu yes
                  9. Tunggu proses format berjalan
                  10. Selesai format pilih Reboot system now
                  11. Tunggu proses yang memakan waktu lumayan lama
                  12. Selamat android Kamu kembali ke pengaturan pabrik
                   Dibawah ini vidio tutorial hard reset advan vandroid s50k


                  Selasa, 24 Maret 2020

                  Mengatasi Masalah MYSQL Error Daemon

                  Tanggal 23 dan 24 Maret 2020 kebetulan ada sosialisasi SIMBADA (Sistem Informasi Barang dan Aset Daerah), yang kebetulan saya yang membangun. SIMBADA onLine dibangun sejak tahun 2013. dan oleh karena awal tahun ini di oyak-oyak BPK, maka penginputan data aset 2019 dengan menggunakan import excel dengan meminta bantuan pejabat pengurus barang dari masing-masing Koorwilcam Dindikpora dan juga SMP seluruh kabupaten.

                  Proses input dibagi dua (2) sesi untuk masing-masing Koorwilcam dan juga SMP, dengan maksud untuk mengurangi jumlah user yang mengakses sistem. tapi ternyata, kelompok sessi pertama sampai dengan waktu jadwa sessi kedua, belum bisa menyelesaikan import data. sehingga akhirnya yang mengakses sistem semakin banyak. dan benar saja, dihari kedua (tanggal 24 maret 2020), database down. tidak bisa konek dengan database. saya mencoba restart database, tetapi selalu FAILED.

                  Beberapa petunjuk dan juga referensi dari mbah GOOGLE kami jalankan. tapi hanya bisa berjalan beberapa saat saja running nya. untuk kemudian DOWN lagi.

                  kemudian saya mencoba mencari file-file log, yang sekiranya bisa mengurangi Isi Hardisk. sepertinya memang Hardisk nya sudah mulai Limited.

                  Dan benar saja, saya menemukan file php.log yang memiliki size cukup besar, sampai 9 digit. ini dia yang "memakan" Hardisk. akhirnya saya hapus file php.log. letak file tersebut di :

                  /usr/local/zend/var/log

                  dan setelah saya menghapus file tersebut, kemudian saya restart lagi MySQL nya. alhamdulillah jalan kembali dan sampai dengan sekarang, tanggal 25 Maret 2020 berjalan lancar kembali..

                  demikian sedikit pengalaman dari saya. semoga bermanfaat.

                  #CatatanPengalaman

                  Rabu, 04 Maret 2020

                  Membantu Menangani Error Slim-Akasia SimPerpus

                  Hari yang lalu saya di minta bantuan untuk memperbaiki sistem informasi perpustakaan di SMPN 2 Ngadirejo. Sebenarnya sudah sejak awal Februari 2020 pihak pustakawan SMPN 2 Ngadirejo meminta bantuan saya, tapi baru hari kemarin saya bisa memenuhi. 

                  Permasalahan yang terjadi di Slim-Akasia SMPN 2 Ngadirejo yaitu menu-menu transaksinya tidak muncul, seperti: Keanggotaan, BiblioGrafi, dsb. yang tampil hanya menu DashBoard, OPAC, LogOut. Ternyata di SMPN 1 Parakan pun sama, yaitu menu-menu nya tidak tampil. Hal ini terjadi setelah terjadi padam listrik mendadak. sehingga Komputer(Server:Read) mati mendadak.

                  Perbaikan dimulai sejak siang hari, akan tetapi sampai dengan jam 16:00 belum ketemu permasalahannya. akhirnya saya backup database dan sistemnya, kemudian saya pelajari dan analisa dengan menggunakan database yang saya punya (database Slim-akasia Perpusda Kabupaten Temanggung), dan bisa jalan serta menu-menu nya bisa tampil. kemudian saya cari akhirnya ketemu permasalahan di Slim-Akasia SMPN 2 Ngadirejo, yaitu ada tabel group_access yang isi nya kosong. kemudian saya KANIBAL kan dari database yang perpusda. akhirnya bisa muncul menu-menu transaksi.

                  Beda lagi permasalahan di SMPN 1 Parakan. saya mencoba membuka databasenya dengan phpmyadmin. database bisa dibuka. akan tetapi saat saya mencoba mem Backup database, ada warning bahwa ada tabel yang crash. akhirnya saya centang semua tabel di database tersebut, kemudian saya perbaiki (repair tabel), alhamdulillah setelah saya login, menu-menu transaksi bisa tampil.

                  Pengalaman berharga bagi saya, karena dari dua (2) sekolah menghadapi permasalahan yang berbeda. semoga bisa menjadi ilmu bagi saya dan bermanfaat untuk semua. sekian dan terimakasih.