Tipe Data dan Variabel Dosen Pengampu Muhammad Zidny Naf’an, M.Kom Format Pseudocode Lengkap Judul program/algoritma PROGRAM Euclidean Program untuk mencari GCD dari dua buah bilangan bulat positif m dan n (m >= n). GCD dari m dan n adalah bilangan bulat positif terbesar yang habis membagi m dan n Deklarasi: m,n r : integer : integer {bil bulat} {sisa hasil bagi} Deklarasi variable komentar Algoritma read(m,n) {m >= n} while n!= 0 do Algoritma r m MOD n mn nr end while {kondisi selesai pengulangan n=0, maka gcd(m,n) = m} 2 Variabel Perhatikan! variabel X =10 + Y konstanta Berapakah nilai X, jika Y=3? Berapakah nilai X, jika Y=5? Berapakah nilai Y, jika X=15? Variabel Tempat untuk menyimpan data Sifatnya hanya sementara Nilai di dalamnya dapat berubah Konstanta Tempat untuk menyimpan data Sifatnya hanya permanen Nilai di dalamnya tetap Mengapa variabel perlu diberi nama? A A1 A2 A3 B B1 B2 B3 A4 C C1 C2 Syarat penamaan variabel Untuk C++ dan Java, nama variabel bersifat case sensitive. Harus diawali dengan huruf Tidak boleh ada spasi Boleh diikuti dengan huruf/angka/simbol Bukan merupakan keyword dalam sebuah bahasa pemrograman misalkan read, write (pascal), private, protected (java), cout, cin (c++) Jawablah! Manakah yang tepat untuk nama variabel? a) b) c) d) e) f) Bilangan 2013nama_mahasiswa @email Alamat rumah Main Kode_arsip Tipe data Tipe data Tipe data mengacu pada jenis data yang disimpan dalam variabel atau konstanta Setiap tipe data membutuhkan jumlah memori yang berbeda untuk menyimpannya Untuk menentukan jumlah memori yang akan diproses, program harus tahu jenis data apa yang dibutuhkan Berbagai macam tipe data Bilangan bulat Bilangan pecahan Character Bilangan bulat Tipe byte (Pascal) Range (Jangkauan) 0 s.d 255 word (Pascal) unsigned int (C++) 0 s.d 65.535 shortint (Pascal) byte (Java) -128 s.d 127 integer (Pascal) int (C++) short (Java) -32.768 s.d 32.767 longint (Pascal) long (C++) int (Java) -2.147.483.648 s.d 2.147.483.647 unsigned long (C++) 0 s.d 4.294.967.295 Bilangan pecahan (Pascal) Tipe Data Jangkauan Nilai Digit Penting Ukuran Real 2,9x10-39 s/d 1,7x1038 11-12 6 Byte Single 1,5x10-45 s/d 3,4x1038 7-8 4 Byte Double 5,0x10-324 s/d 1,7x10308 15-16 8 Byte Extended 5,0x10-4951 s/d 1,1x104932 19-20 10 Byte Comp 263 s/d 263 –1(-9,2x1018 s/d 9,218) 19-20 8 Byte Bilangan pecahan (C++) Tipe Range (Jangkauan) float 3.4 x 10^-38 s.d 3.4 x 10^38 double 1.7 x 10^-308 s.d 1.7 x 10^308 long double 3.4 x 10^-4932 s.d 3.4 x 10^4932 Bilangan pecahan (Java) Integer length 32 bits Name or type Type range float -2^31 to 2^31-1 64 bits double -2^63 to 2^63-1 Pada prakteknya jangkauan tipe data bisa berbeda dengan yang disebutkan di atas. Cara mengecek jangkauan tipe data silahkan baca detailnya di: http://stackoverflow.com/questions/2053843/m in-and-max-value-of-data-type-in-c Character Tipe data untuk menyimpan data selain numerik Ditunjukkan dengan reserved word “char” Kumpulan karakter disebut string Jawablah! Tuliskan tipe data yang sesuai untuk data-data berikut ini (gunakan bahasa C++) ! Jumlah anak dalam keluarga Gaji pegawai Nama mahasiswa huruf Berat badan Suhu udara Contoh penggunaan tipe data dalam bahasa C++ Tipe data : bilangan bulat Satu variabel int lebar; Lebih dari satu variabel int lebar, tinggi; Konstanta int lebar = 3; 3 lebar; int Contoh penggunaan tipe data dalam bahasa C++ Tipe data : bilangan pecahan Satu variabel float tinggi; Lebih dari satu variabel float lebar, panjang, tinggi; Konstanta float tinggi = 3.5; 3.5 tinggi; float Contoh penggunaan tipe data dalam bahasa C++ Tipe data : character a Satu variabel char kode; Lebih dari satu variabel char kode, huruf, angka; Konstanta char kode = 'a'; [petik satu] char kode[4] = "aaa"; [petik dua] Kode; char Disebut juga String Training TOKI https://training.ia-toki.org/training/curriculums/1/courses/1/sessions/2/problems/29/view OPERATOR Operator Operator simbol yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi. Variable atau Nilai yang dioperasikan disebut dengan operand. 3 + 2 operand operator operand Operator Aritmatika Operator * / % + - Keterangan Perkalian Pembagian Modulus (sisa pembagian) Penjumlahan Pengurangan Contoh 2*3 7 /2 5%4=1 4+5 5–6 Operator Aritmatika • Contoh penggunaan operator aritmatika Operator Penugasan • Operator penugasan yang berbentuk simbol sama dengan ( = ) • berguna untuk memberikan suatu nilai ke suatu variable. Contoh: a = 1; c = 2 + (b = 1); a = b = c = d = e = 1; Operator Penaikan dan Penurunan • Operator penurunan disimbolkan dengan -- dan berguna untuk menurunkan nilai variable sebesar satu • Operator penaikan disimbolkan dengan ++ dan berguna untuk menaikkan nilai variable sebesar satu. Contoh: x++ sama seperti ungkapan x = x + 1. y-- sama seperti ungkapan y = y – 1. • Operator penurunan dan penaikan dapat ditempatkan di depan (pre-) atau di belakang (post-) variable. Operator Penaikan dan Penurunan • Efek dari penempatan operator dapat dilihat pada contoh berikut: a = 7; b = 2; c = b + a++; nilai c adalah 9, bukan 10. Pada contoh tersebut c diisi dengan penjumlahan antara b dan a. Setelah c terisi dengan hasil penjumlahan tersebut, nilai a baru dinaikkan satu, sehingga nilai a sekarang adalah 8. Persamaan c tersebut identik dengan: c = b + a; a = a + 1; Operator Penaikan dan Penurunan • Jika operator penaikan diletakkan di depan operand, maka operand tersebut akan dinaikkan nilainya terlebih dahulu sebelum proses lain dilakukan. Contoh: a = 7; b = 2; c = b + ++a; • persamaan c tersebut identik dengan: a = a + 1; c = b + a; • sehingga nilai c adalah 10. Operator Bitwise • Digunakan untuk keperluan memanipulasi data dalam bentuk bit. Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau char Operator Keterangan Contoh ~ Bitwise NOT ~25 << Geser bit ke kiri 25 << 2 >> Geser bit ke kanan 25 >> 2 & Bitwise AND 25 & 2 ^ Bitwise XOR 25 ^ 2 | Bitwise OR 25 | 2 Operator Bitwise • Contoh Operator Majemuk • Operator ini berguna untuk memendekkan penulisan operasi penugasan, • misalnya x = x + 2 menjadi x += 2 Operator Hubungan • membandingkan hubungan antara dua buah operand (sebuah nilai atau variable). Operator hubungan dalam bahasa C++: Operator Hubungan • Contoh Operator Kondisi • Operator kondisi digunakan untuk memperoleh nilai dari dua kemungkinan, contoh: ungkapan1 ? ungkapan2 : ungkapan3 • Bila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak maka nilainya sama dengan ungkapan3. Operator Kondisi • Contoh: Operator Koma • Operator ini berguna untuk meletakkan dua buah ungkapan pada suatu kaidah yang memerlukan sebuah ungkapan saja. • Contoh penggunaan pada pernyataan perulangan for: for(i=0, j=0; i<10; i++, j--) { ..} Operator Logika • Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi sebuah ungkapan berkondisi. Operator && Keterangan Contoh Logika AND n && m || Logika OR n || m ! Logika NOT !n Operator Logika • Contoh: Latihan di kelas Menghitung luas segitiga Input : alas, tinggi Output : luas Algoritma luas segitiga : Masukkan alas, tinggi Luas alas * tinggi *0.5 Tampilkan luas Tentukanlah tipe data yang tepat untuk alas, tinggi dan luas! Tuliskan dalam bahasa C++ penamaan variabel yang tepat untuk alas, tinggi dan luas! Ubahlah algoritma menghitung luas segitiga ke dalam bahasa C++! Konversi suhu Celcius ke Reamur Tentukanlah tipe data yang tepat untuk r ! Tuliskan dalam bahasa C++ penamaan variabel yang tepat untuk r ! Ubahlah algoritma konversi Celcius ke Reamur ke dalam bahasa C++! Exercise 1. Jika diketahui x adalah variable bertipe integer, dari nilainilai berikut, manakah yang dapat diberikan pada x? a) 10 b) 5.7 c) 40000 Exercise 3. Terdapat dua buah variable A dan B yang bertipe integer. Variable A bernilai 10, dan varible B bernilai 20. Buatlah ALGORITMA dalam bentuk KALIMAT DEKLARATIF dan PSEUDOCODE untuk menukar nilai dua variable tersebut, sehingga A bernilai 20 dan B bernilai 10. 4. Sebuah program untuk menghitung nilai seorang mahasiswa memiliki 5 variable untuk nama mahasiswa, nomor induk mahasiswa, nilai tugas, nilai mid semester, dan nilai ujian akhir semester. Nilai akhir dihitung dengan rumus: (nilai tugas * 20%) + (nilai mid semester * 40%) + (nilai ujian akhir semester * 40%). Buatlah pseudocode kasus tersebut! Exercise 5. Tulislah pseudocode untuk menampilkan jumlah hari, jam, menit, dan detik dari masukan yang berupa lamanya waktu dalam detik. Sebagai contoh, input 100.000 detik akan menghasilkan output 1 hari, 3 jam, 46 menit, 40 detik. Input adalah bilangan bulat bertipe long. Output program adalah banyaknya hari, jam, menit, dan detik dari input tersebut.