Anda di halaman 1dari 94

LAPORAN PRAKTIKUM

APLIKASI PEMROGRAMAN BAHASA C


Dosen pengampu: Ibrahim., ST.,MT.

Disusun oleh:

Pretty Ida Hotmauli 1610631160110

PROGRAM STUDI TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS SINGAPERBANGSA KARAWANG
2018
Algoritma dan Flowchart

A. TUJUAN

1. Mampu memahami persoalan

2. Mendesain penyelesaian persoalan ke dalam algoritma

3. Menotasikan algoritma yang sudah dibuat menggunakan notasi flowchart

B. DASAR TEORI

Beberapa langkah dalam proses pembuatan suatu program atau software :

1. Mendefinisikan masalah dan menganalisanya

Langkah awal yang harus dilakukan adalah mengidentifikasikan


masalah antara lain tujuan dari pembuatan program, parameter-
parameter yang digunakan, fasilitas apa saja yang akan disediakan oleh
program. Kemudian menentukan metode atau algoritma apa yang akan
diterapkan untuk menyelesaikan masalah tersebut dan terakhir
menentukan bahasa program yang digunakan untuk pembuatan
program.

2. Merealisasikan dengan langkah-langkah berikut :

Algoritma

Algoritma adalah urutan langkah-langkah logika yang menyatakan suatu


tugas dalam menyelesaikan suatu masalah atau problem.
Contoh : Buat algoritma untuk menentukan apakah suatu bilangan
merupakan bilangan ganjil atau bilangan genap.

Algoritmanya :

1. Masukkan sebuah bilangan sembarang

2. Bagi bilangan tersebut dengan bilangan 2

3. Hitung sisa hasil bagi pada langkah 2.

4. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan
genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah
bilangan ganjil.
Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan
adalah bilangan ganjil atau bilangan genap, flowchart dari program adalah
sebagai berikut :

C. Hasil Percobaan

1.1 Menghitung luas lingkaran dan mencetak hasilnya.

Listing programnya adalah :

#include <stdio.h>
#define phi 3.14
main()
{
float r, luas;
printf("Masukkan r Lingkaran:");
scanf ("%f",&r);
luas= phi*r*r;
printf("luas lingkaran :%f", luas);

return 0;
}

Keluaran yang dihasilkan dari program tersebut sebagai berikut :


Kesimpulan :

Dalam percobaan menghitung luas lingkaran dengan bahasa C, harus mengetik


program dengan tepat agar hasil yang diharapkan serta perhitungan yang
diinginkan berjalan sesuai keinginan. Penentu format yang digunakan juga harus
sesuai dengan kondisi yang dimasukkan. Kesalahan-kesalahan dalam praktikum
dapat disebabkan oleh banyak factor seperti kurang teliti dalam menulis program
ataupun salah menggunakan format.

1.2 Proses pengiriman e-mail, jika email tidak terkirim maka akan dilakukan
proses pengiriman email lagi.

Listing programnya adalah :

