Anda di halaman 1dari 93

BAHASA

PEMROGRAMAN C

SMA Sedes Sapientiae Bedono 1


MENGAPA BAHASA C??
• Cocok untuk dipelajari oleh pemula yang ingin
merasakan per-codingan.
• Mudah dipelajari dan sumbernya banyak.
• Induk dari semua bahasa pemrograman.
• Masih digunakan hingga saat ini
• Dapat digunakan di berbagai macam platform,
seperti Windows, Linux, MacOS, Android dsb.
• Berjalan dengan cukup cepat ketika digunakan pada
mesin.

SMA Sedes Sapientiae Bedono 2


MENGENAL
BAHASA
PEMROGRAMAN C

SMA Sedes Sapientiae Bedono 3


TEMPLATE BAHASA C

#include <stdio.h>

main ()
{

SMA Sedes Sapientiae Bedono 4


PENJELASAN TEMPLATE
• Dalam Bahasa C, <stdio.h> adalah pustaka yang
dibutuhkan untuk perintah input/output pada
bahasa C.
• Struktur main() sendiri pada dasarnya merupakan
sebuah fungsi (function). Isi dari function ini diawali
dan diakhiri dengan tanda kurung kurawal ” { ” dan
” } “. Di dalam tanda kurung inilah “isi” dari kode
program penyusun fungsi main() ditulis.

SMA Sedes Sapientiae Bedono 5


CONTOH PROGRAM
/* PROGRAM HelloWorld */
/* Program untuk mencetak tulisan ‘Hello World’ */

#include <stdio.h>

main ()
{
/* DEKLARASI */
/* tidak ada */

/* ALGORITMA */
printf (“Hello World \n”);
}

SMA Sedes Sapientiae Bedono 7


HASIL:

SMA Sedes Sapientiae Bedono 8


VARIABEL, TIPE DATA &
KONSTANTA

SMA Sedes Sapientiae Bedono 9


VARIABEL
Apa itu Variabel?
Variabel adalah sebuah tempat menyimpan
sebuah nilai.
Pada pelajaran matematika, kita sering
menemukan x dan y.
x dan y ini disebut variabel, karena tugasnya
menyimpan nilai.

SMA Sedes Sapientiae Bedono 10


VARIABEL
VARIABEL
• Dalam menggunakan nama untuk suatu variabel, tidak
diperbolehkan menggunakan spasi.

nama lengkap SALAH

nama_lengkap BENAR

• Kita juga tidak bisa menggunakan nama variabel dengan


nama fungsi standar yang sudah ada di bahasa C.

SMA Sedes Sapientiae Bedono 12


TIPE DATA
• Tipe data adalah jenis nilai yang akan tersimpan
dalam variabel.
• Bilangan Bulat

int usia, jumlah_keluarga;

• Bilangan Desimal

float average_score;

SMA Sedes Sapientiae Bedono 13


TIPE DATA
• Karakter (untuk 1 karakter, missal huruf a atau
angka 1)

char karakter_pertama;

• String (untuk karakter yang lebih dari 1)

Char nama_lengkap[25];

SMA Sedes Sapientiae Bedono 14


KONSTANTA DALAM BAHASA
C
Konstanta adalah sebuah tempat atau container
dari suatu nilai. Sesuai dengan namanya, nilai dari
konstanta bersifat tetap (konstan) dan tidak bisa
diubah sepanjang program berjalan.
Untuk membuat konstanta dalam bahasa C,
terdapat 2 cara. Yakni menggunakan keyword
#define atau menggunakan keyword const.

SMA Sedes Sapientiae Bedono 15


Membuat konstanta C dengan perintah
“#define”
Jika ingin membuat konstanta dengan keyword
#define, konstanta ini ditulis sebelum main(). Format
pembuatan konstanta menggunakan perintah
#define adalah:

#define nama_konstanta nilai_konstanta

SMA Sedes Sapientiae Bedono 16


Membuat konstanta C dengan perintah
“#define”
Berikut contoh cara pembuatan konstanta
menggunakan #define:

SMA Sedes Sapientiae Bedono 17


Membuat konstanta C dengan perintah
“const”
Selain menggunakan perintah #define, konstanta
juga bisa dibuat menggunakan perintah const.
Bedanya, pembuatan konstanta ditempatkan di
dalam main() dan juga harus ditulis tipe data dari
konstanta tersebut. Format pembuatan konstanta
menggunakan perintah const adalah:

const tipe_data nama_konstanta = nilai_konstanta;

SMA Sedes Sapientiae Bedono 18


Membuat konstanta C dengan perintah
“const”
Berikut contoh kode program bahasa C untuk
membuat konstanta menggunakan keyword const:

SMA Sedes Sapientiae Bedono 19


INPUT DAN OUTPUT
BAHASA C

SMA Sedes Sapientiae Bedono 20


OUTPUT
• Output adalah proses untuk menampilkan data
hasil program.
• Terdapat dua macam fungsi yang dapat kita
gunakan:
1. Fungsi printf()
2. Fungsi puts()

SMA Sedes Sapientiae Bedono 21


PRINTF()
• Merupakan fungsi untuk menampilkan output ke
layar komputer. Fungsi ini terdapat pada library
stdio.h
• Oleh sebab itu, ketika kita diharuskan untuk
menuliskan #include <stdio.h> di bagian atas
program agar bisa menggunakan fungsi ini.

SMA Sedes Sapientiae Bedono 22


STRUKTUR PRINTF()

SMA Sedes Sapientiae Bedono 23


PENULISAN PRINTF()
• Contoh 1
printf(“Selamat Pagi”);

• Contoh2

printf(“Nama Saya: %s“, nama);

SMA Sedes Sapientiae Bedono 24


PENULISAN PRINTF()
• Contoh 3
printf(“Luas Persegi Panjang”);

• Contoh 4

printf(“Luas Persegi Panjang: %d“, luas);

SMA Sedes Sapientiae Bedono 25


FORMAT SPECIFIER
• Dalam pemrograman C kita perlu banyak format
specifier untuk medefinisikan berbagai jenis data.
• Format specifier mendefinisikan jenis data yang
akan dicetak pada output atau yang akan
dimasukkan pada input.

SMA Sedes Sapientiae Bedono 26


FORMAT SPECIFIER

SMA Sedes Sapientiae Bedono 27


PUTS()
• Fungsi puts() adalah fungsi untuk menampilkan
output. Fungsi ini juga terdapat pada library stdio.h.
• Perbedaanya dengan printf(), fungsi puts() tidak
memerlukan format.
• Fungsi puts() akan selalu membuat baris baru. Jadi
tidak perlu menggunakan simbol \n seperti pada
printf().

SMA Sedes Sapientiae Bedono 28


STRUKTUR PUTS()

SMA Sedes Sapientiae Bedono 29


PENULISAN PUTS()
• Contoh
puts("Hello, ini adalah teks output");

SMA Sedes Sapientiae Bedono 30


INPUT
• Input adalah sesuatu data yang kita masukan ke
dalam program.
• Ada dua macam fungsi yang bisa digunakan untuk
menginputkan data ke program:
1. Fungsi scanf()
2. Fungsi gets()

SMA Sedes Sapientiae Bedono 31


SCANF
• Fungsi ini digunakan jika ada format data tertentu
yang akan kita masukkan ke aplikasi, contohnya
bilangan bulat dan pecahan. Disini kita juga
menggunakan format specifier dalam susunan
kodenya, seperti pada kode berikut:

SMA Sedes Sapientiae Bedono 32


STRUKTUR SCANF

SMA Sedes Sapientiae Bedono 33


PENULISAN SCANF()
• Contoh 1

scanf("%s", &nama);

• Contoh 2
printf("Nama: ");
scanf("%s", &nama);

SMA Sedes Sapientiae Bedono 34


FORMAT SPECIFIER

SMA Sedes Sapientiae Bedono 35


GETS()
• Berbeda dengan scanf(), fungsi gets() dapat
melakukan input data satu kalimat lengkap dengan
spasi. Fungsi gets() tidak memerlukan format
seperti scanf().

SMA Sedes Sapientiae Bedono 36


STRUKTUR GETS()

SMA Sedes Sapientiae Bedono 37


PENULISAN GETS()
• Contoh 1

gets(nama);

• Contoh 2

gets(alamat);

SMA Sedes Sapientiae Bedono 38


Tugas 1
1. Buatlah sebuah program input/output
menggunakan fungsi2 yang telah dipraktekkan!

SMA Sedes Sapientiae Bedono 39


TAMPILAN INPUT

SMA Sedes Sapientiae Bedono 40


TAMPILAN OUTPUT

SMA Sedes Sapientiae Bedono 41


Kumpulkan ke emai :
dikaadhi@marsudirini.sch.id

Subject:
BANGUN
DATAR_NAMA_KELAS

SMA Sedes Sapientiae Bedono 42


TRANSLATE ALGORITMA
KE BAHASA C

SMA Sedes Sapientiae Bedono 43


Ubah algoritma di bawah ini ke
dalam bahasa c

SMA Sedes Sapientiae Bedono 44


Penyelesaian

SMA Sedes Sapientiae Bedono 45


Tugas 2
1. Carilah 4 algoritma runtunan yang berbentuk
pseudocode!
2. Ubahlah 4 algoritma runtunan yang berbentuk
pseudocode yang kalian temukan ke dalam
Bahasa C!

SMA Sedes Sapientiae Bedono 46


BAHASA C:
PEMILIHAN/PERCABANG
AN
SMA Sedes Sapientiae Bedono 47
Pemilihan
• Pemilihan memungkinkan program yang dibuat
hanya mengeksekusi instruksi yang memenuhi
syarat atau bernilai benar. Oleh karena itu, tidak
semua instruksi akan dieksekusi.
• Pemilihan akan mampu membuat program berpikir
dan menentukan tindakan sesuai dengan logika/
kondisi yang kita berikan.

SMA Sedes Sapientiae Jambu 48


Pemilihan dengan satu kondisi
• Untuk membuat program dengan satu kondisi, kita
dapat menggunakan if. Pada pernyataan if jika
kondisi bernilai benar, maka perintah akan
dikerjakan dan jika tidak memenuhi syarat maka
akan diabaikan.

SMA Sedes Sapientiae Jambu 49


• Bentuk flowchart

• Berikut adalah bentuk umum penulisan if:


if (kondisi ){
pernyataan;
}

SMA Sedes Sapientiae Jambu 50


Kasus: Kalian ingin mengecek apakah nilai kalian
tuntas dengan ketentuan jika nilai>65 maka lulus.
Penyelesaian:
#include <stdio.h>
main(){
float nilai;
printf("Masukan nilai yang didapat : ");
scanf("%f", &nilai); KONDISI
if(nilai > 65){
printf("ANDA LULUS !! ");
PERNYATAAN
}
}

SMA Sedes Sapientiae Jambu 51


Pemilihan dengan dua kondisi
• Untuk pemilihan dengan dua kondisi, kita dapat
menggunakan if else. else merupakan kondisi yang
akan dilalui jika kondisi if bernilai salah.
• Struktur ini minimal memiliki 2 pernyataan. Jika
kondisi yang diperiksa bernilai benar atau terpenuhi
maka pernyataan pertama yang akan dilaksanakan
dan jika kondisi yang diperiksa bernilai salah maka
pernyataan yang kedua yang akan dilaksanakan.

SMA Sedes Sapientiae Jambu 52


• Bentuk flowchart

• Berikut adalah bentuk umum penulisan if:


if ( kondisi ){
pernyataan 1;
}
else{
pernyataan 2;
}

SMA Sedes Sapientiae Jambu 53


Kasus: Kalian ingin mengecek apakah kalian lulus
atau tidak lulus dalam sebuah tes dengan ketentuan
sebagai berikut. Jika nilai>65 maka lulus, jika nilai<65
maka tidak lulus.
Penyelesaian:
#include <stdio.h>
main(){
float nilai;
printf("Masukan nilai yang didapat : ");
scanf("%f", &nilai);
KONDISI
if(nilai > 65){
printf("ANDA LULUS !!"); PERNYATAAN 1
}else {
printf("ANDA TIDAK LULUS !!"); PERNYATAAN 2
}
}

SMA Sedes Sapientiae Jambu 54


Kasus: Toko Bedono Mart sedang mengadakan
promo dengan memberikan diskon sebesar 15% bagi
pembeli yang melakukan transaksi minimal Rp.
150.000,00. Buatlah program input-output
menggunakan struktur pemilihan dengan dua kondisi
untuk menghitung total pembayaran dengan
ketentuan input berupa transaksi dan output berupa
total pembayaran belanja yang harus dibayar oleh
pembeli!
Penyelesaian:

SMA Sedes Sapientiae Jambu 55


Penyelesaian:

SMA Sedes Sapientiae Jambu 56


Tugas 3
1. Buatlah program input/output diskon di sebuah toko!
a. Buat menggunakan struktur pemilihan dengan satu
kondisi, dengan ketentuan transaksi lebih besar dari Rp.
50.000, maka akan mendapat diskon 20% dan muncul
output berupa “Selamat, Anda mendapat diskon”
ditambah dengan total belanjanya. Jika transaksi Rp.
50.000 kebawah, maka program tidak akan menampilkan
output.
b. Buat menggunakan struktur pemilihan dengan dua
kondisi, dengan ketentuan jika transaksi lebih besar dari
Rp. 50.000, maka akan mendapat diskon 20% dan muncul
output berupa “Selamat, Anda mendapat diskon”
ditambah dengan total belanjanya. Jika transaksi Rp.
50.000 kebawah, maka akan muncul output berupa
“Maaf, Anda tidak mendapatkan diskon” ditambah
dengan total belanjanya.
SMA Sedes Sapientiae Jambu 57
Pemilihan dengan lebih dari 2
kondisi
• Untuk pemilihan dengan lebih dari dua kondisi kita
dapat menggunakan konstruksi if else yang sama
dengan pemilihan dengan dua kondisi. Namun,
pada pemilihan dengan lebih dari dua kondisi kita
menggunakan konstruksi if else yang bertingkat-
tingkat.

SMA Sedes Sapientiae Jambu 58


• Bentuk flowchart

SMA Sedes Sapientiae Jambu 59


• Berikut adalah bentuk umum penulisan if:
If ( kondisi 1){
Pernyataan 1;
} else if ( kondisi 2){
Pernyataan 2;
} else if ( kondisi 3){
Pernyataan 3;
}
......
......
} else if ( kondisi X){
pernyataan X;
}else {
pernyataan;
}
}

