Membuat dan Print Invoice Setelah Input Data Pada Form
1. Copy Spreadsheets (Klik Disini)
2. Pada Spreadsheets terdapat sheet Data pembayaran yang berisi kolom-kolom yang akan terisi dari form web apps script.
3. Buatlah lembar kerja Apps Script dengan klik Ektensi/Extensions lalu klik Apps Script.
4. Terdapat file default yaitu :
- Code.gs
- Index.html
- visit.html
5. Copy dan pastekan script di bawah ini ke Code.gs
Masukkan Password Untuk Melihat Script (Password ada di dalam video)
// www.javabitpro.com
function doGet(e) {
var template = HtmlService.createTemplateFromFile('Index')
return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
.addMetaTag('viewport', 'width=device-width , initial-scale=1')
}
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename)
.getContent();
}
function processForm(formData) {
var nama = formData.nama;
var alamat = formData.alamat;
var rt = formData.rt;
var rw = formData.rw;
var jumlahPembayaran = formData.jumlahPembayaran;
var tanggal = new Date();
var spreadsheet = SpreadsheetApp.openById('ID Spreadhseets'); // Ganti dengan ID spreadsheet Anda
var sheet = spreadsheet.getSheetByName('Nama sheet'); // Ganti dengan nama sheet Anda
var newRow = [tanggal, nama,alamat, rt, rw, jumlahPembayaran];
sheet.appendRow(newRow);
var invoice = "Bukti Sumbangan\n <br>";
invoice += "-----------------------\n<br>";
invoice += "Nama: " + nama + "\n<br>";
invoice += "Alamat: " + alamat + "\n<br>";
invoice += "RT: " + rt + "\n<br>";
invoice += "RW: " + rw + "\n<br>";
invoice += "Telah menyumbang uang\n<br>";
invoice += "Sebesar: Rp " + jumlahPembayaran + "\n<br>";
invoice += "Tanggal: " + Utilities.formatDate(tanggal, Session.getScriptTimeZone(), "dd/MM/yyyy HH:mm:ss") + "\n<br>";
invoice += "-----------------------\n<br>";
invoice += "Terima Kasih\n<br>";
invoice += "-----------------------\n<br>";
invoice += "@Panitia\n<br>";
return invoice;
}
function getURL(){
return ScriptApp.getService().getUrl()
}
// www.javabitpro.com function doGet(e) { var template = HtmlService.createTemplateFromFile('Index') return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME) .addMetaTag('viewport', 'width=device-width , initial-scale=1') } function include(filename) { return HtmlService.createHtmlOutputFromFile(filename) .getContent(); } function processForm(formData) { var nama = formData.nama; var alamat = formData.alamat; var rt = formData.rt; var rw = formData.rw; var jumlahPembayaran = formData.jumlahPembayaran; var tanggal = new Date(); var spreadsheet = SpreadsheetApp.openById('ID Spreadhseets'); // Ganti dengan ID spreadsheet Anda var sheet = spreadsheet.getSheetByName('Nama sheet'); // Ganti dengan nama sheet Anda var newRow = [tanggal, nama,alamat, rt, rw, jumlahPembayaran]; sheet.appendRow(newRow); var invoice = "Bukti Sumbangan\n <br>"; invoice += "-----------------------\n<br>"; invoice += "Nama: " + nama + "\n<br>"; invoice += "Alamat: " + alamat + "\n<br>"; invoice += "RT: " + rt + "\n<br>"; invoice += "RW: " + rw + "\n<br>"; invoice += "Telah menyumbang uang\n<br>"; invoice += "Sebesar: Rp " + jumlahPembayaran + "\n<br>"; invoice += "Tanggal: " + Utilities.formatDate(tanggal, Session.getScriptTimeZone(), "dd/MM/yyyy HH:mm:ss") + "\n<br>"; invoice += "-----------------------\n<br>"; invoice += "Terima Kasih\n<br>"; invoice += "-----------------------\n<br>"; invoice += "@Panitia\n<br>"; return invoice; } function getURL(){ return ScriptApp.getService().getUrl() }
6. Copy dan pastekan script di bawah ini ke Index.html
Masukkan Password Untuk Melihat Script (Password sama dengan di atas)
<!DOCTYPE html>
<!-- Created By javabitpro.com -->
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Form Cetak Invoice | by javabitpro</title>
<!-- Bootstrap CSS -->
</head>
<!-- font-awesome@6.2.0 icon Visit -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css">
<?!= include('visit')?>
<style>
@import url('https://fonts.googleapis.com/css?family=Poppins:400,500,600,700&display=swap');
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
html,body{
display: grid;
height: 100%;
width: 100%;
place-items: center;
background: #f2f2f2;
/* background: linear-gradient(-135deg, #c850c0, #4158d0); */
}
::selection{
background: #4158d0;
color: #fff;
}
.wrapper{
width: 380px;
background: #fff;
border-radius: 15px;
box-shadow: 0px 15px 20px rgba(0,0,0,0.1);
}
.wrapper .title{
font-size: 35px;
font-weight: 600;
text-align: center;
line-height: 100px;
color: #fff;
user-select: none;
border-radius: 15px 15px 0 0;
background: linear-gradient(-135deg, #c850c0, #4158d0);
}
.wrapper form{
padding: 10px 30px 50px 30px;
}
.wrapper form .field{
height: 50px;
width: 100%;
margin-top: 20px;
position: relative;
}
.wrapper form .field input{
height: 100%;
width: 100%;
outline: none;
font-size: 17px;
padding-left: 20px;
border: 1px solid lightgrey;
border-radius: 25px;
transition: all 0.3s ease;
}
.wrapper form .field input:focus,
form .field input:valid{
border-color: #4158d0;
}
.wrapper form .field label{
position: absolute;
top: 50%;
left: 20px;
color: #999999;
font-weight: 400;
font-size: 17px;
pointer-events: none;
transform: translateY(-50%);
transition: all 0.3s ease;
}
form .field input:focus ~ label,
form .field input:valid ~ label{
top: 0%;
font-size: 16px;
color: #4158d0;
background: #fff;
transform: translateY(-50%);
}
form .content{
display: flex;
width: 100%;
height: 50px;
font-size: 16px;
align-items: center;
justify-content: space-around;
}
form .content .checkbox{
display: flex;
align-items: center;
justify-content: center;
}
form .content input{
width: 15px;
height: 15px;
background: red;
}
form .content label{
color: #262626;
user-select: none;
padding-left: 5px;
}
form .content .pass-link{
color: "";
}
form .field input[type="button"]{
color: #fff;
border: none;
padding-left: 0;
margin-top: -10px;
font-size: 20px;
font-weight: 500;
cursor: pointer;
background: linear-gradient(-135deg, #c850c0, #4158d0);
transition: all 0.3s ease;
}
form .field input[type="button"]:active{
transform: scale(0.95);
}
form .signup-link{
color: #262626;
margin-top: 20px;
text-align: center;
}
form .pass-link a,
form .signup-link a{
color: #4158d0;
text-decoration: none;
}
form .pass-link a:hover,
form .signup-link a:hover{
text-decoration: underline;
}
/* CSS untuk popup */
.popup {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.7);
}
.popup-content {
background-color: #fff;
width: 50%;
margin: 20% auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
position: relative;
}
.close {
color: #000;
position: absolute;
top: 10px;
right: 10px;
font-size: 20px;
cursor: pointer;
}
/* Aturan CSS khusus untuk cetakan */
@media print {
body {
font-size: 5pt; /* Mengatur ukuran font untuk cetakan */
margin: 0; /* Menghapus margin default dari browser */
}
.invoice {
padding: 1px; /* Memberi padding agar invoice terlihat rapi */
page-break-after: always; /* Pindah ke halaman baru setelah cetakan invoice */
}
/* Aturan tambahan untuk elemen lainnya */
}
</style>
<body>
<div class="wrapper">
<div class="title">
Form Cetak Invoice
</div>
<form>
<div class="field">
<input type="text" id="nama" required>
<label>Nama</label>
</div>
<div class="field">
<input type="text" id="alamat" required>
<label>Alamat</label>
</div>
<div class="field">
<input type="text" id="rt" required>
<label>RT</label>
</div>
<div class="field">
<input type="text" id="rw" required>
<label>RW</label>
</div>
<div class="field">
<input type="text" id="jumlahPembayaran" required>
<label>Jumlah Sumbangan</label>
</div>
<div class="field">
<input type="button" value="Kirim" onclick="submitForm()">
</div>
<div id="output"></div>
</form>
<script>
function submitForm() {
var nama = document.getElementById('nama').value;
var alamat = document.getElementById('alamat').value;
var rt = document.getElementById('rt').value;
var rw = document.getElementById('rw').value;
var jumlahPembayaran = document.getElementById('jumlahPembayaran').value;
google.script.run
.withSuccessHandler(function(invoice) {
displayInvoice(invoice);
openPopup(); // Menampilkan popup
})
.processForm({nama: nama, alamat: alamat, rt: rt, rw: rw, jumlahPembayaran: jumlahPembayaran});
}
function openPopup() {
var popup = document.getElementById('popup');
popup.style.display = 'block';
nama.value="";
alamat.value="";
rt.value="";
rw.value="";
jumlahPembayaran.value="";
}
function closePopup() {
var popup = document.getElementById('popup');
popup.style.display = 'none';
}
setTimeout(function() {
document.getElementById('success-message').style.display = 'none'; // Menghilangkan pesan sukses setelah beberapa detik
}, 5000); // Hilangkan pesan sukses setelah 5 detik (5000 milidetik)
function displayInvoice(invoice) {
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = '<div class="invoice">' + invoice + '</div>';
closePopup(); // Menutup popup saat invoice ditampilkan
// Menambahkan tombol cetak
outputDiv.innerHTML += '<button onclick="printInvoice()" class="field">Cetak Invoice</button>';
}
// www.javabitpro.com
function printInvoice() {
var printWindow = window.open('', '', 'width=600,height=600');
var invoiceContent = document.querySelector('.invoice').innerHTML;
printWindow.document.open();
printWindow.document.write('<html><head><title>Cetak Invoice</title></head><body>');
// Mengatur ukuran kertas secara otomatis ke 58mm x 80mm dalam media query cetakan
printWindow.document.write('<style type="text/css">');
printWindow.document.write('@page { size: 58mm 80mm; }'); // Mengatur ukuran kertas secara otomatis
printWindow.document.write('@media print {');
printWindow.document.write('body { font-size: 8pt; }'); // Misalnya, mengatur ukuran font untuk seluruh dokumen cetakan
printWindow.document.write('.invoice { font-size: 5pt; text-align: left; }'); // Mengatur ukuran font dan teks rata kiri untuk elemen dengan kelas "invoice"
printWindow.document.write('p { font-size: 5pt; text-align: left; }'); // Mengatur ukuran font dan teks rata kiri untuk elemen <p>
printWindow.document.write('}');
printWindow.document.write('</style>');
printWindow.document.write(invoiceContent);
printWindow.document.write('</body></html>');
printWindow.document.close();
printWindow.print();
printWindow.close();
}
</script>
<div id="success-message" style="display: none;">
<p>Pembayaran berhasil disimpan!</p>
</div>
<div id="popup" class="popup">
<div class="popup-content">
<span class="close" onclick="closePopup()">×</span>
<p>Pembayaran berhasil disimpan!</p>
</div>
</div>
</body>
</div>
</body>
</html>
<!DOCTYPE html> <!-- Created By javabitpro.com --> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Form Cetak Invoice | by javabitpro</title> <!-- Bootstrap CSS --> </head> <!-- font-awesome@6.2.0 icon Visit --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css"> <?!= include('visit')?> <style> @import url('https://fonts.googleapis.com/css?family=Poppins:400,500,600,700&display=swap'); *{ margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; } html,body{ display: grid; height: 100%; width: 100%; place-items: center; background: #f2f2f2; /* background: linear-gradient(-135deg, #c850c0, #4158d0); */ } ::selection{ background: #4158d0; color: #fff; } .wrapper{ width: 380px; background: #fff; border-radius: 15px; box-shadow: 0px 15px 20px rgba(0,0,0,0.1); } .wrapper .title{ font-size: 35px; font-weight: 600; text-align: center; line-height: 100px; color: #fff; user-select: none; border-radius: 15px 15px 0 0; background: linear-gradient(-135deg, #c850c0, #4158d0); } .wrapper form{ padding: 10px 30px 50px 30px; } .wrapper form .field{ height: 50px; width: 100%; margin-top: 20px; position: relative; } .wrapper form .field input{ height: 100%; width: 100%; outline: none; font-size: 17px; padding-left: 20px; border: 1px solid lightgrey; border-radius: 25px; transition: all 0.3s ease; } .wrapper form .field input:focus, form .field input:valid{ border-color: #4158d0; } .wrapper form .field label{ position: absolute; top: 50%; left: 20px; color: #999999; font-weight: 400; font-size: 17px; pointer-events: none; transform: translateY(-50%); transition: all 0.3s ease; } form .field input:focus ~ label, form .field input:valid ~ label{ top: 0%; font-size: 16px; color: #4158d0; background: #fff; transform: translateY(-50%); } form .content{ display: flex; width: 100%; height: 50px; font-size: 16px; align-items: center; justify-content: space-around; } form .content .checkbox{ display: flex; align-items: center; justify-content: center; } form .content input{ width: 15px; height: 15px; background: red; } form .content label{ color: #262626; user-select: none; padding-left: 5px; } form .content .pass-link{ color: ""; } form .field input[type="button"]{ color: #fff; border: none; padding-left: 0; margin-top: -10px; font-size: 20px; font-weight: 500; cursor: pointer; background: linear-gradient(-135deg, #c850c0, #4158d0); transition: all 0.3s ease; } form .field input[type="button"]:active{ transform: scale(0.95); } form .signup-link{ color: #262626; margin-top: 20px; text-align: center; } form .pass-link a, form .signup-link a{ color: #4158d0; text-decoration: none; } form .pass-link a:hover, form .signup-link a:hover{ text-decoration: underline; } /* CSS untuk popup */ .popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.7); } .popup-content { background-color: #fff; width: 50%; margin: 20% auto; padding: 20px; border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); position: relative; } .close { color: #000; position: absolute; top: 10px; right: 10px; font-size: 20px; cursor: pointer; } /* Aturan CSS khusus untuk cetakan */ @media print { body { font-size: 5pt; /* Mengatur ukuran font untuk cetakan */ margin: 0; /* Menghapus margin default dari browser */ } .invoice { padding: 1px; /* Memberi padding agar invoice terlihat rapi */ page-break-after: always; /* Pindah ke halaman baru setelah cetakan invoice */ } /* Aturan tambahan untuk elemen lainnya */ } </style> <body> <div class="wrapper"> <div class="title"> Form Cetak Invoice </div> <form> <div class="field"> <input type="text" id="nama" required> <label>Nama</label> </div> <div class="field"> <input type="text" id="alamat" required> <label>Alamat</label> </div> <div class="field"> <input type="text" id="rt" required> <label>RT</label> </div> <div class="field"> <input type="text" id="rw" required> <label>RW</label> </div> <div class="field"> <input type="text" id="jumlahPembayaran" required> <label>Jumlah Sumbangan</label> </div> <div class="field"> <input type="button" value="Kirim" onclick="submitForm()"> </div> <div id="output"></div> </form> <script> function submitForm() { var nama = document.getElementById('nama').value; var alamat = document.getElementById('alamat').value; var rt = document.getElementById('rt').value; var rw = document.getElementById('rw').value; var jumlahPembayaran = document.getElementById('jumlahPembayaran').value; google.script.run .withSuccessHandler(function(invoice) { displayInvoice(invoice); openPopup(); // Menampilkan popup }) .processForm({nama: nama, alamat: alamat, rt: rt, rw: rw, jumlahPembayaran: jumlahPembayaran}); } function openPopup() { var popup = document.getElementById('popup'); popup.style.display = 'block'; nama.value=""; alamat.value=""; rt.value=""; rw.value=""; jumlahPembayaran.value=""; } function closePopup() { var popup = document.getElementById('popup'); popup.style.display = 'none'; } setTimeout(function() { document.getElementById('success-message').style.display = 'none'; // Menghilangkan pesan sukses setelah beberapa detik }, 5000); // Hilangkan pesan sukses setelah 5 detik (5000 milidetik) function displayInvoice(invoice) { var outputDiv = document.getElementById('output'); outputDiv.innerHTML = '<div class="invoice">' + invoice + '</div>'; closePopup(); // Menutup popup saat invoice ditampilkan // Menambahkan tombol cetak outputDiv.innerHTML += '<button onclick="printInvoice()" class="field">Cetak Invoice</button>'; } // www.javabitpro.com function printInvoice() { var printWindow = window.open('', '', 'width=600,height=600'); var invoiceContent = document.querySelector('.invoice').innerHTML; printWindow.document.open(); printWindow.document.write('<html><head><title>Cetak Invoice</title></head><body>'); // Mengatur ukuran kertas secara otomatis ke 58mm x 80mm dalam media query cetakan printWindow.document.write('<style type="text/css">'); printWindow.document.write('@page { size: 58mm 80mm; }'); // Mengatur ukuran kertas secara otomatis printWindow.document.write('@media print {'); printWindow.document.write('body { font-size: 8pt; }'); // Misalnya, mengatur ukuran font untuk seluruh dokumen cetakan printWindow.document.write('.invoice { font-size: 5pt; text-align: left; }'); // Mengatur ukuran font dan teks rata kiri untuk elemen dengan kelas "invoice" printWindow.document.write('p { font-size: 5pt; text-align: left; }'); // Mengatur ukuran font dan teks rata kiri untuk elemen <p> printWindow.document.write('}'); printWindow.document.write('</style>'); printWindow.document.write(invoiceContent); printWindow.document.write('</body></html>'); printWindow.document.close(); printWindow.print(); printWindow.close(); } </script> <div id="success-message" style="display: none;"> <p>Pembayaran berhasil disimpan!</p> </div> <div id="popup" class="popup"> <div class="popup-content"> <span class="close" onclick="closePopup()">×</span> <p>Pembayaran berhasil disimpan!</p> </div> </div> </body> </div> </body> </html>
7. Copy dan pastekan script di bawah ini ke visit.html
Masukkan Password Untuk Melihat Script (Password sama dengan di atas)
<style>
.fab-container2 {
position: fixed;
bottom: 80px;
right: 1px;
z-index: 999;
cursor: pointer;
}
.fab-label2 {
padding: 2px 5px;
align-self: center;
user-select: none;
white-space: nowrap;
border-radius: 3px;
font-size: 16px;
background: #666666;
color: #ffffff;
box-shadow: 0 6px 20px rgba(0,0,0,0.2);
/* margin-right: 10px; */
}
.fab-container {
position: fixed;
bottom: 10px;
right: 10px;
z-index: 999;
cursor: pointer;
}
.fab-icon-holder {
width: 50px;
height: 50px;
border-radius: 100%;
background: #6dd4fc;
box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}
.fab-icon-holder:hover{
opacity: 0.8;
}
.fab-icon-holder i {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
font-size: 25px;
color: #000000;
}
.fab {
width: 56px;
height: 56px;
background: #6dd4fc;
}
.fab-options {
list-style-type: none;
margin: 0;
position: absolute;
bottom: 70px;
right: 0;
opacity: 0;
transition: all 0.3s ease;
transform: scale(0);
transform-origin: 85% bottom;
}
.fab:hover + .fab-options, .fab-options:hover {
opacity: 1;
transform: scale(1);
}
.fab-options li {
display: flex;
justify-content: flex-end;
padding: 5px;
}
.fab-label {
padding: 2px 5px;
align-self: center;
user-select: none;
white-space: nowrap;
border-radius: 3px;
font-size: 16px;
background: #666666;
color: #ffffff;
box-shadow: 0 6px 20px rgba(0,0,0,0.2);
margin-right: 10px;
}
a {
color: inherit;
text-decoration: none;
}
</style>
<!-- ------------------------------ Visit ------------------------------- -->
<div class="fab-container2">
<p class="fab-label2">Visit</p>
</div>
<div class="fab-container">
<div class="fab fab-icon-holder">
<i><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC7hb7GJ4v4IwapVwZJJyvGsG5WF4RxsmEb0va1X0t-6urm1PGPDA2IEsETeLCuiyfJkUWhOOIUg9FN_Dr3gJJQmQUe2-AnYI3-R05TC6PbMRSnaljamNC9lQMOeE2q4Dr29jkfEaYwpadAjraVGgIgC_wGGp596Uh6tLX_ClrfbqK3wdhz4jE7i16/s1600/PNG%20JP.png" style="width: 75px;"></i>
</div>
<ul class="fab-options">
<li>
<span class="fab-label">Youtube</span>
<div class="fab-icon-holder">
<a target="_blank" href="https://www.youtube.com/@Javabitpro/videos"><i class="fa-brands fa-youtube"></i></i></a>
</div>
</li>
<li style="margin-bottom: 60px;">
<span class="fab-label">Website</span>
<div class="fab-icon-holder">
<a target="_blank" href="https://www.javabitpro.com/"><i class="fa-solid fa-globe"></i></a>
</div>
</li>
</ul>
</div>
<style> .fab-container2 { position: fixed; bottom: 80px; right: 1px; z-index: 999; cursor: pointer; } .fab-label2 { padding: 2px 5px; align-self: center; user-select: none; white-space: nowrap; border-radius: 3px; font-size: 16px; background: #666666; color: #ffffff; box-shadow: 0 6px 20px rgba(0,0,0,0.2); /* margin-right: 10px; */ } .fab-container { position: fixed; bottom: 10px; right: 10px; z-index: 999; cursor: pointer; } .fab-icon-holder { width: 50px; height: 50px; border-radius: 100%; background: #6dd4fc; box-shadow: 0 6px 20px rgba(0,0,0,0.2); } .fab-icon-holder:hover{ opacity: 0.8; } .fab-icon-holder i { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 25px; color: #000000; } .fab { width: 56px; height: 56px; background: #6dd4fc; } .fab-options { list-style-type: none; margin: 0; position: absolute; bottom: 70px; right: 0; opacity: 0; transition: all 0.3s ease; transform: scale(0); transform-origin: 85% bottom; } .fab:hover + .fab-options, .fab-options:hover { opacity: 1; transform: scale(1); } .fab-options li { display: flex; justify-content: flex-end; padding: 5px; } .fab-label { padding: 2px 5px; align-self: center; user-select: none; white-space: nowrap; border-radius: 3px; font-size: 16px; background: #666666; color: #ffffff; box-shadow: 0 6px 20px rgba(0,0,0,0.2); margin-right: 10px; } a { color: inherit; text-decoration: none; } </style> <!-- ------------------------------ Visit ------------------------------- --> <div class="fab-container2"> <p class="fab-label2">Visit</p> </div> <div class="fab-container"> <div class="fab fab-icon-holder"> <i><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC7hb7GJ4v4IwapVwZJJyvGsG5WF4RxsmEb0va1X0t-6urm1PGPDA2IEsETeLCuiyfJkUWhOOIUg9FN_Dr3gJJQmQUe2-AnYI3-R05TC6PbMRSnaljamNC9lQMOeE2q4Dr29jkfEaYwpadAjraVGgIgC_wGGp596Uh6tLX_ClrfbqK3wdhz4jE7i16/s1600/PNG%20JP.png" style="width: 75px;"></i> </div> <ul class="fab-options"> <li> <span class="fab-label">Youtube</span> <div class="fab-icon-holder"> <a target="_blank" href="https://www.youtube.com/@Javabitpro/videos"><i class="fa-brands fa-youtube"></i></i></a> </div> </li> <li style="margin-bottom: 60px;"> <span class="fab-label">Website</span> <div class="fab-icon-holder"> <a target="_blank" href="https://www.javabitpro.com/"><i class="fa-solid fa-globe"></i></a> </div> </li> </ul> </div>
8. Klik ikon Save.
9. Klik tombol biru Terapkan/Deploy lalu pilih Deployment baru/New Deployment.
10. Pastikan jenisnya adalah Aplikais web , hak aksesnya adalah Siapa saja/Anyone lalu klik Terapkan/Deploy.
11. Klik atau Salin URL yang sudah di Deploy.
SELESAI!!