#include <stdio.h>
int main()
{
char huruf;
printf("Proses pengiriman email\apakah email terkirim atau tidak
[Y/T]?=");
scanf ("%c”, &huruf);
switch (huruf)

{
case 'Y': printf ("email sudah terkirim\n");break;
case 'T': printf ("mengirim Ulang\n");break;
}

}
Keluaran yang dihasilkan dari program tersebut sebagai berikut :

Kesimpulan :

Program tersebut menggunakan fungsi while karna memiliki dua kondisi untuk
mencetak program yang diinginkan. Penulisan program dan ketepatan
penggunaan format dalam membuat program adalah yang terpenting agar program
dapat dijalankan sesuai keinginan.
1.3 Proses melakukan panggilan telepon, jika tidak diangkat maka akan dilakukan
panggilan telepon lagi.

Listing programnya adalah :

#include <stdio.h>

int main()

char huruf;

printf ("proses pemanggilan telepon\apakah diangkat atau tidak [Y/T]?=");

scanf ("%c", &huruf);

switch (huruf)

case 'Y': printf("Telepon terhubung\n");break;

case 'T': printf("TELEPON ULANG");break;

Keluaran yang dihasilkan dari program tersebut sebagai berikut :


Kesimpulan :

Program dapat dijalankan sesuai perintah dengan penulisan yag tepat serta
penempatan fungsi sesuai dan penggunaan yang benar.
1.4 Perusahaan daerah air minum menentukan tariff per m3 air berdasarkan
ketentuan sebagai berikut :

Air (m3) Tarif per m3


0-15 300
>15 650

Buatlah program yang membaca jumlah pemakaian air, untuk menghitung biaya
yang harus dibayar dan menampilkan hasilnya di layar.

Listing programnya :

#include <conio.h>

#include <stdio.h>

void main()

int jpa;

int tpm, total;

printf("jumlah pemakaian air.");

scanf ("%d", &jpa);

if (jpa<=15) tpm=300;

else tpm= 650;

total= jpa*tpm;

printf ("harga air:%d", tpm);

printf ("\n total biaya air:%d\n", total);

return 0;

Keluaran yang dihasilkan dari program tersebut sebagai berikut :


1.5 Buatlah program untuk menjumlahkan bilangan 1 sampai 10, tapi yang
dijumlahkan bilangan ganjil saja.

Listing programnya adalah :

#include<stdio.h>
main()

int bilangan,i=0;

for(bilangan=1; bilangan<=10; bilangan+=2)

printf("%d\n", bilangan);

i=i+bilangan;

printf("Hasilnya = %d\n",i);

Keluaran yang dihasilkan dari program tersebut sebagai berikut :


Dasar Program Bahasa C

A. TUJUAN

1. Mengenal sintaks dan fungsi-fungsi dasar dalam bahasa C

2. Mampu membuat flowchart untuk algoritma untuk memecahkan


suatu masalah sederhana, selanjutnya mengimplementasikannya
dalam bahasa C

B. DASAR TEORI

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.

Standar bahasa C yang asli adalah standar dari UNIX. Sistem operasi,
kompiler C dan seluruh program aplikasi UNIX yang esensial ditulis dalam
bahasa C. Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak
dibuat untuk komputer mikro. Untuk membuat versi-versi tersebut menjadi
standar, ANSI (American National Standards Institute) membentuk suatu
komite (ANSI committee X3J11) pada tahun 1983 yang kemudian menetapkan
standar ANSI untuk bahasa C. Standar ANSI ini didasarkan kepada standar
UNIX yang diperluas.

Proses Kompilasi dan Linking Program C


Proses dari bentuk source program, yaitu program yang ditulis dalam
bahasa C hingga menjadi program yang executable ditunjukkan pada Gambar
1 di bawah ini.

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
Bahasa C dikatakan sebagai bahasa pemrograman terstruktur karena
strukturnya menggunakan fungsi-fungsi sebagai program-program bagiannya
(subroutine). Fungsi-fungsi yang ada selain fungsi utama (main()) merupakan
program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama
atau diletakkan di file pustaka (library). Jika fungsi-fungsi diletakkan di file
pustaka dan akan dipakai di suatu program, maka nama file judulnya (header
file) harus dilibatkan dalam program yang menggunakannya dengan
preprocessor directive berupa #include.

Pengenalan 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.

b. Fungsi printf().

Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan


suatu keluaran pada layar peraga. Untuk menampilkan tulisan
Selamat belajar bahasa C

misalnya, pernyataan yang diperlukan berupa:

printf(“Selamat belajar bahasa C”);

Pernyataan di atas berupa pemanggilan fungsi printf() dengan argumen atau


parameter berupa string. Dalam C suatu konstanta string ditulis dengan
diawali dan diakhiri tanda petik-ganda (“). Perlu juga diketahui pernyataan
dalam C selalu diakhiri dengan tanda titik koma (;). Tanda titik koma
dipakai sebagai tanda pemberhentian sebuah pernyataan dan bukanlah
sebagai pemisah antara dua pernyataan.

Tanda \ pada string yang dilewatkan sebagai argumen printf() mempunyai


makna yang khusus. Tanda ini bisa digunakan untuk menyatakan karakter
khusus seperti karakter baris-baru ataupun karakter backslash (miring kiri).
Jadi karakter seperti \n sebenarnya menyatakan sebuah karakter. Contoh
karakter yang ditulis dengan diawali tanda \ adalah:

\” menyatakan karakter petik-ganda

\\ menyatakan karakter backslash

\t menyatakan karakter tab

Dalam bentuk yang lebih umum, format printf()

printf(“string kontrol”, daftar argumen);

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:
%d untuk menampilkan bilangan bulat (integer)

%f untuk menampilkan bilangan titik-mengambang


(pecahan)

%c untuk menampilkan sebuah karakter

%s untuk menampilkan sebuah string

Contoh:

#include <stdio.h>

main( )
{
printf(“No : %d\n”, 10);
printf(“Nama : %s\n”, “Ali”);
printf(“Nilai : %f\n”,80.5);
printf(“Huruf : %c\n”,‘A’);

Pengenalan Praprosesor #include

#include merupakan salah satu jenis pengarah praprosesor


(preprocessordirective). 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().

Komentar dalam Program

Untuk keperluan dokumentasi dengan maksud agar program mudah dipahami di


suatu saat lain, biasanya pada program disertakan komentar atau keterangan
mengenai program. Dalam C, suatu komentar ditulis dengan diawali dengan tanda
/* dan diakhiri dengan tanda */.

Contoh :
/*
Tanda ini adalah komentar
untuk multiple lines
*/
#include <stdio.h>

main()
{
printf(“Coba\n”);
}

C. HASIL PERCOBAAN

2.1 Mencetak kalimat dalam beberapa baris.

Listing programnya adalah :

#include <stdio.h>
main()
{
printf("Program Studi Teknik Elektro\n");
printf("Kampus UNSIKA 2013");
return 0;
}

Hasil Keluaran programnya sebagai berikut :

2.2 Mencetak kalimat dalam beberapa baris.

Listing programnya adalah :

#include <stdio.h>

main()

printf("Saya sekarang sedang makan\n");

printf ("Kantin UNSIKA\n");

printf ("Murah meriah\n");

printf ("Cocok Untuk Kalangan Mahasiswa");

return 0;

Hasil Keluaran programnya sebagai berikut :


2.3 Memperbaiki program yang salah.

Listing programnya adalah :

#include <stdio.h>
int main()
{
printf("ternyata semester ini nilaiku jelek%d\n",4);
printf("matematika %c\n dan metode numerik %c\n",'B','D');
printf("oooo....ternyata kuliah itu susah %s\n","sekali");
printf ("sepertinya %s\n rajin belajar minimal %d/n sehari","harus", 8);
return 0;
}

Hasil Keluaran programnya sebagai berikut :


2.4 Mencetak kalimat dalam beberapa baris.

Listing programnya adalah :

#include <stdio.h>

main()

printf("\tDalam Membuat\"Program Komputer\"\n");

printf("\tTerdapat\aturan\aturan yang harus dipenuhu\n");

printf("\tDalam menuliskan perintah perintah dasar\n");

printf("\tUntuk itu \"Programmer\" harus menghafal aturan\n aturan\n");

printf("\tYang berlaku");

return 0;

Hasil Keluaran programnya sebagai berikut :


D. KESIMPULAN
Kesalahan dalam menuliskan sebuah program dapat terjadi dengan adanya berbagai macam factor,
seperti kesalahan menulis, kesalahan menempatkan atau menggunakan sebuah fungsi ataupun
kesalahan lainnya yang lebih sering disebabkan kurangnya ketelitian.
Penggunaan penentu format pada sebuah program sangatlah penting karena kesalahan yang
disebabkan oleh penentu format membuat program tidak akan terbaca sama sekali.
Berbagai macam tanda \ pada string dapat digunakan untuk berbagai macam menyatakan karakter
khusus yang tidak dapat berdiri sendiri pada sebuah program maupun dengan sebuah penentu format.
Pengambilan Keputusan

A. TUJUAN

1. Menjelaskan tentang operator kondisi (operator relasi dan logika)


2. Menjelaskan penggunaan pernyataan if
3. Menjelaskan penggunaan pernyataan if-else
4. Menjelaskan penggunaan pernyataan if dalam if
5. Menjelaskan penggunaan pernyataan else-if
6. Menjelaskan penggunaan pernyataan switch

B. DASAR TEORI
Untuk keperluan pengambilan keputusan, C menyediakan beberapa jenis pernyataan, berupa :
 Pernyataan if
 Pernyataan if-else, dan
 Pernyataan switch
Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam pengambilan
keputusan. Kondisi umum yang dipakai berupa keadaan benar dan salah.

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

Operator Makna
> Lebih dari
>= Lebih dari atau sama dengan
< Kurang dari
<= Kurang dari atau sama dengan
== Sama dengan
!= Tidak sama dengan
Operator Logika.

Operator logika biasa dipakai untuk menghubungkan ekspresi relasi. Keseluruhan operator logika
ditunjukkan pada tabel 3-2.

Operator Makna

&& dan (AND)

|| atau (OR)

! tidak (NOT)

Bentuk pemakaian operator && dan || adalah

operand1 operator operand2


Pernyataan if
Pernyataan if mempunyai bentuk umum :

if (kondisi )
pernyataan;
Bentuk ini menyatakan :

 Jika kondisi yang diseleksi adalah benar (bernilai logika = 1), maka pernyataan yang
mengikutinya akan diproses.
 Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logika = 0),
makapernyataan yang mengikutinya tidak akan diproses.Mengenai kodisi harus ditulis diantara
tanda kurung, sedangkan pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan
majemuk atau pernyataan kosong. Diagram alir dapat dilihat seperti
Pernyataan if-else

Pernyataan if-else memiliki bentuk :

if (kondisi)
pernyataan-1;
else
pernyataan-2;
Diagram alir dapat dilihat seperti gambar 3.2.

Arti dari pernyataan if-else :


 Jika kondisi benar, maka pernyataan-1 dijalankan.
Sedangkan bila
if (kondisi-1)
if (kondisi-2)
.
.
if(kondisi-n)
pernyataan;
else
pernyataan;
.
.
 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.

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 :

else
pernyataan;
else
pernyataan;

 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 :

operand1 operator operand2

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 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 :

switch (ekspresi)

{
case konstanta-1:
pernyataan-1;

......

break;
case konstanta-2:

.
.

case konstanta-n:
pernyataan-n;

.......

break;
default:

.......

.......
break;

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 :

 pengujian pada switch akan dimulai dari konstanta-1. Kalau nilai konstanta-1 cocok dengan
ekspresi maka pernyataan-1 dijalankan. Kata kunci break harus disertakan di bagian akhir setiap
pernyataan case, yang akan mengarahkan eksekusi ke akhir switch.
 Kalau ternyata pernyataan-1 tidak sama dengan nilai ekspresi, pengujian dilanjutkan pada
konstanta-2, dan berikutnya serupa dengan pengujian pada konstanta-1.
 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.

C. HASIL PERCOBAAN

3.1 Penggunaan if-else bertingkat


Listing programnya adalah :
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

main()
{
int pilih;
float panjang, lebar,luas_persegi;
float alas, tinggi, luas_segitiga;
menu:
printf("Tampilan:\nMasukkan pilihan anda [1/2]:");scanf("%d",&pilih);
switch (pilih)
{
case 1:
segitiga:
system ("cls");
printf("menghitung luas_segitiga\n");
printf ("masukkan alas:");
scanf ("%f",&alas);
printf ("masukkan tingi:");
scanf ("%f",&tinggi);
putchar (7);
luas_segitiga=alas*tinggi/2;
printf ("jadi luasnya adalaj:=%2.2fcm 2\n\n",luas_segitiga);
getch();
break;
case 2:
persegi:
system("cls");
printf("menghitung luas persegi panjang\n");
printf ("masukkan panjang:");
scanf("%f",&panjang);
printf ("masukkan lebar:");
scanf("%f",&lebar);
luas_persegi=panjang*lebar;
printf("jadi luasnya adalah:%2.2f cm2\n",luas_persegi);
break;
}
}
Hasil keluaran dari program ini adalah:
Flowchart 3.1

Kesimpulan :
switch case dengan if- else bertingkat dapat membentuk sebuah program yang sama namun fungsi
yang berbeda.

3.2 Penggunaan switch case


Listing programnya adalah :
#include <stdio.h>
main()
{
char huruf;
printf("masukkan nilai huruf=");
scanf ("%c",&huruf);
if (huruf=='A')
printf ("nilai angka 4\n");
else if (huruf=='B')
printf ("nilai angka 3\n");
else if (huruf=='C')
printf ("nilai angka 2\n");
else if (huruf=='D')
printf ("nilai angka 1\n");
else if (huruf=='E')
printf ("nilai angka 0\n");
else
printf ("dibaca ya perintahnya\n");
return 0;
}

Hasil Keluaran dari program:


Flowchart 3.2 :
D. Kesimpulan: switch case dapat diguakan membuat program dengan kondiisi yang cukup
banyak dengan tampilan yang lebih sederhana.

3.3 Penggunaan nested if


Listing programnya adalah :
#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)
if(a<c)
{
printf("Terkecil %2.lf",a);
}
else
{
printf("Terkecil %2.lf",c);
}
else if(b<c)
printf("Terkecil %2.lf",b);
else
printf("terkecil %2.lf",c);
return 0;
}
Hasil keluaran dari program tersebut adalah:
Flowchart 3.3:

3.4 Percobaan if-else


Listing programnya adalah :
#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");
}
Hasil Keluaran dari program ini adalah:
3.4 Flowchart:
Kesimpulan:
Pengulangan Proses

A. TUJUAN

1. Menjelaskan proses pengulangan menggunakan pernyataan for


2. Menjelaskan proses pengulangan menggunakan pernyataan while
3. Menjelaskan proses pengulangan menggunakan pernyataan do-while

B. DASAR TEORI

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 :

for (ungkapan1; ungkapan2; ungkapan3)

pernyataan;

Kegunaan dari masing-masing ungkapan pada pernyataan for.

 Ungkapan1 : digunakan untuk memberikan inisialisasi terhadap variabel pengendali loop.


 Ungkapan2 : dipakai sebagai kondisi untuk keluar dari loop.
 Ungkapan3 : dipakai sebagai pengatur kenaikan nilai variabel pengendali loop. 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 :

for (ungkapan1; ungkapan2; ungkapan3)
{
pernyataan;

pernyataan;
.
.
}
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 pernyataan dapat berupa pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong.
Proses pengulangan terhadap pernyataan dijelaskan pada gambar berikut


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 pernyataan do, mula-mula pernyataan
dijalankan. Selanjutnya, kondisi diuji. Sendainya 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 dilihat pada Gambar 4.3.
Berdasarkan Gambar 5.3 terlihat bahwa tubuh loop minimal akan dijalankan sekali.
C. HASIL PERCOBAAN

4.1 Penggunaan pernyataan for

Listing dari program ini adalah:

#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 keluaran dari program ini adalah:

Flowchart:
4.2 Penggunaan loop while

Listing pada program ini adalah:

#include<stdio.h>

main()

char jawab = 'y';

int a=0, hasil=0, n=0;

while(jawab=='y'||jawab=='Y')

n=n+1;

printf("Masukkan bilangan ke-%d : ",n);

scanf("%d",&a);

printf("Mau masukkan lagi [y/t] ?");

getchar();

jawab=getchar();

hasil+=a;

printf("Hasilnya = %d \n",hasil);

Hasil keluaran dari program ini adalah:


Flowchart:
4.3 Program menentukan integer acak

Listing dari percobaan program ini :

#include<stdlib.h>

#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<=5;b++)

printf("Masukkan angka tebakan anda ke-%d ?",b);

scanf("%d",&input);

if(input==angka)

printf("\nHebat angka %d berhasil anda tebak dalam %d kali tebakan \n\n", angka,b);

break;

if(input<=angka)

printf("\nAngka anda lebih KECIL \n\n");


}

