> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Cara Menggunakan getSlot

> Pelajari kasus penggunaan getSlot, contoh kode, parameter permintaan, struktur respons, dan tips.

Metode RPC [`getSlot`](https://www.helius.dev/docs/api-reference/rpc/http/getslot) mengembalikan slot saat ini yang dianggap oleh node RPC telah mencapai tingkat commitment tertentu. Metode ini sangat penting untuk memahami status blockchain saat ini sebagaimana dipersepsikan oleh node.

## Kasus Penggunaan Umum

* **Mendapatkan Perkembangan Jaringan Saat Ini:** Tentukan slot terbaru yang diproses atau dikonfirmasi oleh node.
* **Pemeriksaan Sinkronisasi Node:** Membandingkan slot dari berbagai node dapat memberikan indikasi status sinkronisasinya.
* **Pemberian Stempel Waktu pada Operasi:** Gunakan slot saat ini sebagai titik referensi untuk operasi atau untuk memahami usia data tertentu.
* **Input untuk Panggilan RPC Lainnya:** Beberapa metode RPC mungkin menggunakan nomor slot sebagai titik referensi.

## Parameter Permintaan

Metode ini menerima objek konfigurasi opsional sebagai parameter pertamanya:

1. **`options`** (`object`, opsional): Objek konfigurasi opsional dengan bidang berikut:
   * **`commitment`** (`string`, opsional): Menentukan [tingkat commitment](https://www.helius.dev/blog/solana-commitment-levels) untuk kueri. Nilai yang didukung adalah `finalized`, `confirmed`, atau `processed`. Jika dihilangkan, commitment default node RPC akan digunakan (biasanya `finalized`).
     * `processed`: Node akan melakukan kueri pada slot terbarunya. Perhatikan bahwa slot ini mungkin belum dikonfirmasi oleh cluster dan berpotensi dilewati.
     * `confirmed`: Node akan melakukan kueri pada slot terbaru yang telah diberi suara oleh mayoritas besar cluster.
     * `finalized`: Node akan melakukan kueri pada slot terbaru yang dikonfirmasi oleh mayoritas besar cluster sebagai slot yang telah mencapai penguncian maksimum (tidak dapat dibatalkan).
   * **`minContextSlot`** (`number`, opsional): Slot minimum tempat permintaan dapat dievaluasi. Ini menetapkan slot minimum untuk konteks node. Jika status node lebih lama daripada slot ini, node dapat mengembalikan kesalahan atau nomor slot yang mencerminkan statusnya saat ini (yang lebih lama) relatif terhadap nilai minimum ini.

## Struktur Respons

Bidang `result` dari respons JSON-RPC adalah satu `u64` (bilangan bulat 64-bit tanpa tanda) yang merepresentasikan nomor slot saat ini berdasarkan tingkat commitment yang ditentukan.

**Contoh Respons:**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": 123456789,
  "id": 1
}
```

## Contoh

### 1. Mendapatkan Slot Saat Ini (Commitment Default)

Contoh ini mengambil slot saat ini menggunakan tingkat commitment default node (biasanya `finalized`).

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlot"
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getCurrentSlot() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slot = await connection.getSlot();
      console.log('Current slot (default commitment):', slot);
    } catch (error) {
      console.error('Error fetching current slot:', error);
    }
  }

  getCurrentSlot();
  ```
</CodeGroup>

### 2. Mendapatkan Slot Saat Ini dengan Commitment Tertentu

Contoh ini mengambil slot saat ini yang telah mencapai commitment `confirmed`.

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlot",
      "params": [
        {
          "commitment": "confirmed"
        }
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getConfirmedSlot() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slot = await connection.getSlot('confirmed');
      console.log('Current slot (confirmed commitment):', slot);
      // Note: For @solana/web3.js v1.30.0 and later, you can pass commitment directly.
      // For older versions or more complex options, use an object:
      // const slot = await connection.getSlot({ commitment: 'confirmed' });
    } catch (error) {
      console.error('Error fetching confirmed slot:', error);
    }
  }

  getConfirmedSlot();
  ```
</CodeGroup>

## Tips untuk Developer

* **Commitment Itu Penting:** Nomor slot yang dikembalikan sangat bergantung pada tingkat `commitment` yang ditentukan. Lihat [Tingkat Commitment Solana](https://www.helius.dev/blog/solana-commitment-levels) untuk informasi mendetail. `processed` akan menjadi slot tertinggi (terbaru) yang diketahui oleh node, sedangkan `finalized` akan menjadi slot lebih lama yang dikonfirmasi oleh seluruh jaringan. Pilih tingkat commitment yang sesuai dengan kebutuhan finalitas data untuk kasus penggunaan Anda.
* **Variasi Node:** Node RPC yang berbeda mungkin mengembalikan nomor slot yang sedikit berbeda untuk tingkat commitment yang sama karena penundaan propagasi jaringan atau status pemrosesannya sendiri. Hal ini terutama berlaku untuk tingkat `processed` dan `confirmed`.
* **`minContextSlot`:** Parameter ini memastikan bahwa node yang memproses permintaan Anda setidaknya telah mencapai `minContextSlot`. Jika node tertinggal dari slot ini, perilakunya dapat bervariasi (misalnya, mengembalikan kesalahan atau slot tertinggi node saat ini yang lebih rendah daripada `minContextSlot`). Parameter ini umumnya digunakan dalam skenario lanjutan ketika Anda perlu memastikan bahwa kueri dijalankan terhadap status yang cukup baru.

`getSlot` adalah metode sederhana tetapi penting untuk berinteraksi dengan blockchain Solana dan memahami perkembangannya saat ini.
