420 likes | 647 Views
BASIC DATA TYPES, VARIABLES & OPERATORS. Penyajian dan Pengolahan Informasi. Sehari-hari, kita menggunakan abjad-abjad dan angka-angka ketika kita bekerja dengan komputer. Misalnya ketika menulis menggunakan Word atau mengolah angka-angka memakai Excel
E N D
Penyajian dan Pengolahan Informasi • Sehari-hari, kita menggunakan abjad-abjad dan angka-angka ketika kita bekerja dengan komputer. Misalnya ketika menulis menggunakan Word atau mengolah angka-angka memakai Excel • Contoh abjad/angka : ‘a’,’b’,”elektro”,100,255, dsb • Apakah komputer dapat secara langsung bisa mengolah/menyajikan data-data tersebut?? • Jawabnya:Komputer tidak dapat langsung menggunakan abjad/sistem bilangan yang biasa kita gunakan
MENGAPA?? • Komputer digital hanya dapat mengenal dua keadaan, yang setara dengan bilangan biner 0 dan 1 • Setiap simbol dalam abjad perlu disandikan ke dalam sandi(kode) runtun digit biner (bit) dan menggunakan sistem bilangan biner untuk semua komputasi.
Jadi, apakah kita harus selalu menggunakan bilangan biner, ketika mengoperasikan komputer?? • Tentu tidak, karena di komputer sudah terdapat software yang mengkonversi informasi yang kita berikan menjadi bilangan biner • Yang perlu kita tahu sebagai programmer adalah cara komputer menyandikan abjad dan angka dalam bentuk biner
Penyajian Abjad(karakter) Pada Komputer • Himpunan karakter yang digunakan dalam komputer disandikan dengan kode ASCII (American Standard code for Information Interchange) • Apa maksudnya?? karakter-karakter yang digunakan komputer,misalnya : ‘A’ .. ‘Z’, ‘a’ .. ‘z’, ‘0’…’9’,’!’..’%’ dst masing-masing mempunyai kode dalam bentuk bilangan biner, kode-kode yang mewakili karakter-karakter itulah yang disandikan dengan kode ASCII • Misalnya, kode ASCII karakter ‘a’ = …. , karakter ‘0’ = 00110000 • Kode ASCII berukuran 8 bit
Penyajian bilangan bulat tak bertanda (unsigned integer) • Tidak mengenal bilangan negatif atau pecahan • Disandikan dalam bilangan biner • Banyaknya bilangan biner(bit) yang digunakan untuk menyandikan bilangan tersebut, menentukan range(jangkauan) bilangan yang disandikan • Contoh: bilangan 4 bit disandikan dari 0000 – 1111 untuk mewakili bilangan 0 – 15(bilangan basis 16). • Range bilangan unsigned 4 bit = 0 – 24-1 • Range bilangan unsigned n bit = 0 – 2n-1
Penyajian bilangan bertanda(signed) • Terdiri dari bilangan bulat negatif dan positif • Misalnya bilangan 4 bit(basis 16) : ada 16 bilangan anggota maka range bilangan : {-8,-7,…,0,1,..,6,7} • Range : -(basis/2) s/d ((basis/2)-1) • Penentuan kode biner bilangan negatif menggunakan metode komplemen 2 • Kode_biner (n) = kode_biner_unsigned (basis + n), dengan n negatif • Contoh : kode -6 = kode biner unsigned (16 – 6) = kode biner unsigned 10 = 1010 • Range bilangan signed n bit = -(2n-1) s/d (2n-1)-1
Cara mengenali bil positif dan negatif untuk bilangan bertanda • Bilangan nol dan positif: • 0 s/d basis/2 (0 < n < [basis/2]-1 ) • Bilangan negatif • Basis/2 s/d basis – 1 (basis/2 < n < basis – 1)
Signed & Unsigned • Contoh : • Suatu bilangan 16 bit, misalnya 0b1110101001100000 (0xEA60) akan dibaca sebagai bilangan 60000 oleh tipe unsigned, tapi akan dibaca sebagai -5536 oleh tipe signed.
Bilangan heksadesimal (hex) • Sebagai simbol untuk bilangan 4 bit dari 0000 sampai 1111 • Simbol yang digunakan 0 s/d 9 ditambah A s/d F • Masing-masing simbol mewakili satu kombinasi 4 bit
konversi • Contoh • 3010= 111102 = 1E16 • 1010 11012 = AD16 10102=A16 , 11012=D16 • 7F16=0111 11112 716=01112,F16=11112 • Lebih mudah melakukan konversi antara bilangan biner dan hexadecimal • Bilangan hexadecimal biasanya digunakan untuk menyajikan bilangan biner, terutama yang lebih dari 4 bit
Konversi desimal ke biner • Bilangan desimal dikonversi ke biner dengan membagi bilangan tersebut dengan 2 kemudian diambil sisanya • Pembagian dilakukan sampai didapat hasil bagi = 1 • Sisa hasil bagi hanya berupa bilangan 1/0 • Bilangan biner disusun dari sisa yang didapat
Contoh konversi • 9010= ……..2 • 2| 90 |0 90 dibagi 2 = 45 sisa 0 • 2| 45 |1 • 2| 22 |0 • 2| 11 |1 • 2| 5 |1 • 2| 2 |0 • 2| 1 | • 9010= 10110102
Notasi C/C++ • Desimal tulis saja apa adanya • Biner diberi awalan ‘0b’ / ‘0B’ • Contoh :0b11110000, 0b1010 • Hexadecimal diberi awalan ‘0x’ / ‘0X’ • Contoh :0xFF,0x10
Basic Types • Tipe data float, double,dan long double digunakan untuk menyajikan tipe bilangan real, termasuk pecahan • Tipe data char dan int digunakan untuk menyajikan bilangan bulat • Di C, tipe data char juga digunakan untuk menyimpan kode ASCII suatu karakter
Deklarasi Variabel • Nilai suatu variabel bisa diubah didalam program • Variabel harus dideklarasikan sebelum digunakan di program • Untuk memberi tahu program atau fungsi bahwa variabel tersebut akan digunakan • Bentuk umum: type variable_list; Contoh : char a,b;//deklarasi variable a dan b unsigned int jumlah;//deklarasi var jumlah float rerata;//deklarasi var rerata
Literals • Pada suatu program, dimungkinkan mengakses suatu nilai (angka,karakter) secara langsung tanpa melewati suatu variabel, misalnya: a = 5; my_func(100); pi=3.14; ch=‘a’; printf(“hello world”); • Nilai 5, 100, 3.14,‘a’,”hello world” pada contoh di atas adalah literal
Defined constant (#define) • #define adalah suatu preprosesor pengarah • Fungsinya adalah untuk mendefinisikan suatu konstanta yang bisa digunakan di seluruh bagian program • Formatnya : #define identifier value • Contoh : #define phi 3.14 , #define g 10
#define • Biasanya #define ditempatkan pada awal program atau pada file header • Seluruh bagian program bisa mengakses nilai yang sudah di-define tadi, misalnya: • a=phi; F=10*g;//phi dan g sudah terdefinisi • Ingat, phi dan g bukan variabel!! Jadi tidak bisa dipakai seperti ini : g=10;
Inisialisasi variabel • Suatu variable bisa diinisialisasi secara langsung pada saat dideklarasikan, contoh: • int a = 1000; • char x = ‘x’; • float nilai = 123.10; • char hello[12] = “hello world”;
Representasi suatu variabel di memori • Pada saat program berjalan, data-data variabel program akan menempati suatu ruang di memori • Berapa besar ruang di memori yang dipakai dan seperti apa konfigurasi data di memori, tergantung dari tipe datanya
Representasi bilangan unsigned char dan int • Bilangan unsigned char • Bilangan unsigned short int • Konfigurasi akan sama pada bilangan 32 bit, hanya jumlah bitnya yang berbeda
Representasi bilangan signed • Bilangan char • Bilangan short int • Konfigurasi akan sama pada bilangan 32 bit, hanya jumlah bitnya yang berbeda
Bagaimana suatu bilangan negatif disimpan di memori? • Menggunakan teknik komplemen-2(pengantar tentang komplemen-2 ada di PPT ini hal 9) • Komplemen-2 komplemen-1 + 1
Apa itu komplemen-1? • Komplemen-1 suatu data adalah bit-wise negation dari data tersebut • Misalnya : d = 15 = 0b00001111 • Komplemen1(d)= 0b11110000 • Maka komplemen2(d) = 0b11110001 • Jadi -15 disimpan sebagai 0b11110001 di memori
Bagaimana dengan bilangan pecahan atau real? • Bilangan pecahan disimpan di memori dalam bentuk floating point • Untuk membahas floating point, kita awali dengan menyajikan suatu bilangan pecahan dalam bentuk biner
Representasi suatu bilangan pecahan • Representasi desimal : • misal: bilangan -17.25 • Scientific notation: • -17.25 = - 1.725 * 10^1 ^-sign ^- mantissa ^- exponent
Representasi suatu bilangan pecahan • Representasi biner • Besarnya bilangan adalah: • B= …+ b2*22+ b1*21+ b0*20+ b-1*2-1+ b-2*2-2+ … • Misalnya bilangan – 17.25 = -(17 + ¼) = -(17 + 2-2) • Penulisan bilangan binernya : • 17 = 10001 , ¼ = 0.01 • Jadi, -17.25 = - 10001.01
Format floating point • Suatu bilangan pecahan tidak disimpan di memori komputer dalam format representasi binernya • Bilangan tersebut akan disimpan dalam format floating point • Untuk format float 32 bit, skema bilangan tersebut adalah sbb:
Format floating point • Bilangan yang akan disimpan dalam memori disajikan melalui persamaan berikut: • B =(-1)S * 2(E-127) * 1.M • Ket: S bernilai 0(positif) atau 1(negatif) • E dimasukkan ke rumus dalam bentuk desimal • M dimasukkan ke rumus dalam bentuk biner
Contoh konversi • Bilangan B=-17.25 • Konversi ke biner B=-10001.01 • ke biner scientific B=-1.000101 * 24 • Dari bentuk biner scientific tersebut, B bisa ditulis sbb: • B = (-1)1 * 2(131-127) * 1.000101 • Jadi didapat sbb: • S = 1, E = 131, M =000101
Penyimpanan ke memori • S = 1 • E = 131 = 10000011 • M = 00010100000000000000000 • 17 buah 0 ditambahkan sehingga jumlah bit total pada M adalah 23 bit • bentuk yang tersimpan di memori adalah: • 110000011 00010100000000000000000 • ket:hijau : S, biru : E, merah : M
Operator • Operator Aritmatika • Increment & Decrement • Operator Logika • Operator Relasional
Operator increment & decrement • Increment : menambah variabel tersebut dengan 1 ( x = x + 1) • Decrement : mengurangi variabel tersebut dengan 1 (x = x -1)
Operator relasional • Digunakan untuk membandingkan 2 variabel atau variable dengan literal • Output operasi relasional adalah kondisi true atau false (1 atau 0)
Operator Logical • Digunakan untuk menghubungkan 2 operasi relasional atau mengoperasikan bilangan bool • Inputnya berupa kondisi true/false(1/0) outputnya juga kondisi true/false
Operator Bit-wise • Masukan operator bit-wise ini adalah suatu bilangan/karakter • Operator ini mengoperasikan bit demi bit yang ada di karakter atau bilangan itu
Operator lainnya • C masih punya beberapa operator lainnya • Selengkapnya baca buku teks
casting • Merupakan konversi dari suatu tipe ke tipe yang lain • Notasi : • variabel2=(tipe)variabel1; //c dan c++ • Variabel2=tipe(variabel1); //khusus c++ • Contoh: • float pi=3.14; • int a; • a = (int)pi; //ini disebut tipe casting • //jadi, sekarang berapa nilai a??