SMA Sedes Sapientiae Jambu 60


Kasus: Kalian diminta untuk menentukan grade nilai
siswa dengan ketentuan sebagai berikut. Jika nilai>80
maka grade A, jika nilai>70 maka grade B, jika
nilai>60 maka grade C, jika nilai>50 maka grade D,
jika nilai<50 maka grade E.

SMA Sedes Sapientiae Jambu 61


SMA Sedes Sapientiae Jambu 62
Penyelesaian:

SMA Sedes Sapientiae Jambu 63


Pemilihan dengan switch/case
• Konstruksi switch/case adalah bentuk lain dari
konstruksi if else. Konstruksi switch/case adalah
pemilihan yang berisi kode program dimana kita
membandingkan isi sebuah variabel dengan
beberapa nilai. Jika proses perbandingan tersebut
menghasilkan nilai true (benar), maka blok
pernyataan program akan dijalankan.

SMA Sedes Sapientiae Jambu 64


• Bentuk flowchart

SMA Sedes Sapientiae Jambu 65


• Berikut adalah bentuk umum penulisan if:
switch (nama_variabel) {
case 'nilai_1':
pernyataan 1;
break;
case 'nilai_2':
pernyataan 2;
break;
case 'nilai_3':
pernyataan 3;
break;
...
...
case 'nilai_x':
pernyataan x;
break;
default:
pernyataan;
}

