全部产品
Search
文档中心

OpenSearch:Tipe data dan tipe variabel

更新时间:Jun 26, 2025

Cava memungkinkan Anda mendefinisikan variabel dalam dua kategori.

Definisikan variabel

Cava memungkinkan Anda mendefinisikan variabel dalam dua kategori berikut:

  • Variabel lokal

  • Variabel anggota dari sebuah kelas

Catatan: Cava tidak mendukung variabel kelas. Jika Anda mendefinisikan variabel kelas, kesalahan kompilasi mungkin terjadi. Untuk informasi lebih lanjut, lihat Pengubah.

Variabel Lokal

Variabel Numerik

  • Kode contoh berikut menunjukkan cara mendefinisikan variabel lokal bernama a dengan tipe INT dan menetapkan nilai 10 ke variabel tersebut:

class Example {
    // ...
    int test() {
        int a; // <==
        a = 10;
        return a + 1;
    }
    // ...
}
  • Kode contoh berikut menunjukkan cara mendefinisikan variabel lokal bernama a menggunakan nilai awalnya 10:

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

Variabel Objek

Setelah mendefinisikan variabel objek, Anda harus menggunakan kata kunci new untuk membuat objek yang relevan. Jika tidak, isi dari variabel objek menjadi null, dan pengecualian akan dilemparkan saat Anda mengakses variabel objek tersebut.

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

Variabel Array

  • Kode contoh berikut menunjukkan cara mendefinisikan variabel array bernama a yang terdiri dari 10 elemen bertipe INT. Nilai awal elemen-elemen ini diatur ke [0,1,2,3,4,5,6,7,8,9].

class Example {
    // ...
    int test() {
        int[] a = new int[10]; 
        for (int i = 0; i < a.length; ++i) {
            a[i] = i; 
        }
        return a[0];
    }
    // ...
}
  • Kode contoh berikut menunjukkan cara mendefinisikan variabel array yang terdiri dari 10 elemen bertipe INT dengan menginisialisasi daftar. Nilai awal elemen-elemen ini diatur ke [0,1,2,3,4,5,6,7,8,9]. Catatan: Kompiler secara otomatis melakukan inferensi jumlah elemen dalam array.

class Example {
    // ...
    int test() {
        int[] a = new int[]{0,1,2,3,4,5,6,7,8,9}; 
        return a[0];
    }
    // ...
}
  • Kode contoh berikut menunjukkan cara mendefinisikan array objek. Catatan: Setelah mendefinisikan array objek, Anda harus membuat objek untuk setiap elemen dalam array.

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

Variabel Anggota dari Sebuah Kelas

Untuk informasi lebih lanjut tentang cara mendefinisikan dan menggunakan variabel anggota kelas, lihat Kelas dan Objek.

Tipe data bawaan

Cava mendukung tipe data umum berikut. Konten dalam tanda kurung () menunjukkan ukuran memori yang ditempati oleh nilai dari tipe yang ditentukan.

  • BOOLEAN (1 byte)

  • BYTE (1 byte)

  • CHAR (2 byte)

  • PENDEK (2 byte)

  • INT (4 byte)

  • LONG (8 byte)

  • FLOAT (4 byte)

  • DOUBLE (8 byte)

Nilai dari tipe CHAR dikodekan dalam panjang tetap dua byte. Format pengkodean ini mirip dengan format pengkodean UTF-16 di Java. Panjang byte dalam nilai yang dikodekan adalah tetap, bukan variabel.

Konversi Tipe Data

Mirip dengan sebagian besar bahasa pemrograman, tipe data yang didukung oleh Cava dapat dikonversi satu sama lain. Dalam kasus tertentu, kompiler menyisipkan kode baru untuk secara otomatis mengonversi tipe data sumber menjadi tipe tujuan.

Konversi antara Tipe Data yang Kompatibel

Tipe data sumber dan tujuan mungkin memiliki hubungan berikut:

  • Untuk tipe data integer, rentang nilai dari tipe data tujuan mencakup tipe data sumber.

  • Untuk tipe data floating-point, presisi dari tipe data tujuan lebih tinggi atau sama dengan tipe data sumber.

Dalam kasus di atas, konversi tersebut aman. Sebagai contoh, konversi dari tipe data SHORT ke tipe data INT atau dari tipe data FLOAT ke tipe data DOUBLE adalah aman. Contoh berikut menunjukkan kode yang mungkin disisipkan oleh kompiler untuk melaksanakan konversi:

float a = 3.14f;
double b = a;

short c = -1;
int d = c;

Konversi antara tipe data di Cava sama dengan yang ada di bahasa pemrograman umum lainnya, seperti Java dan C++.

Konversi Eksplisit

Presisi dari tipe data tujuan mungkin lebih rendah daripada tipe data sumber dan rentang nilai dari tipe data tujuan mungkin tidak mencakup tipe data sumber. Dalam kasus seperti itu, kompiler memeriksa kode dan mengembalikan kesalahan. Contoh:

double a = ...;
float b = a; // Terjadi kesalahan. Konversi ini dapat menyebabkan hilangnya presisi.

Konversi kedua tipe ini tidak aman dan kompiler melarang konversi otomatis semacam itu. Namun, jika Anda mengetahui risiko potensial, Anda dapat melaksanakan konversi eksplisit dalam kode untuk mencegah kesalahan yang dilaporkan oleh kompiler.

float a = 3.14f;
int b = (int)a; // Bagian pecahan dibuang. Nilai dibulatkan ke bilangan bulat.

Tipe data kustom

Cava memungkinkan Anda mendefinisikan kelas dan membuat objek. Untuk informasi lebih lanjut, lihat Kelas dan Objek.