• Jelajahi

    Copyright © blog bodi
    Best Viral Premium Blogger Templates

    Iklan

    Membuat Presensi Online Geolokasi Dengan Google Form

    bodi.web.id
    19 Juni 2023, Juni 19, 2023 WIB Last Updated 2024-08-15T06:31:24Z
    [[---]]
    [[---]]

    Membuat Presensi Online Geolokasi Dengan Google Form


    Untuk yang ingin melakukan pencatatan presensi atau daftar hadir dengan biaya murah mungkin bisa dicoba alternatif berikut, yaitu penggunaan Google Form dan Google AppScript.

    Untuk proses pembuatannya cukup mudah yaitu dengan menggunakan Gmail, kebetulan aku menggunakan Google Workspace.

    Berikut langkah-langkahnya :

    Buat terlebih dulu Google Form



    Pilih titik 3 pada sudut kanan atas, pilih Script Editor



    Kemudian akan muncul jendela Script Editor, pada file Code.gs, apabila ada kode bawaan, langsung dihapus saja semuanya



     

    kemudian diganti dengan kode berikut :

    function orgIP(ip) {  var url = "http://ipinfo.io/"+ ip +"?token=12f70b0a35a87f";  var response = UrlFetchApp.fetch(url);  var json = JSON.parse(response.getContentText());  return json.org;}function cekIP() {  var url = "http://api.ipify.org/?format=json";  var response = UrlFetchApp.fetch(url);  var json = JSON.parse(response.getContentText());  return json.ip;}function doGet(request) {  var template = HtmlService.createTemplateFromFile('index.html')  var pageData = template.evaluate()  .setTitle("Form")  .addMetaTag("viewport","width=device-width, initial-scale=1")  .setSandboxMode(HtmlService.SandboxMode.IFRAME)  .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)  return pageData;}/* @Include JavaScript and CSS Files */function include() {  var HTMLString = "<input type='text' class='form-control' id='ip' value='"+ cekIP() +"' readonly>";  HTMLOutput = HtmlService.createHtmlOutput(HTMLString);  return HTMLOutput.getContent();}/* @Process */function processForm(x,y,z) {  var url = "https://docs.google.com/spreadsheets/d/XXXXXXXX-XXXXXXXXX/edit?usp=sharing#gid=XXXXXXXXX";   var ss = SpreadsheetApp.openByUrl(url);  var ws = ss.getSheetByName("Info Responder");   var lokasi = Maps.newGeocoder().reverseGeocode(y, z);  alamat= lokasi.results[0].formatted_address;  ws.appendRow([x,cekIP(),orgIP(cekIP()),y,z,alamat]);}

    var url = diganti dengan url Google Sheet pada tab yang untuk menyimpan data

    var ws = nama Info Responder dapat diganti dengan nama Tab pada Google Sheet dimana data disimpan

     

    Kemudian tekan tanda + pada sisi atas, dan buat file dengan nama index.html



     

    dan kemudian isi dengan file dibawah ini :

    <!DOCTYPE html><html><head>    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"></head><body onload="getLocation()">    <div class='container'>                <form>                    <p class='h4 mb-4 text-center'>Klik 'Isi Presensi' untuk melanjutkan!!</p>                    <p>Aktifkan GPS SmartPhone kalian dan izinkan akses lokasi untuk mendapatkan unique id, silakan reload jika anda belum mengizinkan akses lokasi.</p>                    <div class='form-group'>                        <label for='ip'>IP Address:</label>                        <?!= include(); ?>                    </div>                    <div class='form-group'>                        <label for='unik'>Unique ID:</label><p>copy Unique ID dan masukkan kedalam Google Form</p>                        <input type='text' class='form-control' id='unik' readonly>                    </div>                    <a type="button" class="btn btn-primary" href='[isi dengan URL Google Form yang sudah dibuat]' target='_blank'>Isi Presensi</a>                </form>    </div>    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>    <script>    function getLocation() {      if (navigator.geolocation) {        navigator.geolocation.getCurrentPosition(showPosition);      }    }    function makeid() {       var result           = '';       var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';       var charactersLength = characters.length;       for ( var i = 0; i < 7; i++ ) {          result += characters.charAt(Math.floor(Math.random() * charactersLength));                 }       document.getElementById("unik").value = result;       return result;    }    function showPosition(position) {        google.script.run.processForm(makeid(),position.coords.latitude,position.coords.longitude);    }    </script></body></html>

    Apabila file Code.gs dan index.html sudah terisi dengan kode diatas, maka saatnya untuk Test Deployment dan buat New Deployment



    Saat deploy jangan lupa untuk memilih opsi Webapp



    Isi Description pada point 1 dan langsung tekan Deploy setelahnya pada point 2



    Apabila sudah muncul jendela seperti dibawah ini maka link script sudah bisa dicoba



    Apabila link script dibuka maka tampilannya akan seperti berikut



    Dan berikut ini adalah data yang berhasil direkam melalui script yang sudah dibuka tadi



     

    Tinggal diaplikasikan saja ke Google Form dan outputnya ke Google Sheet. Selamat mencoba …..

    Komentar

    Tampilkan

    Terkini