VARIABEL DAN JENISNYA A. Ridwan Siregar
KONSEP VARIABEL a, b, dan hasil di bawah ini adalah variabel: 1 2 3 4 a = a + 1; hasil = a - b;
IDENTIFIER Identifier adalah rangkaian karakter satu atau lebih huruf, angka, atau garis bawah/ underscore (_) Spasi, tanda-tanda baca (punctuation marks), dan simbol tidak bisa digunakan sebagai bagian dari suatu identifier Dalam contoh sebelumnya: a, b, dan hasil adalah identifier
KEYWORDS C++ menggunakan sejumlah kata kunci (keywords) untuk mengidentifikasi sejumlah deskripsi operasi dan data Oleh karena itu identifier yang dibuat oleh programmer tidak boleh sama dengan keywords Berikut ini adalah daftar kata-kata kunci standar yang tidak bisa digunakan (ada kemungkinan compiler tertentu memiliki tambahan kata kunci)
DAFTAR KATA KUNCI STANDAR C++ alignas, alignof, and, and_eq, asm, auto, bitand, bitor, bool, break, case, catch, char, char16_t, char32_t, class, compl, const, constexpr, const_cast, continue, decltype, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, noexcept, not, not_eq, nullptr, operator, or, or_eq, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_assert, static_cast, struct, switch, template, this, thread_local, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, xor, xor_eq
IDENTIFIER Bahasa C++ adalah case sensitive, artinya identifier yang ditulis dengan huruf kecil dan huruf besar dianggap berbeda Mis: hasil, Hasil, dan HASIL adalah tidak sama (berbeda)
JENIS DATA DASAR Karakter (character types) Mis: 'A' atau $ Numerik Bulat (numerical integer types) Mis: 5 atau 1026 (signed atau unsigned) Pecahan (floating-point types) Mis: 2.15 atau 0.03 Boolean (Boolean type) true atau false
Grup Nama Jenis Catatan ukuran/presisi Character types char Exactly one byte in size. At least 8 bits. char16_t Not smaller than char. At least 16 bits. char32_t Not smaller than char16_t. At least 32 bits. wchar_t Can represent the largest supported character set. Integer types (signed) signed char Same size as char. At least 8 bits. signed short int signed int Not smaller than short. At least 16 bits. signed long int Not smaller than int. At least 32 bits. signed long long int Not smaller than long. At least 64 bits. Integer types (unsigned) unsigned char (same size as their signed counterparts) unsigned short int unsigned int unsigned long int unsigned long long int Floating-point types float double Precision not less than float long double Precision not less than double Boolean type bool Void type void no storage Null pointer decltype(nullptr)
Nilai unik yang bisa disajikan UKURAN JENIS DATA Ukuran Nilai unik yang bisa disajikan Catatan 8-bit 256 = 28 16-bit 65 536 = 216 32-bit 4 292 967 296 = 232 (~4 milyar) 64-bit 18 446 744 073 309 551 616 = 264 (~18 milyar milyar)
DEKLARASI VARIABEL 1 2 int a; float nomor_saya; int a, b, c; 1 2 3 Variasi penulisan 1 2 3 int a; int b; int c;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 171819 20 21 22 23 // operasi dengan variabel #include <iostream> using namespace std; int main () { // deklarasi variabel: int a, b; int hasil; // proses: a = 5; b = 2; a = a + 1; hasil = a - b; // cetak hasil: cout << hasil; // berhentikan program: return 0; } 4
INISIALISASI VARIABEL Ketika variabel dideklarasikan, variabel tersebut memiliki nilai yang tidak terbatas hingga variabel tersebut diberikan nilai untuk pertama sekali Tetapi sebuah variabel dapat diberikan nilai saat dideklarasikan, yang disebut dengan inisialisasi variabel
3 CARA INISIALISASI VARIABEL C-like initialization dari bahasa C Format: jenis_penanda = nilai_awal; Contoh: Constructor initialization diperkenalkan C++ Format: jenis_penanda (nilai_awal); 3. Uniform initialization C++ standar 2011 Format: jenis_penanda {nilai_awal}; int x = 0; int x (0); int x {0};
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // Inisialisasi variabel #include <iostream> using namespace std; int main () { int a=5; // nilai awal: 5 int b(3); // nilai awal : 3 int c{2}; // nilai awal : 2 int hasil; // nilai awal tdk ditentukan a = a + b; hasil = a - c; cout << hasil; return 0; } 6
DEDUKSI JENIS: AUTO DAN DECLTYPE Ketika sebuah variabel baru diinisialisasi, compiler dapat menetapkan jenis variabel secara otomatis oleh initializer, contoh: Variabel denda di atas dideklarasikan sebagai jenis auto, jadi nilai yang digunakan adalah jenis lawan yaitu int Variabel yang tidak diinisialisasi dapat juga memakai penggunaan deduction dengan penentu: int tarif_denda = 0; auto denda = tarif_denda; // sama : int denda = tarif_denda; int tarif_denda = 0; decltype (tarif_denda) denda; // sama dengan: int denda;
STRING Tipe dasar menyajikan jenis paling dasar yang ditangani oleh mesin di mana code tersebut dijalankan Tetapi satu kekuatan utama C++ adalah jenis compound di mana jenis dasarnya adalah building block Contoh compound adalah string class, variabel ini dapat menyimpan urutan karakter seperti kata-kata atau kalimat-kalimat Perbedaan pertama dengan data dasar adalah bahwa untuk mendeklarasikan dan menggunakan obyek (variabel) jenis ini, program diharuskan memasukkan header di mana jenis tersebut didefinisikan di dalam pustaka standarnya (header <string>):
CONTOH 1 2 3 4 5 6 7 8 9 10 11 12 // string pertamaku #include <iostream> #include <string> using namespace std; int main () { string stringku; stringku = "Ini adalah string"; cout << stringku; return 0; } Ini adalah string
Seperti contoh sebelumnya, string dapat diinisialisasi dengan literal string yang sah, sama seperti variabel jenis numerik dapat diinisialisasi ke literal numerik yang sah String dapat juga melakukan semua operasi dasar seperti halnya yang dilakukan jenis data dasar string stringku = “Ini adalah string"; string stringku ("Ini adalah string"); string stringku {“Ini adalah string"};
CONTOH 1 // string pertamaku 2 #include <iostream> 3 4 5 6 7 8 9 10 11 12 13 14 // string pertamaku #include <iostream> #include <string> using namespace std; int main () { string stringku; stringku = “Ini adalah konten string saya"; cout << stringku << endl; stringku = “Ini adalah konten string saya yang lainnya"; return 0; }
KETERANGAN Menyisipkan endl (manipulator ends the line), mencetak karakter baris baru String class adalah suatu tipe compound Seperti terlihat pada contoh di atas, tipe compound digunakan dengan cara yang sama seperti tipe dasar: syntax yang sama digunakan untuk mendeklarasikan variabel dan menginisialisasinya
TERIMA KASIH