Geocoder, Menemukan Kordinat dengan Alamat

Google Maps salah satu aplikasi map yang populer dan cukup powerfull, banyak hal yang dapat dilakukan menentukan kordinat,menentukan rute, dan lain sebagainya.

Salah satu yang dapat dilakukan adalah menentukan koordinat longitude dan latitude hanya berdasarkan alamat yang diketahui. Cara ‘tradisional’ bisanya orang akan membuka halaman Google Maps ,menuliskan alamat, klik kanan pada area pointer dan lalu klik kanan untuk menemukan koordinatnya. Atau. Orang akan membuat aplikasi peta dimana user memilih lokasi lalu ketika dipilih atau diklik maka kordinat lokasi langsung dapat diketahui.

Cara yang lain adalah cukup memasukan alamat dan sisanya biarkan sistem yang bekerja untuk memunculkan kordinatnya.

Index.html

<html>
	<head>
	<title>Address</title>
	<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
	<script src="//code.jquery.com/jquery-1.10.2.js"></script>
		
	</head>
	<body>
		<textarea id="address"></textarea>
		<button class="btn-address">Kordinat</button></br>
		longitude : <input type="text" name="longitude" class="longitude" /><br>
		latitude : <input type="text" name="latitude" class="latitude" /><br>

	</body>
	
</html>

script geocoder

	<script>
		//trigger utamanya saat tombol dengan class btn-address di klik
		$('.btn-address').click(function(){
			//memicu untuk menjalankan function getAlamat()l
			getAlamat();
		})
		function getAlamat() {
			//inisialisasi geocoder
		  var geocoder= new google.maps.Geocoder();
		  //mendapatkan nilai dari alamat yang dimasukan di text area dengan id address
		  var address = document.getElementById('address').value;
		  //menggunakan fungsi geocoder untuk mencari berdasarkan alamat
		  geocoder.geocode( { 'address': address}, function(results, status) {
		  		//jika status ok maka
		    if (status == google.maps.GeocoderStatus.OK) {	
		    	// koordinat longitude di munculkan di textbox dengan class longitude		     
			      $('.longitude').val(results[0].geometry.location.lng());
			      	// koordinat latitude di munculkan di textbox dengan class latitude	
		    	  $('.latitude').val(results[0].geometry.location.lat());
		    } 
		    else {
		    	//jika statusnya tidak OK muncul pesan informasi status gagal
		      alert('Geocode gagal karena : ' + status);
		    }

		  });
		}
		</script>

sehingga isi dari index.html

<html>
	<head>
	<title>Address</title>
	<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
	<script src="//code.jquery.com/jquery-1.10.2.js"></script>
		
	</head>
	<body>
		<textarea id="address"></textarea>
		<button class="btn-address">Kordinat</button></br>
		longitude : <input type="text" name="longitude" class="longitude" /><br>
		latitude : <input type="text" name="latitude" class="latitude" /><br>

	</body>
		<script>
		//trigger utamanya saat tombol dengan class btn-address di klik
		$('.btn-address').click(function(){
			//memicu untuk menjalankan function getAlamat()l
			getAlamat();
		})
		function getAlamat() {
			//inisialisasi geocoder
		  var geocoder= new google.maps.Geocoder();
		  //mendapatkan nilai dari alamat yang dimasukan di text area dengan id address
		  var address = document.getElementById('address').value;
		  //menggunakan fungsi geocoder untuk mencari berdasarkan alamat
		  geocoder.geocode( { 'address': address}, function(results, status) {
		  		//jika status ok maka
		    if (status == google.maps.GeocoderStatus.OK) {	
		    	// koordinat longitude di munculkan di textbox dengan class longitude		     
			      $('.longitude').val(results[0].geometry.location.lng());
			      	// koordinat latitude di munculkan di textbox dengan class latitude	
		    	  $('.latitude').val(results[0].geometry.location.lat());
		    } 
		    else {
		    	//jika statusnya tidak OK muncul pesan informasi status gagal
		      alert('Geocode gagal karena : ' + status);
		    }

		  });
		}
		</script>
</html>

Setelah itu jika di akses via browser tampilan akan seperti beikut
geocode1
Setelah itu inputkan alamat misal Bandung lalu klik tombol maka akan muncul kordinat Bandung
geocode2
Ya seperti itu untuk mendapatkan kordinat menggunakan alamat memanfaatkan geocoder

situs sarjanagoogle berpindah ke

http://www.semacamblog.com/2014/07/geocoder-menemukan-kordinat-dengan-alamat/

[PHP] Auto Number dengan Awalan “0”

Salam semua,

Setelah lama gak nulis akhirnya nulis lagi yang simple simple saja sekarang mah, kebetulan ini dapat kerjaan yang mengharuskan memunculkan nomor otomatis tetapi dengan aturan nomor hanya 4 digit sehingga jika digit nya tunggal menjadi 0001 jika banyak yah menjadi 0012 atau 0123 gitu.

Logika paling sederhana adalah menghitung jumlah karakter yang muncul jika karakter awal yang muncul 1 digit ditambhakan ‘000’ jika hanya 2 digit maka ’00’ dan seterusnya dan selanjutnya. Tapi, apa logika sederhana itu akan menjadi sebuah script yang sederhana ? saya rasa tidak.

