7/07/2017

Cara Membuat Shortcut Aplikasi PHP Agar Langsung Akses Ke Browser

Persis hari ini gue dimintai user di tempat kerja, bukan hari ini doang deng, tiap hari juga ada aja telepon berdering karena permintaan user. Tapi hari ini agak aneh juga permintaanya,

katanya "A, nanti hari senin kan mau ada tamu nih dari perusahaan lain, nah bisa ga ya project Q**** dibikin shortcut biar otomatis akses ke browser tanpa kita buka browser dulu terus masukin IP nya gitu. Soalnya biar cepet akses".

Sontak agak kaget juga sih, baru kali ini diminta kaya gitu. Mungkin dari kalian ada yang pernah atau belum sama sekali, kali ini gue mau share tips nya kalau nanti kalian juga diminta persis kaya gue.

Pertama buka notepad, ketik kaya gini :
[InternetShorcut]
URL=192.168.1.1/project
IconFile=d:\iconfolder\icon.ico
IconIndex=0

Catatan:
192.168.1.1/project adalah link project nya
d:\iconfolder\icon.ico adalah direktori untuk icon yang nanti akan dijadikan icon shortcut.

Save As atur setting nya kaya gini 
File Name : Nama Project.url
Save as Type : All Files

Membuat Shortcut Aplikasi PHP Agar Langsung Akses Ke Browser

Mudah kan? silahkan praktekan.

7/06/2017

Query Sql Where dengan Banyak Kondisi Dinamis di PHP

Terkadang dalam pengambilan data dari database diperlukan beberapa kondisi dalam menyaring data yang diinginkan. Misal dalam mengambil data mahasiswa di seleksi berdasarkan nim, nama, jenis kelamin atau pun ketiga-tiganya. Jika pengambilannya statis atau telah ditetapkan dalam query maka itu tidak jadi masalah, lalu bagaimana jika filter tersebut bersifat dinamis? dalam artian ke tiga kondisi tersebut tidak selalu terpenuhi. Untuk itu kita perlu membuat clausa where yang bernilai pasti (true).

Lalu bagaimana penggunakan clausa where nya? Saya biasanya menggunakan clausa WHERE 1=1, apa itu? Clausa WHERE 1=1 ialah kondisi dimana query akan mengeksekusi data yang bernilai true, kemudian dilanjut dengan kondisi-kondisi lainnya. Dalam contoh kita menggunakan filter untuk data mahasiswa yang di seleksi berdasarkan nim, nama, jenis kelamin. Tabelnya data nya seperti ini:


Jadi penggunaan querynya ialah "SELECT * FROM tb_mhs WHERE 1=1 and NIM='$nim' and NAMA like '%$nama%' and JEN_KEL = '$jen_kel'". Query terebut masih bersifat statis karena semua kolom tabel harus terpenuhi dan setiap variabel yang dijadikan parameter harus diisi. Untuk membuatnya dinamis, kita implementasikan dalam coding php.

