Cara Membuat Aplikasi Prediksi Skor Piala Dunia 2026 dengan Google Apps Script (Gratis)

Aplikasi Prediksi Skor Piala Dunia 2026 Google Apps Script

Cara Membuat Aplikasi Prediksi Skor Piala Dunia 2026 dengan Google Apps Script (Gratis)

Piala Dunia 2026 sudah di depan mata! Tahun ini digelar di Amerika Serikat, Meksiko, dan Kanada dengan 48 timnas berpartisipasi. Buat kamu yang ingin seru-seruan menebak skor pertandingan, kenapa tidak membuat aplikasi prediksi skor Piala Dunia 2026 sendiri menggunakan Google Apps Script? Gratis, mudah, dan bisa diakses dari HP!

Mengapa Membuat Aplikasi Prediksi Piala Dunia?

Selama Piala Dunia 2026, jutaan orang Indonesia akan mencari "prediksi skor piala dunia 2026", "hasil pertandingan piala dunia", "jadwal piala dunia 2026", dan "klasemen piala dunia 2026" di Google. Dengan membuat aplikasi sendiri, kamu bisa:

  • Menulis prediksi skor untuk semua pertandingan Piala Dunia 2026
  • Menghitung poin prediksi otomatis berdasarkan hasil akhir
  • Membuat leaderboard untuk kompetisi antar teman
  • Menganalisis akurasi prediksi dengan grafik dan statistik
  • Share link ke WhatsApp, Instagram, dan media sosial

Aplikasi ini menggunakan Google Sheets sebagai database dan Google Apps Script sebagai backend. Semua gratis tanpa biaya hosting!

Langkah 1: Buat Database Piala Dunia 2026

Buka sheets.new dan buat beberapa sheet:

  • Sheet "Jadwal" - Tanggal, waktu, tim tuan rumah, tim tamu, stadion, grup
  • Sheet "Prediksi" - Email, nama, prediksi skor per pertandingan
  • Sheet "Hasil" - Skor akhir aktual setelah pertandingan selesai
  • Sheet "Leaderboard" - Peringkat berdasarkan akurasi prediksi
  • Sheet "Peserta" - Data pendaftaran pengguna aplikasi

Langkah 2: Kode Google Apps Script

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('PialaDunia')
    .setTitle('Prediksi Skor Piala Dunia 2026')
    .addMetaTag('viewport', 'width=device-width, initial-scale=1')
    .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

// Ambil jadwal pertandingan
function getSchedule() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Jadwal');
  var data = sheet.getDataRange().getValues();
  var matches = [];
  for (var i = 1; i < data.length; i++) {
    matches.push({
      id: data[i][0],
      tanggal: data[i][1],
      waktu: data[i][2],
      timHome: data[i][3],
      timAway: data[i][4],
      stadion: data[i][5],
      grup: data[i][6]
    });
  }
  return matches;
}

// Simpan prediksi user
function submitPrediction(email, nama, predictions) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Prediksi');
  
  // Cek apakah sudah pernah prediksi
  var existing = sheet.getDataRange().getValues();
  for (var i = 1; i < existing.length; i++) {
    if (existing[i][1] == email) {
      // Update prediksi
      for (var j = 0; j < predictions.length; j++) {
        sheet.getRange(i + 1, j + 4).setValue(predictions[j]);
      }
      return { success: true, message: 'Prediksi berhasil diupdate!' };
    }
  }
  
  // Tambah prediksi baru
  var row = [new Date(), email, nama];
  predictions.forEach(function(p) { row.push(p); });
  sheet.appendRow(row);
  
  return { success: true, message: 'Prediksi berhasil disimpan!' };
}