Jika menggunakan logika “jika” atau “IF” berapa banyak “if” dan “elseif’ yang dibuat, baiklah tak masalah jika hanya 4 digit membuat “if” dengan “elseif” menuju “else” hanya beberapa baris, tapi, bagaimana jika lebih dari 4, 100 misalnya apa layak untuk dibuat “if’ dengan cabang “elseif” yang mungkin sebelum memulai script malah jadi malas.

Nah, sebenarnya ada fungsi pada PHP yang dapat membantu dengan menggunakan sprintf() [untuk penjelasanya sila buka official web php saja]. cukup mudah menggunakanya

<?php

//no urut bisa diubah hasil hitungan sejumlah data yang kalian hitung pad table tertentu

$nourut = 1;

//menambahkan awalan 0 untuk 4 karakter sesuai dengan $nourut

echo sprintf("%04s", $nourut);

bagaiamana mudahkan ?

jika ada yang mau ditanyakan silahkan comment dan jika mungkin balasan lama bisa kunjungi akun dunia maya saya @ariesM_

Google API Custom Search

Fitur yang kemungkinan besar harus selalu ada pada sebuah aplikasi adalah CRUD [Create,Read,Update,Delete] dimana R adalah Read yang biasa diasosiasikan sebagai View. Sedangkan view pun terkadang banyak dilakukan variasi dari mulai pagination [pembatasan jumlah tampilan perhalaman] dan pencarian.

Pencarian sederhana biasanya hanya ditempel pada masing masing table database tapi itu biasanya disimpan di halaman admin atau backend sedangkan yang disediakan difront end atau tampilan yang berhubungan langsung dengan user, kolom pencarian langsung mencari kepada keseluruhan web tidak terikat lagi keada satu table tertentu. Beruntunglah bagi para pemalas seperti saya google telah menyediakan fitur tersebut dan kita atau saya bisa memanfaatkannya langsung.

Google API Custom Search

Pertama silahkan masuk kehalaman https://developers.google.com/custom-search/ pada halaman tersebut terdapat dua pilihan Basic Edition dan Business Edition nah yang saya pakai adalah yang Basic.

Setelah memilih basic anda akan diarahkan kepada halaman mesin pencarian, pada halaman tersebut ada tombol add yang fungsinya untuk membuat atau menambahkan [jika sudah punya sebelumnya] mesin pencarian yang nantinya akan ditempelkan diweb anda masing masing.
Screenshot from 2014-05-30 10:26:56
Setelah memilih tombol add anda akan dipindahkan ke halaman konfigurasi sederhana ya sederhana sekali anda cukup memasukan alamat situs anda kedalam kolom yang telah disediakan, oh iya dicontoh ini saya menggunakan alamat blog saya yang lain sebenarnya alamat webnya terserah tergantung dengan alamat web kalian masing masing.

Screenshot from 2014-05-30 10:29:55

Setelah selesai silahkan menekan tombol create dan anda akan kembali dialihkan ke halaman pemberitahuan bahwa anda telah berhasil membuat google search engine pribadi.Dihalaman tersebut terdapat tombol bertuliskan Get a Code silahkan klik tombol tersebut untuk mendapatkan script google yang telah disediakan setelah itu sederhana sekalia, copy script tersebut kebagian web anda pada div atau elemen atau lokasi yang ingin ditampilkan pada web lalu dengan sendirinya kolom pencarian google khusus web anda sudah terpasang.

Screenshot from 2014-05-30 10:30:20Screenshot from 2014-05-30 10:30:51

Website Multi Bahasa dengan Google Translate Plugin

Perbedaan website dengan media tulis lainya adalah website tidak mengenal batas wilayah, selama wilayah tersebut mempunyai jaringan internet maka website kalian bisa diakses. Permasalahan yang sering muncul adalah bahasa, dimana bahasa yang ditulis seorang penulis mungkin tidak dipahami oleh pengunjung website, maka cara yang dipakai biasanya menyediakan fasilitas pengubah bahasa untuk website dan google telah menyiapkan plugin yang dapat kita manfaatkan.

Google Translate Plugin

Untuk mendapatkan plugin dari Google Translate cukup dengan membuka halaman http://translate.google.com/ dan pilih menu “Penerjemah Situs Web” atau “Website Translator” pada bagian bawah halaman.

index

Setelah itu maka anda akan diarahkan ke halaman baru untuk konfirmasi apakah website anda akan dipasangkan plugin google translate

index2

Setelah itu anda akan kembali diarah kepada halaman konfigurasi plugin isi field yang tersedia dengan sesuai, pada field “Website URL” bisa anda masukan blog anda, pada kasus saya,saya masukan situs web ini.

index3

Konfigurasi Selanjutnya untuk memilih jenis plugin yang akan dimunculkan silahkan sesuai dengan selera anda

index4

Jika selesai maka anda akan diarahkan kehalaman yang menyediakan script yang sudah siap anda copas

index5