SMA Sedes Sapientiae Jambu 66


Kasus: Kalian diminta untuk menentukan komentar
untuk setiap nilai yang diinputkan berdasarkan
gradenya. Misalnya jika grade A maka muncul
komentar ‘Pertahankan’, jika grade B muncul
komentar ‘Harus lebih baik lagi’, jika grade C maka
muncul komentar ‘Perbanyak belajar’, jika grade D
maka muncul komentar ‘Jangan keseringan main’,
jika grade E maka muncul komentar ‘Kebanyakan
bolos’, dan jika format grade nilai tidak sesuai maka
muncul komentar ’Maaf, format nilai tidak sesuai’.

SMA Sedes Sapientiae Jambu 67


SMA Sedes Sapientiae Jambu 68
Penyelesaian :
a. struktur pemilihan lebih dari dua kondisi

SMA Sedes Sapientiae Jambu 69


Penyelesaian :
b. struktur pemilihan switch/case

SMA Sedes Sapientiae Jambu 70


Dari kedua contoh penyelesaian di atas diharapkan
kalian dapat mengetahui perbedaan antara
pemilihan dengan lebih dari dua kondisi yang
menggunakan struktur if else dan yang menggunakan
struktur switch/case. Jadi pada intinya kita dapat
menggunakan pemilihan dengan lebih dari dua
kondisi (struktur if else) ketika membutuhkan kondisi
dengan logika. Sebagai contoh kondisi dimana nilai >
70. Sedangkan struktur switch/case hanya digunakan
untuk kondisi dengan tipe char maupun integer,
artinya tidak bisa digunakan untuk logika.