if(input>=angka)

printf("\nAngka anda lebih BESAR \n\n");

if(input!=angka)

printf("\nAngka Tidak Berhasil menebak angka ajaib = %d \n\n",angka);

Hasil keluaran dari program ini adalahh:


D. KESIMPULAN
Memahami program yang akan dibuat sangat mempengaruhi keberhasilan dari suatu program.
Selain ketelitian, menempatkan fungsi yang akan digunakan sangat penting. Menetapkan fungsi
untuk sebuah program agar lebih sederhana dan mudah dimengerti.
FUNGSI DASAR

A. TUJUAN
1) Memahami fungsi dasar bahaca C
2) Membuat Fungsi
3) Memahami parameter dalam fungsi
4) Memahami cara melewatkan parameter ke dalam fungsi.
B. Teori Dasar

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.
Gambar 5.1 Diagram Model Fungsi

Penggambaran sebagai kotak gelap di antaranya menjelaskan bahwa bagian dalam fungsi bersifat pribadi
bagi fungsi. Tak ada suatu pernyataan di luar fungsi yang bias mengakses bagian dalam fungsi, selain
melalui parameter (atau variabel eksternal yang akan dibahas belakangan). Misalnya melakukan goto
dari pernyataan di luar fungsi ke pernyataan dalam fungsi adalah tidak diperkenankan.