silahkan copas bagian meta pada <head> atau cukup bagian div tempelkan dimana saja didalam tag <body></body> html kalian tempatkan sesuai selera jika berhasil maka akan seperti ini

versi Indonesia

index6Versi Inggris

index7

Sekian tulisan saya kali ini jika ada yang mau ditanyakan sila komen dibawah kalau mau [mungkin] lebih cepat bisa via twitter saya di @ariesM_

DataTables Codeigniter

Yeahhh \m/ akhirnya sedikit lenggang waktu untuk buka blog ini lagi, oh iya pas kemarin ngobrol ama temen dikasih saran pake datatables ini dan ternyata menyenangkan membantu sekali dalam membuat tampilan list data beserta pencarian dan pembagian halamanya. Baiklah gak perlu basa basi lagi mending langsung aja tapi sebelumnya ijinkan saya meminum segelas kopi yang sudah setengah gelas dan menjelang dingin.

Disini saya bukan mau menjelaskan DataTables itu apa tapi cara pemakainyanya dan komposisi yang dibutuhkan

  1. Codeigniter 2.XX
  2. jquery datatables yang bisa didonwload disini
  3. library datatables untuk CI bisa didownload disini

Setelah komposisi tersedia, silahkan jquery datatables pindahkan ke dalam folder asset/js  jika belum silahkan buat dulu folder aset yang sejajar dengan folder aplication, sedangkan datatables library pindahkan ked alam folder application/libaries.

Pertama yang harus disiapkan adalah table yang akan jadi contoh tentunya disini saya pake table yang sangat mainstream table mahasiswa dengan struktur seperti ini

struk

Controler

Controler yang dibikin disini saya beri nama file datatable.php sehingga struktur Controllernya

&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Datatable extends CI_Controller {
        
    public function __construct()
   {
        parent::__construct();
        $this-&gt;load-&gt;library('datatables'); //load library upload bisa dilakukan disni atau disimpan di autoload
        
   }

    public function index()
    {
           $this-&gt;load-&gt;view('datatables'); //menampilkan halaman upload
    }
    function get_data()
    {
        $this-&gt;datatables-&gt;select('id,nama,alamat,email')
        -&gt;unset_column('id')
        -&gt;add_column('action',$this-&gt;button('$1'),'id') //menambahkan 1 kolom untuk custom field
        -&gt;from('mahasiswa');
        
        echo $this-&gt;datatables-&gt;generate(); //generatie hasil dari database
    }
    function button($param)
    {
        $html = &quot;&lt;a href='&quot;.base_url().&quot;index.php/datatables/edit/{$param}' &gt;Edit&lt;/a&gt;&quot;;

        return $html;
    }
    
}

View

Sekarang struktur viewnya cukup mudah

&lt;html&gt;
    &lt;head&gt;
        &lt;!-- cuma menambahkan css dari bootstrap agar telihat lebih manusiawi --&gt;
            &lt;link href=&quot;&lt;?php echo base_url(); ?&gt;asset/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot; media=&quot;screen&quot;&gt;
            &lt;!-- menambahakan js --&gt;
            &lt;script src=&quot;http://code.jquery.com/jquery-1.9.1.js&quot;&gt;&lt;/script&gt;
            &lt;script src=&quot;&lt;?php echo base_url(); ?&gt;asset/js/jquery.dataTables.min.js&quot;&gt;&lt;/script&gt;
    &lt;/head&gt;
    &lt;body&gt;
&lt;table class=&quot;table&quot;  id=&quot;datatable&quot;&gt;
         &lt;thead&gt;
           &lt;tr&gt;
            &lt;th&gt;Nama&lt;/th&gt;
            &lt;th&gt;Alamat&lt;/th&gt;
            &lt;th&gt;Email&lt;/th&gt;
            &lt;th width=&quot;10%&quot;&gt;&amp;nbsp;&lt;/th&gt;
           &lt;/tr&gt;
          &lt;/thead&gt;
      &lt;tbody&gt;
       &lt;tr&gt;
        &lt;td colspan=&quot;5&quot; class=&quot;dataTables_empty&quot;&gt;Loading data from server&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/tbody&gt;
  &lt;tfoot&gt;
   &lt;tr&gt;
   &lt;/tr&gt;
  &lt;/tfoot&gt;
 &lt;/table&gt;
    &lt;/body&gt;

&lt;/html&gt;

nah itu belum selesai sekarang tambahkan script berikut

&lt;script&gt;
    $(document).ready(function(){
        var oTable = $('#datatable').dataTable( {
        &quot;bProcessing&quot;: true,
        &quot;bServerSide&quot;: true,
        &quot;sAjaxSource&quot;: '&lt;?php echo base_url(); ?&gt;index.php/datatable/get_data', //mengambil data ke controller datatable fungsi getdata
                &quot;bJQueryUI&quot;: true,
                &quot;sPaginationType&quot;: &quot;full_numbers&quot;,
                &quot;iDisplayStart &quot;:20,
                &quot;oLanguage&quot;: {
            &quot;sProcessing&quot;: &quot;&lt;img src='&lt;?php echo base_url(); ?&gt;assets/images/ajax-loader_dark.gif'&gt;&quot;
        },  
        &quot;fnInitComplete&quot;: function() {
                //oTable.fnAdjustColumnSizing();
         },
                'fnServerData': function(sSource, aoData, fnCallback)
            {
              $.ajax
              ({
                'dataType': 'json',
                'type'    : 'POST',
                'url'     : sSource,
                'data'    : aoData,
                'success' : fnCallback
              });
            }
    } );
    })
