Jumat, 16 September 2016

Cara Mendapatkan Nama Negara berdasarkan Latitude dan Longitude Google Maps API

Cara Mendapatkan Nama Negara berdasarkan Latitude dan Longitude Google Maps API - Cara ini untuk mengetahui nama negara berdasarkan Latitude dan Longitude . Untuk Contohnya bisa di coba di bawah ini :





Untuk Code nya adalah sebagai berikut :

HTML
<input id="lat" placeholder="Masukan Latitude" type="text" />
<input id="lng" placeholder="Masukan Longitude" type="text" />
<input id="cek" type="submit" value="Cek Nama Negara" />

Javacript
<script>
$('#cek').click(function(){
 var geocoder = new google.maps.Geocoder();
                    var lat = $('#lat').val();
                    var lng= $('#lng').val();
                   var geocoder = new google.maps.Geocoder();
                    var latLng = new google.maps.LatLng(lat, lng);
                    geocoder.geocode({ 'latLng': latLng },
                          function (results, status) {
                              if (status == google.maps.GeocoderStatus.OK) {
                                  if (results[0]) {
                                      for (var i = 0; i < results[0].address_components.length; i++) {
                                          if (results[0].address_components[i].types[0] == "country") {
                                           
                                              alert(results[0].address_components[i].long_name);
                                          }
                                      }
                                  }
                                  else {
                                      alert("No results");
                                  }
                              }
                              else {
                                  alert("Status: " + status);
                              }
                          }
                        );
});
</script>

Bagaiaman mudah bukan ? Selamat mencoba

Cara mendapatkan Latitude dan Longitude dari sebuah alamat dengan Google Maps API dan Jquery

Cara mendapatkan Latitude dan Longitude alamat dengan Google Maps API dan Jquery - Cara ini adalah untuk mengetahui atau mendapakan latitude dan longitude sebuah alamat yang kita masukan pada kotak pencarian. Cara ini menggunakan teknologi google maps api dan jquery, untuk contohnya bisa di coba di bawah ini :



Dari Contoh di atas , berikut ini adalah code nya .

HTML
<input id="alamat" placeholder="Masukan Alamat" type="text" />
<input id="cek" type="submit" value="Get LatLng" />
JQUERY
<script>
$('#cek').click(function(){
                    var address = $('#alamat').val();
                    var geocoder = new google.maps.Geocoder();
                    geocoder.geocode({ 'address': address }, function (results, status) {
                        if (status == google.maps.GeocoderStatus.OK) {
                          alert("Latitude" +"=" +" " + results[0].geometry.location.lat()+" " + "Longitude " +"="+" " + results[0].geometry.location.lng());
                       
                        } else {
                            alert('Geocode was not successful for the following reason: ' + status);
                        }
                    });
})
</script> 

Bagaiamana ? mudah bukan ? Selamat mencoba..

Senin, 05 September 2016

Contoh Penggunaan Pengulangan (Looping) For, While, Do While


Kali ini saya akan membasa tentang Pengulangan For, While, Do While yang sekaligus jadi tugas UAS mata kuliah Algoritma dan Pemrograman pada perkuliahan saya. Untuk lebih jelasnya silahkan simak penjelasan singkat di bawah ini.


           1.Pengulangan For

Pada pengulangan For, untuk structure nya adalah sebagi berikut :
for (start; condition; increment)
{
        statement;
 }

  • start - adalah kondisi awal saat pengulangan akan di jalankan, biasanya di isi dengan i ,  misalkan i = 1.
  • condition  - adalah kondisi yang harus di penuhi agar pengulangan dapat dijalankan, misal kondisinya seperti ini i < = 10  yang artinya pengulangan akan di jalankan apabila isi i lebih kecil dari sama dengan 10 .
  • increment - adalah bagian yang memproses variable counter agar pengulangan berjalan sampai akhir , contohnya adalah i ++; misal pada start i = 1 dengan adanya increment ini (I++) maka varibale i akan di tambahkan terus berdasarkan maksimal i  yang di set pada condition.
  • statement - adalah bagian dari hasil proses pengulangan, biasanya disini di lakukan untuk mencetak value dari i  atau bisa di bilang statement  adalah output dari proses pengulangan.