Bentuk umum dari definisi sebuah fungsi adalah sebagai berikut ;

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);
}

Memberikan Nilai Keluaran Fungsi


Suatu fungsi dibuat untuk maksud menyelesaikan tugas tertentu. Suatu fungsi dapat
hanya melakukan suatu tugas saja tanpa memberikan suatu hasil keluaran atau melakukan suatu tugas
dan kemudian memberikan hasil keluaran. Fungsi yang hanya melakukan suatu tugas saja tanpa
memberikan hasil keluaran misalnya adalah fungsi untuk menampilkan hasil di layar.
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.
Gambar 5.2 Proses Pemanggilan Fungsi
Misalnya pada saat pernyataan

x = inisialisasi();
Dijalankan, mula-mula eksekusi akan diarahkan ke fungsi inisialisasi(), selanjutnya
suatu nilai keluaran (hasil fungsi) akhir fungsi diberikan ke x. Proses yang serupa,
dilakukan untuk pernyataan

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.

int minimum(int x, int y)


{

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

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.
Fungsi Dengan Keluaran Bukan Integer
Untuk fungsi yang mempunyai keluaran bertipe bukan integer, maka fungsi haruslah
didefiniskan dengan diawali tipe keluaran fungsinya (ditulis di depan nama fungsi).
Sebagai contoh untuk menghasilkan nilai terkecil di antara dua buah nilai real, maka
definisinya berupa :

float minimum(float x, float y)


{
if (x < y)
return(x);
else
return(y);

Khusus untuk fungsi yang dirancang tanpa memberikan nilai keluaran (melainkan hanya menjalankan
suatu tugas khusus) biasa didefinisikan dengan diawali kata 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 :
 Tipe keluaran fungsi
 Jumlah parameter
 Jipe dari masing-masing parameter
Bagi kompiler, informasi dalam prototipe akan dipakai untuk memeriksa keabsahan (validitas) parameter
dalam pemanggilan fungsi. Salah satu keuntungannya adalah, kompiler akan melakukan konversi
seandainya antara tipe parameter dalam fungsi dan parameter saat pemanggilan fungsi tidak sama, atau
akan menunjukan kesalahan bila jumlah parameter dalam definisi dan saat pemanggilan berbeda.
Contoh prototipe fungsi:

Gambar 5.3 Prototipe Fungsi


Contoh program:
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

C. HASIL PERCCOBAAN
1. Buatlah program untuk menjumlahkan n buah data kemudian hitunglah rata- ratanya dengan
menggunakan fungsi.

Listing program
#include<stdio.h>
long int deret(int x);
main()
{
int N;
long int hasil;
printf("Tampilan:\n Masukan Integer Positif:");
scanf("%d",&N);
hasil=deret(N);
printf("\n Jumlah=%d", hasil);
}
long int deret(int x)
{
int i;
long int z=0;
printf("nilai i:");
for (i=1; i<=x; i=i+1);
{
z+=i;
printf("\n %d", i);
}
return(z);
}
Fungsi Matematika

A. TUJUAN
1. Menjelaskan fungsi matematika dalam bahasa C.
2. Menerapkan fungsi-sungsi matematika yang terdapat dalam C dalam menyelesaikan
permasalahan.

B. TEORI DASAR
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>

Beberapa fungsi matematika yang terdapat dalam library math.h bahasa C yakni:

Kegunaan
Fungsi
Menghitung nilai sinus sudut x yang dinyatakan dalam
Sin(x)
radian

Menghitung nilai cosines sudut x yang dinyatakan


Cos(x)
dalam radian

Menghitung nilai tangen sudut x yang dinyatakan


Tan(x)
dalam radian

Menghitung nilai arcus sinus dari x yang harus


Asin(x)
bernilai diantara -1 dan 1

Menghitung nilai arcus cosinus dari x yang harus


Acos(x)
bernilai diantara -1 dan 1

Menghitung nilai arcus tangen dari x


Atan(x)
Menghitung nilai sinus hiperbolik dari x
Sinh(x)
Menghitung nilai cosines hiperbolik dari x
Cosh(x)
Menghitung nilai tangent hiperbolik dari x
Tanh(x)
Menghitung nilai mutlak dari x
Abs(x)
Menghitung nilai logaritma natural dari x (yaitu ln x)
Log(x)
Menghitung nilai logaritma basis 10 dari x
Log10(x)
Menghitung nilai x pangkat y
Pow(x,y)
Menghitung nilai akar kuadrat dari x
Sqrt(x)
Menghitung nilai expoen dari x (yaitu ex)
Exp(x)

C. Hasil Percobaan.
Listing Program:
#include<stdio.h>
#include<math.h>
main()
{
float v, y, y0, v0, t, g=9.8;
printf("Ketinggian awal : ");
scanf("%f", &y0);
printf("Kecepatan awal : ");
scanf("%f", &v0);

t = (v0+sqrt(v0*v0+2*g*y0))/g;
v = sqrt(v0*v0+2*g*y0);

printf("\n Hasil : \n");


printf("Durasi benda diudara : %.2f g\n",t);
printf("Kecepatan sebelum meyentuh tanah : %.2f m/s2\n",v);
}
Hasil Keluaran dari program:

Hasil Keluaran dari program:


Flowchart:
D. Kesimpulan

Membuat program dengan melibatkan rumus-rumus pada dunia matematika maupun fisika tidaklah
serumit yang dibayangkan. Cukup dengan ketelitian dan penggunaan symbol serta menuliskan rumus
yang tepat dapat menyelesaikan berbagai kondisi yang melibatkan perhitungan matematika pada sebuah
program.
POINTER

A. TUJUAN
1. Mengetahui konsep dari variabel pointer
2. Mengetahui penggunaan pointer array
3. Mengetahui penggunaan pointer string

B. TEORI DASAR
Konsep Dasar Pointer
Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke objek lain. Pada kenyataan yang
sebenarnya, variebel pointer berisi alamat dari suatu objek lain (yaitu objek yang dikatakan ditunjuk
oleh pointer).

Mendeklarasikan Variabel Pointer


Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut:
Tipe*nama_variabel

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.

Mengatur Pointer agar Menunjuk ke Variabel Lain


Agar suatu pointer menunjuk ke variabel lain, mula-mula pointer harus diisi dengan alamat dari
variabel yang akan ditunjuk. Untuk menyatakan alamat dari suatu variabel, operator & (operator
alamat, bersifat unary) bisa dipergunakan, dengan menempatkannya di depan nama variabel.

Mengakses Isi Suatu Variabel Melalui Pointer


Jika suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh pointer tersebut dapat
diakses melalui variabel itu sendiri (pengaksesan langsung) ataupun melalui pointer (pengaksesan tak
langsung).
Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection (tak langsung) berupa
symbol *(bersifat unary).

Mengakses dan Mengubah Isi Suatu Variabel Pointer


Contoh berikut memberikan gambaran tentang pengubahan isi suatu variabel secara tak langsung
(yaitu melalui pointer). Mula-mula pd dideklarasikan sebagai pointer yang menunjuk ke suatu data
bertipe float dan d sebagai variabel bertipe float. Selanjutnya
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 pernyataanberikutnya
*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;
Tidak sama dengan
d = d+10;

Pointer dan Array


Hubungan pointer dan array pada C sangatlah erat. Sebab sesungguhnya array secara internal akan
diterjemahkan dalam bentuk pointer.

C. Hasil Percobaan
1. Buatlah program untuk mengetahui alamat suatu variabel

Listing program:
#include<stdio.h>
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;
}

Hasil keluaran dari program:

2. Buatlah program untuk mengakses elemen Array via ponter

Listing Programnya:

#include<stdio.h>
int main()
{
int tgl_lahir[] = {24, 6, 1965};
int*ptgl;
ptgl=tgl_lahir;//ptgl menunjuk ke array;
//Menampilkan isi array via pointer
int i;
for(i=0; i<sizeof(tgl_lahir)/sizeof(int);i++)
printf("%d\n",*(ptgl+i));
return 0;
}

Hasil keluaran dari program:


Flowchart:

D. Kesimpulan: Percobaan pointer berlandaskan dengan percobaan-percobaan sebelumnya.


Percobaan pointer menekankan pointer yang seringkali tidak diketahui.
ARRAY

A. Tujuan

1. Menjelaskan tentang array berdimensi satu

2. Menjelaskan tentang array berdimensi dua

3. Menjelaskan tentang array berdimensi banyak

4. Menjelaskan tentang inisialisasi array tak berukuran.

5. Menjelaskan array sebagai parameter fungsi

B. DASAR TEORI
Dalam beberapa literatur, array sering disebut (diterjemahkan) sebagai larik. Array adalah kumpulan
dari nilai-nilai 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 (one-dimensional
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.

Array Berdimensi Satu


Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :
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.

Mengakses Elemen Array Berdimensi Satu

Pada C, data array akan disimpan dalam memori yang berurutan. Elemen pertama mempunyai indeks
bernilai 0. Jika variabel nilai_tes dideklarasikan sebagai array dengan 5 elemen, maka elemen pertama
memiliki indeks sama dengan 0, dan elemen terakhir memiliki indeks 4.

Bentuk umum pengaksesan array adalah sbb :


Nama_var[indeks]

Inisialisasi Array Berdimensi Satu

Sebuah array dapat diinisialisasi sekaligus pada saat dideklarasikan. Untuk mendeklarasikan array,
nilai-nilai yang diinisialisasikan dituliskan di antara kurung kurawal ({}) yang dipisahkan dengan
koma.

Beberapa Variasi dalam Mendeklarasikan Array

Ada beberapa variasi cara mendeklarasikan sebuah array (dalam hal ini yang berdimensi satu), di
antaranya adalah sebagai berikut :

 int numbers[10];
 int numbers[10] = {34, 27, 16};
 int numbers[] = {2, -3, 45, 79, -14, 5, 9, 28, -1, 0};
 char text[] = "Welcome to New Zealand.";
 float radix[12] = {134.362, 1913.248};
 double radians[1000];

Array Berdimensi Dua

Array berdimensi satu dapat disimpan pada sebuah array berdimensi dua. Pendeklarasian array
berdimensi dua adalah sebagai berikut :

int data_lulus[4][3];

Nilai 4 untuk menyatakan banyaknya baris dan 3 menyatakan banyaknya kolom. Gambar 10.1
memberikan ilustrasi untuk memudahkan pemahaman tentang array berdimensi dua.
Mengakses Elemen Array Berdimensi Dua

Array seperti data_lulus dapat diakses dalam bentuk data_lulus[indeks pertama, indeks
kedua] :

 data_lulus[0][1] = 540;
merupakan instruksi untuk memberikan nilai 540 ke array data_lulus untuk indeks pertama = 0
dan indeks kedua bernilai 1.
 printf(“%d”,data_lulus[2][0]);
merupakan perintah untuk menampilkan elemen yang memiliki indeks pertama = 2 dan indeks
kedua = 0.

Array Berdimensi Banyak

C memungkinkan untuk membuat array yang dimensinya lebih dari dua. Bentuk umum
pendeklarasian array berdimensi banyak :

tipe nama_var[ukuran 1][ukuran2}…[ukuranN];

sebagai contoh :

int data_huruf[2][8][8];

merupakan pendeklarasian array data_huruf sebagai array berdimensi tiga. Sama halnya dengan
array berdimensi satu atau dua, array berdimensi banyak juga bisa diinisialisasi.

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.
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

Algoritma diatas berlaku untuk pengurutan menaik (ascending). Untuk pengurutan menurun
(descending), penukaran dilakukan jika x[i] < x[j].

C. Hasil Percobaan.

1. Buatlah program yang membaca sebuah array

Listing programanya:

#include<stdio.h>
main()
{
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]);
}
}

