Membuat Web Login Sederhana dengan Google Apps Script dan Spreadsheet

Aplikasi web sering kali memerlukan proses autentikasi untuk memastikan bahwa hanya pengguna yang sah yang dapat mengakses konten atau fitu...

Aplikasi web sering kali memerlukan proses autentikasi untuk memastikan bahwa hanya pengguna yang sah yang dapat mengakses konten atau fitur tertentu. Salah satu cara termudah untuk mengimplementasikan login berbasis web adalah dengan menggunakan Google Apps Script, sebuah platform yang terintegrasi dengan Google Workspace yang memungkinkan kita untuk mengelola data dengan mudah menggunakan Spreadsheet dan Script. Dalam artikel ini, kita akan membahas langkah-langkah untuk membuat aplikasi login sederhana dengan Google Apps Script, di mana data pengguna diambil dari Spreadsheet, dan setelah berhasil login, pengguna akan melihat informasi mereka beserta gambar profil dummy dari Unsplash.

Mengapa Menggunakan Google Apps Script dan Spreadsheet?

Google Apps Script adalah salah satu cara paling sederhana dan efektif untuk mengotomatisasi pekerjaan dan membuat aplikasi web sederhana yang berfungsi dengan Google Workspace, termasuk Google Sheets, Google Drive, Gmail, dan banyak lagi. Beberapa alasan mengapa Google Apps Script dan Spreadsheet adalah pilihan yang baik untuk aplikasi login sederhana adalah:

  1. Integrasi dengan Google Sheets: Anda dapat menggunakan Google Sheets sebagai basis data pengguna Anda. Google Sheets memungkinkan penyimpanan dan manipulasi data yang mudah serta mendukung kolaborasi secara real-time.
  2. Cepat dan Mudah Dikembangkan: Google Apps Script adalah platform yang berbasis JavaScript, sehingga jika Anda sudah familiar dengan JavaScript, Anda dapat dengan cepat membangun aplikasi yang fungsional.
  3. Hosting Gratis di Google: Aplikasi yang Anda buat dengan Google Apps Script dapat di-host secara gratis dan diakses melalui URL khusus.
  4. Keamanan Google: Karena aplikasi ini berada di ekosistem Google, Anda dapat memanfaatkan fitur keamanan yang sudah ada, termasuk autentikasi pengguna melalui Google Account.

Langkah 1: Membuat Spreadsheet Data Pengguna

Langkah pertama adalah membuat Spreadsheet yang berisi informasi pengguna yang akan digunakan untuk proses login. Berikut adalah contoh struktur data yang perlu Anda masukkan dalam Spreadsheet, dengan nama worksheet "user":

Username Password Name Email pp_url
john_doe 123456 John Doe john.doe@example.com https://source.unsplash.com/150x150/?person,man
jane_smith password Jane Smith jane.smith@example.com https://source.unsplash.com/150x150/?person,woman
alice_wong 7891011 Alice Wong alice.wong@example.com https://source.unsplash.com/150x150/?person,asian-woman
bob_jones secret Bob Jones bob.jones@example.com https://source.unsplash.com/150x150/?person,man,smile
charlie_brown 654321 Charlie Brown charlie.brown@example.com https://source.unsplash.com/150x150/?person,man,glasses

Tabel di atas berisi kolom Username, Password, Name, Email, dan pp_url (Profile Picture URL). Data ini akan digunakan untuk proses login di aplikasi kita. Setiap pengguna memiliki username dan password yang unik, serta gambar profil dummy yang diambil dari Unsplash dengan URL yang berbeda untuk setiap pengguna.

Langkah 2: Membuat Script Login dengan Google Apps Script

Setelah data pengguna siap, kita bisa melanjutkan dengan membuat Google Apps Script yang akan menangani login dan menampilkan informasi pengguna. Berikut adalah contoh kode Google Apps Script untuk memvalidasi login dan menampilkan data pengguna setelah login berhasil:

Kode Google Apps Script:

// Fungsi untuk menampilkan form login
function doGet() {
return HtmlService.createHtmlOutputFromFile('LoginForm');
}
// Fungsi untuk memvalidasi login dari Spreadsheet
function login(username, password) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("user");
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) { // mulai dari 1 untuk menghindari header
if (data[i][0] == username && data[i][1] == password) {
return {
success: true,
name: data[i][2],
email: data[i][3],
pp_url: data[i][4]
};
}
}
return { success: false };
}

Kode di atas terdiri dari dua bagian penting:

  1. Fungsi doGet(): Fungsi ini digunakan untuk memuat form login ketika aplikasi diakses. doGet() adalah fungsi utama yang digunakan di Google Apps Script untuk menangani request HTTP GET.
  2. Fungsi login(): Fungsi ini digunakan untuk memvalidasi login dengan mencocokkan username dan password yang dimasukkan pengguna dengan data yang ada di Spreadsheet. Jika login berhasil, data seperti nama, email, dan URL gambar profil akan dikembalikan. Jika gagal, fungsi ini mengembalikan success: false.