SMA Sedes Sapientiae Jambu 71


Tugas 4
1. Buatlah sebuah program pemilihan lebih dari 2
kondisi dengan ketentuan sbb:
- Input berupa skor
- Jika skor > 90, maka skor dikalikan 4 dan program
akan menampilkan hasilnya.
- Jika skor > 70, maka skor dikalikan 2 dan program
akan menampilkan hasilnya.
- Jika skor <= 70, maka skor dibagi 2 dan program
akan menampilkan hasilnya.
- Jika skor < 50, maka skor dibagi 4 dan program akan
menampilkan hasilnya.

SMA Sedes Sapientiae Jambu 72


Tugas 4
2. Buatlah program input/output dengan struktur
switch - case yang menerima input nomor absen
(1 sd 10), lalu menghasilkan output berupa nama
siswa sesuai dengan no absen. Misalnya jika kita
memasukkan/ menginputkan angka 8, maka akan
ditampilkan output berupa tulisan “Yonas”. Jika
input yang diberikan user tidak sesuai (1 sd 10),
maka program akan menampilkan tulisan “Maaf
format tak betul”.

SMA Sedes Sapientiae Jambu 73


TAMBAHAN

SMA Sedes Sapientiae Jambu 74


1. Operator aritmatika
Merupakan operator yang digunakan untuk
melakukan operasi aritmatika. Operator ini
terdiri dari:
Nama Operator Simbol
Penjumlahan +
Pengurangan -
Perkalian *
Pembagian /
Sisa Bagi %

