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