Langkah 3: Membuat Form HTML untuk Login

Setelah script Apps Script selesai, kita perlu membuat form login di HTML. Kita akan menggunakan file HTML yang ditampilkan oleh fungsi doGet() saat pengguna mengakses aplikasi. Berikut adalah contoh kode HTML untuk form login:

File HTML (LoginForm.html):

<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function handleLogin() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
google.script.run.withSuccessHandler(function(response) {
if (response.success) {
document.getElementById('login-form').style.display = 'none';
document.getElementById('welcome-section').style.display = 'block';
document.getElementById('user-name').innerText = response.name;
document.getElementById('user-email').innerText = response.email;
document.getElementById('user-image').src = response.pp_url;
} else {
document.getElementById('error-message').innerText = 'Login gagal. Username atau password salah.';
}
}).login(username, password);
}
</script>
</head>
<body>
<div id="login-form">
<h3>Login</h3>
<label for="username">Username:</label>
<input type="text" id="username"><br><br>
<label for="password">Password:</label>
<input type="password" id="password"><br><br>
<button onclick="handleLogin()">Login</button>
<p id="error-message" style="color:red;"></p>
</div>
<div id="welcome-section" style="display:none;">
<h3>Welcome</h3>
<p>Name: <span id="user-name"></span></p>
<p>Email: <span id="user-email"></span></p>
<img id="user-image" alt="User Image" src="">
</div>
</body>
</html>

Penjelasan Kode HTML:

  • Form Login: Pengguna akan memasukkan username dan password di form login. Setelah pengguna mengklik tombol "Login", fungsi JavaScript handleLogin() akan dipanggil untuk memvalidasi login dengan data di Spreadsheet.
  • Tampilan Data Pengguna: Jika login berhasil, form login akan disembunyikan dan bagian welcome-section akan muncul, menampilkan nama, email, dan gambar profil pengguna. Gambar profil diambil dari URL yang telah disimpan di Spreadsheet, dan ditampilkan dalam tag <img>.

Langkah 4: Menguji Aplikasi

Setelah Anda menyimpan script dan file HTML, Anda dapat menguji aplikasi dengan menjalankan fungsi doGet() di browser. Aplikasi akan menampilkan form login. Ketika pengguna memasukkan username dan password yang valid, informasi pengguna akan muncul di halaman. Jika login gagal, pesan kesalahan akan ditampilkan di layar.

Keuntungan Menggunakan Unsplash untuk Gambar Profil

Dalam contoh ini, kita menggunakan gambar profil dummy dari Unsplash, layanan penyedia gambar bebas hak cipta. Mengapa menggunakan Unsplash?

  • Gambar Berkualitas Tinggi: Unsplash menyediakan berbagai macam gambar berkualitas tinggi yang dapat digunakan secara gratis untuk proyek Anda.
  • Dinamis: Dengan URL yang kita gunakan, kita dapat menghasilkan gambar acak dengan topik yang kita tentukan. Misalnya, URL https://source.unsplash.com/150x150/?person,man akan menghasilkan gambar acak dari Unsplash yang berkaitan dengan "person" dan "man".
  • Fleksibel: Anda dapat dengan mudah mengubah kategori gambar yang diambil dari Unsplash hanya dengan mengedit parameter dalam URL, seperti ?person,woman untuk gambar wanita.

Penutup

Dengan menggunakan Google Apps Script dan Google Sheets, Anda dapat dengan mudah membuat aplikasi login sederhana yang memvalidasi data pengguna dari Spreadsheet dan menampilkan informasi pengguna setelah login. Dengan menambahkan gambar profil dari Unsplash, aplikasi ini menjadi lebih menarik dan interaktif. Platform ini sangat cocok untuk aplikasi internal, prototipe cepat, atau aplikasi web ringan yang memanfaatkan data Google Workspace.

COMMENTS

Nama