&lt;/script&gt;

sehingga keselurahan viewnya seperti

&lt;html&gt;
    &lt;head&gt;
        &lt;!-- cuma menambahkan css dari bootstrap agar telihat lebih manusiawi --&gt;
            &lt;link href=&quot;&lt;?php echo base_url(); ?&gt;asset/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot; media=&quot;screen&quot;&gt;
            &lt;!-- menambahakan js --&gt;
            &lt;script src=&quot;http://code.jquery.com/jquery-1.9.1.js&quot;&gt;&lt;/script&gt;
            &lt;script src=&quot;&lt;?php echo base_url(); ?&gt;asset/js/jquery.dataTables.min.js&quot;&gt;&lt;/script&gt;
    &lt;/head&gt;
    &lt;body&gt;
&lt;table class=&quot;table&quot;  id=&quot;datatable&quot;&gt;
         &lt;thead&gt;
           &lt;tr&gt;
            &lt;th&gt;Nama&lt;/th&gt;
            &lt;th&gt;Alamat&lt;/th&gt;
            &lt;th&gt;Email&lt;/th&gt;
            &lt;th width=&quot;10%&quot;&gt;&amp;nbsp;&lt;/th&gt;
           &lt;/tr&gt;
          &lt;/thead&gt;
      &lt;tbody&gt;
       &lt;tr&gt;
        &lt;td colspan=&quot;5&quot; class=&quot;dataTables_empty&quot;&gt;Loading data from server&lt;/td&gt;
       &lt;/tr&gt;
      &lt;/tbody&gt;
  &lt;tfoot&gt;
   &lt;tr&gt;
   &lt;/tr&gt;
  &lt;/tfoot&gt;
 &lt;/table&gt;
    &lt;/body&gt;
&lt;script&gt;
    $(document).ready(function(){
        var oTable = $('#datatable').dataTable( {
        &quot;bProcessing&quot;: true,
        &quot;bServerSide&quot;: true,
        &quot;sAjaxSource&quot;: '&lt;?php echo base_url(); ?&gt;index.php/datatable/get_data', //mengambil data ke controller datatable fungsi getdata
                &quot;bJQueryUI&quot;: true,
                &quot;sPaginationType&quot;: &quot;full_numbers&quot;,
                &quot;iDisplayStart &quot;:20,
                &quot;oLanguage&quot;: {
            &quot;sProcessing&quot;: &quot;&lt;img src='&lt;?php echo base_url(); ?&gt;assets/images/ajax-loader_dark.gif'&gt;&quot;
        },  
        &quot;fnInitComplete&quot;: function() {
                //oTable.fnAdjustColumnSizing();
         },
                'fnServerData': function(sSource, aoData, fnCallback)
            {
              $.ajax
              ({
                'dataType': 'json',
                'type'    : 'POST',
                'url'     : sSource,
                'data'    : aoData,
                'success' : fnCallback
              });
            }
    } );
    })
&lt;/script&gt;
&lt;/html&gt;

Setelah selesai sila akses halaman_ci_anda/index.php/datatable/
Sehingga hasil akhirnya

hasil

nah hasilnya seperti itu kalo ada pertanyaan bisa langsung komen tapi maaf kalo lelet dijawabnya jika ingin agak lebih cepat nanyanya bisa via twitter @ariesM_ [promo dikit]

situs sarjana google berpindah ke

http://www.semacamblog.com/2014/04/datatables-codeigniter/

Membuat Grafik Dinamis dengan library jquery/javascript

Nulis lagi kali ini nulis tentang membuat grafik menggunakan library – library javascript, sebenarnya banyak sih tulisan atau bahkan file file contoh dalam membuat grafik tapi mayoritas datanya statis dan ketika mendapatkan hal seperti itu kadang ngedumel “yang saya butuhkan itu yang dinamis bukan statis” [salah satunya saya] makanya saya nulis ini, bukan untuk orang lain tapi untuk saya sendiri karena terkadang saya suka lupa dengan hal hal yag sudah saya kerjakan tapi jika orang lain terbantu ya itu bonus. Nampaknya sudah saja basa basinya sekarang ke topik sebagai bahan tulisan dan contoh saja ceritanya saya mau membuat grafik rekap jumlah mahasiswa pertahun dan nantinya akan dimunculkan dalam bentuk grafik batang.

Sebelumnya saya membuat table rekap_mhs dengan struktur  dan data seperti ini

Capture

Dan karena ini akan membuat grafik dengan bantuan libaray javascript disini saya menggunakan amchart.js silahkan download disini

Setelah download dan ekstrak di folder yang diinginkan lalu siapkan 1 file php dengan struktur html sederhana seperti ini

 &lt;html&gt;

&lt;head&gt;

&lt;title&gt;Grafik Mahasiswa&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;table&gt;

