WELKI SITUMORANG
222406062
KOMB’22
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, dengan
Berkat-Nya penulis dapat menyelesaikan penyusunan makalah ini dengan judul Dasar-
dasar Pemrograman.
Terima kasih penulis sampaikan kepada setiap pihak yang sudah mendukung
selama berlangsungnya pembuatan makalah ini. Terkhusus lagi penulis sampaikan
terima kasih kepada Bapak James Piter Marbun, Drs., M.Kom. selaku dosen pengajar
dan asisten laboratorium, Egi Ribeka Br Singarimbun, yang telah membimbing
penulis. sekaligus juga berharap semoga makalah ini bisa bermanfaat bagi setiap
pembaca.
Penulis menyadari bahwa makalah ini belum sempurna. Oleh karena itu
penulis mengharapkan kritik dan saran yang membangun.
Penulis
i
DAFTAR ISI
Halaman
KATA PENGANTAR i
DAFTAR ISI ii
BAB 1 PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Tujuan 2
BAB 4 PERCABANGAN
4.1 Pengantar Mengenai Percabangan 11
4.2 Berbagai Percabangan dalam Bahasa C 11
4.2.1 If Statement 11
4.2.2 If Else 12
4.2.3 If Else If 13
4.2.4 Nested If 14
4.2.5 Switch Case 15
ii
BAB 5 PERULANGAN/LOOPING
5.1 Pengenalan Looping 17
5.2 Struktur Perulangan 18
5.2.1 Struktur For 18
5.2.2 Struktur While 21
5.2.3 Struktur Do-while 22
5.3 Break dan Continue 23
BAB 6 FUNCTION/FUNGSI
6.1 Pengertian Fungsi 24
6.2 Jenis Fungsi 24
6.2.1 Fungsi Tanpa Nilai Balik (Void Function) 24
6.2.2 Fungsi Dengan Nilai Balik 24
6.2.3 Fungsi Dengan Parameter 25
6.3 Tujuan Function 25
6.4 Ruang Lingkup Variabel 26
6.4.1 Variabel Lokal 26
6.4.2 Variabel Global 26
6.4.3 Variabel Register 26
6.4.4 Variabel Statik 27
BAB 7 ARRAY
7.1 Pengantar Array 28
7.2 Bentuk-bentuk Array 29
7.2.1 Array Satu Dimensi 29
7.2.2 Array Dua Dimensi 29
7.2.3 Array Multidimensi 29
7.3 Keunggulan dan Kelemahan Array 30
BAB 8 PENUTUP
8.1 Kesimpulan 31
8.2 Saran 31
iii
1
BAB 1
PENDAHULUAN
1.3 Tujuan
Adapun tujuan dari penulisan makalah ini.
• Untuk mengetahui definisi bahasa pemrograman.
• Untuk mengetahui definisi bahasa c sebagai sebagai salah satu bahasa
pemrograman.
• Untuk mengetahui berbagai fungsi dan perintah yang ada dalam bahasa c.
• Untuk mengetahui dan memahami cara membuat program sederhana dengan
menggunakan bahasa c.
• Untuk mengetahui berbagai tipe data dalam bahasa
3
BAB 2
PENGENALAN BAHASA C
2.3 Kompilator
Kompilator (compiler) dapat diartikan sebagai suatu penerjemah, artinya
kumpulan kode program yang ditulis dalam suatu bahasa pemrograman tertentu akan
diterjemahkan oleh kompilator ke dalam bahasa assembly; yang selanjutnya akan
diterjemahkan lagi menjadi kode objek sehingga perintah-perintahnya akan dikenali
oleh komputer (dalam hal ini mesin). Dengan demikian komputer akan dapat merespon
permintaan kita dengan melakukan sesuatu sesuai dengan apa yang kita perintahkan.
4
pengolah kata, pengolahan gambar (seperti pembuatan game) dan juga pembuatan
kompilator untuk bahasa pemrograman baru.
2. Bahasa C merupakan bahasa yang portabel sehingga dapat dijalankan di beberapa
sistem operasi yang berbeda. Sebagai contoh program yang kita tulis dalam sistem
operasi Windows dapat kita kompilasi di dalam sistem operasi Linux dengan
sedikit ataupun tanpa perubahan sama sekali.
3. Bahasa C merupakan bahasa yang sudah populer dan banyak digunakan oleh para
programmer berpengalaman sehingga kemungkinan besar library (pustaka) dan
aksesoris program lainnya yang diperlukan dalam pemrograman telah banyak
disediakan oleh pihak luar/lain dan dapat diperoleh dengan mudah.
4. Bahasa C merupakan bahasa yang bersifat modular, yaitu yang tersusun atas rutin-
rutin tertentu yang dinamakan dengan fungsi (function) dan fungsi-fungsi tersebut
dapat digunakan kembali untuk pembuatan program-program lainnya tanpa harus
menulis ulang implementasinya.
5. Bahasa C merupakan bahasa tingkat menengah (middle level language) sehingga
mudah untuk melakukan interfacing (pembuatan program antar muka) ke
perangkat keras (hardware).
6
BAB 3
OPERATOR DAN TIPE DATA
+ Penambahan a=5+2
– Pengurangan a=5–2
* Perkalian a=5*2
3.2.1 Integer
Data integer adalah tipe data yang berisi kumpulan bilangan bulat, baik dalam
bentuk bilangan positif maupun negatif. Integer atau yang disingkat (int) merupakan
tipe data yang paling umum digunakan untuk menyimpan angka tanpa komponen
pecahan. Pada data integer (int), kamu akan menemukan data yang berisi bit
atau binary digit dengan panjang 16 bit atau sampai 2^16 atau 65.536. Jika bilangan
yang direferensikan lebih besar dari itu, maka kamu perlu menggunakan bit yang lebih
besar seperti 32 bit atau lebih.
9
3.2.2 floatingpoint
Berbeda dengan data integer yang berisi kumpulan data bilangan bulat, data
floatingpoint berisi bilangan desimal, baik dalam bentuk bilangan positif maupun
negatif. Istilah “floating” dalam tipe data ini merujuk kepada sifat bilangannya yang
dapat “dikembangkan” atau “dibulatkan” ke bilangan di dekatnya. Seperti bilangan 8,7
dapat dibulatkan menjadi 9. Ada beberapa jenis data floating yang dibedakan
berdasarkan banyaknya penggunaan total bit, dari 24 bit, 32 bit, 53 bit, hingga 128 bit.
Beberapa jenis tersebut adalah data floating presisi tunggal, floating presisi ganda,
dan floating presisi quadruple.
3.2.3 Character(Char)
Tipe data selanjutnya adalah Character (char), yaitu tipe data yang digunakan
untuk menyimpan satu huruf, angka, tanda baca, simbol, maupun spasi kosong. Tipe
data jenis (char) digunakan dalam berbagai bahasa pemrograman seperti C, C++, C#,
untuk menyimpan karakter dengan menampilkan kode numerik kecil sebagai
perwakilan masing-masing karakternya.
3.2.4 Boolean(bool)
Boolean merupakan tipe data yang mewakili nilai benar (true) tau salah (false)
dalam suatu variabel. Penggunaan jenis data ini dalam bilangan biner
direpresentasikan dengan 1 (true) dan 0 (false). Dengan begitu Boolean (bool) hanya
dapat menyimpan dua jenis nilai: benar atau salah. Tipe data Boolean termasuk ke
dalam tipe operasi logika dan menjadi dasar penentuan tindakan dalam pemrograman.
Penting bagi seorang programmer untuk mempelajari cara kerjanya.
3.2.5 Array
Array atau yang dikenal juga sebagai list, digunakan untuk menyimpan
sejumlah elemen dari urutan tertentu, dan biasanya berasal dari tipe yang sama.
Elemen atau nilai struktur data Array dapat diambil menggunakan indeks data integer
(-1, 0, 2, 3) dan seterusnya. Tiap total elemen Array mewakili panjang jenis data
tersebut.
10
3.2.6 String
String merupakan tipe data yang paling banyak digunakan untuk menyimpan
teks. String dapat menyertakan angka, simbol, maupun karakter lainnya dan tetap
dinilai sebagai teks. Untuk membedakan antara data String dengan kode pemrograman
yang digunakan, maka data diberi tanda kutip di awal dan akhiran.
11
BAB 4
PERCABANGAN
#include <stdio.h>
int main(){
int nilai;
printf("Inputkan nilai ujian kamu: ");
scanf("%d", &nilai);
if(nilai >= 75){
printf("Selamat, kamu lulus ujian\n");
printf("Pertahankan!!\n");
}
}
12
#include <stdio.h>
int main(){
int nilai;
scanf("%d", &nilai);
printf("Pertahankan!!\n");
Jika komputer menerima input 70, komputer tetap akan mencetak “Pertahankan!!”,
berbeda dengan potongan program sebelumnya yang tidak akan mencetak apa-apa.
4.2.2 If else
Pada if else, komputer akan menjalankan blok pertama jika kondisi benar dan
jika kondisi salah, komputer akan menjalankan blok kedua.
#include <stdio.h>
Int main(){
int nilai;
printf("Inputkan nilai ujian kamu: ");
scanf("%d", &nilai);
if(nilai >= 75){
printf("Selamat, kamu lulus ujian\n");
printf("Pertahankan!!\n");
13
}
else{
printf("Kamu tidak lulus ujian\n");
printf("Belajar lebih giat!!\n");
}
}
Pada program tersebut, komputer akan mencetak “Selamat, kamu lulus ujian” dan
“Pertahankan!!” jika input bernilai 75 atau lebih dan komputer akan mencetak “Kamu
tidak lulus ujian” dan “Belajar lebih giat!!” jika input kurang (tidak lebih atau sama)
dari 75.
4.2.3 If else if
Percabangan ini merupakan percabangan yang memiliki lebih dari 2 blok.
Ketika kondisi pertama tidak terpenuhi, maka program akan menguji kondisi kedua,
jika masih tidak terpenuhi, program akan menguji kondisi-kondisi berikutnya sampai
bertemu else (jika ada). Misalkan dalam menginput nilai, bisa saja inputan tersebut
memiliki nilai lebih dari 100 atau kurang dari 0 yang mana seharusnya tidak ada.
Sehingga program lengkapnya menjadi,
#include <stdio.h>
Int main(){
int nilai;
printf("Inputkan nilai ujian kamu: ");
scanf("%d", &nilai);
if(nilai > 100 || nilai < 0)
printf("Nilai tidak valid\n");
elseif(nilai >= 75){
printf("Selamat, kamu lulus ujian\n");
printf("Pertahankan!!\n");
}
else{
printf("Kamu tidak lulus ujian\n");
printf("Belajar lebih giat!!\n");
}}
14
Misalkan input dari pengguna adalah 201, maka komputer akan mencetak
“Nilai tidak valid”. Meskipun 201 juga lebih besar dari 75 (kondisi kedua), namun
program akan mengabaikannya karena kondisi pertama sudah terpenuhi. Jenis
percabangan ini juga bisa digunakan untuk memberi grade nilai.
#include <stdio.h>
Int main(){
int nilai;
chargrade;
printf("Inputkan nilai ujian kamu: ");
scanf("%d", &nilai);
if(nilai > 100 || nilai < 0)
printf("Nilai tidak valid\n");
elseif(nilai >= 85)
grade = 'A';
elseif(nilai >= 75)
grade = 'B';
elseif(nilai >= 60)
grade = 'C';
elseif(nilai >= 50)
grade = 'D';
elsegrade = 'E';
printf("Grade kamu adalah %c\n", grade);
}
4.2.4 Nested If
Kita bisa saja membagi kondisi yang sudah benar. Misalkan dalam sebuah
perusahaan, target profit minimal adalah 1000 dalam satu bulan dengan
minimal client berjumlah 20 untuk mendapatkan bonus besar. Maka,
#include <stdio.h>
intmain(){
int profit = 1400, client = 15;
int bonus = 0;
if(profit >= 1000)
if(client>= 20)
bonus = 50;
15
else
bonus = 25;
else
printf("Bekerja lebih giat!!\n");
printf("Bonus bulan ini: %d\n",bonus);
}
Berdasarkan data, profit yang diperoleh adalah 1400 dengan 15 client, sehingga bonus
yang didapat adalah 25. Tidak terdapat kurung kurawal pada contoh
karena if/else merupakan satu paket (program menganggapnya sebagai satu instruksi).
4.2.5 SwitchCase
Percabangan ini merupakan bentuk lain dari percabangan if/else/if.
Percabangan ini memiliki struktur.
switch(variabel){
case<nilai_1>:
//instruksi
break;
case<nilai_2>:
//instruksi
break;
default:
//instruksi
}
Tentu saja blok case bisa tidak terbatas tergantung kebutuhan. Percabangan ini hanya
bisa digunakan jika variabel bernilai tertentu (tepat 1). Contoh.
#include <stdio.h>
intmain(){
intnum = 5;
switch(num){
case 1:
printf("Satu\n");
break;
16
case 2:
printf("Dua\n");
break;
case 3:
printf("Tiga\n");
break;
case 4:
printf("Empat\n");
break;
case 5:
printf("Lima\n");
break;
default:
cout<<"Bilangan bukan antara 1-5\n";
}
}
Komputer akan mencetak “Lima”. Kita juga bisa mengganti num dengan sebuah
ekspresi, misalkan num%5 + 1 dll. Jika instruksi ada yang sama, bisa juga dengan
menuliskan,
#include <stdio.h>
int main(){
int num = 5;
switch(num){
case1:
case2:
case3:
printf("Satu, dua atau tiga\n");
break;
case4:
case5:
case6:
printf("Empat, lima atau enam\n");
break;
default:
cout<<"Bilangan bukan antara 1-6\n";}}
Pada contoh tersebut, keluaran yang akan tercetak adalah “Empat, lima atau
enam\n”.
17
BAB 5
PERULANGAN/LOOPING
#include <stdio.h>
int main(void) {
/* Mencetak teks ke layar sebanyak 10 kali */
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
printf(“Saya sedang belajar bahasa C”);
return 0;
}
dapat dikatakan efisien? Jawabnya tentu tidak. Penulisan program seperti yang
dilakukan di atas akan menyebabkan besarnya ukuran file kode program yang
dihasilkan dan merupakan suatu pemborosan waktu dan tenaga. Mungkin untuk
menuliskan 10 buah statemen di atas, kita masih dapat melakukannya dengan cepat
dan mudah, namun bagaimana apabila ternyata kita harus menuliskan statemen
tersebut sebanyak 100 kali atau bahkan 500 kali. Hal tersebut tentu akan merupakan
sebuah hal yang membosankan. Kasarnya, program di atas dapat kita katakan sebagai
program yang salah.
Dalam bahasa C, terdapat tiga buah struktur pengulangan yang akan digunakan
sebagai kontrol dalam melakukan pengulangan proses, yaitu struktur for, while dan
do-while. Setiap struktur yang ada masing-masing memiliki aturan tersendiri dan
digunakan dalam konteks yang berbeda. Kita harus bisa menentukan kapan sebaiknya
kita harus menggunakan struktur for, struktur while ataupun do-while. Untuk itu, pada
bagian ini kita akan membahas secara detail apa perbedaan dan penggunaan dari
masing-masing struktur tersebut. Hal ini juga bertujuan agar Anda dapat
mengimplementasikannya dengan benar ke dalam kasus-kasus program yang Anda
hadapi.
Start digunakan sebagai proses inisialisasi variabel yang akan dijadikan sebagai
pencacah (counter) dari proses pengulangan, dengan kata lain ekspresi ini akan
dijadikan sebagai kondisi awal. Condition digunakan sebagai kondisi akhir, yaitu
kondisi dimana proses pengulangan harus dihentikan. Perlu untuk diketahui bahwa
pengulangan masih akan dilakukan selagi kondisi akhir bernilai benar. Increment
digunakan untuk menaikkan (increment) atau menurunkan (decrement) nilai variabel
yang digunakan sebagai pencacah. Apabila pengulangan yang kita lakukan bersifat
menaik, maka kita akan menggunakan statemen increment, sedangkan apabila
pengulangan yang akan kita lakukan bersifat menurun maka kita harus menggunakan
statemen decrement.
Berikut ini contoh untuk mengilustrasikan struktur pengulangan for yang telah
diterangkan di atas.
#include <stdio.h>
int main(void) {
for (int j=0; j<10; j++) {
printf(“Saya sedang belajar bahasa C\n”);
}
return 0;
}
Hasil yang akan diberikan oleh program di atas adalah “Saya sedang belajar bahasa
C” sebanyak sepuluh kali. Pengulangan yang dilakukan pada program di atas bersifat
menaik sehingga kita menggunakan increment. Kita juga dapat melakukan
pengulangan tersebut secara menurun, yaitu dengan sintak di bawah ini.
#include <stdio.h>
int main(void) {
for (int j=10; j>0; j--) {
printf(“Saya sedang belajar bahasa C\n”);
}
return 0;
}
Pada sintak di atas, mula-mula variabel j bernilai 10 dan setiap pengulangan dilakukan
menyebabkan variabel tersebut dikurangi satu. Hal ini disebabkan karena statemen
decrement j-- di atas. Dalam program tersebut, pengulangan baru akan dihentikan
ketika variabel j bernilai 0. Apabila dijalankan program di atas akan memberikan hasil
yang sama dengan program sebelumnya.
21
while (ekspresi) {
Statemen_yang_akan_diulang1;
Statemen_yang_akan_diulang2;
…
}
Sama seperti pada struktur for, struktur pengulangan jenis ini juga memerlukan
suatu inisialisasi nilai pada variabel yang akan digunakan sebagai pencacah, yaitu
dengan menuliskannya di atas blok pengulangan. Selain itu kita juga harus melakukan
penambahan ataupun pengurangan terhadap nilai dari variabel pencacah di dalam blok
pengulangan tersebut. Hal ini bertujuan untuk menghentikan pengulangan sesuai
dengan kondisi yang didefinisikan. Sebagai contoh apabila kita ingin melakukan
pengulangan proses sebanyak 5 kali, maka kita akan menuliskannya sebagai berikut.
#include <stdio.h>
int main(void) {
int j = 1; /* Mendeklarasikan variabel j sebagai
pencacah pengulangan */
jumlah = 0; /* Mendeklarasikan variabel jumlah untuk
22
menampung jumlah */
while (j <= 5) {
jumlah += j;
j++;
}
printf(“Jumlah = %d”, jumlah);
return 0;
}
do {
Statemen_yang_akan_diulang;
…
} while (ekspresi); /* Ingat tanda semicolon (;) */
#include <stdio.h>
int main() {
int i = 1;
do {
printf("%i", i*4);
i++;
}
while( i <= 5);
return 0;
}
23
BAB 6
FUNCTION/FUNGSI
program dapat dijadikan satu kali saja dalam suatu function, yang mana kemudian
function tersebut dapat dipanggil berulang kali.
6.4 Ruang Lingkup Variabel
Terdapat tiga macam bentuk variabel yang mempunyai ruang lingkup
berbeda, yaitu variabel lokal, variabel global, variabel register dan variabel static.
BAB 7
ARRAY
Pendeklarasian array dua dimensi hampir sama dengan pendeklarasian array satu
dimensi, kecuali bahwa array dua dimensi terdapat dua jumlah elemen yang terdapat
dikurung kurung siku dan keduanya boleh tidak sama. Elemen array dua dimensi
diakses dengan menuliskan kedua indeks elemennya dalam kurung.
Tipe_data namaArray[ukuran1][ukuran2]…[ukuranN];
30
BAB 8
PENUTUP
8.1 Kesimpulan
Bahasa C adalah bahasa yang standar artinya suatu program yang ditulis
dengan versi bahasa C tertentu akan dapat di kompilasi dengan versi bahasa C yang
lain dengan sedikit modifikasi. Kode bahasa C sifatnya adalah portable dan didukung
dengan pustaka yang banyak. Selain itu bahasa pemrograman C memilki karakteristik
lain seperti hemat ekspresi, alur kontrol, menggunakan struktur data modern, dan kaya
dengan operator. C bisa disebut bahasa pemrograman tingkat menengah (middle level
programming language). Namun dalam perspektif mudahnya dipahami manusia, C
bisa digolongkan dalam bahasa tingkat tinggi, namun C juga menyediakan
kemampuan yang ada pada bahasa tingkat rendah, misalnya operasi bit, operasi byte,
pengaksesan memori, dan sebagainya.
8.2 Saran
Saran yang bisa penulis berikan, yaitu perlu adanya pengembangan bahasa C
lebih lanjut dari segi sintaks, supaya sintaks yang digunakan semakin sederhana dan
mudah dimengerti terutama bagi pemrogram pemula, serta pengembangan fungsional
bahasa C, supaya bisa menjalankan lebih banyak produk lagi.
32
DAFTAR PUSTAKA
https://www.duniailkom.com/tutorial-belajar-c-jenis-jenis-operator-dalam-bahasa-c/
https://www.dewaweb.com/blog/tipe-data-pemrograman/
https://www.academia.edu/45684754/Makalah_Dasar_Dasar_Pemrograman
https://www.academia.edu/31542584/Cara_Mudah_I_Made_Joni_Budi_Raharjo