SMA Sedes Sapientiae Jambu 75


2. Operator pembanding
Merupakan operator untuk memabndingkan
dua buah nilai. Operator ini juga dikenal
dengan operator relasi. Operator
pembanding terdiri dari:

Nama Operator Simbol


Lebih besar >
Lebih kecil <
Sama dengan ==
Tidak sama dengan !=
Lebih besar sama dengan >=
Lebih kecil sama dengan <=

SMA Sedes Sapientiae Jambu 76


BAHASA C :
PERULANGAN
SMA Sedes Sapientiae Bedono 77
Misalnya kita diminta untuk menampilkan kalimat
“SMA Sedes Sapientiae Bedono” sebanyak 3 kali
seperti contoh di bawah ini:
SMA Sedes Sapientiae Bedono
SMA Sedes Sapientiae Bedono
SMA Sedes Sapientiae Bedono

Maka pada bahasa C dapat ditulis :


printf(“SMA Sedes Sapientiae Bedono\n”);
printf(“SMA Sedes Sapientiae Bedono\n”);
printf(“SMA Sedes Sapientiae Bedono\n”);

SMA Sedes Sapientiae Bedono 78


Perulangan
• Perulangan atau yang sering disebut dengan
“looping”, merupakan proses yang dilakukan secara
berulang-ulang dalam batas yang telah ditentukan.
• Dalam bahasa C, terdapat beberapa macam
struktur kendali perulangan, antara lain: for, while,
dan do while.

SMA Sedes Sapientiae Bedono 79


Perulangan For
• Struktur perulangan jenis for biasanya digunakan
untuk melakukan perulangan yang telah diketahui
banyaknya.
• Pada perulangan for, kita memerlukan suatu variabel
yang digunakan sebagai pencacah yang nilainya akan
terus berubah (bisa bertambah atau berkurang) setiap
iterasi perulangan. (*iterasi: 1 kali perulangan)
• Pencacah adalah variabel yang nilainya akan selalu
bertambah 1 setelah sebuah proses selesai
dikerjakan.

