DASAR-DASAR PEMROGRAMAN
Puji dan syukur penulis panjatkan kepada TUHAN YME, dengan limpah
karunia-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 selaku dosen pengajar dan asisten
laboratorium Muhammad Irfan Liy yang telah membimbing. Penulis sekaligus juga
berharap semoga makalah ini bisa bermanfaat bagi setiap pembaca.
Disertai keseluruhan rasa rendah hati, kritik dan saran yang membangun amat
penulis nantikan, agar nantinya penulis dapat meningkatkan dan merevisi kembali
pembuatan makalah di tugas lainnya dan di waktu berikutnya.
Penulis
i
DAFTAR ISI
Halaman
KATA PENGANTAR i
DAFTAR ISI ii
BAB 1 PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 1
1.3 Tujuan 1
BAB 2 Pengenalan C
2.1 Sejarah Bahasa C 2
2.2 Struktur Bahasa Pemrograman C 5
BAB 4 Looping
4.1 Memahami Blok Perulangan pada C 24
4.2 Perulangan For pada C 25
4.3 Perulangan While pada C 28
4.4 Perulangan Do While pada C 29
BAB 5 Function
5.1 Pengertian Fungsi/Function 32
5.2 Mendefinisikan Fungsi 32
5.3 Fungsi dengan Parameter 33
BAB 6 Array
6.1 Apa itu Array 41
6.2 Cara Membuat Array pada C 42
BAB 7 Penutup
7.1 Kesimpulan 48
7.2 Saran 48
DAFTAR PUSTAKA 49
ii
BAB I
PENDAHULUAN
1.3 Tujuan
1. Memenuhi tugas Praktikum Dasar Pemrograman.
2. Mengetahui dam memahami apa itu bahasa C.
3. Mempelajari struktur bahasa pemrograman C
BAB II
PENGENALAN C
int main(){
// kode atau logika program kita di sini
return 0;
}
Ini adalah struktur dasar yang wajib dipahami. Kalau kita perhatikan, struktur
program tersebut dibagi menjadi dua bagian utama:
1. Bagian Include;
2. Blok Fungsi Main.
#include <stdio.h>
int main(){
printf("Hello World!");
/*
yang lebih
*/
return 0;
3.1.1 Percabangan if
Percabangan if merupakan percabangan yang hanya memiliki satu blok
pilihan saat kondisi bernilai benar. Coba perhatikan flowchart berikut:
Flowchart tersebut dapat kita baca seperti ini: “Jika total belanja lebih besar
dari Rp 100.000, Maka tampilkan pesan “Selamat, Anda dapat hadiah”. Kalau
dibawah Rp 100.000 bagaimana? Maka pesannya tidak akan ditampilkan.
Mari kita coba membuat program C bernama percabangan_if.c, kemudian isi
dengan kode berikut.
#include <stdio.h>
void main(){
printf("== Program Pembayaran ==\n");
int total_belanja = 0;
printf("Inputkan total belanja: ");
10
scanf("%i", &total_belanja);
// menggunakan blok percabangan if
if( total_belanja > 100000 ){
printf("Selamat, Anda mendapatkan hadiah!\n");
}
printf("Terimakasih sudah berbelanja di toko kami\n\n");
}
Inilah yang disebut blok program. Blok program berisi sekumpulan ekpresi
dan statement untuk dikerjakan oleh komputer. Blok program pada bahasa C, selalu
diawali dengan tanda buka kurung kurawal { dan akan diakhiri dengan tutup kurung
kurawal }.
Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka
boleh tidak ditulis tanda kurungnya seperti ini:
Untuk lebih jelasnya, mari kita coba dalam program. Buatlah file beru
bernama percabangan_if_else.c, kemudian isi dengan kode berikut:
#include <stdio.h>
void main(){
// membuat array karakter untuk menyimpan password
char password[30];
printf("==== Program Login ====\n");
printf("Masukan password: ");
scanf("%s", &password);
// percabangan if/esle
if( strcmp(password, "kopi") == 0 ){
printf("Selamat datang bos!\n");
} else {
printf("Password salah, coba lagi!\n");
}
14
Fungsi strcmp() akan menghasilkan nilai false atau nol (0) jika kedua teks
yang dibandingkan sama. Oleh sebab itu, kita menggunakan perbandingan seperti ini
pada blok if/else : Strcmp(password, “kopi”) == 0
Hasilnya:
Perhatikan di bagian else if untuk >= 80 dan >= 60, seharusnya di sana kita
mengisi variabel grade dengan B+ dan C+. Tapi kita mengisinya
dengan B dan C saja. Ini karena variabel tersebut bertipe char dan tipe data ini hanya
mampu menyimpan satu karakter saja. Jika ingin menggunakan B+ dan C+, kita bisa
pakai tipe data string.
Kita dapat mermbuat blok kode (case) sebanyak yang diinginkan di dalam
blok switch. Pada <value>, kita bisa isi dengan nilai yang nanti akan dibandingkan
dengan varabel. Setiap case harus diakhiri dengan break. Khusus untuk default,
tidak perlu diakhiri dengan break karena dia terletak di bagian akhir.
Pemberian break bertujuan agar program berhenti mengecek case berikutnya saat
sebuah case terpenuhi. Contoh:
#include <stdio.h>
void main(){
char grade;
printf("Inputkan grade: ")
scanf("%c", &grade);
switch (toupper(grade)){
case 'A':
printf("Luar biasa!\n");
break;
case 'B':
case 'C':
printf("Bagus!\n");
break;
case 'D':
printf("Anda lulus\n");
break;
case 'E':
case 'F':
printf("Anda remidi\n");
break;
default:
printf("Grade Salah!\n");
}
}
19
Kedua case ini tidak memiliki isi. Ini artinya dia akan mengikut pada case
berikutnya. Sebagai contoh, apabila kita inputkan B maka case C yang akan terpilih.
BegituBegitu juga saat kita inputkan E, maka case F yang akan terpilih.
Untuk lebih jelasnya, mari kita coba. Buatlah file baru bernama 📄 ternary.c,
kemudian isi dengan kode berikut:
#include <stdio.h>
Void main(){
Int jawaban;
}
Hasilnya:
Int main(){
if (username == “petanikode”){
if (password == “kopi”){
cout << “Selamat datang bos!” << endl;
} else {
cout << “Password salah, coba lagi!” << endl;
}
} else {
cout << “Anda tidak terdaftar” << endl;
}
return 0;
}
23
Hasilnya:
LOOPING
Apa yang akan kamu lakukan saat disuruh mencetak kalimat berulang-ulang?
Misalnya: “Tolong tampilkan kalimat “Tutorial Pemrograman C!” sebanyak 10x ke
layar!”
Perbedaannya:
1. Counted Loop merupakan perulangan yang jelas dan sudah tentu banyak kali
perulangannya.
2. Sedangkan Uncounted Loop, merupakan perulangan yang tidak jelas berapa
kali ia harus mengulang.
a. Perulangan For
a. Perulangan While
b. Perulangan Do/While
25
Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah
kata for. Kondisi ini akan menentukan:
1. Hitungan akan dimulai dari 0 (i = 0);
2. Hitungannya sampai berapa? Sampai i < 10;
3. Lalu di setiap perulangan i akan bertambah +1 (i++).
Variabel i pada perulangan for berfungsi untuk menyimpan nilai hitungan.
Jadi setiap perulangan dilakukan nilai i akan selalu bertambah satu. Karena kita
menentukannya di bagian i++.
26
void main(){
Apakah nama variabelnya harus selalu i? Tidak. Kita juga bisa menggunakan
nama lain. Misalnya:
#include <stdio.h>
void main(){
Pada contoh tersebut, kita melakukan perulangan dimulai dari nol 0. Lalu di
setiap perulangan nilai variabel couter akan ditambah 2 (counter+2).
27
Hasilnya:
Hasilnya:
Bentuk kodenya :
do {
// blok kode yang akan diulang
} while (<kondisi>);
void main(){
int counter = 0;
do {
printf("Apakah kamu mau mengulang?\n");
printf("Jawab (y/t): ");
scanf(" %c", &ulangi);
// increment counter
counter++;
} while(ulangi == 'ulang)
printf("\n\n----------\n");
printf("Perulangan Selesai!\n");
printf("Kamu mengulang sebanyak %i kali.\n", counter);
}
Maka hasilnya:
Definisi fungsi ditulis sebelum tubuh fungsi tanpa diakhiri dengan titik koma.
Tipe di definisi fungsi menunjukkan tipe dari fungsi. Tipe dari fungsi tergantung dari
tipe data hasil balik yang akan diberikan oleh fungsi. Misalnya hasil balik dari fungsi
berupa nilai numerik pecahan, maka tipe dari fungsi dapat dibuat float atau double atau
long double tergantung padaketepatan yang diinginkan. Jika fungsi tidak memberikan
nilai balik, maka tipenya adalah void. Tipe dari fungsi ini tidak dapat ditulis jika
tipenya adalah char atau int. Jika suatu fungsi didefinisikan tanpa menggunakan
tipenya, maka akan dianggap bertipe integer. Contoh definisi fungsi dengan
menggunakan argumen atau parameter :
Pada contoh di atas, name adalah sebuah parameter berupa array dengan tipe
char. Parameter ini hanya akan dikenali di dalam fungsi. Lalu, bagaimana cara
memanggil fungsi yang memiliki parameter?
Berikut caranya:
say_hello(“Petani Kode”);
Perhatikan! “Petani Kode” adalah nilai yang akan kita berikan ke parameter.
Agar lebih paham, mari kita coba dalam program. Silahkan buat program baru dengan
nama parameter.c, kemudian isi dengan kode berikut:
#include <stdio.h>
void main(){
say_hello(“Dian”);
say_hello(“Petani”);
say_hello(“Kode”);
}
Hasilnya:
void main(){
add(1, 4);
add(8, 2);
add(3, 2);
}
Hasilnya:
}
36
Fungsi ini tidak akan mengembalikan apa-apa, karena tipe data yang
diberikan pada nilai kembalian adalah void. Terkadang fungsi harus
mengembalikan sebuah nilai agar dapat diproses di tahap berikutnya. Kita bisa
menggunakan kata kunci return untuk mengembalikan nilai dari fungsi.
Contoh:
int add(int a, int b){
return a+b;
Maka fungsi add() akan mengembalikan nilai berupa integer dari hasil
penjumlahan nilai a dan b. Mari kita coba contoh yang lain. Silahkan buat program
baru bernama fungsi_bagi.c, kemudian isi dengan kode berikut:
#include <stdio.h>
return hasil;
void main(){
Hasilnya:
void main(){
scanf("%d", &number);
result = sum(number);
if (num!=0)
else
return num;
}
38
Hasilnya:
int nilai = 9;
void main(){
int nilai = 7;
// mencetak variabel
}
39
Pada contoh di atas, kita membuat variabel global bernama nilai. Lalu di
dalam fungsi main(), kita membuat variabel lagi bernama nilai dengan nilai yang
berbeda. Variabel yang ada di dalam fungsi main() adalah variabel lokal. Lalu,
berapakah hasil outputnya? Jawabannya: 7
Mengapa bisa 7? Karena variabel nilai kita buat ulang di dalam fungsi main.
Sekarang coba hapus variabel lokal yang ada di dalam main, sehingga akan menjadi
seperti ini:
#include <stdio.h>
int nilai = 9;
void main(){
// mencetak variabel
Maka hasil outputnya akan 9. Karena variabel yang dipakai adalah variabel global.
Ini disebut pass by value, karena di sana kita memberikan nilai 4. Nah kalau
seperti ini:
kali_dua(&nama_variabel);
*num = *num * 2;
void main(){
int angka = 9;
// memanggil fungsi
kali_dua(&angka);
Hasilnya:
Apa yang akan kamu lakukan jika diminta untuk menyimpan banyak data di
program? Misalkan kita ingin menyimpan nama-nama teman untuk data kontak.
Mungkin saja, kita akan menyimpannya seperti ini:
char[32] namaKontak1 = "Ayu";
Indeks array selalu dimulai dari angka nol (0). Pada teori struktur data, ukuran
array akan bergantung dari banyaknya data yang ditampung di dalamnya.
42
int nama_array[10];
Cara membuat array hampir sama seperti cara membuat variabel biasa.
Bedanya, pada array kita harus menentukan panjangnya.
Mengapa bukan huruf[3]? Ingat: indeks array selalu dimulai dari nol. Biar
lebih jelas, mari kita coba dalam program:
#include <stdio.h>
void main(){
Hasilnya:
Maka isi array huruf pada indeks ke-2 akan bernilai 'z'. Kalau tidak percaya,
kamu bisa coba buktikan sendiri.
#include <stdio.h>
void main(){
huruf[2] = 'z';
Hasil outputnya:
Huruf: z
Contoh lain:
#include <stdio.h>
void main(){
int nilai[5];
// mengisi array
nilai[0] = 32;
nilai[1] = 42;
nilai[2] = 76;
nilai[3] = 31;
nilai[4] = 57;
Hasilnya:
void main(){
// membuat array kosong
int nilai[5];
46
// mengisi array
nilai[0] = 32;
nilai[1] = 42;
nilai[2] = 76;
nilai[3] = 31;
nilai[4] = 57;
Hasilnya:
int matriks[3][3] = {
{1, 3, 5},
{5, 3, 1},
{6, 2, 3}
};
Contoh program:
#include <stdio.h>
void main(){
int matriks[3][3] = {
{1, 3, 5},
{5, 3, 1},
{6, 2, 3}
};
Hasilnya:
7.1 Kesimpulan
Bahasa C adalah sebuah bahasa dasar tingkat menengah yang sifatnya
kompleks dan membangun logika atau algoritma. Bahasa C bersifat portable, yaitu
dengan sedikit atau tanpa perubahan, suatu program yang dirancang atau ditulis
dengan bahasa C dapat dijalankan pada komputer lain.
Struktur dasar bahasa pemrograman C yang wajib dipahami adalah dibagi
menjadi dua bagian utama, yaitu:
1. Bagian Include;
2. Blok Fungsi Main.
Pada program C, #include berfungsi untuk mengimpor fungsi-fungsi k rumah
yang sudah didefinisikan pada header file. Header file adalah file yang berisi definisi
fungsi yang sudah dibuat. Tujuannya agar bisa digunakan pada program C yang
lainnya. File ini berekstensi .h, contoh: stdio.h.
Fungsi main() adalah fungsi utama dalam program. Fungsi ini akan dieksekusi
pertama kali saat program dijalankan. Karena itu, kita harus menuliskan logika
program di dalam fungsi ini.
7.2 Saran
Untuk menciptakan suatu struktur bahasa pemrograman yang baik harus memenuhi
beberapa kriteria yaitu :
1. Suatu bahasa pemrograman ditulis secara urut dan sesuai dengan prosedurnya.
2. Dalam penulisan struktur bahasa pemrograman sebaiknya perlu
memperhatikan tipe-tipe data yang akan digunakan dalam pembuatan program.
3. Pada saat bagian deklarasi sebaiknya perlu memperhatikan syarat-syarat atau
kententuan-ketentuan dalam suatu bahasa pemrograman.
DAFTAR PUSTAKA
https://ariana.web.ugm.ac.id/2018/07/10/seri-tutorial-bahasa-c-bagian-1-
mengenal-dan-memulai-membuat-program-sederhana-dalam-bahasa-c/
https://www.petanikode.com/c-perulangan/
http://25ieundip2012ti.blogspot.com/2012/11/makalah-bahasa-
pemrograman.html
https://www2.slideshare.net/mandez/bahasa-c-29426976
http://rogayah.staff.gunadarma.ac.id/Downloads/files/38669/FUNGSI__DAL
AM__BAHASA_C.pdf