&lt;tr&gt;

&lt;th&gt;Tahun&lt;/th&gt;

&lt;th&gt;Total&lt;/th&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;th&gt;2014&lt;/th&gt;

&lt;th&gt;134&lt;/th&gt;

&lt;/tr&gt;

&lt;/table&gt;

&lt;/body&gt;

&lt;/html&gt;

Itu data statis kita buat dinamis dengan bantuan bahasa pemograman php  menjadi

&lt;html&gt;

&lt;head&gt;

&lt;title&gt;Grafik Mahasiswa&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;?php

$link =      mysqli_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;,&quot;tuts&quot;) or die(&quot;Error &quot; . mysqli_error($link));

$query = &quot;SELECT * FROM rekap_mhs&quot; or die(&quot;Error in the consult..&quot; . mysqli_error($link));

$result = $link-&gt;query($query);

?&gt;

&lt;table&gt;

&lt;tr&gt;

&lt;th&gt;Tahun&lt;/th&gt;

&lt;th&gt;Total&lt;/th&gt;

&lt;/tr&gt;

&lt;?php while($row = mysqli_fetch_array($result)) { ?&gt;

&lt;tr&gt;

&lt;td&gt;&lt;?php echo $row['tahun']; ?&gt;&lt;/td&gt;

&lt;td&gt;&lt;?php echo $row['jumlah']; ?&gt;&lt;/td&gt;

&lt;/tr&gt;

&lt;?php } ?&gt;

&lt;/table&gt;

&lt;/body&gt;

&lt;/html&gt;

Itu baru table dinamis sesuai database lalu untuk membuat jadi grafik ? setelah tai kalian download libs amchart disana ada sample saya menggunakan sample bar 3D sebelumnya kita tambahkan dulu lokasi jquery dan libs js nya pada bagian head


&lt;head&gt;

&lt;title&gt;Grafik Mahasiswa&lt;/title&gt;

&lt;script src=&quot;js/jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;script src=&quot;js/amcharts.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;script src=&quot;js/serial.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;/head&gt;

Lalu pada downloadan amchart tadi ada folder sample saya menggunakan sample bar3D.html silahkan copas bagian script js nya saja yang ini


var chart;

var chartData = [

{

&quot;year&quot;: 2005,

&quot;income&quot;: 23.5

},

{

&quot;year&quot;: 2006,

&quot;income&quot;: 26.2

},

{

&quot;year&quot;: 2007,

&quot;income&quot;: 30.1

},

{

&quot;year&quot;: 2008,

&quot;income&quot;: 29.5

},

{

&quot;year&quot;: 2009,

&quot;income&quot;: 24.6

}

];

AmCharts.ready(function () {

// SERIAL CHART

chart = new AmCharts.AmSerialChart();

chart.dataProvider = chartData;

chart.categoryField = &quot;year&quot;;

// this single line makes the chart a bar chart,

// try to set it to false - your bars will turn to columns

chart.rotate = true;

// the following two lines makes chart 3D

chart.depth3D = 20;

chart.angle = 30;

// AXES

// Category

var categoryAxis = chart.categoryAxis;

categoryAxis.gridPosition = &quot;start&quot;;

categoryAxis.axisColor = &quot;#DADADA&quot;;

categoryAxis.fillAlpha = 1;

categoryAxis.gridAlpha = 0;

categoryAxis.fillColor = &quot;#FAFAFA&quot;;

// value

var valueAxis = new AmCharts.ValueAxis();

valueAxis.axisColor = &quot;#DADADA&quot;;

valueAxis.title = &quot;Income in millions, USD&quot;;

valueAxis.gridAlpha = 0.1;

chart.addValueAxis(valueAxis);

// GRAPH

var graph = new AmCharts.AmGraph();

graph.title = &quot;Income&quot;;

graph.valueField = &quot;income&quot;;

graph.type = &quot;column&quot;;

graph.balloonText = &quot;Income in [[category]]:[[value]]&quot;;

graph.lineAlpha = 0;

graph.fillColors = &quot;#bf1c25&quot;;

graph.fillAlphas = 1;

chart.addGraph(graph);

chart.creditsPosition = &quot;top-right&quot;;

// WRITE

chart.write(&quot;chartdiv&quot;);

});

Tambahkan juga satu komponen/div untuk menampun g grafiknyatepat diatas script php sehingga nantinya grafik akan muncul diatas table


&lt;div id=&quot;chartdiv&quot; style=&quot;width: 100%; height: 500;&quot;&gt;&lt;/div&gt;

Jika path js sudah disisipkan pada bagian headernya dan script ini sudah dipasang juga seharusnya grafik statis sudah muncul, lalu untuk dinamis ? cukup modifikasi beberpa bagian, bagian pertama adalah menambahkan “class” dan “id” pada satu bagian table sebagai “penanda”


&lt;td id=&quot;&lt;?php echo $row['tahun']; ?&gt;&quot;&gt;&lt;?php echo $row['jumlah']; ?&gt;&lt;/td&gt;

Lalu script js nya menjadi

]
&lt;script type=&quot;text/javascript&quot;&gt;