SMA Sedes Sapientiae Bedono 80


For Menaik
• Pada for menaik, variabel pencacah akan terus
bertambah setiap iterasi perulangan dilakukan.
Berikut adalah bentuk umum dari for menaik pada
bahasa C.

int variabel;
for (variabel = nilai awal ; variabel <= nilai akhir ; variabel++){
PERNYATAAN
}

SMA Sedes Sapientiae Bedono 81


Berikut adalah contoh penulisan for menaik dalam
bahasa C untuk mencetak tulisan “Hello” sebanyak 5
kali.
#include<stdio.h>

main(){
int i;
for(i = 1 ; i <= 5 ; i++){
printf(“Hello %d \n”, i);
}
}

SMA Sedes Sapientiae Bedono 82


• Hasilnya :

SMA Sedes Sapientiae Bedono 83


For Menurun
• Pada for menurun, variabel pencacah akan terus
berkurang setiap iterasi perulangan dilakukan.
Berikut adalah bentuk umum for menurun dalam
bahasa C.
int variabel;
for (variabel = nilai akhir ; variabel >= nilai awal ; variabel--){
PERNYATAAN
}

SMA Sedes Sapientiae Bedono 84


Berikut adalah contoh penulisan for menurun dalam
bahasa C untuk mencetak tulisan “Hello” sebanyak 5
kali.
#include<stdio.h>

main(){
int i;
for(i = 5 ; i >= 1 ; i--){
printf(“Hello %d \n”, i);
}
}

SMA Sedes Sapientiae Bedono 85


• Hasilnya :

SMA Sedes Sapientiae Bedono 86


Perulangan While
• Merupakan perulangan kondisional Artinya
perulangan dapat dilakukan dengan syarat/kondisi
tertentu tanpa harus mendefinisikan secara spesifik
berapa jumlah perulangan yang akan dilakukan
seperti pada perulangan for. Berikut ini adalah
bentuk umum perulangan while pada bahasa C.
int variabel;
while(KONDISI){
PERNYATAAN
}

SMA Sedes Sapientiae Bedono 87


Berikut adalah contoh penulisan while dalam bahasa
C untuk mencetak tulisan “Hello World” sebanyak 5
kali.
#include<stdio.h>

main(){
int i=1;
while(i <=5){
printf(“Hello World %d \n”, i);
i++;
}
}
SMA Sedes Sapientiae Bedono 88
• Hasilnya :

SMA Sedes Sapientiae Bedono 89


Perulangan Do While
• Pada dasarnya, perulangan do while mirip dengan
perulangan while. Namun ada perbedaan dari
keduanya, yaitu pada do while PERNYATAAN akan
dilakukan terlebih dahulu baru kemudian dilakukan
pengecekan. Berikut adalah bentuk umum dari
perulangan do while pada bahasa C.
int variabel;
do{
PERNYATAAN
}while(KONDISI)
}

SMA Sedes Sapientiae Bedono 90


Berikut adalah contoh penulisan do while dalam
bahasa C untuk mencetak tulisan “Hello World”
sebanyak 5 kali.
#include<stdio.h>

main(){
int i=1;
do{
printf(“Hello Sedes %d \n”, i);
i++;
} while(i<=5);
}

SMA Sedes Sapientiae Bedono 91


• Hasilnya :

SMA Sedes Sapientiae Bedono 92


Tugas 5
1. Buatlah program untuk menampilkan tulisan
“Kabar gembira untuk kita semua… Kulit manggis,
kini ada ekstraknya” sebanyak 123 kali dimulai
dari nomor 123 menggunakan perulangan :
a. For
b. While
c. Do while

SMA Sedes Sapientiae Bedono 93


NB:
1. Tugas dibuat dalam Dev C++ (Setiap tugas diberi
nama Tugas1_Nama_Kelas_Absen,
Tugas3_Nama_Kelas_Absen, dst.)
2. Program dimasukkan di dalam folder dengan
nama (

SMA Sedes Sapientiae Jambu 94

Anda mungkin juga menyukai