Pemrogramman Terstruktur Literal, Variabel & Konstanta Teknik Informatika Universitas Muhammadiyah Malang 2011
Tujuan Instruksional Setelah perkuliahan selesai diharapkan : Mampu memahami tentang literal, variabel dan konstanta. Mampu memahami bentuk perintah pembuatan variabel dan konstanta. Mengetahui aturan penamaan (identifier) Memahami tentang tipe data dan jenisnya Mengetahui perintah output tiap tipe data Memahami tentang type casting
Topik Variabel Konstanta Aturan penamaan Tipe data Perintah output Literal Operator matematik Type casting
Kerangka Program C Instruksi preprosesor Definisi Konstanta Prototype fungsi Variabel Fungsi-Fungsi
Pendahuluan Agar program lebih dinamis dan lebih mudah dikelola dibutuhkan adanya tempat penyimpanan. Tempat penyimpanan ini bisa berupa variabel maupun konstanta.
Variabel Adalah tempat untuk menyimpan nilai tertentu yang diberikan padanya dimana nilai yang tersimpan dapat diganti dengan nilai yang lain.
Konstanta Adalah tempat penyimpanan yang hanya bisa diisi nilai sekali saja selama program berjalan. Tujuan dibuatnya konstanta adalah agar program lebih mudah dibaca dan dimengerti. Selain itu akan menjaga kekonsistenan dalam program.
Pertanyaan Bagaimana cara membuat variabel maupun konstanta????
Membuat variabel
Langkah Pembuatan Variabel Ada 2 langkah yang harus dilakukan untuk membuat sebuah variabel : deklarasi Inisialisasi (pemberian nilai)
tipe_data nama_variabel; (1) Deklarasi Deklarasi adalah suatu proses untuk menentukan tipe data apa yang hendak diberlakukan pada suatu variabel. Bentuk deklarasi variabel : (antara tipe data dengan nama variabel dipisahkan dengan spasi). tipe_data nama_variabel;
Tujuan Deklarasi Variabel Memberitahukan compiler mengenai : Nama semua variabel yang digunakan dalam program Jenis informasi yang akan disimpan di tiap var. Bagaimana informasi tsb disimpan di memori
Contoh deklarasi variabel int x; variabel x bertipe int int nomor; variabel nomor bertipe int int angka; variabel angka bertipe int Tipe data Nama variabel Untuk menampilkan variabel dengan tipe data int ke layar menggunakan perintan %i (simbol persen diikuti huruf i)
Contoh program #include<stdio.h> void main() { int x=10; printf("%i", x); } Output :
Pertanyaan Tipe data apa saja yang bisa digunakan??? Apakah ada aturan penamaan variabel???
Tipe Data Tipe Data berhubungan dengan range (batasan) nilai yang dapat disimpan dalam variabel tersebut. Digunakan untuk mendeklarasikan variabel sebelum variabel tsb digunakan. Range ini menunjukkan batasan terendah dan tertinggi yang dapat disimpan pada suatu tipe data secara benar.
Tipe Data Tipe data pada C ada 5 : Int (bilangan bulat) Long (bilangan bulat) Float (bilangan pecahan) Double (bilangan pecahan) Char (karakter)
Range Tipe Data Tipe Data Range char -128 s/d 127 int -32,768 s/d 32,767 (bisa berbeda pada compiler yang berbeda) long -2,147,483,648 s/d 2,147,483,647 float -3.4x1038 s/d -3.4x10-38 dan 3.4x10-38 s/d 3.4x1038 double -1.7x10308 s/d -1.7x10-308 dan 31.7x10-308 s/d 1.7x10308 Tipe data untuk merepresentasikan bilangan bulat : char, int dan long. Tipe data untuk merepresentasikan bilangan pecahan : float dan double.
Range Tipe Data char Memiliki Range nilai antara -128 s/d 127. Jika nilai yang disimpan pada variabel bertipe char melebihi range tersebut maka akan terjadi ketidak-sesuaian dengan data yang ingin disimpan dengan data yang benar-benar disimpan.
Range Tipe Data float Tipe bilangan float atau dobel tidak dapat menyimpan angka nol meskipun nilai negatif terbesar (-3.4x10-38 ) atau nilai positif terkecil (3.4x10-38) sudah mempunyai nilai sangat kecil atau sama dengan nol.
Range Tipe Data (Bilangan Pecahan) Pada C semua bilangan pecahan akan disimpan dalam bentuk eksponen (10 pangkat) Misal : Akan disimpan bilangan 123,456,789 (tanda koma digunakan sebagai pemisah ribuan). Diubah dalam bentuk eksponen menjadi : 1.23456789x108. Angka 1.23456789 : disebut sebagai mantissa (derajat ketelitian). Angka 8 : disebut sebagai eksponen atau pangkat.
Range Tipe Data (Bilangan Pecahan) Double mampu menyimpan lebih banyak digit mantissa. Float hanya mampu menyimpan sekitar 7 digit pada mantissa. Angka 1.23456789 akan tersimpan sebagai 1.234568 (dibulatkan sebanyak jumlah digit mantissa yang dapat disimpan). Sehingga angka 1.23456789x108 akan tersimpan sebagai 1.234568x108 Jika nilai tersebut hendak diproses kembali akan menjadi 123,456,800.
Tips & trik Pemisah desimal yang dipakai C adalah tanda titik dan bukan tanda koma. Contoh : 1,23 harusnya ditulis 1.23 Berhati-hatilah dalam melakukan proses perhitungan matematika untuk tipe data pecahan, terutama untuk data yang cukup besar.
Tipe Data Unsigned Tipe data tak bertanda adalah tipe data yang hanya dapat mereprentasikan bilangan positif. Dengan menambahkan kata kunci “unsigned” terhadap tipe data bilangan bulat (char, int, long). Akibatnya, range pada bilangan positif akan menjadi dua kali lebih besar.
Range Tipe Data Unsigned unsigned char 0 - 255 unsigned int 0 – 65,535 unsigned long 0 – 4,294,967,295
Aturan Penamaan Penamaan (identifier) dapat diberikan pada variabel, konstanta maupun fungsi. Kegunaan : untuk membedakan variabel/konstanta/fungsi yang satu dengan yang lain. Penulisannya harus mengikuti aturan yang telah ditetapkan oleh Bahasa C.
Aturan Penamaan (identifier) : Hanya terdiri dari huruf, angka, dan garis bawah. Tidak boleh diawali dengan angka. Tidak menggunakan keyword (istilah yang telah digunakan pada Bahasa C). Case-sensitif (nama yang diawali dengan huruf besar akan dianggap berbeda dengan nama yang diawali dengan huruf kecil). Panjang nama 32 karakter. Jika lebih dari itu sisanya akan diabaikan. Tidak boleh menggunakan spasi
Keyword (kata kunci) Keyword adalah kata-kata yang hanya bisa digunakan oleh C dan tidak bisa digunakan oleh programmer. Dengan editor khusus, keyword diberikan warna tertentu.
Keywords/Reserved word auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
Contoh Penamaan Variabel/Konstanta Penamaan berikut benar : _diskon harga_5_buku _18_samurai TARIF Penamaan berikut salah : printf (menggunakan keyword) 2. 7_keajaiban_dunia (diawali angka) 3. Biaya-kuliah (menggunakan simbol) 4. Total pajak (ada spasi)
Contoh Penamaan (Case-sensitif) nilai NILAI Nilai NiLai NILai *kelima nama diatas berbeda
Contoh Penamaan (panjang maks 32 karakter) nilai_siswa_yang_mengikuti_ujian_ke_satu nilai_siswa_yang_mengikuti_ujian_ke_dua nilai_siswa_yang_mengikuti_ujian_ke_tiga nilai_siswa_yang_mengikuti_ujian_ke_empat *32 karakter = nilai_siswa_yang_mengikuti_ujian
Tips Usahakan membuat nama yang baik dan sesuai dengan tujuan yang ingin dicapai, sehingga program yang dibuat dapat dimengerti, dipelihara dan dikembangkan dengan mudah.
Deklarasi variabel Jika ada lebih dari satu variabel memiliki tipe data yang sama maka dapat dideklarasi bersama dengan memberi tanda koma sebagai pemisah antara nama variabel satu dengan yang lain. Contoh : double a,b,z; variabel a,b,z bertipe double
Deklarasi variabel Error!!!!! Semua variabel harus dideklarasikan dan hanya bisa dideklarasikan sebanyak satu kali saja. Jika tidak, compiler akan memberikan pesan error. Contoh : int x; terdapat variabel x bertipe int unsigned char n; int a,b,x; terdapat variabel x bertipe int Error!!!!!
Soal-soal Latihan Manakah dari penamaan berikut ini yang salah? Berikan alasan. 1nama total-biaya nomor satu 1 harga&satuan&produksi ^phi
Latihan 2. Manakah dari deklarasi variabel berikut yang salah. Berikan alasan : int x1234567; char init; double count; long 12tahun; int tanggal lahir; char main;
(2) Inisialisasi variabel Inisialisasi adalah pemberian nilai pada variabel. Proses ini dapat dilakukan setelah variabel dideklarasikan. Untuk memberikan nilai digunakan tanda = (sama dengan). Kemudian nilai yang akan diisikan ke variabel diletakkan disebelah kanan tanda “sama dengan” tersebut.
Pengisian Nilai pada Variabel Contoh : Mengisikan angka 100 kedalam variabel x bertipe int, ditulis : int x; //deklarasi x=100; //inisialisasi Bukannya : 100 = x; //kesalahan inisialisasi (sebagaimana perintah printf dan semua perintah C yang lain, baik itu deklarasi maupun pemberian nilai variabel harus diakhiri dengan tanda ; (titik koma));
Tugas Deklarasikan variabel sesuai dengan spesifikasi dibawah ini : 2. Tampikan isi tiap variabel tersebut ke layar. Nama Variabel Tipe Data Inisialisasi init_nama ............. ‘Z’ nomor 100000 nilai 90.8 jenis_kelamin Char ........... Grade Double ............
membuat konstanta
Konstanta Pemberian nilai dilakukan ketika konstanta dideklarasikan. Pembuatan konstanta hampir sama dengan pembuatan variabel. Perbedaannya terletak pada pemberian kata kunci const diawal pembuatan konstanta. Contoh : pembuatan konstanta dengan nama PI bertipe float. const float PI = 3.14;
Deklarasi Konstanta Selain menggunakan keyword const, juga dapat menggunakan preprocessor define. Syntax : #define <nama> <nilai> Contoh : #define PI 3.14
Konstanta (lebih mudah dibaca & dimengerti) Versi 1 double beli = 1000000; double hasil = 0.1 * beli; Versi 2 const double ppn = 0.1; double hasil = ppn * beli;
Konstanta (menjaga konsistensi) Misalkan nilai PI. Tanpa menggunakan konstanta mungkin akan ditulis ekspresi : double luas = 3.1428571428 * jari2 * jari2; Tapi mungkin pada lokasi lain tidak tertutup kemungkinan untuk menuliskan ekspresi sbb : double keliling = 2 * 3.14 * jari2; Harusnya : const double PI = 3.1428571428; double luas = PI * jari2 * jari2; double keliling = 2 * PI * jari2;
Literal Literal adalah sebuah ekspresi berupa angka maupun bentuk data lain yang ditulis pada program dan bernilai tetap. Macam-macam literal : Literal Integer Literal Karakter Literal Pecahan
Literal Integer Konstanta numerik : 1776, -273, +456(sama saja dengan 456). Jika tidak ditulis apapun, otomatis akan ditulis dalam bentuk int (unsigned int). Dalam bentuk heksadesimal (bilangan berbasis 16) diawali 0x atau 0X (angka nol diikuti dengan huruf x) sebelum angka. Contoh : 0xb (desimalnya 11) Dalam bentuk oktal (bilangan berbasis 8) diawali 0 (angka nol) sebelum angka. Contoh : 012 (desimalnya 10)
Literal Pecahan Ada 2 bentuk : Kumpulan angka 0..9 yang mengandung satu pemisah, contoh : 3.14, 0.25, .1 Kumpulan angka 0..9 yang dapat mengandung satu pemisah dan diikuti oleh tanda e atau E dan sebuah eksponen, contoh : 1.0e5, 314E-3, 2.59e+7
Literal Karakter Dituliskan di antara tanda petik tunggal (‘), contoh : ‘a’, ‘$’ Karakter backslash diikuti karakter khusus disebut dengan Escape sequence . Karakter backslash diikuti bilangan oktal. contoh : ‘\001’ Karakter backslash diikuti karakter ‘x’ dan bilangan heksadesimal (0..9 dan A..F). contoh : ‘\xA0’
Escape Sequence Escape sequence : karakter yang diawali dengan backslash (\) diikuti dengan perintah tertentu Escape Sequence Fungsi \b Menghapus satu karakter yang ada didepan escape-sequence \n ganti baris (Pindah kekolom paling awal di baris berikutnya) \r Pindah kekolom paling awal di baris yang sama \t Pindah sejauh 1 tabulasi. \” Mencetak tanda petik ganda \\ Mencetak tanda backslash (\)
Menampilkan Isi Variabel atau Konstanta Tipe data Tanda Bentuk Tampilan int i atau d Bilangan bulat long li atau ld char c Karakter float f Bilangan desimal dengan 6 angka dibelakang titik e Bentuk eksponen dengan 1 angka didepan huruf e dan 6 angka di belakang huruf e g Bilangan desimal yang maksimum terdiri dari 6 angka. Bila jumlah angka lebih dari 6, maka akan ditampilkan dalam bentuk eksponen dengan 5 angka dibelakang titik. double lf Sama dengan penanda format f le Sama dengan penanda format e lg Sama dengan penanda format g string s Kumpulan karakter
Tips & Trik Posisi terbaik dari deklarasi variabel terletak pada satu atau beberapa baris sebelum variabel tersebut digunakan. Hal ini akan meningkatkan efek lokalitas dari variabel tersebut. Sebaliknya, deklarasi dan inisialisasi konstanta sebaiknya terletak pada bagian paling awal dari program. Hal ini akan memudahkan pencarian konstanta yang digunakan dalam program bila pada suatu saat nilainya perlu diubah.
Penulisan Ekspresi Matematika Operasi Matematik Operator Penjumlahan + Pengurangan - Perkalian * Pembagian / Pencarian sisa hasil bagi % Operator % biasa disebut sebagai operator modulus atau mod. Fungsinya adalah untuk mendapatkan sisa pembagian dari bilangan bulat. contoh : 10%3 =1 (karena 10/3=3, dan sisanya = 1) 3%10 = 3 (karena 3/10=0, dan sisanya = 3)
Tips & Trik Operator ‘/’ akan memberikan hasil yang berbeda bila : Jika angka atau variabel yang terlibat adalah bilangan bulat. Maka hasilnya adalah bilangan bulat (bagian desimalnya dihilangkan). Jika angka atau variabel yang merupakan bilangan pecahan. Maka hasilnya adalah bilangan pecahan. Contoh : 10/3 hasilnya adalah 3 1/2 hasilnya adalah 0 10.0/3 atau 10/3.0 hasilnya adalah 3.33333 1.0/2 atau 1/2.0 hasilnya adalah 0.5
Prioritas Operator Urutan Operator Keterangan 1 () Kurung buka-tutup 2 *, /, % Perkalian, pembagian, modulus 3 +,- Penambahan, pengurangan Jika ada operator yang berada pada satu level, maka urutan pengerjaan akan dilakukan dari yang paling kiri ke kanan.
Contoh Ekspresi Matematika 5+2*3 (5+2)*3 10*3+5%2 10%3*2 10%(3*2) Berapa hasilnya????
Fungsi Matematika Beberapa operasi matematika yang tidak dapat dikerjakan dengan menggunakan operator matematik dapat dikerjakan dengan menggunakan fungsi tertentu yang ada pada C. Header dari fungsi matematika tersebut ada dalam file <math.h>
Fungsi pangkat (pow) pow berasal dari kata power yang berarti ‘pangkat’. Tujuan : untuk memangkatkan sebuauh bilangan dengan bilangan yang lain. Ekspresi matematik : x=ab Penulisan perintah : x=pow(a,b);
Fungsi akar pangkat 2 (sqrt) Sqrt dari “square root” yang artinya akar pangkat 2. Tujuan : untuk mencari akar pangkat dua dari sebuah bilangan. Ekspresi matematik : x=√a Penulisan perintah : x=sqrt(a);
Perintah absolut (abs) “abs” dari kata absolut yang berarti bilangan mutlak. Tujuan : untuk mencari nilai mutlak dari sebuah bilangan. Ekspresi matematik : x = |a| Penulisan perintah : x=abs(a); untuk tipe long menggunakan perintah : labs(). untuk tipe float/double menggunakan perintah : fabs().
Type Casting Adalah pengubahan tipe data. Penulisan : (tipedata) variabel tipedata: adalah tipedata tujuan variabel : variabel yang akan diubah Contoh : int total_nilai; (float)total_nilai; Akan mengakibatkan data dari variabel total_nilai yang sebelumnya int berubah menjadi float.
Kenapa perlu type casting? Contoh kasus : int total_nilai=805; int jumlah_siswa=10; float rata_rata=total_nilai/jumlah_siswa; Jika diharapkan output 80.5???? Solusi : float rata_rata=(float)total_nilai/jumlah_siswa;
Komentar pada Program Digunakan untuk keperluan dokumentasi Diawali dengan tanda “/*” dan diakhiri dengan tanda “*/” Untuk komentar satu baris : “//”
Contoh Komentar //penggunaan directive #include <stdio.h> void main(){ /*mencetak ke layar*/ printf(“Hello World”); }
Tugas X 3a+4b mod 7 – c |a+b|/c x
Daftar Pustaka Budi Hartanto, “Pembuatan Program C”, Penerbit Andi, 2004 Jogiyanto H., “Konsep Dasar Pemrograman Bahasa C”, Penerbit Andi, 2003