Sunday, February 22, 2026

Typescript Mendapatkan Data Google Sheets API dengan Asynchronous JavaScript

typescript
const DataAPI = async () => {
    try {
      let data = await fetch(       
        "https://sheets.googleapis.com/v4/spreadsheets/1JpZOuAajQ8pwt3hKwfINdN0BNPcH8AK7znagHQh9WZI/values/A1:C11?valueRenderOption=FORMATTED_VALUE&key=AIzaSyB2mRKvxH3IY6Bd0VLrBYND1cZg8d****"
      );
     let { values } = await data.json();
    let [, ...Data] = values.map((data:any) => data);
     return Data;
    } catch {
      console.log("Error");
    }
  };
  export default DataAPI;

Berikut adalah penjelasan detail per baris kodenya:

1. Deklarasi Fungsi

const DataAPI = async () => { ... }

  • const DataAPI: Mendeklarasikan variabel bernama DataAPI sebagai sebuah fungsi.

  • async: Menandakan bahwa fungsi ini bersifat asynchronous. Ini memungkinkan kita menggunakan kata kunci await di dalamnya agar program menunggu proses ambil data selesai tanpa menghentikan proses lainnya (non-blocking).

Javascript Fetch Data from API

javascript
 function getdata() {   
      const url = new URL('https://sheets.googleapis.com/v4/spreadsheets/1JpZOuAajQ8pwt3hKwfINdN0BNPcH8AK7znagHQh9WZI/values/A1:C11');
      url.searchParams.append('valueRenderOption', 'FORMATTED_VALUE');
      url.searchParams.append('key', 'AIzaSyB2mRKvxH3IY6Bd0VLrBYND1cZg8dSZHtI');
      var myUrl = url.toString();  
      fetch(myUrl)
      .then(response => response.json())
      .then(data => {
        // Code to manipulate the Blogger page DOM with the data
      var strBuilder = [];
        for(key in data) {
          if (data.hasOwnProperty(key)) {
            strBuilder.push("Key is " + key + ", value is " + data[key] + "\n");
          }
        }
        alert(strBuilder.join(""));
      })
      .catch(error => {
       alert('Error fetching data:', error);
      });      
      }

 

      

Klasifikasi pemrograman Java

 Klasifikasi pemrograman Java terbagi menjadi tiga edisi utama—Java SE (Standard Edition)EE (Enterprise Edition), dan ME (Micro Edition)—berdasarkan fungsi dan perangkatnya. Java adalah bahasa object-oriented (PBO), statically typed, dan portable ("Write Once, Run Anywhere") yang menggunakan JVM untuk menjalankan bytecode.

Berikut adalah detail klasifikasi pemrograman Java:
  • Edisi/Platform Java (Java Platforms):
    • Java SE (Standard Edition): Dasar pemrograman Java, digunakan untuk aplikasi desktop dan aplikasi berbasis server.
    • Java EE (Enterprise Edition): Fokus pada aplikasi perusahaan, web berskala besar, dan server-side.
    • Java ME (Micro Edition): Digunakan untuk perangkat tertanam (embedded) dan aplikasi mobile ringan.
  • Klasifikasi Tipe Data:
    • Tipe Data Primitif: Tipe bawaan seperti intlongfloatdoublebooleancharbyteshort.
    • Tipe Data Non-Primitif: Objek seperti StringArray, dan Class.
  • Karakteristik Pemrograman:
    • Berorientasi Objek (OOP): Menggunakan kelas dan objek.
    • Bahasa Tingkat Tinggi: Sintaksis mendekati bahasa manusia.
    • Garbage Collected: Manajemen memori otomatis (seperti G1 GC, ZGC).
  • Komponen Utama:
    • JDK (Java Development Kit): Alat untuk mengembangkan aplikasi.
    • JVM (Java Virtual Machine): Lingkungan untuk menjalankan kode.
    • Library: Kumpulan kode yang siap dipakai (misal: java.utiljava.io).
  • Framework Populer:
    • Spring: Untuk pengembangan aplikasi web/enterprise modular.
    • Hibernate: Untuk ORM (Object Relational Mapping).
    • JSF (JavaServer Faces): Untuk tampilan UI aplikasi web.
  • Operator Java:
    • Aritmetika, Perbandingan, Penugasan, Logika, Bitwise, dan Tunggal.

Quiz Pengetahuan Bahasa Pemrograman

Saturday, February 21, 2026

Membuat Dropdown Menu pada Blogger

 To restructure an HTML list in JavaScript by making certain li elements a child of another li based on a specific character, you can iterate through the list items and use DOM manipulation methods like appendChild().

JavaScript Code Example
This example assumes the li elements to be nested contain a specific character (e.g., '-') at the beginning of their text content, and should be nested under the preceding li that does not have the character.
javascript
function nestListItems(ulSelector, markerChar) {
    const ul = document.querySelector(ulSelector);
    if (!ul) return;

    // Select all direct child li elements of the ul
    const items = Array.from(ul.children);
    let parentItem = null;

    items.forEach(item => {
        // Check if the current li contains the specific character
        if (item.textContent.trim().startsWith(markerChar)) {
            // If a parent li has been established, move the current item into it
            if (parentItem) {
                // Remove the item from its current position in the DOM
                ul.removeChild(item); 
                
                // Create a new nested ul if one doesn't exist in the parent
                let nestedUl = parentItem.querySelector('ul');
                if (!nestedUl) {
                    nestedUl = document.createElement('ul');
                    parentItem.appendChild(nestedUl);
                }
                
                // Append the current item (which is now a new node) to the nested ul
                nestedUl.appendChild(item);
                                Array.from(nestedUl.children).forEach(itemtext => {
      		    itemtext.querySelector('a').innerHTML=itemtext.textContent.substring(2);
      				
      		 });
            }
        } else {
            // If it doesn't have the marker, it becomes a potential new parent
            parentItem = item;
        }
    });
}

// Usage: Call the function for your specific UL and marker
nestListItems('#myList', '-');

Creat Register Form React Native to Google Spreadsheet

Create a React Native registration form that sends data to a Google Sheet by creating a Google Form, connecting it to a spreadsheet, generating a POST API URL via Apps Script, and using fetch to submit input data. This approach avoids needing a custom backend server.

Here's how to create a React Native registration form that sends data to a spreadsheet:
Set Up Google Sheet & API
  1. Create a Sheet: Create a new Google Sheet. Add headers, such as Name, Email, and Password.
  2. Create Script: Open Extensions > Apps Script.
  3. Add Code: Use the following code to handle POST requests and add rows:
    javascript
    function doPost(e) {
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      const data = JSON.parse(e.postData.contents);
      sheet.appendRow([data.name, data.email, data.password, new Date()]);
      return ContentService.createTextOutput(JSON.stringify({ 'result': 'success' })).setMimeType(ContentService.MimeType.JSON);
    }
    
  4. Deploy: Click Deploy > New deployment, select Web app, set execute as Me, and Who has access to Anyone. Copy the Web app URL.

Thursday, July 17, 2025

VB 6.0 Row set is not bookmarkable

 solution :

set the CursorLocation Property of Recordset Object. 

    RS.CursorLocation=adUseClient

Hey  just copy this code line before openign ur recordset.

sample :

 Set RS = New ADODB.Recordset

 RS.CursorLocation = adUseClient

RS.Open "SELECT* FROM pelanggan WHERE nama like'%" & tpembeli.Text & "%'", CN, adOpenKeyset, adLockOptimistic

Set DataGrid1.DataSource = RS