Pertama buat database db_mhs
Buat tabel tb_mhs
CREATE TABLE `tb_mhs` (
  `nim` varchar(10) NOT NULL,
  `nama` varchar(30) NOT NULL,
  `jen_kel` varchar(10) NOT NULL,
  PRIMARY KEY (`nim`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Masukkan data ke tb_mhs
INSERT INTO `tb_mhs` VALUES ('123', 'Indra', 'Laki-Laki');
INSERT INTO `tb_mhs` VALUES ('124', 'Santi', 'Perempuan');
INSERT INTO `tb_mhs` VALUES ('125', 'Angga', 'Laki-Laki');

Selanjutnya buat project php
Buat file index.php
Ketik kode berikut
<html>
    <head>
        <meta charset="UTF-8">
        <title>Query Multi Kondisi</title>
        <style>
            #stabel {
                margin: 0 auto;
                width: 50%;
            }
        </style>
    </head>
    <body>

        <div id="stabel">
            <form action="" method="GET">
                <fieldset style="margin-bottom: 5px; width: 50%;">
                    <legend>Filter</legend>
                    <table>
                        <tr>
                            <td>Nim</td>
                            <td>: <input type="text" name="nim" placeholder="nim"></td>
                        </tr>
                        <tr>
                            <td>Nama</td>
                            <td>: <input type="text" name="nama" placeholder="nama"></td>
                        </tr>
                        <tr>
                            <td>Jenis Kelamin</td>
                            <td> : <select name="jen_kel">
                                    <option value="">-- Pilih --</option>
                                    <option value="Laki-Laki">Laki-Laki</option>
                                    <option value="Perempuan">Perempuan</option>
                                </select>
                                <input type="submit" name="cari" value="Cari">
                            </td>
                        </tr>
                    </table>
                </fieldset>
            </form>
            <table border="1" width="55%">
                <tr align="center">
                    <td>No</td>
                    <td>Nim</td>
                    <td>Nama</td>
                    <td>Jenis Kelamin</td>
                </tr>
                <?php
                // Awal Koneksi
                date_default_timezone_set('Asia/Jakarta');
                $host = "localhost";$user = "root";$password = "";$database = "db_mhs";
                $koneksi = mysql_connect($host, $user, $password);
                mysql_select_db($database, $koneksi);
                
                // Akhir Koneksi
                // Cek action tombol cari
                // Jika tombol cari di klik
                if (!empty($_GET['cari'])) {

                    $nim = $_GET['nim'];

                    // jika nim diisi
                    if (!empty($nim)) {
                        $nim = " and nim = '$nim'";
                    }
                    // jika nim tidak diisi
                    else {
                        $nim = '';
                    }

                    $nama = $_GET['nama'];

                    // jika nama diisi
                    if (!empty($nama)) {
                        $nama = " and nama like '%$nama%'";
                    }
                    // jika nama tidak diisi
                    else {
                        $nama = '';
                    }

                    // jika jenis kelamin diisi
                    $jen_kel = $_GET['jen_kel'];
                    if (!empty($jen_kel)) {
                        $jen_kel = " and jen_kel = '$jen_kel'";
                    }
                    //jika jenis kelamin tidak diisi
                    else {
                        $jen_kel = '';
                    }

                    // jalankan query
                    $query = mysql_query("select * from tb_mhs where 1=1 $nim $nama $jen_kel", $koneksi);
                }

                //jika tombol cari tidak di klik
                else {
                    $query = mysql_query("select * from tb_mhs", $koneksi);
                }
                $no = 1;
                while ($data = mysql_fetch_array($query)) {
                    echo "<tr>
                            <td>$no</td>
                            <td>$data[nim]</td>
                            <td>$data[nama]</td>
                            <td>$data[jen_kel]</td>
                          </tr>";
                    $no++;
                }
                ?>
            </table>    
        </div>
    </body>
</html>

Coba jalankan project tersebut, maka filter yang dibuat akan terpenuhi sesuai kondisi yang diperlukan.
Bagian sintaks yang dimaksud penggunaan 1=1 adalah pada
$query = mysql_query("select * from tb_mhs where 1=1 $nim $nama $jen_kel", $koneksi);

Kondisi tersebut tidak akan menyebabkan eror meski form filter tidak diisi satupun.
Silahkan mengirim komentar jika ada yang ingin ditanyakan.

6/17/2017

Cara Mudah Reset Sequence PostgreSQL

Sebelumnya saya sudah posting tentang cara membuat kode auto increment di database postgreSQL, akan lebih lengkap jika saya posting juga Cara Reset Sequence atau Auto Increment di Postgres nya. Mungkin suatu saat kalian butuh buat balikin nilai sequence nya ke awal lagi bilamana database nya ingin di truncate alias dikosongkan. Kalo uda pake sequence, kode nya tidak akan kembali menjadi nilai ke 1 meski data telah dihapus, dia akan tetap melanjutkan nilai terakhir dari record nya. Jadi harus kita reset lagi. Bagaimana caranya? yuk disimak :
  1. Kita akan menggunakan database yang sebelumnya kita buat di tutorial Cara Membuat Kode Auto Increment di Database PostgreSQL.
  2. Hapus data di tabel contoh
  3. Jika sudah, jalankan perintah sql ini

    ALTER SEQUENCE sequence_no_urut RESTART WITH 1
  4. Maka  id akan kembali menjadi nilai 1 jika kita input data baru.
Mudah bukan reset sequence di postgresql? silahkan dicoba sesuai kebutuhan.

6/13/2017

Cara Membuat Kode Auto Increment di Database PostgreSQL

Seperti yang kita ketahui, kadang auto_increment sangat berguna bila kita ingin membuat kode unik otomatis tanpa harus dipusingkan dengan pembuatan pola kode nya. Tidak seperti pembuatan kode otomatis pada postingan saya sebelumnya mengenai Cara Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL yang terbilang sangat rumit, kali ini saya akan memberikan cara yang sangat sederhana, tapi berbeda database pula. Yap, Karena kali ini yang saya gunakan ialah database PostgreSQL. Tentu berbeda pembuatan auto increment di Mysql dengan PostgreSQL. Di mysql kita dengan mudah mengatur field untuk dijadikan auto increment, hanya tinggal atur field nya bertipe integer, dan atur sebagai primary key, lalu atur menjadi auto_increment. Mudah bukan?

Seperti ini untuk Mysql:
CREATE table contoh ( no int NOT NULL auto_increment,
Nama varchar(30),
Alamat varchar(30),
Primary key(no));

Namun di postgres, terdapat 2 cara, dengan yang pertama dengan menggunakan tipe data serial, dan tidak.

Dengan menggunakan type data Serial :

CREATE TABLE contoh(
no serial NOT NULL,
nama character varying(30),
alamat character varying(30),
CONSTRAINT contoh_pkey PRIMARY KEY (no))
WITH (
OIDS=FALSE
);
ALTER TABLE contoh OWNER TO postgres;


Jika tidak menggunakan type data serial, maka kita perlu membuat auto_increment nya terlebih dahulu lalu dilanjutkan dengan membuat tabel nya. Oh ya perlu diketahui, di PostgreSQL kita menyebutnya Sequence, bukan Auto_increment.

Tidak menggunakan type data Serial:
Buat sequence nya

CREATE SEQUENCE sequence_no_urut


Buat tabel dan panggil sequence nya.

CREATE TABLE contoh (
id integer NOT NULL DEFAULT nextval('sequence_no_urut'::regclass),
price NUMERIC
);


Mudah bukan? silahkan di explore lagi dan jika ada pertanyaan silahkan berkomentar dibawah.

Selanjutnya saya akan bahas tentang Cara Reset Sequence PostgreSQL

6/10/2017

Main Origami dari Robot? Kenalin nih, Si Mungil MORI (Modular Origami Robot)

Origami pada umumnya identik dengan permainan kertas lipat yang dapat dibentuk menjadi berbagai macam hiasan atau kerajinan. Tapi apa jadinya jika origami tersebut dimainkan dalam bentuk robot? Peneliti dari National Centre of Competence in Research (NCCR) Swiss, berhasil menciptakan origami berbentuk robot bernama Modular Origami Robot (Mori). Ukurannya kecil berbentuk segitiga yang dapat di bongkar pasang dengan ketebalan hanya 6 milimeter dan lebar 70 milimeter serta berat sekitar 26 gram. Robot canggih ini dilengkapi dengan akuator kecil, sensor dan remote control.

Si Mungil MORI (Modular Origami Robot)

Robot Mori dapat dimainkan secara bongkar pasang, artinya robot tersebut dapat digabungkan dengan komponen lain ataupun dengan robot mori lagi. Selain itu robot tersebut mampu mengangkat komponen lain yag terpasang dengannya. Ingin membuat prisma, limas segitiga? Si mungil ini bisa melakukannya. Bukan hanya itu, Mori memiliki kemampuan mengontrol bola yang bergerak di permukaan yang terpasang dengannya, itu karena robot mori dilengkapi kamera eksternal untuk dapat membuat loop feedback yang digunakan untuk mengatur keseimbangan benda yang terletak diatas permukaan tersebut.

Nantinya, fungsi dari mori ini dapat membantu aktifitas saat diluar angkasa. Karena sifatnya yang modular, ia dapat merubah bentuk sesuai kebutuhan. Sehingga diharapkan dapat berubah bentuk untuk memperbaiki struktur atau komponen yang rusak serta dapat menjadi sarana representasi data geografis.

Lebih jelasnya kemampuan Robot Mori ini, simak video berikut :


Kursor Mouse Yang Sekarang Miring, Dulunya Tegak Lurus Loh

Tahu gak sih teman-teman kalau kursor mouse yang sering kita lihat saat ini umumnya miring 45 derajat ternyata dulunya di design tegak lurus? Lalu kenapa dibuat miring ya? biar keren atau memang nggak ada kerjaan pembuatnya? Ternyata ada usul-usulnya lohh.. Mau tahu?

Kursor Mouse Tegak Lurus

Menurut sumber yang saya baca, dahulu di era tampilan layar komputer masih beresolusinya rendah, kursor mouse tegak lurus dibuat oleh Dounglas Englebart pada tahun 1968. Namun pada saat itu resolusi layar yang digunakan masih relatif rendah, kursor mouse tegak lurus sangat sulit ditemukan apalagi layarnya belum berwarna seperti sekarang ini, dulu masih monokrom alias masih hitam putih. hmm kebayang kalau dilayar menampilkan garis, kursor nya nggak kelihatan. Karena aspek itulah, pada tahun 1970an dengan diluncurkannya komputer Xerox PARC kursor dibuat miring. Alasannya ya itu tadi, agar tidak membingungkan penggunanya.

Semenjak saat itu mouse tetap dibuat miring 45 derajat hingga sekarang dan diadopsi oleh pembuatan software komputer juga, termasuk Steve Jobs menerapkan untuk produk MAC OSnya dan Bill Gates dengan produk Windowsnya. Jadi sudah tahu kan sekarang asal mulanya kenapa kursor mouse dibuat miring?

6/08/2017

Cara Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL

Hampir disetiap pembuatan struktur database pasti membutuhkan kode unik, artinya nomor tersebut berbeda beda antara satu dengan yang lainnya dan tidak ada data kode yang sama. Seperti contoh tabel master barang, apakah kode barang tersebut ada yang sama? tidak, karena jika sama maka akan 'membingungkan' program dalam mengambil data dari barang tersebut. Karena sifatnya yang harus unik, maka kode barang tersebut biasanya digunakan untuk Primary Key (kunci utama) dari tabel. dan fungsinya tentu sebagai kunci dari setiap pengelolaan data tersebut, ingin mencari data A? maka primary key data A tersebut lah yang harus di pakai. kita analogikan sebagai pintu rumah beserta kunci nya. pasti kan berbeda-beda tiap kunci? kunci A untuk pintu A, kunci B untuk pintu B, dan seterusnya.

Berbicara mengenai kode barang, kali ini saya akan memberikan tutorial pembuatan kode barang yang otomatis dibuat dari sisi database MySql nya, jadi programmer tidak lagi dipusingkan dengan membuat kode barang dari sintaks program nya. Hal yang perlu dipahami disini ialah mengenai trigger dan function. (pembahasan kedua istilah tersebut akan saya bahas pada kesempatan lain).

Untuk tools yang digunakan ialah navicat, aplikasi pengelola database ini terbilang cepat, berbeda dengan kita menggunakan localhost/phpmyadmin.

Oke mari kita mulai,
Pertama buka navicatnya
Kedua Jika belum mempunyai koneksi database, maka buat koneksi terlebih dahulu dengan klik kolom connection lalu atur konfigurasi mysql nya seperti gambar dibawah
Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL - indra92

Ketiga, buat database baru dengan nama trigger_no_seri , character set dan collation nya Utf8
Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL - indra92

Keempat, buat tabel di database tersebut seperti ini. perhatikan kolom tab nya, pilih tab fields untuk menambahakn kolom-kolom tabel nya. dan atur kd_barang sebagai primary (lihat icon kunci)
Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL - indra92

Kelima, lihat gambar diatas, terdapat kolom yang saya beri garis biru, selanjutnya kita buat trigger di tabel tadi seperti ini, simpan dengan nama mst_barang

Keenam, kita buat function untuk membuat kode barang nya, di database trigger_no_seri pilih menu Function lalu klik kanan dan New Function

Ketujuh, akan muncul pop up , pilih Function, kemudian isi kolom pertama dengan nomor dan kolom ke dua type nya int setelah itu klik finish. pada proses ini ialah untuk menentukan parameter yang nanti kita gunakan pada function nya.
Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL - indra92

Kedelapan, akan muncul halaman yang berisikan script, silahkan ketik sintaks berikut ini 
BEGIN
DECLARE kodebrg CHAR(10);
DECLARE no_urut INT;
 
SET no_urut = IF(nomor IS NULL, 1, nomor + 1);

#tentukan jumlah string dan no urut, karena kita menggunakan 10 digit jadi "BR"+8
SET kodebrg = CONCAT("BR", LPAD(no_urut, 7, 0));
 
RETURN kodebrg;
END

Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL - indra92

Terakhir save function tersebut dengan nama functionKdBrg
Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL - indra92

Coba jalankan dengan mengisi data di tabel tersebut tanpa mengisi kolom kd_barang
Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL - indra92

Data yang disimpan akan otomatis membuat kode barang nya secara continues..
Sekian tutorial dari saya, jika ada yang kurang jelas silahkan berkomentar di bawah. Terimakasih, sampai bertemu lagi di tutorial berikutnya..

6/01/2017

Sana Sleep Goggles Bagi Penderita Imsomnia

Tentu sangat sulit bagi penderita insomnia untuk dapat merasakan tidur dengan nyenyak, beberapa faktor yang dapat mempengaruhi seseorang mengalami insomnia yakni karena kesibukan yang begitu menyita waktu, terlalu banyak mengkonsumsi caffein di malam hari, tidak pernah berolah raga dan lain-lain. Namun jangan khawatir, tahun 2018 mendatang teknologi baru akan dijual bagi penderita insomnia ini, karena ditahun depan alat canggih yang bernama Sana Sleep Goggles berbentuk seperti kacamata ini akan resmi diluncurkan.

Sana Sleep Goggles Bagi Penderita Imsomnia

Sana Sleep Goggles dikembangan oleh Sana Health, dapat membuat pengguna merasakan tidur nyenyak walau hanya 10 menit saja. Meski hanya berdurasi 10 menit, dikatakan bahwa tidur pulas hanya dengan 10 menit lebih efektif dari tidur lama tapi tidak pulas atau dalam keadaan gelisah. 

Cara kerja Sana Sleep Goggles adalah dengan menutup seluruh bagian mata hingga tidak ada cahaya sedikitpun yang masuk. Dengan begitu, pengguna akan merasakan keadaan yang memberikan relaksasi bagi tubuh dan otak. Tidak hanya itu, Sana Sleep Goggles  mampu memberikan stimulasi audio dan video untuk memberikan relaksasi yang optimal dan mampu memantau sistem saraf untuk membantu personalisasi pengalaman dan menyesuaikan dengan kebutuhan penggunanya. Namun sayang, Alat ini dibandrol dengan harga yang cukup tinggi, yakni $400 atau sekitar Rp. 5,3 juta. Jadi siapkan uang anda untuk membeli nya yaa..

5/18/2017

Serangan Virus Ransomware

Virus ini nih yang sekarang lagi nge-"trend" banget di media, Ransomware wannacry, wannacrypt dan apalah wanna wanna lainnya kalaupun masih ada jadi teror bagi kita pengguna internet. 

Biasanya saya cuma lihat aksi teror virus kayak gitu di film-film hacker (karena saya memang senang dengan film yang berbau-bau hacking gitu meski gabisa T.T), Tapi lain cerita ketika beberapa pekan kebelakang dikagetkan dengan informasi dari teman saya adanya virus yang menyebar di salah satu departemen dimana ia bekerja. Semua data terenkripsi!

Virus ini bernama Wallet, mungkin masih satu keluarga dengan virus yang booming sekarang soalnya dia mengenkripsi data korban juga. Kenapa dinamakan wallet?
karena extensi yang dipakai .wallet , [dot]wallet (misal: file_skripsi_gue.wallet) hehe ..

Penyebaran si wallet ini tidak terdeteksi awalnya, hanya beberapa pc yang terjangkit dan hanya yang bersistem operasi W*ndows saja, saya kurang tahu awal mula virus ini datang, tapi masa virus ini datang secara tiba tiba ke jaringan perusahaan? gaib mungkin? ga juga si, mungkin ada sebab nya, bisa lewat attachment email, link, pokonya ada interaksi dari user sama virus itu (spekulasi saya aja sih).

Perlahan virus ini menyerang satu-persatu pc korban yang saling terhubung dalam jaringan (LAN, folder sharing, dsb) karena memang masing-masing pc bertukar data melalui folder sharing jadi penyebarannya mungkin dari file sharing tersebut hingga akhirnya sampai lah virus itu ke server data center yang kebetulan salah satunya masih menggunakan w*ndows. Ngeri sampe bermuara disana.. alhasil data dari semua pc yang bersistem operasi sama terenkripsi oleh si wallet. Semuanya berekstensi .wallet. Meski sudah diganti ekstensi, data didalamnya ga bisa balik kaya dulu lagi , maygat :'( 

Bukan hanya mengenkripsi data korbannya, pelaku juga meminta uang tebusan berupa bitcoin. gile udah kaya penjahat menyandra orang cuy, tau kan 1 bitcoin berapa sekarang? 15 jeti Haha, bagi perusahaan sih duit segitu ga masalah, lah kalau gue yang kena wkwkw ampun ah.

Lalu  bagaimana sih awal mula adanya virus ransomware ini?
menurut situs yang aku kutip sih seperti ini :

Ransomware diduga hasil pengembangan dari Exploit buatan Badan Keamanan Nasional Amerika Serikat (NSA). Namun karena rentannya keamanan yang dimiliki, kelompok hacker misterius bernama Shadow Brokers berhasil meretas pada Agustus 2016 lalu hingga akhirnya Esploit tersebut terekspos. Data tersebut berisi kelemahan M*cros*ft W*ndows terbaru dan cara meretas jaringan perbankan guna memata-matai transfer uang.

Tuh ngeri ya yang pakai w*ndows sekarang? sama aku juga :(. Makanya, sekarang musti waspada brader.. apalagi buat yang sering koneksi internet. Jangan asal klik link-link ga jelas. yang suka donlot-donlotan tuh harap lebih antisipasi lagi, bakcup data secara berkala di beda media pula, bila perlu sewa aja deh ahli IT Security buat proteksi data kalian (kalau ada duit).

Lebih jelasnya buat antisipasi biar ga kena ransomware ikuti tips Kominfo berikut ini:
  1. Sebelum menghidupkan komputer/server terlebih dahulu matikan/cabut jaringan seperti Hotspot/wifi dan LAN/internet.
  2. Segera pindahin data nya ke OS sistem Operasi selain windows (linux, mac) atau backup datanya ke media terpisah.
  3. Update security windows bisa install patch M517-010 yang dkeluarkan Microsoft (lebih baik di download dengan komputer biasa, jangan komputer yang berperan penting (server).
  4. Update antivirus (Kaspersky, Eset, Panda, Symantec).
  5. Matikan fungsi SMB (Server Message Block) dan jangan pula mengaktifkan fungsi macros.
  6. Block Ports : 139/445 dan 3389
Buat yang belum terkena virus ini harap selalu berhati-hati, bagi yang sudah pernah mengalaminya bisa jadi pelajaran agar lebih waspada dan lebih berhati-hati. Ingat pepatah dari film Who Am I, "No system is safe". hehe 

Sekian dan terimakasih..