Mengirm pesan WhatsApp ke kontak yang belum disimpan

WhatsApp web akhir-akhir ini menjadi fasilitas favorit saya untuk berkomunikasi melalui aplikasi WA. Meskipun WA sesungguhnya dirancang untuk mobile, namun dalam hal mengetik text pesan keyboard fisik tetap juara dibandingkan virtual keyboard pada smartphone.

Satu fitur yang saya rasa penting namun belum ada di WA adalah mengirim pesan kepada nomor yang belum tersimpan dalam kontak kita, baik untuk versi mobile maupun web. Mungkin sudah menjadi prinsip dari WA untuk tidak mengizinkan hal tersebut, namun bagi sebagian orang justru fitur tersebut akan sangat bermanfaat.

Buat pesan baru WA

Buat pesan baru WA

Continue reading

Fetching photo berdasarkan tags di Instagram

Sidebar instagram tags

Sidebar instagram tags

Beberapa waktu yang lalu Dwohoo.com menambahkan fitur untuk menampilkan daftar foto yang berkaitan dengan destinasi yang sedang dibahas dalam suatu artikel. Foto-foto tersebut diambil secara langsung dari Instagram.

Instagram memiliki API bagi para developer yang hendak mengembangkan aplikasi lanjutan, tapi kali ini saya tidak menggunakan API tersebut. Selain ribet, tahapannya juga cukup banyak (auth, token, dll) sehingga memerlukan beban waktu yang lebih untuk memuat foto-foto yang diinginkan.

Continue reading

Update Source otomatis dari Bitbucket dan GitHub

Bitbucket and GitHub

Bitbucket and GitHub

Siapa yang tidak kenal kedua GIT repository tersebut, dengan semua fasilitas yang disediakan oleh Bitbucket dan GitHub membuat para developer nyaman untuk menitipkan source project mereka disana.

Saya menggunakan Bitbucket cukup lama, hanya baru-baru ini mulai menggunakan GitHub. Mengingat kebijakan pricing yang diterapkan kedua layanan tersebut sedikit berbeda, untuk versi free Bitbucket memungkinkan user menyimpan beberapa repository secara private (selebihnya musti bayar), sedangkan GitHub hanya membolehkan repository public. Continue reading

Membuat Booking Form Widget di WordPress

Fastboat Booking

Kali ini saya akan coba membuat Booking Form Widget untuk Fastboat di WordPress, secara konsep sebetulnya hampir sama untuk penggunaan pada booking platform yang lain. Hanya saja untuk Fastboat kali ini menggunakan API dari Fastboat System yang sudah ada.

Pertama-tama adalah membuat class untuk Widget yang akan dibuat didalam file functions.php theme yang akan digunakan, format penulisan nama class sebaiknya menggunakan Camel Case. Class ini merupakan turunan (Extend) dari class WP_Widget yang sudah disediakan WordPress untuk memudahkan kita dalam membuat dan mengelola Widget di WorPress.

class Fastboat_Booking_Form extends WP_Widget {

   function __construct() {
      parent::__construct(
         'fastboat_booking_form',
         'Fastboat Booking Form',
         array(
            'description' => 'Fastboat Booking form'
         )
      );
   }
}

Inisialisasi dilakukan pada konstruktor, dimana parameter pertama merupakan ID dari widget yang akan dibuat (harus unique), parameter kedua merupakan title dari widget, dan parameter ketiga merupakan opsi pendukung lainnya dalam bentuk array. Continue reading

Perihal mengembangkan CMS

Dashboard | LRS Engine versi-2.1.0

Dashboard | LRS Engine versi-2.1.0

Mengembangkan CMS sendiri? Kenapa tidak!

Bagi advanced developer, khususnya dibidang web, tidak ada kata lelah untuk inovasi. Selalu saja ada hal-hal baru yang ingin dibuat atau dikembangkan. Saya masih ingat ketika pertama kali belajar tentang pemrograman web, mudah dan banyak referensi. Meskipun lambat laun ternyata menyadari bahwa prospek bisnis dan tingkat penetrasi terhadap web saat ini sangat tinggi.

Dalam konteks website, setiap website mestinya dibangun dengan menjalani beberapa tahapan, mulai dari analyst, design, sampai production. Hal tersebut berlaku untuk 1 website, bisa dibayangkan jika anda akan mengembangkan 5 project website atau lebih dengan terus menerus menggunakan tahapan yang sama? Dari situlah muncul ide untuk membuat sebuah framework (kerangka kerja) dengan tujuan untuk memudahkan seseorang yang ingin mengembangkan website atau web system lebih dari satu kali, atau yang saat ini lebih kita kenal dengan CMS (Content Management System). Continue reading

PHP : Menggunakan fungsi shuffle dalam perulangan