$(document).ready(function(){

var chartData = []; //array untuk menampung data dinamis

var chart; // variable untuk amchart

$( &quot;.data&quot; ).each(function(i,el) { //melakuakn looping sesuai dengan class data

var ids = $(this).attr('id'); // mendapatkan id dari setiap class data yang di loop

var nilai = $('#'+ids).html(); //mendapatkan nilai dari setiap id pada class data

//memasukan data yang di loop kepada array chart data

chartData.push({

'Tahun' : ids,

'Nilai' : nilai,

});

});

//script dari demo amchart

AmCharts.ready(function () {

// SERIAL CHART

chart = new AmCharts.AmSerialChart();

chart.dataProvider = chartData;

chart.categoryField = &quot;Tahun&quot;; // ubah seusai field kata kunci

// this single line makes the chart a bar chart,

// try to set it to false - your bars will turn to columns

chart.rotate = true;

// the following two lines makes chart 3D

chart.depth3D = 20;

chart.angle = 30;

// AXES

// Category

var categoryAxis = chart.categoryAxis;

categoryAxis.gridPosition = &quot;start&quot;;

categoryAxis.axisColor = &quot;#DADADA&quot;;

categoryAxis.fillAlpha = 1;

categoryAxis.gridAlpha = 0;

categoryAxis.fillColor = &quot;#FAFAFA&quot;;

// value

var valueAxis = new AmCharts.ValueAxis();

valueAxis.axisColor = &quot;#DADADA&quot;;

valueAxis.title = &quot;Grafik mahasiswa baru per tahun&quot;; // title untuk chartnya

valueAxis.gridAlpha = 0.1;

chart.addValueAxis(valueAxis);

// GRAPH

var graph = new AmCharts.AmGraph();

graph.title = &quot;Nilai&quot;; //ubah sesuai field nilai

graph.valueField = &quot;Nilai&quot;;

graph.type = &quot;column&quot;;

graph.balloonText = &quot;Jumlah Mahasiswa pada tahun [[category]]:[[value]]&quot;; // tulisan pada grafik di sorot

graph.lineAlpha = 0;

graph.fillColors = &quot;#bf1c25&quot;;

graph.fillAlphas = 1;

chart.addGraph(graph);

chart.creditsPosition = &quot;top-right&quot;;

// WRITE

chart.write(&quot;chartdiv&quot;);

});

});

&lt;/script&gt;

Sehingga full scriptnya


&lt;html&gt;

&lt;head&gt;

&lt;title&gt;Grafik Mahasiswa&lt;/title&gt;

&lt;script src=&quot;js/jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;script src=&quot;js/amcharts.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;script src=&quot;js/serial.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;div id=&quot;chartdiv&quot; style=&quot;width: 100%; height: 500;&quot;&gt;&lt;/div&gt;

&lt;?php

$link = mysqli_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;,&quot;tuts&quot;) or die(&quot;Error &quot; . mysqli_error($link));

$query = &quot;SELECT * FROM rekap_mhs&quot; or die(&quot;Error in the consult..&quot; . mysqli_error($link));

$result = $link-&gt;query($query);

?&gt;

&lt;table&gt;

&lt;tr&gt;

&lt;th&gt;Tahun&lt;/th&gt;

&lt;th&gt;Total&lt;/th&gt;

&lt;/tr&gt;

&lt;?php while($row = mysqli_fetch_array($result)) { ?&gt;

&lt;tr&gt;

&lt;td&gt;&lt;?php echo $row['tahun']; ?&gt;&lt;/td&gt;

&lt;td class=&quot;data&quot; id=&quot;&lt;?php echo $row['tahun']; ?&gt;&quot;&gt;&lt;?php echo $row['jumlah']; ?&gt;&lt;/td&gt;

&lt;/tr&gt;

&lt;?php } ?&gt;

&lt;/table&gt;

&lt;/body&gt;

&lt;script type=&quot;text/javascript&quot;&gt;

$(document).ready(function(){

var chartData = []; //array untuk menampung data dinamis

var chart; // variable untuk amchart

$( &quot;.data&quot; ).each(function(i,el) { //melakuakn looping sesuai dengan class data

var ids = $(this).attr('id'); // mendapatkan id dari setiap class data yang di loop

var nilai = $('#'+ids).html(); //mendapatkan nilai dari setiap id pada class data

//memasukan data yang di loop kepada array chart data

chartData.push({

'Tahun' : ids,

'Nilai' : nilai,

});

});

//script dari demo amchart

AmCharts.ready(function () {

// SERIAL CHART

chart = new AmCharts.AmSerialChart();

chart.dataProvider = chartData;

chart.categoryField = &quot;Tahun&quot;; // ubah seusai field kata kunci

// this single line makes the chart a bar chart,

// try to set it to false - your bars will turn to columns

chart.rotate = true;

// the following two lines makes chart 3D

chart.depth3D = 20;

chart.angle = 30;

// AXES

// Category

var categoryAxis = chart.categoryAxis;

categoryAxis.gridPosition = &quot;start&quot;;

categoryAxis.axisColor = &quot;#DADADA&quot;;

categoryAxis.fillAlpha = 1;

categoryAxis.gridAlpha = 0;

categoryAxis.fillColor = &quot;#FAFAFA&quot;;

// value

var valueAxis = new AmCharts.ValueAxis();

valueAxis.axisColor = &quot;#DADADA&quot;;

valueAxis.title = &quot;Grafik mahasiswa baru per tahun&quot;; // title untuk chartnya

valueAxis.gridAlpha = 0.1;

chart.addValueAxis(valueAxis);

// GRAPH

var graph = new AmCharts.AmGraph();

graph.title = &quot;Nilai&quot;; //ubah sesuai field nilai

graph.valueField = &quot;Nilai&quot;;

graph.type = &quot;column&quot;;

graph.balloonText = &quot;Jumlah Mahasiswa pada tahun [[category]]:[[value]]&quot;; // tulisan pada grafik di sorot

graph.lineAlpha = 0;

graph.fillColors = &quot;#bf1c25&quot;;

graph.fillAlphas = 1;

chart.addGraph(graph);

chart.creditsPosition = &quot;top-right&quot;;

// WRITE

chart.write(&quot;chartdiv&quot;);

});

});