Hasil keluarannya:

Flowchart:
2. Buatlah program menggunakan inisialisasi array berdimensi dua

Listing programnya:

#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;
}
C. KESIMPULAN

Percobaan dengan array serta inisialisasi array membutuhkan ketelitian yang tinggi pada saat membuat
program, beberapa kali kesalahan terjadi namun program tetap berjalan hanya saja tidak sesuai dengan
output yang diinginkan
STRING

A. TUJUAN
1. Menjelaskan tentang konsep string
2. Menjelaskan operasi I/O pada string.
3. Menjelaskan cara mengakses elemen string
4. Menjelaskan berbagai fungsi mengenai string

B. TEORI DASAR
Konstanta dan Variabel 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 berurutan dalam bentuk array berdimensi satu.

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];
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 :

char name[] = {'R','A','N', 'I',’\0’};

yang menyatakan bahwa name adalah variabel string dengan nilai awal berupa string : “RANI” .
Bentuk inisialisasi yang lebih singkat :

char name[] = “RANI”;

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 = “RINI”;

adalah tidak diperkenankan. Pengisian string ke variabel string akan dibahas pada sub bab
berikutnya.

INPUT OUTPUT DATA STRING


 Memasukkan Data String
Pemasukan data string ke dalam suatu variabel biasa dilakukan dengan fungsi gets() atau
scanf().
#include<stdio.h>
gets(nama_array):
atau
#include<stdio.h>
scanf(“%s”,nama_array):

