You are on page 1of 38

PEMROGRAMAN C

FTI – UKRIDA
Marcel
(Pertemuan 1)
Cakupan Pembahasan

• Pengembangan dari bahasa C


• Pengantar bahasa C
• Struktur bahasa C
• Variabel / Identifier
• Tipe data
• Operator
Pengantar
• Pengembangan dari bahasa C
• Bahasa pemrograman tingkat menengah
• Terstruktur → dapat terdiri dari beberapa fungsi
• Portable → dapat berjalan di berbagai OS
• Mendukung OOP (Object Oriented Programming)
• Mendukung IDE (Integrated Development
Environment) → editor, compiler, debugger,
linker, executor
• Induk dari bahasa pemrograman java & C#
Struktur

Minimal memiliki 1 fungsi, yaitu main():


• Fungsi yang pertama kali dipanggil saat program
dijalankan
• Sebagai sub-unit yang mengontrol fungsi-fungsi
lainnya
Struktur

#include <iostream.h> Preprocessor


Directive

void main()
{ Fungsi
cout << "Pemrograman C "; main

}
Struktur
<Preprocessor directive>

Deklarasi Global

void main() {
……
}

Fungsi n() {
……
}
Struktur
• Preprocessor Directive, bagian dimana kita:
– Mendeklarasikan file header
– Mendeklarasikan konstanta
– Mendeklarasikan fungsi makro tertentu
• Deklarasi Global, bagian dimana kita:
– Mendeklarasikan variabel yang dapat diakses dari
seluruh fungsi yang ada
• Fungsi Main, bagian dimana kita:
– Bagian utama program
– Dipanggil saat program pertama kali dijalankan
Statement
• Fungsi dapat terdiri dari satu atau beberapa
statement

• Statement adalah suatu baris instruksi atau


perintah tertentu
Contoh:
……
cout << "Pemrograman C";
……
Statement
Ada 3 macam statement:
• Statement Kosong
– Hanya berisi ;
– Tidakmengerjakan apa-apa

• Statement Sederhana
– Hanya 1 baris perintah
– Contoh: assignment, input / output

• Statement gabungan
– Berupa 1 blok yang berisi lebih dari 1 perintah
– Contohnya : statement block, if statement, switch statement, for
loop, while-do loop, do-while loop
File Header
• Formatnya : [namafile.h]
• Ada 2 macam penulisan
– Diapit tanda < dan >
• Contoh : #include <stdio.h>, digunakan bila
mengakses file header dari library standar
– Diapit tanda “ “
• Contoh : #include “tugas.h”, digunakan bila
mengakses file header tugas.h yang ada di
direktori kerja
Deklarasi Konstanta

• Formatnya : #define <nama variabel> <nilai>


• Contoh :
#define pi 3.14
#define nilaimax 100
• Ingat, pada bagian preprocessor directive ini
setiap barisnya tidak diakhiri dengan tanda titik
koma (;)
Variabel / Identifier
• Tidak boleh diawali angka. Cth: 2semester
• Tanda '-' tidak diperkenankan. Cth: nama-
barang
• Simbol # tidak boleh digunakan. Cth: #brg
• Tidak boleh mengandung spasi. Cth: nama
barang
• Case sensitive
• Maksimal 32 karakter
• Tidak boleh sama dengan reserved keywords
atau nama fungsi yang sudah ada
Tipe Data (Integer)

• Bilangan Bulat
• Rangenya : -32768 sampai 32767 (16 bit)
• Deklarasinya :
int a;
• Untukmemberi nilai :
a = 1000;
• Contoh operasi :
a = a + 1000; //berapa nilai a sekarang ?
Tipe Data (Float & Double)
• Bilangan real (pecahan, floating point)
• Float
– Nilainya antara 1 E -36 sampai 1 E 36
– Presisi 7 digit
– 32 bit (4 byte)
• Double
– Nilainya antara 1 E -303 sampai 1 E 303
– Presisi 13 digit
– 64 bit (8 byte)
Tipe Data (Float & Double)

• Deklarasinya :
– float dataku;
– double luaskubus;
• Untukmemberi nilai :
– dataku = 3.245;
– luaskubus = 4.56789665;
Tipe Data (Character)
• Karakter (ASCII)
• 1 byte (255 macam karakter)
• Deklarasi :
– char nilai;
• Pemberian nilai :
– nilai = ‘A’;
– Ingat, untuk char menggunakan tanda petik
tunggal, sedangkan string menggunakan tanda
petik ganda
Tipe Data (Character)

• Bahasa C tidakmemiliki tipe data string,


tapi merupakan array dari karakter (array
of char)
• Deklarasi string :
– char namakelas[50] = “FTI”;
– Menggunakan tanda petik ganda (“)
• Akan dibahas lebih lanjut di bagian Array
Operator Aritmatika

• Penambahan (+)
• Perkalian (*)
• Pembagian (/)
• Pengurangan (-)
• Modulus (%)
• Operator Modulus tidak dapat dioperasikan ke
tipe data float atau double
Operator Relasional

• > Lebih dari


• < Kurang dari
• >= Lebih dari atau sama dengan
• <= Kurang dari atau sama dengan
• == Sama dengan
• != Tidak sama dengan
Operator Logical

• && (AND)
• || (OR)
• Operator && lebih tinggi derajatnya dibanding
operator ||
Increment & Decrement