Untuk contohnya bisa di coba dengan cara klik button di bawah ini :

    Dari contoh di atas menggunakan code sebagai berikut :
    for(i=1; i<=10; i++){
      document.write(i);
    };
    Bisa di lihat pada script tersebut adalah i=1; i<=10; i++ yang artinya mencetak bilangan 1 sampe 10.


         2. Pengulangan While

    Pada pengulangan While, untuk structure nya adalah sebagi berikut :
    while (kondisi;)
    {  
           statement;
           increment;
    }
    kondisi,statement,increment pengertiannya sama dengan pengulangan for.

    Untuk contohnya bisa di coba dengan cara klik button di bawah ini :

      Dari contoh di atas menggunakan code sebagai berikut :
      var i=1;
      while(i <= 10) {
         document.write(i);
         i++;
       };
      Bisa di lihat pada script tersebut adalah i<=10; i++ yang artinya mencetak bilangan 1 sampe 10. Perbedaannya dengan pengulangan for adalah peletakan start dan increment nya .


           3. Pengulangan Do While

      Pada pengulangan Do While, untuk structure nya adalah sebagi berikut :
      do {
            statement;
            increment;
      }
      while(kondisi;) 
      kondisi,statement,increment pengertiannya sama dengan pengulangan for.

      Untuk contohnya bisa di coba dengan cara klik button di bawah ini :

        Dari contoh di atas menggunakan code sebagai berikut :
        var i=1;
        do {
            document.write(i);
             i++;
        }
        while(i <= 10)
        Bisa di lihat pada script tersebut adalah i<=10; i++ yang artinya mencetak bilangan 1 sampe 10. Perbedaan dari pengulangan lainya, pengulangan do while selalu mencetak value i walau i tidak sesuai dengan  kondisi, itu karena  statement nya di proses sebelum kondisi .

        Baik untuk pembahasan Contoh Penggunaan Pengulangan (Looping) For, While, Do While  saya cukupkan dulu. Terimakasih semoga bermanfaat.

        M Syahrul Alfyan


        Membuat Input Range Slider dengan Value Bubbles menggunakan Jquery

        Membuat Input Range Slider dengan Value Bubbles menggunakan Jquery - kali ini saya akan membagikan cara untuk membuat slider range menggunakan HTML 5 dan JQuery. Kenapa menggunakan jquery ? karena jika  hanya menggunakan HTML 5 tampilan slider input range akan apa adanya, jika menggunakan jquery dan sedikit sentuhan CSS, slider input range akan jauh lebih menarik, pada silder input range akan muncul value bubbles. untuk lebih jelas nya bisa di lihat contoh nya  di bawah ini .




        Untuk Code nya adalah berikut ini :

        Script Reference :
        <script src="https://cdnjs.cloudflare.com/ajax/libs/velocity/1.2.3/velocity.min.js"></script>
        <script src="https://cdn.jsdelivr.net/velocity/1.2.3/velocity.ui.min.js"></script>


        HTML :

        <div class="range-field">
        <input id="test5" max="100" min="0" type="range" />
        </div>


        CSS

        <style>
        .range-field {
          position: relative;
        }
        input[type=range],
        input[type=range] + .thumb {
          cursor: pointer;
        }
        input[type=range] {
          position: relative;
          background-color: transparent;
          border: none;
          outline: none;
          width: 600px;
          margin: 15px 0;
          padding: 0;
        }
        input[type=range]:focus {
          outline: none;
        }
        input[type=range] + .thumb {
          position: absolute;
          border: none;
          height: 0;
          width: 0;
          border-radius: 50%;
          background-color: #26a69a;
          top: 10px;
          margin-left: -6px;
          -webkit-transform-origin: 50% 50%;
                  transform-origin: 50% 50%;
          -webkit-transform: rotate(-45deg);
                  transform: rotate(-45deg);
        }
        input[type=range] + .thumb .value {
          display: block;
          width: 30px;
          text-align: center;
          color: #26a69a;
          font-size: 0;
          -webkit-transform: rotate(45deg);
                  transform: rotate(45deg);
        }
        input[type=range] + .thumb.active {
          border-radius: 50% 50% 50% 0;
        }
        input[type=range] + .thumb.active .value {
          color: #fff;
          margin-left: -1px;
          margin-top: 8px;
          font-size: 10px;
        }
        input[type=range] {
          -webkit-appearance: none;
        }
        input[type=range]::-webkit-slider-runnable-track {
          height: 3px;
          background: #c2c0c2;
          border: none;
        }
        input[type=range]::-webkit-slider-thumb {
          -webkit-appearance: none;
          border: none;
          height: 14px;
          width: 14px;
          border-radius: 50%;
          background-color: #26a69a;
          -webkit-transform-origin: 50% 50%;
                  transform-origin: 50% 50%;
          margin: -5px 0 0 0;
          transition: .3s;
        }
        input[type=range]:focus::-webkit-slider-runnable-track {
          background: #ccc;
        }
        input[type=range] {
          /* fix for FF unable to apply focus style bug  */
          border: 1px solid white;
          /*required for proper track sizing in FF*/
        }
        input[type=range]::-moz-range-track {
          height: 3px;
          background: #ddd;
          border: none;
        }
        input[type=range]::-moz-range-thumb {
          border: none;
          height: 14px;
          width: 14px;
          border-radius: 50%;
          background: #26a69a;
          margin-top: -5px;
        }
        input[type=range]:-moz-focusring {
          outline: 1px solid #fff;
          outline-offset: -1px;
        }
        input[type=range]:focus::-moz-range-track {
          background: #ccc;
        }
        input[type=range]::-ms-track {
          height: 3px;
          background: transparent;
          border-color: transparent;
          border-width: 6px 0;
          /*remove default tick marks*/
          color: transparent;
        }
        input[type=range]::-ms-fill-lower {
          background: #777;
        }
        input[type=range]::-ms-fill-upper {
          background: #ddd;
        }
        input[type=range]::-ms-thumb {
          border: none;
          height: 14px;
          width: 14px;
          border-radius: 50%;
          background: #26a69a;
        }
        input[type=range]:focus::-ms-fill-lower {
          background: #888;
        }
        input[type=range]:focus::-ms-fill-upper {
          background: #ccc;
        }
        </style>

        JQUERY :

        <script>

         var range_type = 'input[type=range]';
                    var range_mousedown = false;
                    var left;
                    $(range_type).each(function () {
                      var thumb = $('<span class="thumb"><span class="value"></span></span>');
                      $(this).after(thumb);
                    });
                    var range_wrapper = '.range-field';
                    $(document).on('change', range_type, function(e) {
                      var thumb = $(this).siblings('.thumb');
                      thumb.find('.value').html($(this).val());
                    });
                    $(document).on('input mousedown touchstart', range_type, function(e) {
                      var thumb = $(this).siblings('.thumb');
                      var width = $(this).outerWidth();
                      // If thumb indicator does not exist yet, create it
                      if (thumb.length <= 0) {
                     thumb = $('<span class="thumb"><span class="value"></span></span>');
                     $(this).after(thumb);
                      }
                      // Set indicator value
                      thumb.find('.value').html($(this).val());
                      range_mousedown = true;
                      $(this).addClass('active');
                      if (!thumb.hasClass('active')) {
                     thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' });
                      }
                      if (e.type !== 'input') {
                     if(e.pageX === undefined || e.pageX === null){//mobile
                        left = e.originalEvent.touches[0].pageX - $(this).offset().left;
                     }
                     else{ // desktop
                        left = e.pageX - $(this).offset().left;
                     }
                     if (left < 0) {
                       left = 0;
                     }
                     else if (left > width) {
                       left = width;
                     }
                     thumb.addClass('active').css('left', left);
                      }
                      thumb.find('.value').html($(this).val());
                    });
                    $(document).on('mouseup touchend', range_wrapper, function() {
                      range_mousedown = false;
                      $(this).removeClass('active');
                    });
                    $(document).on('mousemove touchmove', range_wrapper, function(e) {
                      var thumb = $(this).children('.thumb');
                      var left;
                      if (range_mousedown) {
                     if (!thumb.hasClass('active')) {
                       thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' });
                     }
                     if (e.pageX === undefined || e.pageX === null) { //mobile
                       left = e.originalEvent.touches[0].pageX - $(this).offset().left;
                     }
                     else{ // desktop
                       left = e.pageX - $(this).offset().left;
                     }
                     var width = $(this).outerWidth();
                     if (left < 0) {
                       left = 0;
                     }
                     else if (left > width) {
                       left = width;
                     }
                     thumb.addClass('active').css('left', left);
                     thumb.find('.value').html(thumb.siblings(range_type).val());
                      }
                    });
               $(document).on('mouseout touchleave', range_wrapper, function() {
                      if (!range_mousedown) {
                     var thumb = $(this).children('.thumb');
                     if (thumb.hasClass('active')) {
                       thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 });
                     }
                     thumb.removeClass('active');
                      }
                    });
               
        </script> 

        Selamat mencoba.. semoga bermanfaat. 

        Rabu, 31 Agustus 2016

        Memasukan alamat baru pada autocomplete pencarian alamat google maps

        Memasukan alamat baru pada autocomplete pencarian alamat google maps - fungsi ini digunakan untuk menambahkan atau menyisipkan sebuah alamat baru pada kolom pencarian alamat di google maps, disini saya akan gunakan api place nya google maps dengan menambahkan beberapa baris function agar alamat kita bisa merge dengan alamat google map.

        Langsung saja berikut ini caranya .

        HTML :

        <input id="alamat" />
        <ul id="result"></ul>

        Script Reference :
        <script src="https://code.jquery.com/jquery-1.9.1.js"></script>
        <script async="" defer="" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDSbPo0Xbwou2EpteiBxnnK1nMokQLN3J0&amp;libraries=places&amp;callback=initialize"></script>

        Javascript :
        function initialize() {
        $(document).on('keyup',"#alamat",
        function(event,e,f){
        var inputAlamat = $("#alamat").val()
        var data = {
        "rows": [{ "Id":0, "name": "Bandung bagian utara"},
        { "Id": 1, "name": "Jakarta bagian selatan" },
        { "Id": 2, "name": "Bogor tenggara " },
        { "Id": 3, "name": "jalan bogor indo"}]
        }
        var dataCustom= ($.map(data.rows, function (prediction, i) {
        return {
        label: prediction.name,
        value: prediction.name
        }
        })
        );
        var autoCompleteService = new google.maps.places.AutocompleteService();
        if( inputAlamat != ""){
        autoCompleteService.getQueryPredictions({ input: inputAlamat}, function (predictions, status) {
        if (status != google.maps.places.PlacesServiceStatus.OK) {
        alert(status);
        return;
        }
        var result = ($.map(predictions, function (prediction, i) {
        return {
        label: prediction.description,
        value: prediction.description
        }
        })
        );
        var resultSementara = dataCustom.concat(result)
        $("#result").empty();
        resultSementara.sort(function(item,item2){
        if (item.label > item2.label) return 1
        return 0
        }
        )
        var resultAkhir = resultSementara.slice(0,5)
        resultAkhir .forEach(function(prediction) {
        var li = document.createElement('li');
        li.appendChild(document.createTextNode(prediction.label));
        document.getElementById('result').appendChild(li);

        });
        });
        }
        });
        }

        Penjelasan :
        var data = {} ->  Ini fungsi untuk menambahkan alamat , bisa juga kita get alamat dari database dengan menggunakan ajax .
        var dataCustom ={} -> Ini fungsi untuk maping hasil result data dengan result google place.
        var autoCompleteService ={} -> Ini fungsi api nya google maps.
        var result  ={} -> Ini fungsi untuk maping result google place api.
        var resultSementara = {} -> Ini fungsi untuk menggabungkan data alamat yang kita buat dengan alamat google place.
        var resultAkhir ={} -> Ini fungsi untuk mengambil data hanya 5 teratas saja setelah sebelumnya di sort.

        Untuk contoh nya bisa di coba disini,  ketik bandung, maka akan muncul Bandung bagian utara pada bagian hasil pencarian.

        Minggu, 21 Agustus 2016

        Membuat pencarian alamat menggunakan autocomplete google maps

        Membuat pencarian alamat menggunakan autocomplete google maps - Fungsi ini berguna untuk melakukan pencarian alamat menggunakan autocomplete google maps tanpa harus menyisipkan maps pada web , hanya perlu textbox saja, jadi saat kita mengetikan sebuah alamat pada textbox akan muncul saran nama alamat yang kita ketikan .

        Contoh nya seperti berikut ini :



        HTML :

        <html>
        <head>
        <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDSbPo0Xbwou2EpteiBxnnK1nMokQLN3J0&amp;libraries=places"></script>
        <head>
        <body>
        <input id="alamat" placeholder="Masukan Alamat.." style="width: max;" type="text" />
        </body>
        </html>


        Javascript :

        <script type="text/javascript">
        google.maps.event.addDomListener(window, 'load', function () {
        var places = new google.maps.places.Autocomplete(document.getElementById('alamat'));
        google.maps.event.addListener(places, 'place_changed', function () {
                        var place = places.getPlace();
                        var address = place.formatted_address;
                        var latitudeLongitude = place.geometry.location;
                        var mesg = "Address: " + address;
                        mesg += "\nLatitudeLongitude: " + latitudeLongitude;
                     
                        alert(mesg);
                    });
        });
        </script>
        Bagaimana mudah sekali bukan ?

        Membuat Google Maps dengan Angularjs

        Membuat Google Maps dengan Angularjs - Menampilkan maps sederhana pada web dengan menggunakan google maps API dan angularjs itu sangat mudah.   Untuk lebih jelasnya bisa ikuti cara di bawah ini.

        HTML :
        <html>
        <head>
            <meta charset='utf-8'>
            <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.js"></script>
            <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.js"></script>
            <script src="//cdnjs.cloudflare.com/ajax/libs/angular-google-maps/2.0.11/angular-google-maps.js"></script>
            <title>async angular maps</title>
            <script src="mapsCtrl.js"></script>
            <style type="text/css">
                .angular-google-map-container {
                    position: absolute;
                    top: 0;
                    bottom: 0;
                    right: 0;
                    left: 0;
                }
            </style>
         
        </head>
        <body ng-app="gmapApp">
            <div id="map_canvas" ng-controller="mainCtrl">
                <ui-gmap-google-map center="map.center" zoom="map.zoom">
               <ui-gmap-marker ng-repeat="marker in markers" coords="marker.coords" idkey="marker.id"></ui-gmap-google-map>
            </div>
        </body>
        </html>

        Angular Controller :
        gmapApp = angular.module('gmapApp', ['uiGmapgoogle-maps'])
                  .config(function (uiGmapGoogleMapApiProvider) {
                      uiGmapGoogleMapApiProvider.configure({
                          key: 'AIzaSyBUgqPCoas7QjZjN-2jcGN3unjomtdBd40',
                          v: '3.17',
                          libraries: 'weather,geometry,visualization'
                      });
                  })
         .controller('mainCtrl', function ($scope, $log, $http) {
         
             $scope.map = {
                 center: { latitude: 0.538659, longitude: 116.419389 },
                 zoom: 5
             };
             $scope.markers = [{
                 id: 0,
                 coords: {
                     latitude: 0.538659,
                     longitude: 116.419389
                 },
               
             }, {
                 id: 1,
                 coords: {
                     latitude: -6.208763,
                     longitude: 106.845599
                 },        
           
             }];
         
         }); 

        Pada bagian Head HTML ada script   berikut  :
        <script src="mapsCtrl.js"></script>


        mapsCtrl.js  adalah nama file controller nya.

        $scope.map adalah initial map pertama kali di load, latitude dan longitude yang di set di atas adalah kalimantan .

        $scope.markers adalah untuk menandai / marker pada maps, contoh di atas adalah kalimantan dan jakarta yang di marker.


        Itu saja CaraMembuat Google Maps dengan Angularjs Semoga bermanfaat.