Perhatikan:
 Nama_array adalah variabel beertipe array of char yang akan digunakan untuk
menyimpan string masukan.
 Di depan Nama_array tidak perlu ada operator & (operator alamat), karenya
nama_array tanpa kurung siku sudah menyatakan alamat yang ditempati oleh elemen
pertama dari array tersebut.
 Kalau memakai scanf(), data string masukan tidak boleh mengandung spasi.

 Menampilkan Isi Variabel String


Untuk menampilkan isi variabel string, fungsi yang digunakn adalah puts() atau printf().
Bentuk umum pemakainnya adalah sebagai berikut:
#inlude<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);

 Fungsi-Fungsi Mengenai String


Berikut ini akan dibahas beberapa fungsi pustaka yang umumnya disediakan oleh
kompiler C untuk mengoperasikan suatu nilai string. Fungsi-fungsi pustaka untuk operasi
string, prototype-prototype nya berada di file judul string.h. Beberapa di antara fungsi
pustaka untuk operasi string akan dibahas di bawah ini.

Fungsi strcpy() untuk Menyalin Nilai String


Bentuk pemakaian :

#include <string.h>
strcpy(tujuan, asal)

Fungsi ini dipakai untuk menyalin string asal ke variabel string tujuan termasuk karakter '\0'.
Keluaran dari fungsi ini (return value) adalah string tujuan. Dalam hal ini, variabel tujuan
haruslah mempunyai ukuran yang dapat digunakan untuk menampung seluruh karakter dari
string asal.