• Operator untukmenaikkan dan menurunkan nilai


• ++ (Increment)
• -- (Decrement)
• Apa bedanya n++ dan ++n ?
• n++ baru mengalami increment setelah variabel
n digunakan
Bitwise Operator

• Operator dalam bilangan biner


• & (AND)
• | (OR)
• ^ (XOR)
• << (left shift)
• >> (right shift)
• ~ (NOT / complement)
• Guna: untuk mengakses bit secara individual
Bitwise Operator <<
• Efek: seperti perkalian dengan bilangan 2
• Contoh:
#include <iostream.h>
void main() {
unsigned int x = 93;
cout << "Nilai x semula = " << x << ‘\n’;
x = x << 1; // Geser ke kiri 1 bit
cout << "Nilai x kini = " << x << ‘\n’;
}
Bitwise Operator <<
• Hasil program:
– Nilai x semula : 93
– Nilai x kini : 186
• Penjelasan:
– Geser ke kiri 1 bit
– 0000000001011101 = 93
– 0000000010111010 = 186
– Dibagian kanan selalu disisipi bit 0 sebanyak bit yang
digeser
Bitwise Operator >>
• Efek: seperti pembagian dengan bilangan 2
• Contoh:
#include <iostream.h>
void main() {
unsigned int x = 93;
cout << "Nilai x semula = " << x << ‘\n’;
x = x >> 1; // Geser ke kanan 1 bit
cout << "Nilai x kini = " << x << ‘\n’;
}
Bitwise Operator >>
• Hasil program:
– Nilai x semula : 93
– Nilai x kini : 46
• Penjelasan:
– Geser ke kanan 1 bit
– 0000000001011101 = 93
– 0000000000101110 = 46
– Dibagian kiri selalu disisipi bit 0 sebanyak bit yang
digeser
Bitwise Operator |, &, ^
Bitwise Operator |, &, ^
#include <iostream.h>

void main() {
unsigned int nilai1 = 81;
unsigned int nilai2 = 99;
unsigned int a, b, c;
• Hasil program:
– A = 115
a = nilai1 | nilai2; – B = 65
b = nilai1 & nilai2;
– C = 50
c = nilai1 ^ nilai2;

cout << "A = " << a << ‘\n’;


cout << “B = " << b << ‘\n’;
cout << “C = " << c << ‘\n’;
}
Bitwise Operator |, &, ^
Penjelasan:
• 0000 0000 0101 0001 - 81 OR
• 0000 0000 0110 0011 - 99
• 0000 0000 0111 0011 - 115

• 0000 0000 0101 0001 - 81 AND


• 0000 0000 0110 0011 - 99
• 0000 0000 0100 0001 - 65

• 0000 0000 0101 0001 - 81 XOR


• 0000 0000 0110 0011 - 99
• 0000 0000 0011 0010 - 50
Bitwise Operator ~
#include <iostream.h>

void main()
{ • Hasil program:
unsigned int nilai = 81; – A = 65454
unsigned int a;

a = ~nilai;

cout << "A = " << a << ‘\n’;


}
Bitwise Operator ~

Penjelasan:

• 0000 0000 0101 0001 - 81


• 1111 1111 1010 1110 - 65454
• Hasil invers (komplemen)
Bitwise Operator
• Kasus → Mengetahui bit ke-6 dari suatu nilai
apakah bernilai 0 atau 1

Tahapan:
• Geser bit ke-6 hingga menempati bit ke-0
• AND dengan nilai 1
• Bit 0 sama dengan 1, lainnya 0
Bitwise Operator
• Kasus → Mengetahui bit ke-6 dari suatu nilai
apakah bernilai 0 atau 1

Misalkan: Nilai 81
• 0101 0001
• 0000 0001 – Geser ke kanan 6 bit
• 0000 0001 – AND dengan nilai 1
• Hasil: Bit ke 6 dari 81 adalah 1
Bitwise Operator
#include <iostream.h>

void main() {
unsigned int nilai, bit;

nilai = 81;
bit = (nilai >> 6) & 1;

cout << " Nilai Bit = " << bit;


}
Operator Kondisi

• Untuk mendapatkan sebuah nilai dari 2 buah


kemungkinan, berdasarkan suatu kondisi
• Tergolong sebagai operator ternary
• Bentuk: ungkapan1 ? ungkapan2 : ungkapan3
• Nilai dari ungkapan2 jika ungkapan1 benar
• Nilai dari ungkapan3 jika ungkapan1 salah
Operator Kondisi
#include <iostream.h>

void main() {
int bil1, bil2, minim;

bil1 = 53;
bil2 = 6;

minim = bil1 < bil2 ? bil1 : bil2;

cout << "Bilangan Terkecil = " << minim << ‘\n’;


}
Tugas Mandiri 1

• Mengetahui bit ke-6 dari nilai 80 apakah bernilai


0 atau 1
• Mengubah bit ke-7 dari nilai 81 agar bernilai 1

• Sebutkan langkah-langkahnya
• Buat source codenya
Bobot Penilaian

• UAS - 35%
• UTS - 30%
• LAB - 20%
• TM / Kuis - 15%

• Syarat Ujian = 80% Kehadiran


• 1 anak = 1 diktat
• Lab di E304

You might also like