Penyusun menyadari bahwa laporan ini masih jauh dari sempurna sehingga segala
bentuk masukan yang kontruktif sangat diharapkan dalam pengembangan dan
perbaikan Laporan Praktikum Aplikasi Pemprograman Bahasa C ini di masa yang
akan datang.
Penyusun
i
DAFTAR ISI
KATA PENGANTAR......................................................................................................i
DAFTAR ISI .................................................................................................................. ii
BAB 1 ALGORITMA & FLOWCHART ........................................................................1
1.1 TUJUAN ...............................................................................................................1
1.2 TEORI DASAR.....................................................................................................1
1.3 HASIL PERCOBAAN PRAKTIKUM ...................................................................3
1.4 PEMBAHASAN DAN ANALISIS ........................................................................8
1.5 KESIMPULAN .....................................................................................................9
BAB 2 DASAR PROGRAM BAHASA C ..................................................................... 10
2.1 TUJUAN ............................................................................................................. 10
2.2 TEORI DASAR................................................................................................... 10
2.3 HASIL PERCOBAAN PRAKTIKUM ................................................................. 14
2.4 PEMBAHASAN DAN ANALISIS ...................................................................... 17
2.5 KESIMPULAN ................................................................................................... 18
BAB 3 PENGAMBILAN KEPUTUUSAN ................................................................... 19
3.1 TUJUAN ............................................................................................................. 19
3.2 TEORI DASAR................................................................................................... 19
3.3 HASIL PERCOBAAN PRAKTIKUM ................................................................. 24
3.4 PEMBAHASAN DAN ANALISIS ...................................................................... 35
3.5 KESIMPULAN ................................................................................................... 36
BAB 4 PENGULANGAN PROSES .............................................................................. 37
4.1 TUJUAN ............................................................................................................. 37
4.2 TEORI DASAR................................................................................................... 37
4.3 HASIL PERCOBAAN PRAKTIKUM ................................................................. 45
4.4 PEMBAHASAN DAN ANALISIS ...................................................................... 50
4.5 KESIMPULAN ................................................................................................... 50
BAB 5 FUNGSI DASAR .............................................................................................. 51
5.1 TUJUAN ............................................................................................................. 51
5.2 TEORI DASAR................................................................................................... 51
ii
5.3 HASIL PERCOBAAN PRAKTIKUM ................................................................. 59
5.4 PEMBAHASAN DAN ANALISIS ...................................................................... 64
5.5 KESIMPULAN ................................................................................................... 65
BAB 6 FUNGSI MATEMATIKA ................................................................................. 66
6.1 TUJUAN ............................................................................................................. 66
6.2 TEORI DASAR................................................................................................... 66
6.3 HASIL PERCOBAAN PRAKTIKUM ................................................................. 68
6.4 PEMBAHASAN DAN ANALISIS ...................................................................... 70
6.5 KESIMPULAN ................................................................................................... 70
BAB 7 POINTER ......................................................................................................... 71
7.1 TUJUAN ............................................................................................................. 71
7.2 TEORI DASAR................................................................................................... 71
7.3 HASIL PERCOBAAN PRAKTIKUM ................................................................. 74
7.4 PEMBAHASAN DAN ANALISIS ...................................................................... 78
7.5 KESIMPULAN ................................................................................................... 78
BAB 8 ARRAY ............................................................................................................ 79
8.1 TUJUAN ............................................................................................................. 79
8.2 TEORI DASAR................................................................................................... 79
8.3 HASIL PERCOBAAN PRAKTIKUM ................................................................. 86
8.4 PEMBAHASAN DAN ANALISIS ...................................................................... 90
8.5 KESIMPULAN ................................................................................................... 91
BAB 9 STRING ............................................................................................................ 92
9.1 TUJUAN ............................................................................................................. 92
9.2 TEORI DASAR................................................................................................... 92
9.3 HASIL PERCOBAAN PRAKTIKUM ................................................................. 95
9.4 PEMBAHASAN DAN ANALISIS .................................................................... 101
9.5 KESIMPULAN ................................................................................................. 101
BAB 10 STRUKTUR ................................................................................................. 102
10.1 TUJUAN ......................................................................................................... 102
10.2 TEORI DASAR ............................................................................................... 102
10.3 HASIL PERCOBAAN PRAKTIKUM ............................................................. 106
10.4 PEMBAHASAN DAN ANALISIS .................................................................. 116
10.5 KESIMPULAN ............................................................................................... 117
iii
BAB 1 ALGORITMA & FLOWCHART
1.1 TUJUAN
1
Algoritma
Algoritma adalah urutan langkah-langkah logika yang menyatakan suatu tugas
dalam
menyelesaikan suatu masalah atau problem.
Contoh :
Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan adalah
2
bilangan ganjil atau bilangan genap, flowchart dari program adalah sebagai
berikut
#include <stdio.h>
main()
float PHI=3.14;
float jari,luas;
scanf("%f", &jari);
luas=PHI*jari*jari;
3
getch();
return 0;
Hasil keluarannya
#include <stdio.h>
main ()
{
char a='t';
int n;
while(a=='t'||a=='T')
{
printf("Pengiriman e-mail ke- ");
scanf("%d", &n);
printf("Apakah e-mail terkirim [y/t]?");
getchar();
a=getchar();
}
printf("E-mail terkirim dengan %d percobaan",n);
}
4
Hasil keluarannya
#include <stdio.h>
main ()
{
char a='t';
int n;
while(a=='t'||a=='T')
{
printf("Panggilan telepon ke-");
scanf("%d", &n);
printf("Apakah telepon diangkat [y/t]?");
getchar();
a=getchar();
}
printf("Telepon diangkat sampai %d percobaan",n);
}
5
Hasil keluarannya
#include <stdio.h>
#include <math.h>
main ()
{
int a,b,biaya;
printf("Menghitung jumlah pemakaian air\n");
printf("Masukkan pemakaian air : ");
scanf("%d", &a);
if(a>15)
{
biaya=a*650;
printf("Jumlah pemakaian air : %d Rupiah", biaya);
6
}
else
{
biaya=a*300;
printf("Jumlah pemakaian air : %d Rupiah", biaya);
}
return 0;
Hasil keluarannya
#include <stdio.h>
#include <stdlib.h>
main()
{
int bil, total=0;
for (bil=1; bil<=10; bil+=2)
{
printf("\n%d", bil);
total+=bil;
7
}
printf("\nJadi total jumlah bilangan ganjil adalah : %d", total);
getche();
}
Hasil keluarannya
PERCOBAAN 1
8
menginputkan “T” makan program akan menampilkan “Apakah email
terkirim (y/t)?”.
PERCOBAAN 3
1. Fungsi char sederhana adalah masukan variabel huruf yang tidak boleh
melebihi dari angka di dalam kurung { }.
2. Penggunaan %d pada scanf berfungsi untuk menampilkan angka bilangan
decimal sesuai perintah.
3. Pada Case pertama jika kita menginputkan Karakter Huruf “Y” maka
Output yang dihasilkan akan menampilkan “Telepon diangkat dengan %d
percobaan”, namun jika Case pertama tidak terpenuhi atau kita
menginputkan “T” makan program akan menampilkan “Apakah telepon
diangkat (y/t)?”.
PERCOBAAN 4
1. Penggunaan Int yaitu untuk deklarasi tipe data specifier yang digunakan
untuk membuat variabel integer (bilangan bulat).
2. Else Adalah bagian dari pernyataan kondisional if. Alur dibawah keyword
else akan dijalankan jika ekspresi yang menyertai keyword if bernilai
false.
3. Penggunaan \n untuk membuat tab garis baru.
PERCOBAAN 5
1. Penggunaan Int yaitu untuk deklarasi tipe data specifier yang digunakan
untuk membuat variabel integer (bilangn bulat).
2. Penggunaan Operator for untuk Loop yang memungkinkan pemberian
huruf awal dan kenaikan secara otomatis dari variabel.
3. Printf terahir untuk menampilkan hasil akhir dari program diatas.
4. Pada program di atas, kenaikan terhadap variabel pengendali loop sebesar
2 (positif), yang dinyatakan dengan ungkapan bilangan + = 2 yang sama
artinya dengan bilangan = bilangan + 2.
1.5 KESIMPULAN
Pada bab ini, kita diajarkan membuat algoritma dan flowchart yang bertujuan
untuk memahami persoalan, yang menggunakan urutan-urutan langkah logika
yang menyatakan suatu tugas, dan menyusunnya dalam bentuk simbol simbol
yang memiliki fungsi berbeda
9
BAB 2 DASAR PROGRAM BAHASA C
2.1 TUJUAN
Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin
Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson
yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970.
Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ritchie
sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah
AT&T Bell Laboratories). Bahasa C pertama kali digunakan pada komputer
Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX.
Proses dari bentuk source program, yaitu program yang ditulis dalam bahasa C
hingga menjadi program yang executable ditunjukkan pada Gambar 1 di bawah
ini:
10
Struktur Penulisan Program C
Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Sebuah program
minimal mengandung sebuah fungsi. Fungsi pertama yang harus ada dalam
program C dan sudah ditentukan namanya adalah main(). Setiap fungsi terdiri atas
satu atau beberapa pernyataan, yang secara keseluruhan dimaksudkan untuk
melaksanakan tugas khusus. Bagian pernyataan fungsi (sering disebut tubuh
fungsi) diawali dengan tanda kurung kurawal buka ({) dan diakhiri dengan tanda
kurung kurawal tutup (}). Di antara kurung kurawal itu dapat dituliskan statemen-
statemen program C. Namun pada kenyataannya, suatu fungsi bisa saja tidak
mengandung pernyataan sama sekali. Walaupun fungsi tidak memiliki pernyataan,
kurung kurawal haruslah tetap ada. Sebab kurung kurawal mengisyaratkan awal
dan akhir definisi fungsi. Berikut ini adalah struktur dari program C
Fungsi-Fungsi Dasar
a. Fungsi main()
Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi titik
awal dan titik akhir eksekusi program. Tanda { di awal fungsi menyatakan
awal tubuh fungsi dan sekaligus awal eksekusi program, sedangkan tanda } di
akhir fungsi merupakan akhir tubuh fungsi dan sekaligus adalah akhir eksekusi
program. Jika program terdiri atas lebih dari satu fungsi, fungsi main() biasa
ditempatkan pada posisi yang paling atas dalam pendefinisian fungsi. Hal ini
hanya merupakan kebiasaan. Tujuannya untuk memudahkan pencarian
terhadap program utama bagi pemrogram. Jadi bukanlah merupakan suatu
keharusan.
11
b. Fungsi printf()
Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan
suatu keluaran pada layar peraga. Untuk menampilkan tulisan.
dengan string kontrol dapat berupa satu atau sejumlah karakter yang akan
ditampilkan ataupun berupa penentu format yang akan mengatur penampilan
dari argumen yang terletak pada daftar argumen. Mengenai penentu format di
antaranya berupa :
Contoh:
#include <stdio.h>
main( )
12
{
printf(“No : %d\n”, 10);
printf(“Nama : %s\n”, “Ali”;
printf(“Nilai : %f\n”,80.5;
printf(“Huruf : %c\n”,‘A’);
}
Praprosesor #include
#include merupakan salah satu jenis pengarah praprosesor (preprocessor
directive). Pengarah praprosesor ini dipakai untuk membaca file yang di
antaranya berisi deklarasi fungsi dan definisi konstanta. Beberapa file judul
disediakan dalam C. File-file ini mempunyai ciri yaitu namanya diakhiri dengan
ekstensi .h. Misalnya pada program
#include <stdio.h> menyatakan pada kompiler agar membaca file bernama
stdio.h saat pelaksanaan kompilasi.
Bentuk umum #include :
#include “namafile”
Bentuk pertama (#include <namafile>) mengisyaratkan bahwa pencarian file
dilakukan pada direktori khusus, yaitu direktori file include. Sedangkan bentuk
kedua (#include “namafile”) menyatakan bahwa pencarian file dilakukan pertama
kali pada direktori aktif tempat program sumber dan seandainya tidak ditemukan
pencarian akan dilanjutkan pada direktori lainnya yang sesuai dengan perintah
pada sistem operasi. Kebanyakan program melibatkan file stdio.h (file-judul I/O
standard, yang disediakan dalam C). Program yang melibatkan file ini yaitu
program yang menggunakan pustaka I/O (input-output) standar seperti printf().
Contoh :
/* Tanda ini adalah komentar
untuk multiple lines
*/
#include <stdio.h>
main()
{
printf(“Coba\n”); //Ini komentar satu baris
}
13
2.3 HASIL PERCOBAAN PRAKTIKUM
#include <stdio.h>
main ()
Hasil keluarannya
14
{
printf("Saya sekarang sedang makan\n");
printf("Kantin UNSIKA\n");
printf("Murah meriah\n");
printf("Cocok untuk kalangan mahasiswa");
}
Hasil keluarannya
#include <stdio.h>
main()
{
printf(”ternyata semester %f ini nilaiku jelek”,4);
printf(”matematika %d dan metode numerik %c”,’B’,D);
printf(”ooooo.....ternyata kuliah itu susah %d”,”sekali”);
printf(”sepertinya %s rajin belajar minimal %s sehari”,’harus’,8);
}
Yang benar
#include<stdio.h>
main()
{
printf("Ternyata semester %d ini nilaiku jelek\n",4);
15
printf("Matematika %c dan metode numerik %c\n",'B','D');
printf("oooo.......ternyata kuliah itu susah %s","sekali\n");
printf("Sepertinya %s rajin belajar minimal %d kali sehari","harus",8);
}
Hasil keluarannya
#include <stdio.h>
main ()
{
printf("Dalam membuat\"Program komputer\" \n");
printf("Terdapat \\aturan\\aturan yang harus dipenuhi \n");
printf("Dalam menuliskan perintah-perintah dasar \n");
printf("Untuk itu \"Programmer\" harus menghafal aturan-aturan \n");
printf("Yang berlaku.")
}
16
Hasil keluarannya
PERCOBAAN 1
17
PERCOBAAN 4
1. Penulisan ouput menggunakan tanda petik dua, dalam inputnya
dimasukkan blackslash diikuti petik dua (\”) yang menyatakan karakter
petik-ganda.
2. Untuk mendapatan output penulisan karakter blackslash (\) yaitu input
mengunakan (\\).
3. Begitu pula penulisan pada kata programer yang diikuti dengan petik
blackslash dan petik dua yang mengartikan (“...”).
2.5 KESIMPULAN
Di dalam bab ini, kita mempelajari dasar program bahasa C, dimana kita
mengenal sintaks dan fungsi fungsi dasar dalam bahasa C, seperti : fungsi main (),
fungsi printf(), yang digunakan untuk membaca suatu program
18
BAB 3 PENGAMBILAN KEPUTUUSAN
3.1 TUJUAN
Operator Relasi
Operator relasi biasa dipakai untuk membandingkan dua buah nilai. Hasil
pembandingan berupa keadaan benar atau salah. Keseluruhan operator relasi pada
C ditunjukkan pada Tabel 3-1
19
Operator Relasi
Operator logika biasa dipakai untuk menghubungkan ekspresi relasi. Keseluruhan
operator logika ditunjukkan pada tabel 2.
Pernyataan if
20
Arti dari pernyataan if-else :
Jika kondisi benar, maka pernyataan-1 dijalankan.
Sedangkan bila kondisi bernilai salah, maka pernyataaan-2 yang
dijalankan.
Masing-masing pernyataan-1 dan pernyataan-2 dapat berupa sebuah pernyataan
tunggal, pernyataan majemuk ataupun pernyataan kosong.
Contoh penggunaan pernyataan if-else adalah untuk menyeleksi nilai suatu
bilangan pembagi. Jika nilai bilangan pembagi adalah nol, maka hasil pembagian
dengan nilai nol akan mendapatkan hasil tak berhingga. Jika ditemui nilai
pembaginya nol, maka proses pembagian tidak akan dilakukan.
21
Pernyataan if di dalam if
Di dalam suatu pernyataan if (atau if-else) bisa saja terdapat pernyataan if (atau if
else) yang lain. Bentuk seperti ini dinamakan sebagai nested if. Secara umum,
bentuk dari pernyataan ini adalah sebagai berikut :
Kondisi yang akan diseleksi pertama kali adalah kondisi yang terluar (kondisi-1).
Jika kondisi-1 bernilai salah, maka statemen else yang terluar (pasangan
if yang bersangkutan) yang akan diproses. Jika else (pasangannya tsb)
tidak ditulis, maka penyeleksian kondisi akan dihentikan.
Jika kondisi-1 bernilai benar, maka kondisi berikutnya yang lebih dalam
(kondisi-2) akan diseleksi. Jika kondisi-2 bernilai salah, maka statemen
else pasangan dari if yang bersangkutan yang akan diproses. Jika else
(untuk kondisi-2) tidak ditulis, maka penyeleksian kondisi akan
dihentikan.
Dengan cara yang sama, penyeleksian kondisi akan dilakukan sampai
dengan kondisi-n, jika kondisi-kondisi sebelumnya bernilai benar.
Pernyataan else-if
Contoh implementasi nested if ini misalnya pembuatan sebuah program kalkulator
sederhana. User memberikan masukan dengan format :
Jenis operasi yang dikenakan bergantung pada jenis operator ang dimasukkan oleh
user. Oleh karena itu program akan mengecek apakah operator berupa tanda ‘*’,
‘/’, ‘+’, ataukah tanda ‘-‘.
Jika operator berupa tanda ‘*’ maka operand1 akan dikalikan dengan
operand2.
Jika operator berupa tanda ‘/’ maka operand1 akan dibagi dengan
operand2.
Jika operator berupa tanda ‘+’ maka operand1 akan dijumlahkan dengan
22
operand2.
Jika operator berupa tanda ‘-’ maka operand1 akan dikurangi dengan
operand2.
Kalau operator yang dimasukkan bukan merupakan salah satu dari jenis
operator di atas, maka ekspresi tersebut tidak akan diproses, dan user akan
mendapatkan pesan berupa : “Invalid operator!”
Pernyataan switch
Pernyataan switch merupakan pernyataan yang dirancang khusus untuk
menangani pengambilan keputusan yang melibatkan sejumlah alternatif, misalnya
untuk menggantikan pernyataan if bertingkat.
Bentuk umum pernyataan switch adalah :
dengan ekspresi dapat berupa ekspresi bertipe integer atau bertipe karakter.
Demikian juga konstanta-1, konstanta-2, …, konstanta-n dapat berupa
konstanta integer atau karakter. Setiap pernyataan-i (pernyataan-1, … ,
pernyataan-n) dapat berupa pernyataan tunggal ataupun pernyataan jamak. Dalam
hal ini urutan penulisan pernyataan case tidak berpengaruh. Proses penyeleksian
berlangsung sebagai berikut :
23
Jika sampai pada pengujian case yang terakhir ternyata tidak ada
kecocokan, maka pernyataan yang mengikuti kata kunci default yang akan
dieksekusi. Kata kunci default ini bersifat opsional.
Tanda kurung kurawal tutup (}) menandakan akhir dari proses
penyeleksian kondisi case.
Tampilan :
Masukkan pilihan anda : 1
Masukkan alas dan tinggi : 10 20
Jadi luasnya adalah 100
#include <stdio.h>
main ()
{
float a,t,L;
int bil;
printf("Masukkan pilihan anda : ");
scanf("%d", &bil);
switch(bil)
{
case 1:
printf("Masukkan alas & tinggi : ");
scanf("%f", &a); scanf("%f", &t);
L=0.5*a*t;
printf("Luas Segitiga = %2.2f",L);
break;
case 2:
printf("Masukkan panjang & lebar : ");
scanf("%f", &a); scanf("%f", &t);
L=a*t;
printf("Luas Persegi Panjang/Bujur Sangkar = %2.2f",L);
24
break;
}
return 0;
}
Hasil keluaran ke 1
Hasil keluaran ke 2
25
Flowchartnya
#include <stdio.h>
main ()
{
char a;
printf("Masukkan nilai huruf = ");
26
scanf("%c", &a);
switch(a)
{
case 'A':
printf("Nilai angka = 4 ");
break;
case'B':
printf("Nilai angka = 3 ");
break;
case 'C':
printf("Nilai angka = 2 ");
break;
case 'D':
printf("Nilai angka = 1 ");
break;
case 'E':
printf("Nilai angka = 0 ");
break;
}
return 0;
}
Hasil keluaran ke 1
27
Hasil keluaran ke 2
Hasil keluaran ke 3
28
Hasil keluaran ke 4
Hasil keluaran ke 5
29
Flowchartnya
#include<stdio.h>
main()
{
double a, b, c;
printf("Masukkan nilai huruf = "); scanf("%lf",&a);
printf("Masukkan nilai huruf = "); scanf("%lf",&b);
printf("Masukkan nilai huruf = "); scanf("%lf",&c);
if(a<c)
30
if(a<c)
{
printf("Terkecil %2.lf",a);
}
else
{
printf("Terkecil %2.lf",c);
}
else if(b<c)
("Terkecil %2.lf",b);
else
printf("terkecil %2.lf",c);
return 0;
}
Hasil keluarannya
31
Flowchartnya
#include <stdio.h>
main ()
{
char e;
printf("Nilai Huruf : ");
scanf("%c", &e);
if(e=='A')
printf("4");
else if(e=='B')
printf("3");
else if(e=='C')
printf("2");
else if(e=='D')
printf("1");
else if(e=='E')
printf("0");
else
printf("Pilihan Tidak Sesuai");
}
32
Hasil keluaran ke 1
Hasil keluaran ke 2
33
Hasil keluaran ke 3
Hasil keluaran ke 4
34
Hasil keluaran ke 5
PERCOBAAN 1
35
PERCOBAAN 4
1. Fungsi dari char ialah perintah untuk membubuhkan karakter, oleh karena
itu isi fungsi dari printf ialah %c.
3.5 KESIMPULAN
36
BAB 4 PENGULANGAN PROSES
4.1 TUJUAN
Pernyataan for
Mengulang suatu proses merupakan tindakan yang banyak dijumpai dalam
pemrograman. Pada semua bahasa pemrograman, pengulangan proses ditangani
dengan suatu mekanisme yang disebut loop. Dengan menggunakan loop, suatu
proses yang berulang misalnya menampilkan tulisan yang sama seratus kali pada
layar dapat diimpelementasikan dengan kode program yang pendek.
Pernyataan pertama yang digunakan untuk keperluan pengulangan proses adalah
pernyataan for. Bentuk pernyataan ini :
Ketiga ungkapan dalam for tersebut harus dipisahkan dengan tanda titik koma (;).
Dalam hal ini pernyatan bisa berupa pernyataan tunggal maupun jamak. Jika
pernyataannya berbentuk jamak, maka pernyataan-pernyataan tersebut harus
diletakkan di antara kurung kurawal buka ({) dan kurung kurawal tutup (}),
sehingga
formatnya menjadi :
37
pernyataan;
.
.
.
}
38
/* File program : for1.c
Contoh pemakaian for untuk membentuk deret naik */
#include <stdio.h>
main()
{
int bilangan;
for(bilangan = 20; bilangan <= 100; bilangan += 10)
printf("%d\n",bilangan);
}
Contoh eksekusi :
20
30
40
50
60
70
80
90
100
39
{
int bilangan;
for (bilangan = 60; bilangan >= 10; bilangan -= 10)
printf("%d\n", bilangan);
}
Contoh eksekusi :
60
50
40
30
20
10
Kadang-kadang dijumpai adanya pernyataan for yang tidak mengandung bagian
ungkapan yang lengkap (beberapa ungkapan dikosongkan). Dengan cara ini,
pernyataan:
40
for (;;)
pernyataan
Suatu pertanyaan mungkin timbul “Lalu bagaimana caranya kalau ingin keluar
dari loop pada bentuk di atas?”. Caranya adalah dengan menggunakan pernyataan
yang dirancang khusus untuk keluar dari loop. Mengenai hal ini akan dibahas
pada sub bab yang lain.
Pernyataan while
Pada pernyataan while, pengecekan terhadap loop dilakukan di bagian awal
(sebelum tubuh loop). Lebih jelasnya, bentuk pernyataan while adalah sebagai
berikut :
while (kondisi)
pernyataan;
Dengan melihat gambar 5.2, tampak bahwa ada kemungkinan pernyataan yang
merupakan tubuh loop tidak dijalankan sama sekali, yaitu kalau hasil pengujian
kondisi while yang pertama kali ternyata bernilai salah.
Contoh pemakaian while misalnya untuk mengatur agar tombol yang ditekan oleh
pemakai program berupa salah satu diantara 'Y','y', 'T' atau 't'. Impelementasinya :
41
Contoh eksekusi :
Pilihlah Y atau T
Pilihan anda adalah Y
Pernyataan do-while
Bentuk pernyataan do-while
do
pernyataan;
while (kondisi)
Pada pernyataan do-while, tubuh loop berupa pernyataan,dengan pernyataan bisa
berupa pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong.
Pada
42
pernyataan do, mula-mula pernyataan dijalankan. Selanjutnya, kondisi
diuji.Seandainya kondisi bernilai benar, maka pernyataan dijalankan lagi,
kemudian kondisi diperiksa kembali, dan seterusnya. Kalau kondisi bernilai salah
pada saat dites, maka pernyataan tidak dijalankan lagi. Untuk lebih jelasnya dapat
dilihatpada Gambar 4.3. Berdasarkan Gambar 4.3 terlihat bahwa tubuh loop
minimal akan dijalankan sekali.
Pada program di atas, variabel pencacah dipakai untuk menghitung jumlah tulisan
yang sudah ditampilkan pada layar. Selama nilai pencacah kurang dari 10, maka
perintah
puts("BAHASA C");
akan dilaksanakan kembali Penanganan pembacaan tombol pada contoh program
pilihan.c yang memakai while di atas, kalau diimplementasikan dengan memakai
do-while adalah sebagai berikut”
43
Contoh eksekusi :
Pilihlah Y atau T
Pilihan anda adalah T
44
4.3 HASIL PERCOBAAN PRAKTIKUM
#include <stdio.h>
main ()
{
int a,b,c=0;
printf("Masukkan integer positif = ");
scanf("%d", &b);
for(a=1 ; a<=b ; a++)
{
c=c+a;
}
printf("Jumlah 1 sampai 10 = %d",c);
}
Hasil keluarannya
45
Flowchartnya
2. Gunakan loop while untuk membuat program yang dapat mencari total
angka yang dimasukkan dengan tampilan sebagai berikut :
Masukkan bilangan ke-1 : 5
Mau memasukkan data lagi [y/t] ? y
#include <stdio.h>
main()
{
char jawab='y';
int a=0, hasil=0, n=0;
46
printf("Mau Masukkan lagi [y/t] ? ");
getchar();
jawab = getchar();
hasil += a;
}
printf("Hasilnya = %d \n", hasil);
Hasil keluarannya
Flowchartnya
47
3. Buatlah program yang menentukan sebuah integer dengan acak, dan
membaca sebuah integer berulang kali sampai integer yang dibaca sama
dengan integer yang ditentukan secara acak.
Tampilan:
misalkan angka hasil pengacakan adalah)
Angka tebakan:34
Tebakan terlalu kecil
Angka Tebakan:55
Tebakan Terlalu besar
Angka Tebakan:50
Tebakan benar
#include <math.h>
#include <time.h>
int main()
{
int b=1, angka, input, teb;
do
{
angka=rand();
}
while(angka<=0 && angka>50);
for(b=1 ; b<=2 ; b++ )
{
printf("Masukkan angka tebakan anda ke- %d?",b);
scanf("%d", &input);
if(input==angka)
{
printf("\n Hebat angka %d berhasil anda tebak dalam %d kali
tebakan \n\n",angka,b);
break;
}
if(input<=angka)
{
printf("\n Angka anda lebih KECIL \n\n");
}
if(input>=angka)
{
printf("\n Angka anda lebih BESAR \n\n");
}
}
48
if(input!=angka)
{
printf("\n Angka Tidak Berhasil menebak angka ajaib = %d
\n\n",angka);
}
}
Hasil keluarannya
Flowchartnya
49
4.4 PEMBAHASAN DAN ANALISIS
PERCOBAAN 1
4.5 KESIMPULAN
Pada bab ini kita mempelajari tentang Pengulangan Proses, didalam pengulangan
proses kita menggunakan pernyataan for, while dan do-while, pernyataan-
pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam pengambilan
keputusan. Kondisi umum yang dipakai berupa keadaan benar dan salah.
50
BAB 5 FUNGSI DASAR
5.1 TUJUAN
Pengertian
Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan
tugas tertentu dan letaknya dipisahkan dari program yang menggunakannya.
Elemen utama dari program bahasa C berupa fungsi-fungsi, dalam hal ini program
dari bahasa C dibentuk dari kumpulan fungsi pustaka (standar) dan fungsi yang
dibuat sendiri oleh pemrogram. Fungsi banyak digunakan pada program C dengan
tujuan :
a) Program menjadi terstruktur, sehingga mudah dipahami dan mudah
dikembangkan. Dengan memisahkan langkah-langkah detail ke satu atau
lebih fungsi-fungsi, maka fungsi utama (main()) menjadi lebih pendek,
jelas dan mudah dimengerti.
b) Dapat mengurangi pengulangan (duplikasi) kode. Langkah-langkah
program yang sama dan dipakai berulang-ulang di program dapat
dituliskan sekali saja secara terpisah dalam bentuk fungsi-fungsi.
Selanjutnya bagian program yang
membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya,
tetapi cukup memanggil fungsifungsi tersebut.
Fungsi Dasar
Fungsi standar C yang mengemban tugas khusus contohnya adalah ;
printf() , yaitu untuk menampilkan informasi atau data ke layar.
scanf() , yaitu untuk membaca kode tombol yang diinputkan.
Pada umumnya fungsi memerlukan nilai masukan atau parameter yang disebut
sebagai argumen. Nilai masukan ini akan diolah oleh fungsi. Hasil akhir fungsi
berupa sebuah nilai (disebut sebagai return value atau nilai keluaran fungsi). Oleh
karena itu fungsi sering digambarkan sebagai "kotak gelap" seperti ditunjukkan
pada gambar di bawah ini.
51
Gambar 5.1 Diagram Model Fungsi
Keterangan :
tipe-keluaran-fungsi, dapat berupa salah satu tipe data C, misalnya char
atau int .Kalau penentu tipe tidak disebutkan maka dianggap bertipe int
(secara default).
tubuh fungsi berisi deklarasi variabel (kalau ada) dan statemen-statemen
yang akan melakukan tugas yang akan diberikan kepada fungsi yang
bersangkutan. Tubuh fungsi ini ditulis di dalam tanda kurung kurawal
buka dan kurung kurawal tutup.
Sebuah fungsi yang sederhana bisa saja tidak mengandung parameter sama sekali
dan tentu saja untuk keadaan ini deklarasi parameter juga tidak ada. Contoh :
int inisialisasi()
{
return(0);
}
52
return(0) merupakan sebuah pernyataan dalam tubuh fungsi.
Dalam tubuh fungsi, pernyataan yang digunakan untuk memberikan nilai keluaran
fungsi berupa return. Sebagai contoh, pada fungsi inisialisasi() di atas terdapat
pernyataan
return(0);
merupakan pernyataan untuk memberikan nilai keluaran fungsi berupa nol.
Selengkapnya perhatikan program di bawah ini
/* File program : inisial.c Contoh pembuatan fungsi */
int inisialisasi();
#include <stdio.h>
main()
{
int x, y;
x = inisialisasi();
printf("x = %d\n", x);
y = inisialisasi();
printf("y = %d\n", y);
}
int inisialisasi()
{
return(0);
}
Contoh eksekusi :
x=0
y=0
53
Gambar 5.2 Proses Pemanggilan Fungsi
x = inisialisasi();
y = inisialisasi();
Bagi suatu fungsi, jika suatu pernyataan return dieksekusi, maka eksekusi
terhadap fungsi akan berakhir dan nilai pada parameter return akan menjadi
keluaran fungsi. Untuk fungsi yang tidak memiliki pernyataan return, tanda }
pada bagian akhir fungsi akan menyatakan akhir eksekusi fungsi. Di bawah ini
diberikan contoh sebuah fungsi yang mengandung dua buah pernyataan return.
Fungsi digunakan untuk memperoleh nilai minimum di antara 2 buah nilai yang
menjadi parameternya.
if (x < y)
return(x);
else
return(y);
}
Pada fungsi di atas terdapat dua buah parameter berupa x dan y. Oleh karena itu
fungsi juga mengandung bagian untuk mendeklarasikan parameter, yang
menyatakan x dan y bertipe int. Adapun penentuan nilai keluaran fungsi dilakukan
pada tubuh fungsi, berupa pernyataan
54
if (x < y)
return(x);
else
return(y);
yang menyatakan :
jika x < y maka nilai keluaran fungsi adalah sebesar nilai x.
untuk keadaan lainnya (x >= y) maka keluaran fungsi adalah sebesar y.
Selengkapnya perhatikan program di bawah ini.
/* File program : minimum1.c */
#include <stdio.h>
int minimum (int, int);
main()
{
int a, b, kecil;
Contoh eksekusi :
Masukkan nilai a = 4
Masukkan nilai b = 2
Bilangan terkecil antara 4 dan 2 adalah 2
55
float minimum(float x, float y)
{
if (x < y)
return(x);
else
return(y);
}
Perhatikan, di depan nama minimum diberikan tipe keluaran fungsi berupa float.
Seluruh parameter sendiri juga didefinisikan dengan tipe float. Selengkapnya
adalah sebagai berikut :
return(x);
else
return(y);
}
Contoh eksekusi :
Masukkan nilai a = 5.5
Masukkan nilai b = 6.23
Bilangan terkecil antara 5 dan 6.23 adalah 5.5
Khusus untuk fungsi yang dirancang tanpa memberikan nilai keluaran (melainkan
hanya menjalankan suatu tugas khusus) biasa didefinisikan dengan diawali kata
56
kunci void (di depan nama fungsi). Sebagai contoh perhatikan program di bawah
ini.
Contoh Keluaran
Prototipe Fungsi
Prototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai :
57
Gambar 5.3 Prototipe Fungsi
Contoh program:
58
Untuk fungsi yang tidak memiliki argumen (contoh program void.c), maka
deklarasinya adalah:
Catatan :
Untuk fungsi-fungsi pustaka, prototipe dari fungsi-fungsi berada di file-
file judulnya (header file). Misalnya fungsi pustaka printf() dan scanf()
prototipenya berada pada file dengan nama stdio.h
Untuk fungsi pustaka pen cantuman pada prototipe fungsi dapat dilakukan
dengan menggunakan preprocessor directive #include
#include <stdio.h>
void main()
{
int i,n;
float ratarata,jumlah,x;
printf ("Masukkan banyaknya data = ");
scanf ("%d",&n);
jumlah = 0;
for (i=1; i<=n; i++)
{
printf("Masukkan nilai data ke-%d : ",i);
scanf("%f", &x);
jumlah = jumlah+x;
}
ratarata=jumlah/n;
printf("ratarata :%.2f", ratarata);
}
59
Hasil keluarannya
Flowchartnya
60
2. Dengan menggunakan call by pointer, buatlah program untuk menukarkan
dua buah bilangan
#include <stdio.h>
void swap(int *a, int *b)
{
int c=*a;
*a=*b;
*b=c;
}
int main()
{
int A=20;
int B=30;
swap(&A,&B);
return 0;
}
61
Hasil keluarannya
Flowchartnya
62
#include <stdio.h>
main()
{
int a, b, c, hasil;
printf ("Masukkan 3 angka : \n");
scanf ("%d %d %d", &a, &b, &c);
if (a>b)
if (a>c)
hasil=a;
else
hasil=c;
else if (b>c)
hasil=b;
else
hasil=c;
printf("Nilai terbesar adalah %d\n", hasil);
}
Hasil keluarannya
63
Flowchartnya
PERCOBAAN 1
PERCOBAAN 2
64
5.5 KESIMPULAN
Pada bab ini kita mempelajari Fungsi Dasar, dengan tujuan memahami fungsi
dasar bahasa C, membuat fungsi, memahami parameter dalam fungsi, dan
memahami cara melewatkan parameter ke dalam fungsi sehingga program
menjadi terstruktur dan mengurangi pengulangan (duplikasi) kode.
65
BAB 6 FUNGSI MATEMATIKA
6.1 TUJUAN
Beberapa fungsi matematika yang terdapat dalam library math.h bahasa C yakni:
66
Berikut contoh penggunaan math.h bahasa c:
Penjelasan:
67
6.3 HASIL PERCOBAAN PRAKTIKUM
Buat program gerak jatuh bebas untuk menghitung durasi benda di udara
dan kecepatan sebelum menyentuh tanah untuk beberapa kali percobaan
dengan ketinggian yo berbeda-beda.
#include <stdio.h>
#include <math.h>
main()
{
float y0,cepat1,durasi,kecepatan,g=9.8;
printf("Ketinggian awal : ");
scanf("%f", &y0);
printf("Kecepatan awal : ");
scanf("%f", &cepat1);
durasi=(cepat1+sqrt(cepat1*cepat1+2*g*y0))/g;
kecepatan=cepat1-g*durasi;
68
Hasil keluarannya
Flowchartnya
69
6.4 PEMBAHASAN DAN ANALISIS
6.5 KESIMPULAN
Pada bab ini kita mempelajari fungsi matematika dengan tujuan menjelaskan
fungsi matematika dalam bahasa C, serta menerapkan fungsi-fungsi matematika
yang terdapat dalam C untuk menyelesaikan permasalahan. Bahasa C
menyediakan bawaan fungsi matematika yang terdapat dalam pustaka (Library) :
math.h. Agar fungsi matematika tersebut dapat digunakan dalam program maka
fungsi matematika harus disertakan dalam program melalui pernyataan : #include
<math.h>
70
BAB 7 POINTER
7.1 TUJUAN
dengan tipe dapat berupa sembarang tipe yang sudah dibahas pada bab-bab
sebelumnya, maupun bab-bab berikutnya. Adapun nama_variabel adalah nama
dari variabel pointer.
71
Contoh pertama menyatakan bahwa px adalah variabel pointer yang menunjuk ke
suatu data bertipe int, sedangkan contoh kedua masing pch1 dan pch2 adalah
variabel pointer yang menunjuk ke data bertipe char.
&x
berarti “alamat dari variabel x”. Adapun contoh pemberian alamat x ke suatu
variabel pointer px (yang dideklarasikan sebagai pointer yang menunjuk ke data
bertipe int) yaitu :
px = &x
Pernyataan di atas berarti bahwa px diberi nilai berupa alamat dari variabel x.
Setelah pernyataan tersebut dieksekusi barulah dapat dikatakan bahwa px
menunjuk ke variabel x.
72
Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection
(tak langsung) berupa simbol * (bersifat unary).
Contoh penerapan operator * yaitu :
*px
yang menyatakan “isi atau nilai variabel/data yang ditunjuk oleh pointer px” .
Sebagai contoh jika y bertipe int, maka sesudah dua pernyataan berikut
px = &x;
y = *px;
y akan berisi nilai yang sama dengan nilai x.
d = 54.5;
digunakan untuk mengisikan nilai 54,5 secara langsung ke variabel d. Adapun
pd = &d;
digunakan untuk memberikan alamat dari d ke pd. Dengan demikian pd menunjuk
ke variabel d. Sedangkan pernyataan berikutnya
*pd = *pd + 10; (atau: *pd += 10; )
merupakan instruksi untuk mengubah nilai variabel d secara tak langsung.
Perintah di atas berarti “jumlahkan yang ditunjuk pd dengan 10 kemudian berikan
ke yang ditunjuk oleh pd”, atau identik dengan pernyataan
d = d + 10;
Akan tetapi, seandainya tidak ada instruksi
pd = &d;
maka pernyataan
*pd = *pd + 10;
tidaklah sama dengan
d = d + 10;
73
int *ptgl;
Kemudian diberikan instruksi
ptgl = &tgl_lahir[0];
maka ptgl akan berisi alamat dari elemen array tgl_lahir yang berindeks nol.
Instruksi di atas bisa juga ditulis menjadi
ptgl = tgl_lahir;
sebab nama array tanpa tanda kurung menyatakan alamat awal dari array. Sesudah
penugasan seperti di atas,
*ptgl
dengan sendirinya menyatakan elemen pertama (berindeks sama dengan nol) dari
array
tgl_lahir.
int main()
{
int alif = 5;
float ba = 7.5;
double ta = 17.777;
printf("Isi variabel:\n");
printf("alif = %d\n", alif);
printf("ba = %f\n", ba);
printf("ta = %lf\n", ta);
printf("\n");
printf("Alamat variabel:\n");
printf("alif = %p\n", &alif);
printf("ba = %p\n", &ba);
printf("ta = %p\n", &ta);
return 0;
74
}
Hasilnya
// ----------------------------------------------------
#include <stdio.h>
int main ()
{
int alif = 5;
float ba = 7.5;
double ta = 17.777;
printf("\n");
printf("Alamat variabel : \n");
printf("Alif = %p\n", &alif);
printf("ba = %p\n", &ba);
printf("ta = %p\n", &ta);
return 0;
}
75
Hasil keluarannya
Flowchartnya
int main()
{
int tgl_lahir[] = { 24, 6, 1965 };
76
int *ptgl;
return 0;
}
Hasil keluarannya
Flowchartnya
77
7.4 PEMBAHASAN DAN ANALISIS
PERCOBAAN 1
7.5 KESIMPULAN
Pada bab ini kita mempelajari Pointer dengan tujuan mengetahui konsep dari
variabel pointer, mengetahui penggunaan pointer array, mengetahui penggunaan
pointer string. Variabel pointer berisi alamat dari suatu obyek lain (yaitu obyek
yang dikatakan ditunjuk oleh pointer). Sebagai contoh, px adalah variabel pointer
dan x adalah variabel yang ditunjuk oleh px.
78
BAB 8 ARRAY
8.1 TUJUAN
Array sering disebut (diterjemahkan) sebagai larik. Array adalah kumpulan dari
nilainilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah
nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-elemen
array. Letak urutan dari elemen-elemen array ditunjukkan oleh suatu subscript
atau indeks. Array bisa berupa array berdimensi satu, dua, tiga atau lebih. Array
berdimensi satu (onedimensional array) mewakili bentuk suatu vektor. Array
berdimensi dua (two dimensional array) mewakili bentuk dari suatu matriks atau
table. Array berdimensi tiga (three-dimensional array) mewakili bentuk suatu
ruang.
tipe_data nama_var[ukuran];
dengan :
tipe_data : untuk menyatakan tipe dari elemen array, misalnya int, char,
float.
nama_var : nama variabel array ƒ
ukuran : untuk menyatakan jumlah maksimal elemen array.
79
Bentuk umum pengaksesan array adalah sbb :
nama_var[indeks]
Contoh :
nilai_tes[0] = 70;
scanf(“%f”, &nilai_tes[2]);
int jum_hari[12] =
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31};
80
Pendeklarasian array berdimensi dua adalah sebagai berikut :
int data_lulus[4][3];
Sama halnya pada array berdimensi satu, data array akan ditempatkan pada
memori yang berurutan
81
Array Berdimensi Banyak
C memungkinkan untuk membuat array yang dimensinya lebih dari dua. Bentuk
umum pendeklarasian array berdimensi banyak :
82
Atau bisa juga ditulis menjadi:
83
ARRAY SEBAGAI PARAMETER
Array juga dapat dilewatkan sebagai parameter fungsi. Sebagai contoh
ditujukan pada program sorting.c. Program digunakan untuk memasukkan
sejumlah data, kemudian data tersebut diurutkan naik (ascending) dan
dicetak ke layar.
Untuk melakukan sorting (proses pengurutan data), cara yang dipakai yaitu
metode buble sort (suatu metode pengurutan yang paling sederhana, dan
memiliki kecepatan pengurutan yang sangat lambat). Algoritma pada
metode pengurutan ini adalah sebagai berikut :
1. Atur i bernilai 0
2. Bandingkan x[i] dengan x[j], dg j berjalan dari i + 1 sampai dengan n-1.
84
3. Pada setiap pembandingan, jika x[i] > x[j], maka isi x[i] dan x[j]
ditukarkan
4. Bila i < (n – 1), ulangi mulai langkah 2.
Catatan
i = indeks array
x = nama array untuk menyimpan data
n = jumlah data
85
8.3 HASIL PERCOBAAN PRAKTIKUM
Frekuensi a=3
Frekuensi b=1
Frekuensi c=1
#include<stdio.h>
main()
86
{
char tmp, kar[255];
int htg[255];
int a, b, c=0, n, cek;
printf("Masukkan jumlah karakter : ");
scanf("%d",&n);
for(a=1;a<=n;a++)
{
printf("Masukkan karakter ke-%d\t: ",a);
scanf("\n%c",&tmp);
for(b=0;b<=c;b++)
{
cek=1;
if(tmp==kar[b])
{
cek=0;
htg[b]++;
break;
}
}
if(cek==1)
{
kar[c]=tmp;
htg[c]=1;
c++;
}
}
printf("\n");
for(a=0;a<c;a++)
{
printf("Frekuensi yang muncul pada karakter %c adalah %2d\n", kar[a],
htg[a]);
}
}
87
Hasil keluarannya
Flowchartnya
88
2. Buatlah program menggunakan inisialisasi array berdimensi dua sebagai
berikut:
// -------------------------------------------
// Program inisialisasi array berdimensi dua
// -------------------------------------------
#include <stdio.h>
int main()
{
int huruf_A[8][8] =
{
{ 0, 1, 1, 1, 1, 1, 0, 0 },
{ 0, 1, 0, 0, 0, 1, 0, 0 },
{ 0, 1, 0, 0, 0, 1, 0, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 1, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }
};
int i, j;
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
if (huruf_A[i][j] == 1)
putchar('*');
else
putchar(' ');
printf("\n");
}
return 0;
}
89
Hasil keluarannya
Flowchartnya
PERCOBAAN 1
1. Fungsi char sederhana adalah masukan variabel huruf yang tidak boleh
melebihi dari angka di dalam kurung [ ].
90
2. Penggunaan int adalah Tipe data specifieryang digunakan untuk
membuat variabel integer (bilangan bulat).
3. Penggunaan %c untuk membaca sebuah karakter.
PERCOBAAN 2
8.5 KESIMPULAN
Pada bab ini kita mempelajari Array dengan tujuan menjelaskan array berdimensi
satu, dua dan berdimensi banyak, dan inisialisasi array tak berukuran serta array
sebagai parameter fungsi. Array sering disebut sebagai larik, sehingga array
adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang
menggunakan sebuah nama yang sama
91
BAB 9 STRING
9.1 TUJUAN
Konstanta String
Suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda,
misalnya:
“ABCDE”
Nilai string ini disimpan dalam memori secara berurutan dengan komposisi
sebagai berikut:
Setiap karakter akan menempati memori sebesar 1 byte. Byte terakhir otomatis
akan berisi karakter NULL (\0). Dengan mengetahui bahwa suatu string diakhiri
nilai NULL, maka akhir dari nilai suatu string akan dapat dideteksi. Sebagai
sebuah array karakter, karakter pertama dari nilai string mempunyai indeks ke-0,
karakter kedua mempunyai indeks ke-1, dan seterusnya.
Variabel String
Variabel string adalah variabel yang dipakai utuk menyimpan nilai string.
Misalnya :
char name[15];
92
merupakan instruksi untuk mendeklarasikan variabel string dengan panjang
maksimal 15 karakter (termasuk karakter NULL). Deklarasi tersebut sebenarnya
tidak lain merupakan deklarasi array bertipe char.
Inisialisasi String
Suatu variabel string dapat diinisialisasi seperti halnya array yang lain. Namun
tentu saja elemen terakhirnya haruslah berupa karakter NULL. Sebagai contoh :
yang menyatakan bahwa name adalah variabel string dengan nilai awal berupa
string
: “RANi” . Bentuk inisialisasi yang lebih singkat :
Pada bentuk ini, karakter NULL tidak perlu ditulis. Secara implisit akan
disisipkan oleh kompiler. Perlu diperhatikan, bila name dideklarasikan sebagai
string, penugasan (assignment) suatu string ke variabel string seperti name =
“RANI”;
Perhatikan :
nama_array adalah variabel bertipe array of char yang akan digunakan
untuk menyimpan string masukan.
93
Di depan nama_array tidak perlu ada operator & (operator alamat),
karena nama_array tanpa kurung siku sudah menyatakan alamat yang
ditempati oleh elemen pertama dari array tsb.
Kalau memakai scanf(), data string masukan tidak boleh mengandung
spasi.
#include <stdio.h>
puts(var_string);
atau
printf("%s",var_string);
Dalam hal ini var_string adalah sebuah variabel yang berupa sebuah array of char.
Fungsi puts() akan menampilkan isi dari var_string dan secara otomatis
menambahkan karakter '\n' di akhir string. Sedangkan fungsi printf() akan
menampilkan isi variabel string tanpa memberikan tambahan '\n'. Sehingga, agar
kedua pernyataan di atas memberikan keluaran yang sama, maka pada pernyataan
printf() dirubah menjadi:
printf("%s\n", var_string);
94
Fungsi strlen() untuk Mengetahui Panjang Nilai String
Fungsi ini digunakan untuk memperoleh banyaknya karakter di dalam string yang
menjadi argumennya (var_string). Keluaran dari fungsi ini adalah panjang dari
var_string. Karakter NULL tidak ikut dihitung.
Menggabungkan dua buah nilai string tidak dapat dilakukan dengan operator ‘+’,
karena operator ini bukan operator untuk operasi string. Penggabungan dua buah
nilai string dapat dilakukan dengan fungsi pustaka strcat() dengan menambahkan
string sumber ke bagian akhir dari string tujuan. Keluaran dari fungsi ini adalah
string tujuan.
95
Termasuk PALINDROM
Kalimat : MAKAN MALAM Bukan PALINDROM
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
printf("Kalimat : ");
gets (a);
strcpy(b,a);
strrev(b);
if(strcmp(a,b)==0)
else
getch();
96
Hasil keluaran ke 1
Hasil keluaran ke 2
97
Flowchartnya
#include<stdio.h>
#define N 20
char nama [N][20];
int i, j, k, l;
main()
{
int jml;
char jumlah[10];
printf("Jumlah nama yang akan diurutkan = ");
gets(jumlah);
jml=atoi(jumlah);
for(i=0;i<jml;i++)
98
{
printf("\nNama ke-%d : ",i+1);
gets(&nama[i][0]);
}
bubble(jml);
printf("\nNama Sesudah Diurutkan: ");
for(i=0;i<jml;i++)
{
printf("\nNama ke-%d : %-20s",i+1,&nama[i][0]);
}
}
bubble(n)
int n;
{
char temp;
for(i=1;i<=n;i++)
{
for(j=i;j<n;j++)
{
for(l=0;l<20;l++)
{
if(nama[i-1][l]<nama[j][l])
{
break;
}
if(nama[i-1][l]>nama[j][l])
{
for(k=0;k<20;k++)
{
temp=nama[i-1][k];
nama[i-1][k]=nama[j][k];
nama[j][k]=temp;
}
break;
}
}
}
}
}
99
Hasil keluarannya
Flowchartnya
100
9.4 PEMBAHASAN DAN ANALISIS
PERCOBAAN 1
1. Fungsi strcpy untuk mencopy nilai dari variabel 1 le variabel yang lain.
Yang di copy kan adalah string.
2. Fungsi strrev untuk membalik suatu string.
3. Fungsi strcmp untuk membandingkan nilai ASCII semua karakter yang
ada pada string
PERCOBAAN 2
1. Fungsi char sederhana adalah masukan variabel huruf yang tidak boleh
melebihi dari angka di dalam kurung [ ].
2. Penggunaan int adalah Tipe data specifieryang digunakan untuk
membuat variabel integer (bilangan bulat).
3. Penggunaan for yang memungkinkan pemberian huruf awal dan
kenaikan secara otomatis dari variabel counter.
4. Penggunaan bubble untuk mengurutkan dari data terkecil ke data
terbesar.
9.5 KESIMPULAN
Pada bab ini kita mempelajari String dengan tujuan menjelaskan konsep string,
operasi I/O pada string, cara mengakses elemen string. String merupakan bentuk
data yang biasa dipakai dalam bahasa pemrograman untuk keperluan menampung
dan memanipulasi data teks, misalnya untuk menampung (menyimpan) suatu
kalimat. Pada bahasa C, string bukanlah merupakan tipe data tersendiri,
melainkan hanyalah kumpulan dari nilai-nilai karakter yang berututan dalam
bentuk array berdimensi satu.
101
BAB 10 STRUKTUR
10.1 TUJUAN
yang mendefinisikan sebuah tipe data struktur bernama date yang memiliki tiga
buah elemen (field) berupa:
102
Dalam mendefinisikan sebuah struktur, elemen yang terkandung di dalamnya bisa
juga berupa sebuah struktur,
contoh :
struct date {
int month, day, year;
};
struct person {
char name[30];
struct date birthday;
};
struct person student; //deklarasi var student
103
Elemen dari suatu variabel struktur dapat diakses dengan menyebutkan nama
variabel struktur diikuti dengan operator titik (‘.’) dan nama dari elemen
strukturnya. Cara penulisannya sebagai berikut
variabel_struktur.nama_field
Untuk memberikan data nama ke field name dari variabel student di atas, maka
pernyataan yang diperlukan misalnya adalah :
strcpy(student.name, "MUHAMMAD IHSAN");
Pada pernyataan di atas, student.name dapat dibaca sebagai "field name dari
student".
Contoh berikut merupakan instruksi untuk mengisikan data pada field birthday :
student.birthday.day = 10;
Sedangkan untuk mendapatkan isi suatu field dari variabel struktur, contohnya :
tgl = student.birthday.day;
puts(student.name);
Contoh pertama merupakan instruksi untuk memberikan isi dari field day ke
variabel tgl. Sedangkan contoh kedua merupakan instruksi untuk menampilkan isi
dari field name.
Menginisialisasi Struktur
Sebuah struktur juga bisa diinisialisasi pada saat dideklarasikan. Hal ini serupa
dengan inisialisasi array, yaitu elemen-elemennya dituliskan di dalam sepasang
kurung kurawal (‘{ }‘) dengan masing-masing dipisahkan dengan koma.
Deklarasi struktur didahului dengan kata kunci static, contoh.
static struct zodiak bintang =
{"Sagitarius", 22, 11, 21, 12};
104
yang artinya, mendeklarasikan array student yang memiliki elemen yang bertipe
struct person sebanyak MAKS. Setelah array student dideklarasikan, maka ruang
yang disediakan ditunjukkan dalam Gambar berikut.
Elemen-elemen dari array stuktur tersebut bisa diakses dengan cara sebagai
berikut:
105
Di samping cara pendeklarasian di atas, struktur juga dapat dideklarasikan dalam
berbagai bentuk yang lain, di antaranya sbb :
struct date {
int month, day, year;
} today = {5,14,2001};
106
Tampilan :
Masukkan nama barang : sabun
Masukkan jumlah barang : 5
Masukkan harga per barang : 20000
Jadi barang yang dimasukkan adalah sabun, jumlah barang
5 dan total harganya adalah 100000
#include<stdio.h>
main()
{
char nama [20];
float j, h, hbr, jbr;
printf("Masukkan nama barang : ");
scanf("%s",nama);
printf("Masukkan jumlah barang : ");
scanf("%f",&j);
printf("Masukkan harga per barang : ");
scanf("%f",&h);
hbr=j*h;
printf("\nJadi Barang yang dimasukkan adalah %s\n",nama);
printf("Jumlah barang %2.2f dan total harganya adalah %2.2f\n",j , hbr);
getch();
}
Hasil keluarannya
107
Flowchartnya
Nama : Cita
Nilai tugas : 80
108
Nilai UTS : 100
Nilai UAS : 80
Nilai akhir : 88
Nilai Huruf : A
#include<stdio.h>
#include<math.h>
main ()
{
char na[40],p;
float uts,uas,tgs,akh;
printf("================================================
========================\n");
printf(" PROGRAM NILAI MAHASISWA\n");
printf("================================================
========================\n");
printf("Masukan Nama Mahasiswa : ");
gets(na);
printf("Masukan Nilai Tugas : ");
scanf("%f",&tgs);
printf("Masukan Nilai UTS : ");
scanf("%f",&uts);
printf("Masukan Nilai UAS : ");
scanf("%f",&uas);
akh=tgs*0.2+uts*0.4+uas*0.4;
if(81<=akh>=100)
{
p='A';
}
else if(71<=akh<=80)
{
p='AB';
}
else if(65<=akh<=70)
{
p='B';
}
else if(61<=akh>=64)
{
p='BC';
109
}
else if(56<=akh>=60)
{
p='C';
}
else if (akh>=40)
{
p='D';
}
else
{
p='E';
}
printf("\n------------------------------------------------------\n");
printf(" Data Nilai Mahasiswa");
printf("\n------------------------------------------------------\n");
printf("Nama : %s\n",na);
printf("NILAI TUGAS : %2.2f\n",tgs);
printf("NILAI UTS : %2.2f\n",uts);
printf("NILAI UAS : %2.2f\n",uas);
printf("NILAI AKHIR : %2.2f\n",akh);
printf("NILAI HURUF : %c\n",p);
return 0;
}
Hasil keluarannya ke 1
110
Hasil keluaran ke 2
Flowchartnya
111
3. Buatlah program untuk Pembuatan dan Pengsksessan Struktur berikut:
// --------------------------------------------------------------------------------
// pembuatan dan pengaksesan struktur
// -------------------------------------------
#include <stdio.h>
int main()
{
struct data_tanggal
{
int tahun;
int bulan;
int tanggal;
};
printf("%d/%d/%d\n", tanggal_lahir.tanggal,
tanggal_lahir.bulan,
112
tanggal_lahir.tahun);
return 0;
}
Hasil keluarannya
Flowchartnya
113
4. Buatlah Program Penetapan Zodiak dengan menggunkan fungsi Struktur,
untuk menentukan apakah zodiak anda Sagitarius atau bukan
// ----------------------------
// Program inisialisasi struktur
// untuk penentuan zodiak
// ----------------------------
#include <stdio.h>
struct zodiak
{
char nama[11];
int tgl_awal;
int bln_awal;
int tgl_akhir;
int bln_akhir;
};
int main()
{
struct zodiak bintang =
{
"Sagitarius", 22, 11, 21, 12
};
return 0;
}
Kemudian Lakukan percobaan untuk zodiak yang lain
114
Hasil keluaran ke 1
Hasil keluaran ke 2
115
Flowchartnya
PERCOBAAN 1
1. Fungsi char sederhana adalah masukan variabel huruf yang tidak boleh
melebihi dari angka di dalam kurung [ ].
2. Penggunaan float untuk menampung angka pecahan.
PERCOBAAN 2
1. Fungsi char sederhana adalah masukan variabel huruf yang tidak boleh
melebihi dari angka di dalam kurung [ ].
2. Penggunaan float untuk menampung angka pecahan.
3. Fungsi if untuk mengecek pernyataan yang dimasukkan atau
membandingkan pernyataan tersebut sesuai atau sama dengan syarat
maka program yang ada di dalam fungsi if akan di jalankan.
4. Fungsi else untuk menerima nilai jika pernyataan if yang dibuat tidak
memenuhi persyaratan dari program yang dibuat.
PERCOBAAN 3
1. Penggunaan int adalah Tipe data specifieryang digunakan untuk
membuat variabel integer (bilangan bulat).
PERCOBAAN 4
1. Fungsi char sederhana adalah masukan variabel huruf yang tidak boleh
melebihi dari angka di dalam kurung [ ].
2. Penggunaan int adalah Tipe data specifieryang digunakan untuk membuat
variabel integer (bilangan bulat).
116
10.5 KESIMPULAN
Pada bab ini kita mempelajari tentang Stuktur dengan tujuan menjelaskan cara
mendeklarasikan struktur, cara menginisialisasi stuktur, cara mengakses elemen
struktur serta pembentukan dan cara mengakses array dari struktur. Dalam
struktur adalah pengelompokkan variabel-variabel yang bernaung dalam satu
nama yang sama.
117