Fungsi strlen() untuk Mengetahui Panjang Nilai String


Bentuk pemakaian :

#include <string.h>

strlen(var_string);

Fungsi strcat() untuk Menggabung Nilai String

Bentuk pemakaian :

#include <string.h>
strcat(tujuan, sumber);

Fungsi strcmp() untuk Membandingkan Dua Nilai String

Membandingkan dua nilai string juga tidak dapat digunakan dengan operator hubungan, karena
operator tersebut tidak untuk operasi string. Membandingkan dua buah nilai string dapat dilakukan
dengan fungsi pustaka strcmp(). Contoh bentuk pemakaian fungsi :

#include <string.h>

strcmp(str1, str2);

C. Hasil Percobaan

1. Program kalimat palindrom


Listing programnya:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char a[100], b[100];
printf("Kalimat : ");
gets (a);
strcpy(b,a);
strrev(b);
if(strcmp(a,b)==0)
printf("\nKata '%s' merupakan kata POLINDROM\n",&a);
else
printf("\nKata '%s' BUKAN PALINDROM\n",&a);
getch();
}

Hasil keluaran programnya:


Flowchart:
2. Buatlah program untuk mengurutkan nama seseorang. C
Listing program:
#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++)
{
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;
}
}
}
}
}
Hasil Keluaran Program ini adalah:

C. KESIMPULAN
String memiliki banyak kegunaan lain seperti pada percobaan yang telah dilakukan, tidak hanya
menampilkan sebuah kalimat saja pada sebuah program. Dengan menggunakan berbagai fungsi string
sesuai dengan penggunaan yang diinginkan akan mendapatkan sebuah program yang lebih variatif.
STRUKTUR

A. TUJUAN
1. Menjelaskan cara mendeklarasikan struktur
2. Menjelaskan cara menginisilisasi struktur
3. Menjelaskan cara mengakses elemen struktur
4. Menjelaskan pembentukan dan cara mengakses array dari struktur (array of struct)

B. TEORI DASAR
Dalam struktur adalah pengelompokan variabel-variabel yang bernaung dalam satu nama yang
sama. Berbeda dengan array yang berisi kumpulan variabel-variabel yang bertipe sama dalam satu
nama, maka suatu struktur dapat terdiri atas variabel-variabel yang berbeda tipenya dalam satu
nama struktur.struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan
menjadi sebuah.
Variabel-variabel yang membentuk suatu struktur, selanjutnya disebut sebagai elemen dari
struktur atau field. Dengan demikian dimungkinkan suatu struktur dapat berisi elemen-elemen
data berbeda tipe seperti char, int, float, double, dll. Contoh sebuah struktur adalah informasi data
tangga (date) yang berisi:
 Day
 Month
 Year

Mendefinisikan & Mendeklarasikan Struktur

Suatu struktur didefinisikan dengan menggunakan kata kunci struct. Contoh pendefinisian
sebuah tipe data struktur:
Struct date{
Int mont;
Int day;
Int year;
};
Struct date{
Int month, day, year;
};
Yang mendefinisikan sebuah tipe data struktur bernama date yang memiliki 3 buah elemen
(field) berupa:
 Day
 Month
 Year

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

Diagram struktur data dari variabel student dapat digambarkan sbb :


Elemen dari suatu variabel struktur dapat diakses dengan menyebutkan nama variabel struktur diikuti
dengan operator titik (‘.’) dan nama dari elemen strukturnya. Cara penulisannya :

Variabel_struktur.nama_field

Menginisialisasi Struktur

Sebuah struktur juga bisa di inisialisasikan pada saat dideklarasikan. Hal ini serupa dengan inisialisasi
array, yaitu elemen-elemennya ditulis di dalam sepasang kurung kurawal(‘{}’) dengan masing-masing
dipisahkan dengan koma.

Array dan Struktur

Elemen-elemen dari suatu array juga dapat berbentuk sebuah struktur. Misalnya array yang dipakai untuk
menyimpan sejumlah data siswa(struct student). Array struktur berdimensi satu ini membentuk suatu
table, dengan barisnya menunjukan elemen dari arraynya dan kolomnya menunjukan elemen dari
struktur.

C. HASIL PERCOBAAN

1. Mendefinisikan sebuah struktur.

Listing

#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 keluaran dari program:

Flowchart :
2. Program array of struct
Listing program:
#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(akh>=81)
{
p='A';
}
else if(71<=akh<=80)
{
p='AB';
}
else if(65<=akh<=70)
{
p='B';
}
else if(akh>=61)
{
p='BC';
}
else if(akh>=56)
{
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 keluaran dari program:


3. Program pembuatan dan pengaksesan struktur

Listing Program:

#include<stdio.h>
int main()
{
struct data_tanggal
{
int tahun;
int bulan;
int tanggal;
};
//Deklarasi variabel struktur
struct data_tanggal tanggal_lahir;
//Pengaksesan anggota struktur
tanggal_lahir.tanggal = 1;
tanggal_lahir.bulan = 9;
tanggal_lahir.tahun = 1964;
printf("%d/%d/%d\n",tanggal_lahir.tanggal, tanggal_lahir.bulan, tanggal_lahir.tahun);
return 0;
}

Hasil Keluaran Program:


Flowchart:
4. Program penetapan zodiac:

Listing Program:

#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
};
int tgl_lhr, bln_lhr, thn_lhr;
printf("Tanggal lahir anda (DD-MM-YYYY) : ");
scanf("%d-%d-%d", &tgl_lhr, &bln_lhr, &thn_lhr);
if((tgl_lhr>=bintang.tgl_awal && bln_lhr==bintang.bln_awal)||(tgl_lhr<=bintang.tgl_akhir
&& bln_lhr==bintang.bln_akhir))
printf("Bintang Anda adalah %s\n",bintang.nama);
else
printf("Bintang Anda bukanlah %s\n",bintang.nama);
return 0;
}

Hasil Keluaran program:


Flowchart:

A. KESIMPULAN
Penggunaan struktur dan penggunaan struktur dan array sangat banyak diguakan dalam kehidupan
sehari-hari yang sangat penting. Perpaduan fungsi yang dapat membantu banyak hal dalam sebuah
program. Penggunaan struktur tidak hanya berkaitan dengan tanggal, bulan dan tahun saja, banyak
kondisi lain yang dapat dijalankan oleh program dengan struktur.

Anda mungkin juga menyukai