&lt;/script&gt;

&lt;/html&gt;

Dan hasilnya

graph

situs sarjanagoogle berpindah ke

http://www.semacamblog.com/2014/03/membuat-grafik-dinamis-dengan-library-jqueryjavascript/

Codeigniter 404 Custom

Setelah sekian lama tidak menemukan ide dalam menulis di blog ini akhirna ide itu muncul. Error 404 Not Found yaitu error yang menunjukan bahwa lokasi / link yang dituju itu ternyata tidak ditemukan. Pada beberapa framework error 404 sudah di atur sedemikian rupa tapi ada damana si coder ingin merubah tampilan 404 ini menjadi sesuatu yang berbeda. Pada tulisan kali ini saya mencoba menulis tentang membuat custom tampilan error 404 pada framework Codeigniter, kenapa Codeigniter karena saya paling nyaman menggunakan ini.

Hal pertama yang harus diperhatikan adalah file routes.php yang terletak di application/config/routes.php pada file tersebut terdapat syntax

$route['default_controller'] = "welcome";

$route['404_override'] = '';

Ubah menjadi

$route['default_controller'] = "welcome";

$route['404_override'] = 'custom_404';

Setelah itu buat 1 buah file controller dengan nama custom_404.php dengan isi sebagai berikut

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

&nbsp;

class Custom_404 extends CI_Controller {

&nbsp;

public function __construct()   {

parent::__construct();

}

public function index()

{

$this->output->set_status_header('404');

$this->load->view('custom_404',);//loading in my template

}

}

Setelah itu buat 1 buah file di folder views dengan nama custom_404.php isi file berikut dengan desain atau gambar yang di inginkan sebagai tampilan dari 404. Jika berhasil maka perbedaan akan terlihat seperti gambar dibawah ini

404 CIerror 404 default pada framework CI

404 customerror 404 setelah di custom

Multiple Account Chrome

Beberapa waktu lalu membuat aplikasi berbasis web  yang cukup banyak menggunakan user roles, dan saat melakukan pengetesan sering kali harus login – logout agar peran dari setiap user roles bisa dipraktekan. Jika hanya 1-2 roles saja sih cukup menggunakan 2 browser Mozilla Firefox dan Google Chrome, pertanyaanya jika lebih dari 5 user roles ? males rasanya harus install install berbagai macam browser. Jika kalian seorang web desain mungkin cocok jika harus menginstall lebih dari 4/5 browser untuk memastikan tampilan web nya masih bagus jika lintas browser, tapi bagi saya tak usah karena tanggung jawab saya bukan untuk memastikan tampilan tanggung jawab saya untuk memastikan alur proses berjalan.

Kembali ke urusan login – logout dan install banyak browser sebenarnya ada cara yang lebih mudah yang sudah disediakan oleh Google Chrome. Chrome ternyata menyediakan opsi multiple user sehingga memungkinkan kita untuk mengakses aplikasi dengan berbagai macam user tanpa harus login – logout keseringan.

Hal pertama adalah klik logo di ujung kanan chrome dan pilih setelan atau setting jika didalam bahasa Inggris

ch 1Pilih tambah pengguna dan selanjutnya akan muncul pop up seperti gambar berikut

ch 2ch 3Akan terlihat daftar user yang sudah dibuat di Chrome.

ch 4Untuk mengggunakanya di pojok kiri atas akan ada kumpulan karakter dari user yang dibaut nha tinggal pilih saja user mana yang akan digunakan.

ch 5

Virtual Host XAMPP

Kemarin iseng waktu bikin aplikasi web biar bisa diakses selayaknya dihostingan, jika biasanya dalam mengakses harus dengan localhost/directory_aplikasi sekarang ingin aplikasi.local ditulis di halaman browser itu sama dengan membuka localhost/directory_aplikasi. Karena disini saya menggunakan windows 7 dengan XAMPP maka yang harus diperhatikan adalah

  1. File host di C:\Windows\System32\drivers\etc
  2. File httpd-vhosts.conf di  C:\xampp\apache\conf\extra

