Pemrograman Dasar C Minggu 2
Topik Bahasan
Stdio library – – –
Output dalam C: printf Input dalam C: scanf Escape sequence
Assignment Statement Operator Arithmatika Urutan dan Asosiasi
Input dan Output dalam C
Menyediakan output: – Sebelum meminta input kita harus mengatakan pada user apa yang harus mereka kerjakan! – C mempunyai kumpulan library dari banyak fungsi-fungsi berguna yang sudah ditulis – salah satunya adalah stdio. – Library stdio mempunyai fungsi printf, dengan sintaks:
printf(“string kontrol”, argumen lain);
Menyediakan Output (cont’d)
printf(“string kontrol”, argumen lain) String kontrol terdiri dari % dan beberapa karakter – Karakter Konversi c d ld u lu s f e
Konversi ke karakter tunggal integer desimal integer tanpa tanda string nilai float float bentuk eksponen
Menyediakan Output (cont’d) – Lebar digit (opsi) dapat ditambahkan, seperti ‘%4d’ berarti cetak sebuah desimal dengan paling tidak 4 ruang karakter – Yang lain keluar seperti apa adanya
Argumen lain adalah nama dari variabel dimana data dari tampilan berasal Bisa ditambahkan escape sequence pada string kontrol
Escape Sequence
Contoh escape sequence – – – – – –
“\n” “\t” “\”” “\’” “\\” dll
garis baru tab baru quote dobel quote singel garis miring
Contoh Output Misalnya ada my_reslt = 24, maka printf(“result = %3d A”, my_reslt); Tampilan: result = 24 A (lihat spacenya)
Memperoleh Input
Dari stdio gunakan fungsi scanf, sintaks scanf(“string kontrol”, argumen lain);
String kontrol adalah ‘%’ karakter dan konversi karakter – Karakter Konversi c d ld u lu x f lf Lf
Konversi ke karakter tunggal integer desimal heksadesimal nilai float
Memperoleh Input (cont’d)
Argumen lain adalah alamat dengan ‘&’ dari variabel dimana scanf akan menaruh input. – &volts berarti ditaruh di variabel bernama volts
Contoh: scanf(“ %d %x “, &volts, ¤t); Mengharapkan user untuk memasukkan sebuah nilai integer desimal kedalam variabel integer volts diikuti dengan sebuah nilai heksadesimal untuk disimpan di variable integer current dll.
#include <stdio.h> int main (void) { /* segmen deklarasi */ int power, volts = 0, current = 0; /* mendapatkan input */ printf(“\nMasukkan nilai Voltase dalam 0 – 100 volt – “); scanf(“%d”, &volts); printf(“\nMasukkan nilai Arus dalam 0 – 10 Ampere – “); scanf(“%d”, ¤t);
Studi Kasus sampai Sekarang
/* menghitung power */ /* menampilkan hasil */ printf (“\nPower yng dihasilkan dari voltase %d volt dan arus %d Amp adalah = %4d Watt”, volts, current, power); return (0); }
Statemen Assignment
Statement dalam C menspesifikasi bahwa aksi komputer tertentu harus dilakukan, dan biasanya diakhiri dengan tanda titik-koma (;) Contoh: Operator Assignment ( = ) Area = Width * Length; Berarti variabel Area telah diberi assignment dari hasil perkalian Width dengan Length Tidak sama dengan fungsi arithmatika =, contohnya Num_Staff = Num_Staff + 1; » Hanya benar pada statement assignment » Diterjemahkan: evaluasi sebelah kanan dan simpan hasilnya pada variabel sebelah kiri
Ekspresi Dibuat dari operator arithmatika (seperti +, *, - dll) dan operan yaitu data yang harus dipakai operator (variabel, konstan, dll) Contoh: resis = volts/current;
Operator Arithmatika
Operator Biner (dua operan) (x = 9, y = 6) + Penambahan z = x + y; 15 - Pengurangan z = x – y; 3 * Perkalian z = x * y; 54 / Pembagian z = x / y; 1 (utk int) % Modulo z = x % y; 3 (sisa) Operator Tunggal (satu operan) -x Negasi z = -x; -9 +x Positif(?) z = +x; +9
Operator Arithmatika
Postfix, operator mengubah variabel setelah assignment x++ post increment z = x++; z = 9 (Arti: x = x + 1) & setelah x = 10 x-post decrement z = x--; z =9 (Arti: x = x – 1) & setelah x = 8
Operator Arithmatika
Prefiks: operator mengubah variabel sebelum assignment ++x pre increment z = ++x; z = 10 & setelah x = 10 --x =8
pre decrement z = --x; & setelah x = 8
z
Peringatan!
Ingat bahwa ukuran berpengaruh, contoh: char x = 25, y = 50, z; z = x * y; Berapakah nilai z? Jawab: z = -30 Bagaimana dengan pembagian dengan nol int x = 10, y = 0, z; z = x / y; Berapakah nilai z? Jawab: Pembagian dengan nol – divide error atau run time error
Assignment Statement
Statemen compound assignment – untuk menghemat penulisan += x += y; sama dgn x = x + y; -= x -= y; sama dgn x = x – y; x w= *= x *= y; sama dgny + z x = x * y; /= x /= y; sama dgn x = x / y;
Menggunakan kurung untuk menentukan urutan evaluasi: x = 8, y = 3, z = 4 – –
Apa hasil w = x/y + z; Apakah w = x y+z
? atau
x+z y
Urutan Evaluasi
Isi didalam kurung akan dievaluasi terlebih dahulu. Pastikan pemisahan menggunakan kurung w = x / ( y + z );
Pertanyaan?: q = ( ( x / 4 ) + y ) / ( w * z );
Urutan dan Asosiasi
Perhatikan statemen kompleks berikut z = ++x * z + y / v; bagaimana mengevaluasinya?
Aturan urutan menentukan urutan berbagai macam operator: Pertama Kedua Ketiga Keempat Kelima
Kurung didahulukan Operator Tunggal Sifat Perkalian Penambahan Assignment
-x, ++x, x– dll *, /, % +, =, +=, -= dll
Urutan dan Asosiasi
Tapi bagaimana banyak operator dari tipe yang sama? z = x * y / z * y / v; Hukum Asosiasi berlaku: » Assignment tunggal atau compound:
Kanan ke kiri
» Kurung, sifat perkalian dan tambahan:
Kiri ke kanan
Hindarkan ekspresi kompleks, mudah jadi salah – Gunakan kurung atau pisahkan dalam beberapa tahap
Contoh
Misalnya x = 6, z = 4, y = 9, v = 3 Hitunglah (petunjuk: urutan) z = ++x * z + y / v; z = ++6 * 4 + 9 / 3;
Jawab z = 31
Hitunglah (petunjuk: asosiasi) z = x * y/z * y / v; z = 6 * 9/4 * 9 / 3; Jawab z = 39
#include <stdio.h> int main (void) { /* segmen deklarasi */ int power, volts = 0, current = 0; /* mendapatkan input */ printf(“\nMasukkan nilai Voltase dalam 0 – 100 volt – “); scanf(“%d”, &volts); printf(“\nMasukkan nilai Arus dalam 0 – 10 Ampere – “); scanf(“%d”, ¤t);
Studi Kasus: Program Komplet
/* menghitung power */ power = volts * current; /* menampilkan hasil */ printf (“\nPower yng dihasilkan dari voltase %d volt dan arus %d Amp adalah = %4d Watt”, volts, current, power); return (0); }
Menciptakan File Executable File teks (.c) Pre-prosesor: “Compile” Kompilasi Linking (make) (Library dll) File executable (yg bisa di-run)
Testing dan Verifikasi
Apakah program melakukan apa yang seharusnya dilakukan? Apakah anda tahu apa yang seharusnya dilakukan program? – (pentingnya secara seksama mendefinisikan spesifikasi) Apakah bekerja untuk semua jenis input dan semua kemungkinan pilihan? – Mungkin banyak, tidak mungkin mengetest keseluruhan? – Tes pada kondisi ekstrim dari kisaran? – Cek dengan kalkulator atau tangan?
Testing dan Verifikasi
Pembuktian – membutuhkan spesialisasi? – Pesawat terbang – keamanan kritis – system doble atau triple – Militer – “Z” bahasa spesifikasi formal – Pabrik kimia / anjungan lepas pantai – Bagaimana dengan kesalahan pada compiler?
Bagi dan kuasai : testing sedikit demi sedikit – Tes bagian kecil sendiri pada waktu mengembangkannya. Selesaikan saat anda mengerjakannya – Tes keseluruhan setelah integrasi dari semua bagian
Kesimpulan
Untuk I/O gunakan fungsi ‘stdio’ printf dan scanf Operator assignment “=“ berarti “berikan kepada…” tidak sama dengan ‘sama dengan’ Operasi Arithmatika: – Biner +, -, *, /, % – Tunggal -x, ++x, --x, x++, x— – Compound += -= /= *=
Waspadai overflow dan divide by zero Untuk menentukan urutan evaluasi gunakan: – Aturan urutan dan asosiasi – Kurung membuat lebih sederhana