All Products
Search
Document Center

OpenSearch:Definisi tipe dan variabel Cava

Last Updated:Aug 22, 2026

Cava mendukung dua jenis definisi berikut.

Definisi variabel

Cava mendukung dua definisi tipe berikut.

  • Variabel lokal

  • Variabel anggota kelas

Catatan: Cava tidak mendukung variabel kelas. Mendefinisikan variabel kelas akan menyebabkan error kompilasi. Untuk informasi lebih lanjut, lihat Cava modifiers.

Variabel lokal

Variabel tipe numerik

  • Definisikan variabel lokal a bertipe int dan beri nilai 10.

class Example {
    // ...
    int test() {
        int a; // <==
        a = 10;
        return a + 1;
    }
    // ...
}
  • Definisikan variabel lokal a dengan nilai awal 10.

class Example {
    // ...
    int test() {
        int a = 10; // <==
        return a + 1;
    }
    // ...
}

Variabel objek

Setelah Anda mendefinisikan variabel objek, Anda harus menggunakan pernyataan new untuk membuat objek yang sesuai. Jika tidak, nilai variabel tersebut adalah null. Mengakses variabel null akan menyebabkan NullPointerException.

class Example {
    public double PI;
    Example(double customPI) {
        this.PI = customPI;
    }
    static int main() {
        Example a = new Example(3.1415926); // <==
        return 0;
    }
}

Variabel array

  • Definisikan array int bernama a dengan 10 elemen, diinisialisasi menjadi [0..9].

class Example {
    // ...
    int test() {
        int[] a = new int[10]; 
        for (int i = 0; i < a.length; ++i) {
            a[i] = i; 
        }
        return a[0];
    }
    // ...
}
  • Anda dapat menggunakan daftar inisialisasi untuk mendefinisikan dan menginisialisasi array int dengan nilai [0..9]. Kompilator secara otomatis melakukan inferensi terhadap panjang array.

class Example {
    // ...
    int test() {
        int[] a = new int[]{0,1,2,3,4,5,6,7,8,9}; 
        return a[0];
    }
    // ...
}
  • Buat array objek. Catatan: Setelah membuat array, Anda juga harus membuat objek untuk setiap elemennya.

class Example {
    public double PI;
    Example(double customPI) {
        this.PI = customPI;
    }
    static int main() {
        Example[] a = new Example[10]; // Buat array objek.
        for (int i = 0; i < a.length; ++i) {
            a[i] = new Example(3.1415926); // Inisialisasi setiap objek dalam array.
        }
        return 0;
    }
}

Variabel anggota kelas

Untuk informasi lebih lanjut tentang mendefinisikan dan menggunakan variabel anggota kelas, lihat Cava classes and objects.

Tipe bawaan

Cava menyediakan tipe bawaan berikut. Nilai dalam tanda kurung menunjukkan ukuran memori tipe tersebut.

  • boolean (1 byte)

  • byte (1 byte)

  • char (2 byte)

  • short (2 byte)

  • int (4 byte)

  • long (8 byte)

  • float (4 byte)

  • double (8 byte)

Perhatikan bahwa tipe char menggunakan encoding internal dengan panjang tetap 2 byte. Encoding ini mirip dengan format encoding UTF-16 milik Java, tetapi tipe char itu sendiri bukanlah tipe dengan panjang variabel.

Konversi tipe

Seperti pada kebanyakan bahasa pemrograman, tipe numerik bawaan dapat dikonversi. Kompilator menyisipkan kode untuk melakukan konversi antar tipe numerik bila diperlukan.

Konversi otomatis tipe yang kompatibel

Ketika tipe sumber dan tipe target memiliki hubungan sebagai berikut:

  • Rentang numerik tipe target mencakup rentang numerik tipe sumber. Hal ini terutama berlaku untuk tipe integer.

  • Konversi dari tipe sumber ke tipe target tidak menyebabkan kehilangan presisi numerik. Hal ini terutama berlaku untuk tipe floating-point.

Konversi tertentu, seperti dari short ke int atau dari float ke double, aman dilakukan. Kompilator secara otomatis menyisipkan kode untuk melakukan konversi tersebut:

float a = 3.14f;
double b = a;

short c = -1;
int d = c;

Cava mengikuti aturan konversi tipe yang sama seperti bahasa pemrograman umum lainnya, seperti Java dan C++.

Type Casting eksplisit

Beberapa konversi tipe numerik dapat menyebabkan kehilangan presisi atau ketidaksesuaian rentang. Dalam kasus seperti itu, kompilator melaporkan error. Contohnya:

double a = ...;
float b = a; // error, risiko kehilangan presisi

Kompilator tidak secara otomatis melakukan konversi ini karena umumnya tidak aman. Namun, jika Anda memahami risiko yang terlibat, Anda dapat menggunakan type cast eksplisit dalam kode Anda untuk mencegah error kompilasi.

float a = 3.14f;
int b = (int)a; // Bagian pecahan dibuang. Hanya bagian integer yang dipertahankan. Ini memotong angka tersebut.

Tipe kustom

Cava mendukung pendefinisian kelas dan penggunaan objek. Untuk informasi lebih lanjut, lihat Cava classes and objects.