• Tidak ada hasil yang ditemukan

Pemrograman Dasar C. Minggu 2

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pemrograman Dasar C. Minggu 2"

Copied!
26
0
0

Teks penuh

(1)

Pemrograman Dasar C

Pemrograman Dasar C

Minggu 2

(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

(3)

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:

(4)

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

(5)

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

(6)

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

(7)

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)

(8)

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

(9)

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, &current);

scanf(“ %d %x “, &volts, &current);

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

(10)

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”, &current); scanf(“%d”, &current); /* 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);

}

(11)

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;

(12)

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;

(13)

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)

(14)

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)

(15)

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

(16)

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

(17)

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 + =

(18)

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 );

(19)

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

(20)

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

(21)

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;

(22)

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”, &current); scanf(“%d”, &current); /* 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); }

(23)

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

(24)

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?

(25)

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

(26)

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

Referensi

Dokumen terkait

• Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain...

%8.2f menyatakan panjang medan dari bilangan real yang akan ditampilkan adalah 8 karakter dengan jumlah digit pecahan 2

Sedangkan untuk argumen kedua (baris ke-12) akan diarahkan kepada function kedua (baris ke-7) karena tipe data dari variabel masukan sama dengan parameter formal dari function

Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta

tipe ini didesain untuk menampung data yang ini didesain untuk menampung data yang memenuhi peraturan spesifik dari tipe tsb. memenuhi peraturan spesifik dari

Supardi 10 Argumen input dan argumen output merupakan variabel dummy, artinya bahwa kita dapat memberikan nama berbeda saat fungsi tersebut dipanggila Sebagai contoh,

Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi. Yang dikirimkan ke fungsi adalah alamat letak dari nilai

Menghasilkan nilai decimal pecahan berdekatan dengan argumen pertama ke arah argumen kedua bertipe float... Tipe Hasil