Tahap Pertama

  1. Buka file host yang terdapat di C:\Windows\System32\drivers\etc oh iya biasanya file host tidak akan bisa disave cara paling mudah adalah salin dahulu file host ke directory lain lalu open/edit dengan editor favorit kalian.
  2. Buka file host dan tambahkan baris seperti ini di bagian bawah yang ini

# localhost name resolution is handled within DNS itself.

127.0.0.1       localhost

127.0.0.1       local.dev

  1. Save dan timpa file host yang aasli dengan hasil edit ini.

Tahap Kedua

  1. Buka file httpd-vhosts.conf pada C:\xampp\apache\conf\extra, saran saya sebelum merubah2 ini backup dulu agar jika terjadi kesalhan dan bingung meraphknay tinggal timpa dengan backupan yang asli.
  2. Pada script vhost tambahkan script

NameVirtualHost *

<VirtualHost *>

DocumentRoot "C:\xampp\htdocs"

ServerName localhost

</VirtualHost>

<VirtualHost *>

DocumentRoot "C:\xampp\htdocs\local_dev"

ServerName local.dev

<Directory "C:\xampp\htdocs\local_dev">

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

Set localhost htdoc sebagai default akrena kita akan membutuhkan localhost default saat akan mengakses localhost/phpmyadmin misalnya. Sedangkan path local_dev (nama directory bisa yang mana saja terserah) adalah folder aplikasi yang akan dibuat aliasnya yaitu local.dev sehingga saat mengakses local.dev itu sama dengan localhost/local_dev. Untuk mengetest nyaa buat file index.php di directory local_dev lalu akses baik melalui local.dev atau localhost/local_dev.

Hasil local.dev

Hasil localhost/local_dev

 

 

Install Composer

Mau belajar laravel tadinya tapi waktu buka user guide-nya itu installnya pake composer, waktu dicoba ternyata gagal katanya composer tidak termasuk command dalam windows nya jadi harus install dulu composer nya.Berhubung saya pakai windows dan xampp harus ada yang diperhatikan dulu.

Langkah pertama adalah pastikan php itu sudah didaftarkan di environment variable sehingga php bisa di akses via command prompt.

Mendaftarkan PHP sebagai Environment Variable

Saya disini menggunakan windows 7 dan langkah-langkah yang harus di ikuti sebagai berikut

  1. Ketahui lokasi path php terlebih dahulu karena saya pakai xampp dan di install di drive C lokasinya berada di “C:\xampp\php”
  2. Buka My Computer ->klik kanan -> properties -> Advanced system settings -> environment variables
  3. Cari kolom ke dua dan cari bagian path Capture1
  4. Klik path tersebut maka muncul popup isikan lokasi php di kolom yang tersedia (environment sebelumnya;c\xampp\php)Capture2
  5. Setelah itu oke dan apply.

Mempersiapkan PHP

Karena akan mendownload composer langsung dari command prompt biasanya ada yang menggunakan curl maupun file get content.Untuk itu kita aktifkan dulu curl dan openssl dari php.ini, langkah – langkahnya

  1. Temukan file php.ini biasanya ada di C:\xampp\php
  2. Ubah baris “;extension=php_curl.dll” menjadi “extension=php_curl.dll” (tanpa tanda kutip)
  3. Ubah baris “;extension=php_openssl.dll” menjadi “extension=php_openssl.dll” (tanpa tanda kutip)

Khusus yang openssl dalam beberapa kasus tidak ada dalam php.ini secara default maka sebelum menambahkan baris “extension=php_openssl.dll” cek dahulu di C:\xampp\php\ext apakah ada file php_openssl.dll jika ada tambahkan saja baris “extension=php_openssl.dll” di bagian dynamic extension. Setelah itu silahkan restart apache anda.

Install Composer

Siapkan folder composer disini saya menyiapkan di drive yang berbeda bukan di dalam xampp.Saya buat folder composer (silahkan beri nama bebas)di drive E (drive juga bebas tergantung selera), lalu buka Command Prompt dan pindah ke folder composer pada drive masing masing.Setelah masuk ke folder composer lalu tuliskan perintah berikut di command prompt :

php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
 

setelah selesai download composer untuk mengetestnya tuliskan perintah di command prompt (masih di folder composer)

php composer.phar

Capture3 Capture4

Set Global Composer

Setelah berhasil mendownload composer selanjutnya adalah membuat composer mejadi global agar bisa di eksekusi di path mana saja.Langkah – langkah yang harus diikuti adalah sama seperti diatas yaitu didaftarkan di environment variables namun harus buat file composer.bat terlebih dahulu

Buat composer.bat dengan isinya sebagai berikut

@ECHO OFF

php “%~dp0composer.phar” %*

simpan satu folder dengan composer.phar, composer.phar adalah composer yang tadi didownload via command prompt.Buka kembali environment variables (lihat cara sebelumnya) tambahkan menjadi

environment sebelumnya;c\xampp\php; E:\composer

Ok dan apply.

Sekarang coba buka folder mana saja lalu via command prompt ketikan composer jika berhasil akan seperti melakukan akses php composer.phar

Capture5

 

 

*sumber tambahan

sumber1

sumber2