// Hitung poin prediksi
function calculatePoints() {
  var predSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Prediksi');
  var hasilSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Hasil');
  var predictions = predSheet.getDataRange().getValues();
  var results = hasilSheet.getDataRange().getValues();
  
  var scores = {};
  
  for (var i = 1; i < predictions.length; i++) {
    var email = predictions[i][1];
    var nama = predictions[i][2];
    var totalPoints = 0;
    
    for (var j = 1; j < results.length; j++) {
      var matchId = results[j][0];
      var actualHome = results[j][1];
      var actualAway = results[j][2];
      
      // Cari prediksi untuk match ini
      var colIndex = j + 2; // Kolom prediksi dimulai dari kolom D
      if (predictions[i][colIndex]) {
        var pred = predictions[i][colIndex].toString().split('-');
        var predHome = parseInt(pred[0]);
        var predAway = parseInt(pred[1]);
        
        // Hitung poin
        if (predHome == actualHome && predAway == actualAway) {
          totalPoints += 3; // Skor tepat
        } else if ((predHome - predAway) == (actualHome - actualAway)) {
          totalPoints += 2; // Selisih tepat
        } else if (Math.sign(predHome - predAway) == Math.sign(actualHome - actualAway)) {
          totalPoints += 1; // Pemenang tepat
        }
      }
    }
    
    if (!scores[email]) scores[email] = { nama: nama, points: 0 };
    scores[email].points = totalPoints;
  }
  
  // Update leaderboard
  var lbSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Leaderboard');
  lbSheet.clearContents();
  lbSheet.appendRow(['Peringkat', 'Nama', 'Email', 'Poin']);
  
  var sorted = Object.entries(scores).sort(function(a, b) { return b[1].points - a[1].points; });
  sorted.forEach(function(entry, index) {
    lbSheet.appendRow([index + 1, entry[1].nama, entry[0], entry[1].points]);
  });
  
  return sorted;
}

// Dapatkan leaderboard
function getLeaderboard() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Leaderboard');
  return sheet.getDataRange().getValues();
}

Langkah 3: Buat Interface HTML yang Keren

Desain antarmuka yang menarik dengan tema Piala Dunia 2026. Gunakan warna biru, merah, dan putih sesuai tema FIFA. Tambahkan logo piala dunia dan countdown timer ke pertandingan berikutnya.

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  <style>
    body { background: linear-gradient(135deg, #1a237e, #0d47a1); min-height: 100vh; }
    .match-card { background: white; border-radius: 15px; padding: 20px; margin: 10px 0; }
    .team-flag { width: 60px; height: 40px; object-fit: cover; border-radius: 5px; }
    .score-input { width: 60px; font-size: 24px; text-align: center; }
  </style>
</head>
<body>
  <div class="container py-4">
    <h1 class="text-white text-center">PREDIKSI SKOR PIALA DUNIA 2026</h1>
    <div id="matches"></div>
    <button class="btn btn-warning btn-lg w-100 mt-3" onclick="submitAll()">
      KIRIM PREDIKSI
    </button>
  </div>
</body>
</html>

Fitur Tambahan yang Bikin Aplikasi Makin Seru

  • Countdown Timer - Hitung mundur ke pertandingan berikutnya
  • Live Score - Update skor real-time saat pertandingan berlangsung
  • Sharing ke WhatsApp - Bagikan prediksi ke grup WhatsApp
  • Notifikasi Gol - Alert otomatis saat ada gol
  • Statistik Tim - Head to head dan rekor pertemuan
  • Kuis Pengetahuan - Quiz seputar Piala Dunia 2026

Strategi SEO untuk Aplikasi Piala Dunia

Gunakan kata kunci trending: "prediksi skor piala dunia 2026", "jadwal piala dunia 2026", "hasil pertandingan piala dunia", "klasemen piala dunia 2026", "skor live piala dunia". Submit ke Google Search Console dan index menggunakan Indexing API untuk cepat muncul di hasil pencarian.

Buat juga artikel pendukung seperti "Jadwal Lengkap Pertandingan Piala Dunia 2026", "Daftar 48 Timnas Piala Dunia 2026", dan "Prediksi Juara Piala Dunia 2026" untuk meningkatkan traffic organik.

Tags: Piala Dunia 2026, Prediksi Skor, FIFA World Cup 2026, Google Apps Script, Aplikasi Gratis, Prediksi Bola, Skor Live

Post a Comment for "Cara Membuat Aplikasi Prediksi Skor Piala Dunia 2026 dengan Google Apps Script (Gratis)"