$arr = array(
    '2012'      => array(
        array(
            'no'        => 1,
            'nama'      => 'satu',
            'ket'       => '...'
        ),
        array(
            'no'        => 2,
            'nama'      => 'dua',
            'ket'       => '...'
        ),
        array(
            'no'        => 3,
            'nama'      => 'tiga',
            'ket'       => '...'
        ),
    ),
    '2014'      => array(
        array(
            'no'        => 11,
            'nama'      => 'sebelas',
            'ket'       => '...'
        ),
        array(
            'no'        => 12,
            'nama'      => 'dua belas',
            'ket'       => '...'
        ),
        array(
            'no'        => 13,
            'nama'      => 'tiga belas',
            'ket'       => '...'
        ),
    )
);

foreach( $arr as $k => $a )
    shuffle( $arr[ $k ] );

print_r( $arr );

Continue reading

OOP dan Terstruktur

Berhubung lagi praktikum pemrograman berorientasi objek, yah sekalian aja post tentang OOP dan terstruktur. :yell:

Apa sih bedanya pemrograman yang berorientasi objek dengan pemrograman struktur?

Sesuai dengan namanya, pemrograman berorientasi objek (OOP) merupakan pemrograman yang berorientasi kepada objek-objek. Semua data dan fungsi (method) dibungkus menjadi satu kedalam class dan objek. Dalam OOP objek-lah yang lebih aktif.

Sedangkan pemrograman yang terstruktur adalah program yang menjalankan perintah-perintah nya secara berurutan. Sehingga satu dengan fungsi yang lain harus saling berhubungan. Dalam pemrograman terstruktur, programlah yang lebih aktif.

Kemudian apa bedanya pendeklarasian variabel dalam OOP dengan yang terstruktur?

Variabel dalam pemrograman terstruktur dituliskan langsung dalam programnya, sedangkan pemrograman yang berorientasi objek variabelnya disimpan dalam class-class.

Continue reading

Single dan Double OrderedLinkedList di java

Iseng posting tentang linkedlist java, mumpung sedang belajar itu juga di Algoritma dan Struktur Data. Itung itung menuhin blog juga ^_^
langsung aja, berikut listing programnya :
yg ini untuk file Node.java

public class Node {

	int data;
	Node next;
	Node prev;
	Node(int id){
		data=id;
	}
}

file AddtLinkedList.java

public class AddtLinkedList {

	static boolean kosongCek(Node head){
		return (head==null);
	}
	static void tukar(Node nd1, Node nd2){
		Node tmp = new Node(nd1.data);
		nd1.data=nd2.data;
		nd2.data=tmp.data;
	}
	static void tampil(Node head){
		Node current=head;
		while(current!=null){
			System.out.print(current.data+" ");
			current=current.next;
		}
		System.out.println();
	}
	static void tampil(Node head, Node tail, String a){
		if (a=="maju"){
			Node current=head;
			while(current!=null){
				System.out.print(current.data+" ");
				current=current.next;
			}
			System.out.println();
		} else if (a=="mundur"){
			Node current=tail;
			while(current!=null){
				System.out.print(current.data+" ");
				current=current.prev;
			}
			System.out.println();
		}

	}
}

Continue reading

Implementasi cipher dengan PHP

Kemarin kebetulan belajar keamanan informasi tentang enkripsi, dan di ajarkan beberapa enkripsi yaitu caesar cipher dan vigenere cipher. tiba tiba terfikir ingin mencoba membuat cipher dengan PHP, berhubung saya sedang menggemari bahasa tersebut. ya alhamdulillah setelah beberapa hari akhirnya jadi juga 😀

untuk menjelaskan programnya satu persatu, mungkin akan memakan banyak waktu, jadi saya cuma copas listing programnya saja, untuk penjelasan mengenail syntaxnya banyak sekali di temukan di Google atau di W3schools.

yang pertama buat file untuk convertnya, beri nama convert.php

<?php
/*
 *      convert.php
 *      
 *      Copyright 2011 Ahmad Zafrullah Mardiansyah <zaf@zaf-laptop>
 *      
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *      
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *      
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */
 
function char_to_dec($a){
	$i=ord($a);
	if ($i>=97 && $i<=122){
		return ($i-96);
	} else if ($i>=65 && $i<=90){
		return ($i-38);
	} else {
		return null;
	}
}

function dec_to_char($a){
	if ($a>=1 && $a<=26){
		return (chr($a+96));
	} else if ($a>=27 && $a<=52){
		return (chr($a+38));
	} else {
		return null;
	}
}

function tabel_vigenere_encrypt($a, $b){
	$i=$a+$b-1;
	if ($i>26){
		$i=$i-26;
	}
	return (dec_to_char($i));
}
function tabel_vigenere_decrypt($a, $b){
	$i=$a-$b+1;
	if ($i<1){
		$i=$i+26;
	}
	return (dec_to_char($i));
}

?>

Continue reading