2fa,2,adsense,3,ai,28,Alat,1,Algorithms,3,Android,29,anti virus,1,Apache,4,api,4,apipedia,2,Aplikasi Android,10,apps,2,AppSheet,37,arang,1,Array,3,array formula,2,Artikel,8,bca,1,Belajar,1,Bengkak,1,Berita,1,Berita terkini,12,Biografi,1,Bisnis,139,Bitcoin,1,Blog,7,Blogger,34,Blogger Template,1,Blogging,2,Bootable,1,bot,1,build with syahdandev,12,bun.js,1,catlang,1,chat gpt,1,Cheat,1,Chrome,2,Code,14,coding,11,collaboration tools,1,Competitive Coding,7,CPU,1,Crud,1,CSS3,2,cybersecurity,2,Data Structures,18,Database,1,Deep Learning,3,Desain Blogger,47,Design,3,developer,5,Development,8,Domain Hosting,2,Download,4,dunia kerja,2,Elon Musk,4,enak,1,express,1,Facebook,2,fact or hoax,1,fastify,1,free,1,Free Course,13,Game,5,Gamers,2,gemini,1,generate with AI,1,generator,1,github,1,google,12,Google AdSense,20,Google Apps Script,23,google calendar,1,google docs,2,google drive,2,google forms,1,google mail,1,google maps,1,Google Script,3,google sheets,9,Google Webmaster Tools,1,Hardware,1,Home,1,hosting,4,Hostinger,1,HP,2,HTML,6,HTML5,2,HyperOs,1,ice cream,1,ide kreatif,2,image creator,2,Indonesia,1,Instagram,2,instant vdeo generator,1,integrator,1,Internet,8,iOS,1,IOT,2,iphone,1,IT,6,JavaScript,6,js,4,Kenali,1,Keren,1,Kesehatan,14,laragon,1,laravel,1,Leet Code,7,library,1,Linked List,4,Linux,8,Machine Learning,3,malware,1,map,1,Mark Zuck,1,Marketing Tools,1,marketplace,1,Mata,1,Math,8,mbti,2,McDonald's,1,meme,1,meta,1,mfa,1,Microsoft Word,1,Minimalis,1,miscellaneous questions,1,mixue,1,Mobile Legends,4,Motherboard,1,motivasi,1,murah,1,mysql,4,Neovim,1,Networking,1,next js,1,ngingx,1,NIK,1,no code,5,node js,9,nodejs,1,NPWP,1,Office,1,open ai,1,Oppo,1,Parallel Space,1,pc,2,PDF Print,1,pgsql,2,Phoenix OS,1,PHP,16,phpmyadmin,2,portofolio,1,postman,3,Power Point,1,Presentation,1,price list,1,Program Aplikasi,6,programmer,3,programming,1,psikolog,4,python,4,Quesions or Answers (Quora),2,Questions or Answers (Quora),1,RAR,2,Recursion,3,regex,2,Regulasi,1,Review,147,Rufus,1,Rumus,55,Sakit,1,Samsung,1,Security,1,SEO,21,SHAREit,1,shop,1,simple apps,2,Smart City,1,smartfren,1,Smartphone,1,sms,1,Social Media,1,socket.io,2,Software,2,spesifikasi,1,SQL,1,SQL Server,1,Steemit,7,string,3,team IT,1,Tebak Gambar,2,Technology,4,Teknologi,8,Teknologi Informasi,3,Telegram,3,Template Blog SEO,10,Template Blogger,1,Templates,1,terminal,1,tiktok,1,Tips,22,Tips & Trik,19,Tips Blogging,36,Tips SEO,23,toolkit,1,Tree,8,Trick,27,trik,3,Tulisan Lepas,1,tutorial,6,Tutorial CSS,3,Tutorial HTML,56,Tutorial JavaScript,3,Twitter,2,Ubuntu,5,udemy,7,UX,8,VirtualBox,1,VLC Media Player,1,VSCode,2,waconsole,19,wallpaper engine,1,web dev,2,Web Server,5,WhatsApp,14,WhatsApp Gateway,8,Widget,2,Windows,25,wordpress,4,XAMPP,7,Xiaomi,5,Yii2,1,YouTube,3,
ltr
item
Syahdan Dev Blog: Membuat Web Login Sederhana dengan Google Apps Script dan Spreadsheet
Membuat Web Login Sederhana dengan Google Apps Script dan Spreadsheet
https://blogger.googleusercontent.com/img/a/AVvXsEi5IxMA07_qA4t3KxyYnZocRD3WMvm-oDjpNfRC1wRdU5cJTalsHeyumW8HhVHMz_1NYTp_IbYXfX-KfN6qoeAs5p04sf1-HOoDIFrYv96GG0AZQCnRzzv_BGeHsTtCFtxXWijFf_7pJAMhYDbnbUgixN2y73UKNds3e5ukIZbbNf5luXMSRK9gzM5DR-I
https://blogger.googleusercontent.com/img/a/AVvXsEi5IxMA07_qA4t3KxyYnZocRD3WMvm-oDjpNfRC1wRdU5cJTalsHeyumW8HhVHMz_1NYTp_IbYXfX-KfN6qoeAs5p04sf1-HOoDIFrYv96GG0AZQCnRzzv_BGeHsTtCFtxXWijFf_7pJAMhYDbnbUgixN2y73UKNds3e5ukIZbbNf5luXMSRK9gzM5DR-I=s72-c
Syahdan Dev Blog
https://syahdandev.blogspot.com/2024/10/membuat-web-login-sederhana-dengan.html
https://syahdandev.blogspot.com/
https://syahdandev.blogspot.com/
https://syahdandev.blogspot.com/2024/10/membuat-web-login-sederhana-dengan.html
true
6341435550051226882
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content