SlideShare a Scribd company logo
1 of 56
Download to read offline
BAHASA C/C++

Oleh :
Dra. Wahyuni Z Imran , Msc

Modul Mata kuliah Selengkapnya bisa di download gratis di website >>

http://www.dagangku.com
Tujuan Instruksional:

Tujuan Instruksional
Umum

:Setelah mengikuti praktikum ini peserta dapat menbuat program
dengan bahasa C++ dan mengkompilasi dengan menggunakan

gcc yang ada dilinux
Khusus

:Setelah mengikuti praktikum ini:
1.
2.
3.
4.
5.

Peserta menegerti tentang konsep pemrograman di C++
Peserta mengerti dan memahaimi perintah-perintah di C++
Peserta mengerti seleksi kondisi di C++
Peserta mengerti tentang struktur data di linux
Peserta dapat membuat programC++ sederhana
PENDAHULUAN
Pelatihan Bahasa C bertujuan untuk memberikan pengetahuan kepada peserta tentang
konsep dasar C yang diperlukan untuk membuat suatu program C. Diharapkan dengan
diketahuinya konsep-konsep dasar pemrograman C, peserta dapat menyelesaikan

suatu permasalahan dengan cara membuat program sendiri.
Konsep pemrograman meliputi konsep tipe bilangan, konsep pengulangan, konsep

pencabangan dan lain-lainnya. Semua akan dibahas pada bab-bab khusus.
Untuk dapat membuat program sendiri, pertama-tama tentulah masalah yang akan
dibuat programnya harus diketahui dan dipahami betul. Identifikasikan masukan dari
masalah tersebut, apakah berupa bilangan bulat, atau bilangan desimal, atau suatu
karakter.Setelah diketahui masukannya, lalu identifikasi lagi proses yang akan dibuat

dengan masukan tadi. Jika proses juga telah djabarkan, perlu diuraikan keluaran yang
akan dihasilkan oleh proses tadi. Lebih mudah lagi dapat dijabarkan melalui diagram

di bawah ini:

Masukan

Proses

Keluaran

A
C=A+B

C

B
Gambar 1.
Kemudian langkah-langkah penyelesaian masalah tersebut dapat diuraikan lebih rinci
lagi menggunakan barisan-barisan tulisan yang menjabarkan langkah tadi dengan
kata-kata. Deretan langkah-langkah tersebut dalam ilmu informatika disebut
Algoritma. Algoritma dapat diuraikan dengan bahasa apa saja. Jika orang yang
membuat algoritma ini berbahasa indonesia, maka algoritma dapat dituliskan dalam

bahasa indonesia.
Biasanya seorang pembuat program
atau lebih dikenal dengan istilah programmer
akan menulis algoritmanya dengan standart baku. Perubahan itu bertujuan agar semua
orang, baik orang berbahasa indonesia, maupun orang berbahasa lain bisa mengerti
langkah-langkah yang akan dilakukan.
maka algoritma tersebut dirubah kedalam
deretan langkah-langkah yang dituliskan dengan istilah-istilah yang telah baku di
dalam ilmu informatika, sehingga terbentuklah pseudocode. Istilah ini tentunya

menggunakan kosa kata bahasa inggris.
Implementasi Pseudocode atau algoritma ke dalam bahasa pemrograman tertentu akan
menjadi suatu program. Jika implentasi tersebut menggunakan bahasa C maka hasil
yang terbentuk adalah program C. Lain lagi jika implementasi menggunakan bahasa

Basic maka hasilnya berupa program Basic.
Bagaimana membedakan program C dengan program Basic dari nama filenya?
Jawabannya adalah dengan melihat bagian ekstensi suatu file, jika program c maka
file yang dibuat diberi nama xxxx.C. Sedangkan untuk program Basic, file yang

dibuat diberi nama xxxx.BAS
Singkatnya, langkah-langkah pembuatan program

tadi dapat diuraikan sebagai

berikut:
-Masalah
-Algoritma
-Pseudo Code
-Program
Contoh:
Seseorang ingin menghitung suatu penjumlahan dari dua bilangan A dan B dan hasil
penjumlahannya akan disimpan dalam satu bilangan diberi nama C. Jenis bilangannya

adalah bilangan bulat. Nilai dari A dan B telah ditentukan sebelumnya, yaitu A=5 dan
B=10. Sebelum nilai-nilai tersebut ditampilkan, akan ditulis ” Hallo, Selamat

Datang!”. Baru setelah itu, akan ditampilkan nilai A, nilai B dan nilai C.
Ilustrasi proses pembuatan programnya dapat dilihat pada gambar 2 di bawah ini.
Algoritma

------

Kode Semu

Deklarasikan variabel A adalah bilangan Bulat
Deklarasikan variabel B adalah bilangan Bulat
Deklarasikan variabel C adalah bilangan Bulat
Cetak “Hallo, Selamat Datang !”
Beri nilai A sama dengan 5
Beri nilai B sama dengan 10
Jumlahkan A dan B, simpan di C
Cetak A, ganti baris
Cetak B, ganti baris
Cetak C, ganti baris

-

Set A integer and equal 5
Set B integer and equal 10
Set C integer
Print “Hallo, Selamat Datang !”
Calculat C equal A plusB
Print A
Print B
Print C

Gambar 2. Langkah pembuatan program

MONITOR : Layar
Tampilan

Program C:
int main()
{

int A=5;
int B=10;
int C;
printf(“Hallo Selamat Datang!n”);
C=A+B;
printf(“ %d n”,A);printf(“ %d n”,B);
printf(“ %d n”,C);
getch();
return 0;

Hallo Selamat Datang!
5
10
15

}

Program C:

}
// Program C
/* Program #1 */
#include <stdio.h>
#include <conio.h>
int main()
{

int A, B, C;
clrscr();
printf(“Hallo Selamat Datang!n”);
A= 5;
B=10;
C=A+B;
printf(“ %d n”,A);
printf(“ %d n”,B);
printf(“ %d n”,C);
getch();
return 0;
}
BAB I
KONSEP DASAR C
Bab ini memperkenalkan beberapa perjanjian cara pemberian nama dan cara deklarasi
tipe data primitif seperti bilangan bulat, bilangan desimal dan karakter yang

diperbolehkan dalam bahasa C.
1.1 IDENTIFIERS
Identifier adalah bentuk paling sederhana dalam Program C, terdiri dari barisan
huruf(„A‟….‟Z‟, „a‟…‟z‟,‟_‟) dan bilangan („0‟…‟9‟). Sebuah
Identifier harus
dimulai dari sebuah huruf. Dalam bahasa C, huruf besar berbeda dengan huruf

kecil. Hal ini disebut dengan istilah case sensitive
Contoh:
 Cara penulisan yang benar :
angka, Angka , ANGKA, n1, jumlah_angka, PajakPenjualan
 Cara penulisan yang salah:
2angka, sepuluh%, Jumlah-Total
Salah satu cara penulisan program yang baik, dilihat dari pemberian nama
Identifier yang diskriptif. Dengan kata lain, dari membaca nama identifier saja sudah

diketahui maksudnya. Aturan ini juga berlaku dalam pemberian nama identifier yang
terdiri lebih dari satu kata. Karena dalamm bahasa C, huruf besar dan kecil diartikan
sesuatu yang berbeda, maka identifier yang terdiri lebih dari satu kata dapat dituliskan

dengan dimulai huruf besar untuk huruf pertama setiap katanya.



Contoh:
Cara penulisan yang berbeda:
pajak_penjualan, nama_depan, PajakPenjualan, NamaDepan

1.2 KEYWORDS/RESERVED WORDS
Ada kumpulan nama Identifier yang disebut keywords atau reserved words, yang
digunakan untuk membentuk bahasa C itu sendiri. Nama-nama ini dituliskan

dengan huruf kecil.
asm
auto

continue
default

float
for

new
operator

short
signed

try
typedef
1.3 TIPE DATA PRIMITIF
Tipe data primitif ini dibagi menjadi 3 kategori;
Bilangan bulat : int, short, long
Bilangan desimal ; float, double
Karakter: char
Penggabungan Tipe data dengan penulisan identifier dalam sebuah program
menyatakan suatu pendeklarasian variable tertentu.

 tipe var;
contoh : int angka;
float x;
 tipe var1,var2,var3;
contoh : int a, b, c;
char s, t;

//variabel tunggal
//variabel majemuk

1.3.1 Tipe Bilangan Bulat
Tipe untuk bilangan bulat : int, short int, long int
Kesanggupan masing-masing tipe ditentukan oleh jenis Hardware.
 short int
jangkauan nilai yang dapat diberikan pada variabel dengan tipe ini berkisar antara
–32768 sampai dengan 32767. Jika jangkauan nilai yang diinginkan berkisar
antara 0 sampai dengan 65535 maka tambahkan kata unsigned sebelum int.
 long int
jangkauan nilai ini lebih besar yaitu antara –231 sampai dengan 231-1
Cara pendeklarasiannya:
int ANGKA = 50;
short mulai = 1;
unsigned int PotonganHarga=60000;
long L1,L2,L3,L4=1000;
1.3.2 Tipe Karakter
Karakter disimpan sebagai data numerik. Biasanya yang digunakan adalah
standard ASCII. Cara penulisan konstanta karakter ditulis dengan tambahan tanda
petik tunggal.
Cara mendeklarasikannya :
char ch=‟T‟;

// pendeklarasian satu karakter dengan inisialisasi

Deretan karakter akan membentuk suatu string. Penulisannya diapit tanda petik

dua (“Sejahtera”).
Cara mendeklarasikannya :
char s[10]=”Sejahtera” ; //pendeklarasian string ( deretan karakter)
// dengan inisialisasi

Escape (Control) Codes

Kode kontrol terletak pada jangkauan 0 sampai 31 dan menyatakan informasi
kontrol terminal atau informasi.

Macam-macam kode kontrol dapat dilihat pada

table berikut.

Nama

Kode C

Deskripsi

Newline

„n‟

Karakter ganti baris. Sebagai tanda ganti
baris baru pada file teks atau file ASCII

Return

„r‟

Akhir dari suatu input dari keyboard

Horizontal tab

„t‟

Pindah ke daerah tab berikutnya

Backspace

„b‟

Geser cursor ke kiri satu karakter.
Biasanya system menghapus karakter
sebelumnya.

1.3.3 Tipe bilangan desimal
Tipe untuk bilangan desimal : float, double, long double
 float
Jangkauan nilai yang dapat diberikan pada variabel tipe ini berkisar
antara 3.4E-38 sampat dengan 3.4E+38
 double dan long double
Jangkauan nilai yang dapat diberikan pada variabel tipe ini berkisar
antara 1.7E-308 sampat dengan 1.7E+308
Contoh:
Cara pendeklarasiannya:
float x= 0.21, z= 10e4;
double Avogadro = 6.02e23;
1.3.4 Nama konstanta
Dalam membuat program, seringkali diperlukan penulisan suatu konstanta,

misalkan nilai  Nilai konstanta tidak akan berubah dalam suatu program.
.
Cara pendeklarasianya:



const double PI = 3.141592653589793

1.4 STANDARD INPUT OUTPUT
Agar program menjadi iteraktif, kadang diperlukan input dari user. Ini dapat
dilakukan dengan perintah scanf() atau gets(). Sedangkan untuk menampilkan data
di layar monitor dapat dilakukan dengan perintah printf(). Fungsi-fungsi ini
didefinisikan pada file stdio.h. Dalam penggunaan fungsi-fungsi di atas kadang
diperlukan string kontrol yang gunanya untuk memformat kode.
Macam-macam string kontrol
Kode format
%d
%f
%c
%s

kegunaannya
Tampilkan bilangan bulat
Tampilkan bilangan desimal
Tampilkan sebuah karakter
Tampilkan sebuah string

1.4.1 Fungsi scanf()
Salah satu kegunaan scanf() adalah untuk mendapatkan input yang dimasukkan
user melalui keyboard. Bentuk dasarnya yaitu:
scanf(“string kontrol”, deretan argument) ;
String kontrol dapat berisi salah satu dari kode format atau gabungan dari
beberapa kode format, tergantung dari banyaknya deretan argument yang ada.
Banyaknya
kode format harus sama dengan banyaknya argument. Pada deretan
argument, tanda & harus ada di setiap awal sebuah variabel yang akan

menampung nilai yang diberikan melalui keyboard.
Contoh:

 scanf(“%d”,&bilangan);
 scanf(“%f %f “, &potongan, &jumlah);
1.4.2 Fungsi gets()
Fungsi gets() akan memiliki argument berupa nama variabel yang bertipe string
dan membaca deretan karakter dari keyboard sampai user menekan tombol
ENTER.. ENTER tidak disimpan melainkan tanda akhir NULL („0‟).
Contoh:

 gets(str);

// char str[10]

1.4.3 Fungsi printf()
Fungsi printf() akan menampilkan output pada monitor. Bentuk dasarnya yaitu:
printf(“string kontrol “, deretan argument);
contoh:

 printf( “%s %d”,”Ini adalah sebuah string”, 200);
 printf( “Ini adalah sebuah string %d “,200);

1.5 CONTOH PROGRAM C SEDERHANA
Dalam menulis program, sebaiknya diawali dengan pemberian penjelasan tentang
tujuan. Hal ini dapat diletakkan dalam bentuk komentar. Pernyataan berupa komentar
ditandai dengan tanda (/*…….*/).
/* Penjelasan tentang tujuan program, nama pembuat,
tanggal pembuatan program dsb */
#include <stdio.h>
#include <conio.h>

/*Turbo C preprocessor */

int main()
{

/* deklarasi variabel yang digunakan */
int bilangan_bulat1, bilangan_bulat2 ;
float bilangan_desimal1, bilangan_desimal2;
/*input dari keyboard */
printf(“Masukkan input dari keyboard”);
scanf(“%d”, &bilangan_bulat1);
………
/*proses*/
/*output ke monitor */
printf(“ Nilai bilangan_bulat1 = %d n“, bilangan_bulat1);
getch();
return 0;

/*untuk menampilkan screen output */
/*nilai balik fungsi main() */

}

Latihan Bab 1
1. Apakah penulisan nama variabel di bawah ini benar menurut aturan bahasa C.
Jika salah, perbaiki.
a. McDonald
b. O‟Brien
c. 4_Score
d. Is_Largest_int
e. _mainprog
f. A1B2C3
g. Giants
h. 7th_inning

2. Tuliskan deklarasi C untuk variabel dan tipe data:
a. Sebuah bilangan bulat N dengan nilai awal 5
b. Sebuah bilangan bulat 16-bit M dengan nilai awal 5
c. Sebuah bilangan bulat 32-bit L dengan nilai awal 600055
d. Sebuah karakter C dengan nilai awal „A‟
e. Dua bilangan bulat P dan Q . Nilai P tidak diinisialisasi sedangkan
nilai Q bernilai awal 455
3. Berikan nilai desimal ASCII yang mewakili karakter
a. „V‟
b. „6‟
c. „!‟
d. „~‟
e. „t‟
f. Tab
g. BackSpace
h. Carriage Return

4. Tentukan bentuk String yang memiliki deretan kode ASCII
a. 66 121 116 101
b. 49 50 51 32 71 111 33

Latihan Pemahaman Program :
Coba jabarkan langkah-langkah dalam program ini dan bagaimana hasil keluarannya.
/* Program contoh penggunaan int dan unsigned int */
#include <stdio.h>
#include <conio.h>

/*Turbo C preprocessor */

int main()
{

/* deklarasi variabel yang digunakan */
int i;
unsigned int j;
clrscr() ; // bersihkan layar
/*proses*/
j=60000;
i=j;
/*output ke monitor */
printf(“%d %u n“, i,j);
getch();
/*untuk menampilkan screen output */
return 0;
/*nilai balik fungsi main() */
}
/* Program penggunaan scanf */
#include <stdio.h>
#include <conio.h>
int main()
{

char nm[10];
int umur;
printf(„Siapa nama Anda : ”);
scanf(“%s”, nm); /*nama disimpan dalam variabel nm */
printf(“Berapa umur Anda”);
scanf(“%d”, &umur);
/*nilai disimpan dalam variabel umur*/
printf(“Umur saya %d tahun n”,umur);
getch();
return 0;
}

/*Program#5 : Penulisan variabel char dan string */
int main()
{

char ch;
char str[80];

/*deklarasi variabel bertipe karakter*/
/*deklarasi variabel bertipe string */

printf(“Ketikkan sembarang tomboln”);
ch=getche(); /*baca satu karakter dari keyboard*/
printf(“Karakter yang diketik adalah %cn”,ch);
printf(“Masukkan nama Anda dan akhiri dengan 0 : ”);
gets(str);
printf(“Hallo %sn”, str);
getch();
return 0;
}
BAB II
OPERATOR
2.1 Operator Aritmatika
Program komputer melakukan perhitungan dengan cara mengkombinasikan
bilangan numeric dengan operator. Negasi (-) merupakan operator unary karena
terdiri dari satu nilai numerik dan akan merubah tanda nilai tersebut. Sedangkan
(+),(-),(*) dan (/) adalah operator binary karena memerlukan dua operand.

 Misalkan dideklarasikan
int
M=6,N=8;
double X=2.3, Y=6.7;
(-M-N+2)*4 = (-14+2)*4 = -48

-X*Y = -15.41
Pada operator (/) terdapat perbedaan untuk tipe bilangan bulat dan bilangan
desimal.

 Pembagian bilangan bulat
17 / 5 = 3 (hasil pembagian/quotient)
17 % 5 = 2 (sisa hasil pembagian/remainder)
6.0 % 4 (tidak boleh)

 Pembagian bilangan desimal
17.0 / 5 = 3.4
4.7 / 2 = 2.35
4.0 / 3 = 1.333333

2.2 Operator Assignment
Operator ini berguna untuk memindahkan nilai variabel.

 Int I = 3, SIZE = 40, K;
K = I + SIZE;
SIZE = 50;

 K = I = 5;

/*deklarasi
2.3 Operator Compound Assignment
Assignment dan operator aritmatik dapat digabungkan menggunakan operator
compound Assingment .
Variabel op= ekpresi -> dihitung sebagai -> variabel = variabel op ekspresi

 Misal X = 14 dan Y = 3
Compound Assignment
X += 5;
Y += X-2
Y *= 2

Simple Assignment
X=X+5
Y = Y + (X-2)
Y=Y*2

result
X bernilai 19
Y bernilai 15
Y bernilai 6

2.4 Operator Increment dan Decrement
Format prefix :



++X

X = 5;
Y = ++X * 10;

Format postfix:

( increment )
-- X (decrement )
/* operasi ++ dilakukan dulu, jadi X bernilai 6
/* kemudian lakukan perkalian 6 * 10

X++ (increment)
X-- (decrement)

 X = 5;
Y = X-- * 10;

/* operasi X * 10 dilakukan terlebih dahulu
/* jadi nilai Y = 50. Kemudian nilai X dikurang satu.
/* Sekarang X bernilai 4

2.5 Operator Bitwise
Operator ini beroperasi pada setiap bit dalam proses penyimpanan.

 AND (&) :
a = a&b
setiap bit dari b diANDkan dengan padanan bit dari a, hasilnya disimpan
di variabel a.

 OR (|)
a=a|b
setiap bit dari b diORkan dengan bit padanannya dari a, hasilnya disimpan
di variabel a

 XOR (^)
a=a^b
setiap bit dari b diXORkan dengan bit padanan dari a, hasilnya disimpan di
variabel a

 NOT (-)
a=-a
setiap bit di a dirubah (dari 1 menjadi 0 dan kebalikannya)

 Geser Kiri (<<)
a=a<<4
geser bit sebanyak 4 bit ke kiri, bergulung.

 Geser Kanan (>>)
a=a>>4
geser bit sebanyak 4 bit ke kanan, bergulung.
2.6 Operator Relational
Operator ini berguna untuk membandingkan antara dua variabel, hasilnya berupa
boolean (benar=1/salah=0).








Sama dengan (==)
Tidak sama dengan (!=)
Lebih besar dari (>)
Lebih besar/sama dengan (>=)
Lebih kecil dari (<)
Lebih kecil/sama dengan (<=)

2.7 Operator Logical

 AND (&&)
 OR (||)
 NOT (!)

Contoh 2.1
/* Program merubah data tinggi seseorang dalam satuan feet, inch dan dirubah ke
dalam satuan m, cm*/
#include <stdio.h>
#include <conio.h>

/*Turbo C preprocessor */

int main()
{

/* deklarasi variabel yang digunakan */
const float inch_ke_cm = 2.54;
int totalInchi, feet,inch ;
float m, cm;
/*input dari keyboard */
printf(“Masukkan ukuran tinggi Anda dalam satuan inchi”);
scanf(“%d”, &totalInchi);
/*proses*/
feet = totalInchi/12;
inch = totalInchi%12;
cm = inch_ke_cm * totalInchi; //konversi ke float
m = cm/100;
/*output ke monitor */
printf(“ Ukuran tinggi Anda = %d feet dan %d inchi “, feet,inch);
printf(“ Ukuran tinggi Anda dalam satuan cm = %f n“, cm);
printf(“ Ukuran tinggi Anda dalam satuan m = %f n“, m);
getch();
return 0;

/*untuk menampilkan screen output */
/*nilai balik fungsi main() */

}

Jika program ini dijalankan:
Masukkan ukuran tinggi Anda dalam satuan inchi 67
Ukuran tinggi Anda = 5 feet dan 7 inchi
Ukuran tinggi Anda dalam satuan cm = 170.18
Ukuran tinggi Anda dalam satuan m = 1.7018
BAB III
KONSEP PENGULANGAN

3.1 PENGULANGAN FOR (FOR_LOOP)
Dalam pembuatan program, seringkali kita dihadapkan oleh masalah
pengulangan. Proses yang berulang-ulang sebanyak n kali dalam bahasa C
dapat dinyatakan dengan pernyataan for.
Penulisan for dengan satu perintah tidak perlu menggunakan
 for (inisialisasi; syarat pengulangan; perubah nilai cacah)
pernyataan/perintah;
Contoh 3.1 :
#include <stdio.h>
#include <conio.h>
int main()
{
int i;
for(i=0; i<=5; i++) printf("Langkah ke %d n", i);
getch();
return 0;
}

Penulisan for dengan jumlah perintah lebih dari satu menggunakan tanda {}.
 for (inisialisasi;syarat pengulangan;perubah nilai cacah)
{

pernyataan/perintah;
pernyataan/perintah;
pernyataan/perintah;
}
Contoh 3.2:
#include <stdio.h>
#include <conio.h>
int main()
{ int i;
int masukan;
for(i=0; i<=5; i++)
{
printf("Masukkan bilangan Ke- %d ",i);
scanf("%d",&masukan);
printf("Masukkan Ke- %d adalah %d n",i,masukan);
}
getch();
return 0;
}
Inisialisasi bisa terdiri lebih dari satu variabel.

 for(inisialisasi1, inisialisasi2;syarat pengulangan; perubah nilai cacah)
Contoh 3.3:
#include <stdio.h>
#include <conio.h>
int main()
{ int i;
int k;
for(i=0, k=2; i<=5; i++)
{
k=k+i;
printf("Nilai k = %d n", k);
}
getch();
return 0;
}

Untuk pengulangan tak berhingga
 for( ; ; )
Contoh 3.4:
#include <stdio.h>
#include <conio.h>
int main()
{
for( ; ; )
{
char ch;
printf("ntSelamat Datangnn");
printf("Jika ada mau keluar tekan 'Y' atau 'y' ");
ch=getche();
if(ch=='Y'||ch=='y') break;
}
getch();
return 0;
}

Catatan:
ch adalah variabel bertipe karakter ,
getche adalah fungsi built-in untuk menerima masukan berupa karakter
kemudian ditampilkan ke layar
break adalah pernyataan untuk memberhentikan proses.
Apabila dalam suatu pengulangan terdapat didalamnya pengulangan lagi maka
pengulangan demikian disebut nested for
 Nested for
Contoh 3.5:
#include <stdio.h>
#include <conio.h>
int main()
{ int i;
int j;
for(i=0; i<=5; i++)
for(j=0; j<=3; j++)
{
printf(" Nilai i= %d dan j= %d n",i,j);
}
getch();
return 0;
}

3.2. PENGULANGAN WHILE (WHILE_LOOP)
Proses pengulangan lain dapat dinyatakan dengan perkataan WHILE. Bedanya
dengan for terletak di perubah nilai cacah. Pada pernyataan while hanya
diperlukan satu syarat saja.

 while (syarat) pernyataan/perintah;
Contoh 3.6:
#include <stdio.h>
#include <conio.h>
int main()
{ int i;
int j;
i=0;
while(i<5)
{
printf("Nilai Kurang dari Lima n");
}
getch();
return 0;
}

 while (syarat)
{

pernyataan;
pernyataan;
}
Contoh 3.7:
#include <stdio.h>
#include <conio.h>
int main()
{ int i;
float bilangan;
i=0;
while(i<5)
{
printf("Masukkan suatu bilangan n");
scanf("%d",&bilangan);
i++;
}
getch();
return 0;
}

3.3. PENGULANGAN DO_WHILE (DO_WHILE LOOP)
Pengulangan do_while meletakkan syarat setelah perintah-perintah yang ada.
Berarti semua perintah yang terdapat didalam do_while akan diproses minimal
satu kali, walaupun nantinya syarat yang diberikan tidak dipenuhi. Disinilah
letak perbedaannya dengan pernyataan while. Pada while, jika syarat tidak
dipenuhi, maka semua pernyataan didalamnya tidak akan diproses.

 do
{

perintah/pernyataan;
perintah/pernyataan;
}while( syarat );
Contoh 3.8:
#include <stdio.h>
#include <conio.h>
int main()
{ int i;
float bilangan;
i=0;
do
{
printf("Masukkan suatu bilangan n");
scanf("%d",&bilangan);
i++;
}while(i<5)
getch();
return 0;
}
BAB IV
KONSEP PENCABANGAN

Selain proses pengulangan, dalam pembuatan program terdapat pula masalah untuk
menentukan pilihan. Sebagai contoh, bagaimana menentukan suatu bilangan adalah
bilangan genap atau bilangan ganjil. Cara penyelesaiannya yaitu dengan
menggunakan konsep pencabangan. Bahasa C menyediakan pernyataan IF atau IFELSE, atau pernyataan SWITCH-CASE.
4.1. PENCABANGAN IF

 if (syarat) perintah;
Contoh 4.1 :
#include <stdio.h>
#include <conio.h>
int main()
{
int a;
a=4;
if(a%2==0) printf("Nilai a adalah genap");
getch();
return 0;
}

 if (syarat)
{

perintah/pernyataan;
perintah/pernyataan;
}

Contoh 4.2
0
#include <stdio.h>
#include <conio.h>
int main()
{
int a;
int b;
a=3,b=7;
if(a > b)
{
printf("Nilai a lebih besar dari nilai b n");
printf("Selisih nilai mereka adalah %d n", a-b);
}
getch();
return 0;
}

4.2. PENCABANGAN IF_ELSE

 if(syarat) perintah;
else perintah;
Contoh:
if(a%2!=0) printf(“Bilangan a adalah ganjiln”);
else printf(“Bilangan a adalah genap”);

 if (syarat)
{

perintah/pernyataan;
perintah/pernyataan;
}

else
{
perintah/pernyataan;
perintah/pernyataan;
}
Contoh 4.3.
#include <stdio.h>
#include <conio.h>
int main()
{
float a, b, c, t, u ;
a=9.0;
b=4.0;
c=2;
if (a==b && c<=5)
{
t=a+b/5*c;
printf("Nilai t = % f n",t);
}
else
{
u=(2-a/3)+(a*b-4);
printf("Nilai u=%f n",u);
}
getch();
return 0;
}
 if (syarat)
if(syarat) perintah;
else perintah;
else
if(syarat) perintah;

else perintah;
Contoh 4.4 :
#include <stdio.h>
#include <conio.h>
int main()
{ int umur;
printf("Berapa umurnya anda : ");
scanf("%d", &umur);
if (umur >40)
if(umur<60) printf("Anda sudah tuan");
else printf("Anda termasuk manulan");
else
if(umur<20) printf("Anda dalam masa remajan");
else printf("Anda sudah dewasan");
getch();
return 0;
}

4.3. LOOP BREAKING
Jika pernyataan break terdapat dalam suatu proses pengulangan, komputer
akan segera memberhentikan proses pengulangan dan langsung ke luar loop
menuju pernyataan selanjutnya.
Contoh 4.5 :
#include <stdio.h>
#include <conio.h>
int main()
{
int t;
for(t=0;t<100;t++)
{
printf(“”%d”,t);
if(t==10) break;
}
getch();
return 0;
}
4.4. PERNYATAAN CONTINUE
Cara kerja pernyataan continue hampir sama dengan break, hanya saja pada
continue proses tidak segera berhenti melainkan memaksa proses iterasi
berikutnya dengan mengabaikan pernyataan berikutnya.
Contoh 4.6 :
#include <stdio.h>
#include <conio.h>
int main()
{
int x;
for(x=0; x<100; x++)
{
if( x%2 ) continue;
printf(“%d “, x);
}
getch();
return 0;
}

4.6. PENCABANGAN SWITCH_CASE

 switch(variabel)
{

case 1: pernyataan;
break;
case 2 : pernyataan;
break;
….
default: pernyataan;
break;
}

 switch(variabel)
{

}

case „a‟: pernyataan;
break;
case „b‟ : pernyataan;
break;
….
default: pernyataan;
break;
Contoh 4.7 :
#include <stdio.h>
#include <conio.h>
int main()
{ int angka;
printf("Masukkan angka (1-7) ");
scanf("%d",&angka);
switch(angka)
{
case '1': printf("M I N G G U");
break;
case '2': printf(" S E N I N ");
break;
case '3': printf("S E L A S A ");
break;
case '4': printf("R A B U ");
break;
case '5': printf("K A M I S ");
break;
case '6': printf("J U M A T ");
break;
case '7':printf("S A B T U ");
break;
default : printf(" ANDA SALAH MEMBERI ANGKA");
}
getch();
return 0;
}

BAB V
KONSEP ARRAY DAN STRING
Pendeklarasian variabel pasti akan dijumpai saat pembuatan program. Untuk variabel
yang jenisnya sama, seperti nomer registrasi pokok mahasisma, diperlukan
pendeklarasian variabel yang banyak. Untuk memudahkan pembuat program maka
disediakan pendeklarasian variabel dengan nama yang sama, hanya saja diberi indeks
nomer dari 0 sampai bilangan tertentu.
NRP[0], NRP[1], ......NRP[100];

5.1. PENDEKLARASIAN ARRAY 1 DIMENSI
Suatu nama variabel yang diberi indeks bilangan tertentu disebut dengan ARRAY.
ARRAY adalah kumpulan data yang bertipe sama, dan diberi nama dengan
ditambahkan indeks nomer.
 Untuk menyatakan data suhu bertipe integer sebanyak 5 buah, cara biasa dapat
dituliskan demikian


int suhu1, suhu2, suhu3, suhu4, suhu 5

Hal ini tentu menyulitkan jika data yang ingin dituliskan banyak. Alternatif lain yang
disediakan oleh bahasa pemrograman yaitu dengan menggunakan konsep ARRAY.
Maka data suhu di atas dapat ditulis dengan cara lain yaitu:

 int suhu[5]
Artinya suhu1 bisa dipadankan dengan suhu[0], suhu 2 dipadankan dengan suhu[1]
dan seterusnya. Perlu diingat, bahasa C memulai indeks dari 0 sampai nilai yang
terdapat di dalam kurung siku dikurang satu. Dengan kata lain

 int suhu[5]

menyatakan adanya 5 variabel suhu yaitu suhu[0], suhu[1],
suhu[2], suhu[3] dan suhu[4]. Variabel suhu[5] tidak terdefinisi karena
indeksnya mulai dari 0.

Semua tipe bilangan dapat dinyatakan dalam variabel ARRAY, misalnya tipe float

 float berat_tepung[4]
Deklarasi ini menyatakan ada 4 variabel bertipe float, dimulai dari berat_tepung[0],
berat_ tepung[1], berat_ tepung[2], dan berat_ tepung[3]. Variabel berat_tepung[4]
tidak terdefinisi.
Untuk menyatakan string (deretan karakter ) digunakan variabel ARRAY bertipe
karakter. Variabel ini digunakan untuk menyimpan nama atau informasi berupa
karakter.

 char nm[20]
nm=”Indonesia”;
Artinya, nm[0]=‟I‟, nm[1]=‟n‟ …, nm[8]=‟a‟, dan nm[9]=‟0‟.
Di bawah ini ada contoh program:
Contoh 5.1
/* Program menerima masukan dari keyboard nilai data berupa ARRAY tipe
integer
Berdimensi satu*/
#include <stdio.h>
/*Turbo C preprocessor */
#include <conio.h>
int main()
{
/* deklarasi variabel yang digunakan */
int suhu[5];
int i;
int jumlah=0;
/*input dari keyboard */
for(i=0;i<5;i++)
{
printf(“Masukkan suhu ke- %d ”, i);
scanf(“%d”, &suhu[i]);
}
/*proses*/
for(i=0;i<5;i++)
{
jumlah=jumlah+suhu[i];
}
/*output ke monitor */
clrscr();
Printf(“nn”);
for(i=0;i<5;i++)
{
printf(“Nilai suhu ke- %d = %d n”, i , suhu[i]);
}
printf(“ Jumlah totalnya = %d “, jumlah); /* untuk menampilkan jumlah */
getch();
/*untuk menampilkan screen output */
return 0;
/*nilai balik fungsi main() */
}

Contoh 5.2
/* Program menerima masukan dari keyboard data berupa ARRAY tipe karakter
Berdimensi satu*/
#include <stdio.h>
#include <conio.h>

/*Turbo C preprocessor */

int main()
{
/* deklarasi variabel yang digunakan */
char as[5];
char bs[5];
char cs[10];
int i;
int j=0;
int k=0;
clrscr();
/*input dari keyboard */
printf("Masukkan 4 deretan karakter ");
scanf("%s",&as);
printf("Masukkan 4 deretan karakter ");

scanf("%s",&bs);
/*proses*/
for(i=0;i<8;i=i+2)
{
cs[i] =as[j++];
cs[i+1]=bs[k++];
}
cs[8]='0';
/*output ke monitor */
printf("Tulisan cs = %s ", cs);
getch();
return 0;
}

/*untuk menampilkan screen output */
/*nilai balik fungsi main() */
5.2. PENDEKLARASIAN ARRAY 2 DIMENSI

Array 2 dimensi diperlukan untuk permasalahan yang berbentuk tabel atau
matriks. Misalkan akan disimpan data suhu di suatu tempat dengan ketentuan yaitu
data suhu yang akan disimpan berupa data suhu pada pagi hari, suhu siang hari dan
suhu malam hari. Data ini dipantau mulai dari hari senin sampai minggu.
Jika hari senin dinyatakan dengan indeks 0
Jika hari senin dinyatakan dengan indeks 0
Jika hari selasa dinyatakan dengan indeks 1
diwakili dengan
Jika hari rabu dinyatakan dengan indeks 2
BARIS
Jika hari kamis dinyatakan dengan indeks 3
Jika hari jumat dinyatakan dengan indeks 4
Jika hari sabtudinyatakan dengan indeks 5
Jika hari minggu dinyatakan dengan indeks 6
Pagi diberi indeks 0
Siang diberi indeks 1
Malam diberi indeks 2

diwakili dengan
KOLOM

Maka array yang dapat menyimpan data dalam kasus ini berbentuk :
ARRAY 2 DIMENSI
Dan dideklarasikan dalam program seperti :
float Suhu[7][3];
Contoh lain berupa Aplikasi dengan Matriks.
Contoh 5.3
/* Program menerima masukan dari keyboard nilai data berupa ARRAY
tipe float berdimensi dua*/
#include <stdio.h>
/*Turbo C preprocessor */
#include <conio.h>
int main()
{
/* deklarasi variabel yang digunakan */
float suhu[7][3];
int i,j;
int jumlah=0;
/*input dari keyboard */
for(i=0;i<7;i++)
for(j=0;j<3;j++)
{
printf(“Masukkan suhu hari- %d – saat %d ”, i,j);
scanf(“%d”, &suhu[i][j]);
}
/*proses*/
for(i=0;i<7;i++)
for(j=0;j<3;j++)
{
jumlah=jumlah+suhu[i][j];
}
/*output ke monitor */
clrscr();
Printf(“nn”);
for(i=0;i<7;i++)
for(j=0;j<3;j++)
{
printf(“Nilai suhu hari- %d – saat % = %f n”, i ,
suhu[i][j]);
}
printf(“ Rata = %f “, jumlah/21); /* untuk menampilkan rata */
getch();
/*untuk menampilkan screen output */
return 0;
/*nilai balik fungsi main() */
}
Contoh 5.4
/* Program Array 2-D*/
/* Penjumlahan Dua Matriks Bujur Sangkar */
#include <stdio.h>
#include <math.h>
int main ()
{

int N;
int i,j;
float A[10][10];
float B[10][10];
float C[10][10];
clrscr();
printf("nntMasukkan Berapa Orde Matriks yang Anda
Inginkan = ");
scanf("%d",&N);
printf("nntMasukkan Data Matriks pertaman");
for (i=0;i<N;i++)
for (j = 0;j<N;j++)
{printf("nMasukkan Angka Baris %d dan Kolom %d =
",i+1,j+1);
scanf("%f",&A[i][j]);
}

printf("nntMasukkan Data Matriks Keduan");
for (i=0;i<N;i++)
for (j=0;j<N;j++)
{printf("nMasukkan Angka Baris %d dan Kolom %d =
",i+1,j+1);
scanf("%f",&B[i][j]);
}

for (i=0;i<N;i++)
for (j=0;j<N;j++)
C[i][j] = A[i][j] +B[i][j];
printf("nntJumlah Data Kedua Matriks = n");
for (i=0;i<N;i++)
for (j=0;j<N;j++)
printf("%.0f",C[i][j]);
getch ();
return 0;
}
Tugas 5:
1. Buatlah program yang dapat menerima 2 data berupa matriks berordo 3 x 3.
Kemudian hitung persamaan di bawah ini :
C=2*A+3*B
Tampilkan semua matriks tersebut.
2. Sebuah Array 2 dimensi berukuran 5x5 berisi data jumlah siswa (bilangan bulat)
pada kelas 1a, 1b, 1c, 1d dan 1e dari tahun 1996 – 2000.
1996
1997
1998
1999
2000

1a
25
26
32
30
26

1b
33
33
25
34
27

1c
35
34
35
32
28

1d
25
24
27
29
29

1e
25
24
28
30
30

Hitung jumlah siswa keseluruhan dari tahun 1996-2000.
Hitung jumlah siswa pada tahun 2000.
BAB VI
FUNGSI
Akan dibuat suatu program untuk melakukan proses aljabar sederhana yaitu proses
penjumlahan, pengurangan, perkalian maupun pembagian. Semua proses ini bisa

dibuat dalam satu program seperti di bawah ini:

Contoh 6.1
/*Program#1.1: Program Aritmatika sederhana (+,-,*,/) */
#include <stdio.h>
#include<conio.h>
int main()
{
float a,b,hasil;
clrscr();
printf(“Masukkan bilangan a “);
scanf(“%f”,&a);
printf(“Masukkan bilangan b “);
scanf(“%f”,&b);
printf(“n======================================”);
//proses penjumlahan
hasil = a+b;
printf(“nHasil penjumlahan %f dan %f adalah %f “, a,b,hasil);
printf(“n---------------------------------------------------------------”);
//proses pengurangan
hasil = a-b;
printf(“nHasil selisih %f dan %f adalah %f “, a,b,hasil);
printf(“n---------------------------------------------------------------”);
//Lanjut halaman berikutnya
//proses perkalian
hasil = a*b;
printf(“nHasil perkalian %f dg %f adalah %f “, a,b,hasil);
printf(“n---------------------------------------------------------------”);
//proses pembagian
while(b==0)
//Bilangan penyebut tidak boleh bernilai nol
{
printf(“nBilangan b tidak boleh 0n Masukkan bilangan b “);
scanf(“%f”,&b);
}
hasil = a/b;
printf(“nHasil %f dibagi %f adalah %f “, a,b,hasil);
printf(“n======================================”);
printf(“n
SELESAI
“);
getch();
return 0;
} //Akhir Program#1.1

Proses penjumlahan, pengurangan, perkalian maupun pembagian pada program
sebelumnya masing-masing dapat dibuatkan dalam modul yang terpisah-pisah yang
akan disebut sebagai fungsi. Tujuan dari pembuatan fungsi adalah untuk memudahkan
pembuat program dalam mengembangkan programnya. Selain itu, dengan membuat

fungsi ukuran program dapat diperkecil.

Bagaimana membuat fungsi ???
6.1 ATURAN PEMAKAIAN FUNGSI DALAM PROGRAM
Hal yang perlu diperhatikan dalam proses pembuatan fungsi :
1. Pembuatan prototipe fungsi yang diletakkan sebelum penulisan program main
2. Pemanggilan fungsi di dalam program main
3. Penjabaran fungsi setelah program main selesai
Silahkan perhatikan program 1.2 :
/*Program#1.2
Mencari nilai pangkat dari suatu bentuk x pangkat y */
#include <stdio.h>
#include <conio.h>
int pangkat (int x, int y);

1
//prototipe fungsi pangkat ,
// dengan parameter x,y dan syarat y>=0

int main()
{

}

int bil1,bil2;
2
int nilaiPangkat;
clrscr();
printf(”Masukkan dua bilangan sebagai a pangkat b ”);
scanf(”%d%d”, &bil1 &bil2);
nilaiPangkat=pangkat(bil1,bil2);
// argumen bil1 dan bil2
printf(”nNilai %d pangkat %d adalah %d ”, bil1,bil2, nilaiPangkat);
getch();
return 0;
3

int pangkat(int x,int y) //Penjabaran fungsi pangkat
{

int hasil=1;
if (y==0)

hasil = 1;
else
for (i=1;i<=y;i++) hasil = hasil*x;
return hasil;
}

//Akhir Program#1.2

Pembuatan prototipe fungsi yang diletakkan sebelum penulisan program main
merupakan pemberitahuan saat proses kompilasi, bahwa ada suatu fungsi
bernama tertentu yang akan digunakan di dalam program main dengan bentuk

seperti yang dituliskan.
Pemanggilan fungsi di dalam program main berguna untuk memasukkan argumen
tertentu pada posisi parameter agar diproses oleh fungsi kemudian hasilnya

dikembalikan pada program main.
Cara penulisann penjabaran fungsi setelah program main selesai harus sama
dengan prototipenya, hanya saja tidak diakhiri oleh tanda (;) titik koma. Ini perlu

selalu diingat!!. Di bagian sinilah terdapat semua proses yang diperlukan untuk
menyelesaikan tujuan dari fungsi yang akan dibuat. Hindari penggunaan printf
dalam fungsi yang bertujuan untuk mencari suatu nilai tertentu. Untuk fungsi-
fungsi yang bertujuan sebagai input ataupun sebagai output, silahkan gunakan
printf. Di bawah ini diberikan contoh.
Mari pusatkan kembali perhatian kita ke program pertama yaitu program
perhitungan aljabar sederhana meliputi penjumlahan,
pengurangan, perkalian

maupun pembagian.
Fungsi Penjumlahan dapat dibuat seperti :
float tambah(float a, float b)
{
float hasil;
hasil=a+b;
return hasil;
}

Silahkan lanjutkan pembuatan fungsi untuk proses pengurangan, perkalian dan
pembagian.
Yang perlu diperhatikan untuk membuat suatu fungsi adalah:
1. Nama fungsi
2. Nilai balik fungsi
3. Parameter fungsi
4. Penulisan return
Keterangan:
- Nama fungsi adalah nama yang ingin diberikan untuk fungsi yang akan dibuat.
Silahkan pilih nama untuk mewakili fungsi tersebut. Jika namanya terdiri dari
dua kata maka jangan diberi spasi kosong.
Contoh “fungsiTambah” (jangan ditulis “fungsi Tambah”).
-

Nilai balik fungsi adalah hasil keluaran yang diinginkan dari fungsi itu, apakah
bertipe float, integer atau karakter, atau tidak ada nilai balik sama sekali. Jika
fungsi tidak ada hasil keluarannya maka sebagai nilai balik fungsi tuliskan
void. Selain itu tuliskan tipe data nilai balik yang diinginkan (bisa float, int,
char atau double dll). Nilai balik dicirikan dengan penggunaan kata return.

-

Parameter fungsi adalah sesuatu yang dijadikan nilai masukan untuk fungsi
tersebut. Untuk fungsi penjumlahan tentunya diperlukan dua buah bilangan
yang akan dijumlahkan, maka disediakan dua parameter masukan.

Dengan demikian program proses aljabar tadi bisa dirubah penulisannya sbb:
/* Program#1.3:
Program proses aljabar dalam bentuk modul-modul */
#include <stdio.h>
#include <conio.h>
//Prototipe Fungsi
float tambat(float a, float b);
float kurang(float a, float b);
float kali(float a, float b);
float bagi(float a, float b);
void garis(char ch);
//Program Utama
int main()
{
float bil1,bil2,hasil;
clrscr();
printf(“Masukkan bilangan a “);
scanf(“%f”,&bil1);
printf(“Masukkan bilangan b “);

scanf(“%f”,&bil2);
garis(„=‟);
//proses penjumlahan
hasil = tambah(bil1,bil2); //pemanggilan fungsi tambah dengan 2 argumen
printf(“nHasil penjumlahan %f dan %f adalah %f “,bil1,bil2,hasil);
garis(„-‟);
//proses pengurangan
hasil = kurang(bil1,bil2);
printf(“nHasil selisih %f dan %f adalah %f “,bil1,bil2,hasil);
garis(„-‟);
hasil = kali(bil1,bil2);
printf(“nHasil perkalian %f dg %f adalah %f “,bil1,bil2,hasil);
garis(„-‟);
//proses pembagian
while(bil2==0)
{
printf(“nBilangan b tidak boleh 0n Masukkan bilangan b “);
scanf(“%f”,&bil2);
}
hasil = bagi(bil1,bil2);
printf(“nHasil %f dibagi %f adalah %f “,bil1,bil2,hasil);
garis(„=‟);
printf(“n
SELESAI
“);
getch();
return 0;
}
//Modul-modul yang akan digunakan dalam program utama
//Fungsi Penjumlahan
float tambah(float a, float b)
{
float hasil;
hasil=a+b;
return hasil; // hasil memberi nilai balik untuk fungsi tambah
}
//Fungsi Pembagian
float bagi(float a, float b)
{
float hasil;
hasil=a/b;
return hasil; // hasil memberi nilai balik untuk fungsi bagi
}
//Fungsi Pengurangan
float kurang(float a, float b)
{
float hasil;
hasil=a-b;
return hasil; // hasil memberi nilai balik untuk fungsi kurang
}
//Fungsi Perkalian
float kali(float a, float b)
{
float hasil;
hasil=a*b;
return hasil; //hasil memberi nilai balik untuk fungsi kali
}
//Fungsi Garis
void garis(char ch)
{
static i;
printf(“n”);
for(i=1;i<50;i++)]
{
printf(“%c”,ch);
}
return; //tidak ada nilai balik untuk fungsi garis
}

6.2. DIAGRAM PEMANGGILAN FUNGSI
Program#1.4

mengilustrasikan jalannya proses pemanggilan suatu fungsi dalam

program. Jika fungsi dipanggil maka proses akan dilanjutkan pada perintah perintah
yang ada di dalam fungsi. Setelah selesai semua perintah di dalam fungsi, proses akan
kembali ke program utama pada posisi satu baris dibawah pemanggilan fungsi tadi.

Jelasnya dapat dilihat pada program#1.4
/* Program#1.4:
#include<stdio.h>
#include<conio.h>
//Prototip fungsi
void a();

*/
void b();
//Program Utama
int main()
{
clrscr();
printf(“ di main menu”)
a();
printf(“sudah selesai menjalankan fungsi a()”);
b();
printf(“sudah selesai menjalankan fungsi b()”);

printf(“Program selesai”);
getch();
return 0;
}
void a()
{
printf(“di dalam fungsi a()”);
}
void b()
{
printf(“di dalam fungsi b()”);
}

Coba jalankan program di atas ini, lihat hasilnya.
TUGAS BAB VI:
1. Di bawah ini adalah suatu fungsi dengan nama luas_segitiga. Fungsi ini memiliki
nilai balik berupa bilangan desimal berguna untuk memberi hasil perhitungan luas
segitiga. Karena menghitung luas segitiga salah satunya diperlukan masukan
berupa nilai alas dan nilai tinggi maka fungsi memerlukan dua parameter dengan

tipe bilangan desimal.
float luas_segitiga (float alas, float tinggi)
{

float luas;
luas = (alas*tinggi)/2;
return luas;
}

Buatlah program untuk dapat memanggil fungsi ini.
Jika program telah sukses, tambahkan lagi fungsi menghitung luas lingkaran dan
luas
persegi panjang dan panggil fungsi-fungsi tersebut pada program utama.
2. Fungsi mencari nilai mutlak dari suatu bilangan.
Fungsi pustaka abs(), diperoleh dari kata absolut yaitu mutlak, mengubah nilai
apapun menjadi positif.
Bentuk dasar :
int abs(int x)
//Program Tugas1-2
#include <stdio.h>
#include <conio.h>
#include <math,h>
int main()
{
int x= -1234;
// variabel x
clrscr();
// untuk membersihkan layar
// cetak pada monitor
printf(“nilai : %d, nilai mutlaknya %d n”,x,abs(x));
// tampilkan segera ke layar output
getch();
return 0;
}

Buatlah fungsi anda sendiri yang prinsip kerjanya sama dengan fungsi abs() . Beri
nama fungsi anda dengan nama yang berbeda dari fungsi pustakanya.
3. Lanjutkan program Tugas1-3 di bawah ini.
/*Program Tugas1-3
Program Menjumlahkan angka 0 sampai 9 */
#include<stdio.h>
#include<conio.h>
// Prototip fungsi
void prosesJumlah( int x); // Proses Penjumlahan 0-9
void tampilkan();
// Tampilkan jumlah akhirnya
// Variabel global untuk menyimpan hasil penjumlahan
int jumlah;
int main()
{

int angka;
jumlah=0;
clrscr();
for(angka=0;angka<10;angka++) prosesJumlah(angka);
tampil();
getch();
return 0;
}

void prosesJumlah(int x)
{

//Silahkan tulis perintah anda
Beri nama program xxyyyTug13.c
4. Buatlah program mencari nilai terbesar, nilai terkecil, jumlah total berbobot dari 3
bilangan desimal sembarang (a,b,c). Bentuk 3 fungsi yaitu:
1. Fungsi mencari nilai terbesar dari 3 bilangan tersebut
2. Fungsi mencari nilai terkecil dari 3 bilangan tersebut
3. Fungsi mencari jumlah total berbobot dari 3 bilangan tersebut
Total = 3.5 a + 4.0 b + 2.5
BAB VII
STRING
Bab ini akan memperkenalkan bentuk fungsi pustaka yang berguna untuk membuat
program dengan tipe data string.
7.1 FUNGSI

strchr

Fungsi strchr : fungsi untuk menemukan suatu karakter tertentu yang pertama muncul
pada suatu deretan karakter.
Contoh 7.1:
/*Program contoh penggunaan strchr */
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char string[15];
char *ptr, c='r';
strcpy(string,"This is a string");
ptr=strchr(string,c);
if(ptr) printf("The character %c is at position %d n",c,ptr-string);
else
printf("The character was not foundn");
getch();
return 0;
}

7.2 FUNGSI

strcmp

Fungsi strcmp : fungsi untuk membandingkan antara dua string
Contoh 7.2:
/*Program contoh penggunaan strcmp */
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char *buf1="aaa", *buf2="bbb",*buf3="ccc";
int ptr;
ptr = strcmp(buf2,buf1);
if(ptr>0)
printf("Buffer2 is greater than buffer1 n");
else
printf("Buffer2 is less than buffer1 n");
ptr=strcmp(buf2,buf3);
if(ptr>0)
printf("Buffer2 is greater than buffer3 n");

else
printf("Buffer2 is less than buffer3 n");
getch();
return 0;
}
BAB VIII
POINTER

Pada bab ini akan di bahas mengenai konsep pointer dalam pemrograman. Apa itu
pointer? Pointer adalah suatu variabel khusus yang berisi data berupa alamat tertentu.
Beda dengan variabel yang telah dipelajari sebelumnya, karena variabel yang telah

dipelajari berisi suatu data yang berupa bilangan atau deretan karakter.
Untuk apa data yang berupa alamat? Perlu diingat bahwa setiap byte di dalam memori
komputer memiliki alamat tertentu. Pada komputer yang memiliki memori 640K,

alamat memori dimulai dari 0 sampai dengan alamat memori tertinggi yaitu 655359.
Variabel yang kita kenal sebelumnya juga disimpan di memori ini, walaupun tidak
disebutkan alamatnya langsung.
Untuk menunjuk ke suatu alamat memori secara

langsung digunakanlah pointer ini. Jadi sebenarnya pointer itu isinya alamat.
Contoh:
Misalkan pint adalah variabel pointer, vint adalah variabel yang berisi data bilangan
bulat dan vint berada pada alamat 0xFFF2.
Maka pointer pint dapat diatur agar menunjuk ke variabel vint.

Alamat
memori
1000

Variabe
di memori
1003

1001

*pint
vint = 56
pint=&vint

1002
1003

56

1004

Gambar 4.1
8.1 PENULISAN VARIABEL DAN OPERATOR DARI POINTER
Contoh 8.1 memberikan contoh penulisan deklarasi suatu pointer dan penggunaan
operator pointer. Ada dua operator pointer yaitu tanda * dan tanda &. Tanda & adalah
operator unary yang akan memberikan alamat dari operandnya. Operator * akan
memberikan nilai yang ditunjuk oleh pointer tersebut pada alamat tertentu.
Contoh 8.1:
#include<stdio.h>
#include<conio.h>
int main()
{
int *almt_bil, bil, nil;
bil = 100;
almt_bil=&bil;
//dapatkan alamat bil
nil=*almt_bil;
// dapatkan isi dari variabel pada alamat tsb.
printf(”%d”,nil); // tampilkan isi variabel pada alamat tsb.
getch();
return 0;
}

Contoh 8 .2 adalah contoh program yang salah:
Contoh 8.2:
#include<stdio.h>
#include<conio.h>
int main()
{
Float x=10.1;
Float y;
Int *p;
p = &x;
y=*p;
printf(”%f”,y); // tampilkan isi variabel y.
getch();
return 0;
}

Porgram ini akan memberikan nilai yang salah, dikarenakan deklarasi p sebagai
pointer yang menunjuk ke suatu nilai integer. Sehingga kompiler hanya mentrasfer 2
byte informasi ke y, padahal semestinya harus 4 byte untuk floating point.
8.2. BAGAIMANA MENULIS PERNYATAAN POINTER
Contoh 8.3:
#include<stdio.h>
#include<conio.h>
int main()
{
int x;
int *p1,*p2;
p1= &x;
p2=p1;
printf(”%p”,p2); // tampilkan bentuk heksadesimal dari alamat x,
bukan nilai x.
getch();
return 0;
}

8.3. ARITMATIKA POINTER
Dalam bahasa C, operator yang disediakan untuk pointer hanya ada dua yaitu
operator + dan operator -.Untuk jelasnya, asumsikan p1 adalah pointer yang
menunjuk ke suatu nilat bertipe integer dengan alamat 3000. Kalau ditulis
dalam program pernyataan seperti di bawah ini,
p1++ ;
maka isi dari p1 adalah 3002.
Mengapa tidak 3001???
Karena setiap komputer menaikkan p1, maka komputer akan menunjuk ke
bilangan integer berikutnya. Demikian juga untuk pengurangan
p1--;
akan merubah nilai p1 menjadi 2998, jika sebelumnya nilai p1 adalah 3000.
Nilai kenaikkan suatu pointer ditentukan oleh tipe dasar nilai yang ditunjuk
oleh pointer tersebut ( Gambar4.2).

char *ch=3000;
int *i=3000;
ch

3000

ch+1

3001

ch+2

3002

ch+3

3003

ch+4

3000

ch+5

3001

Gambar 4.2

i

i+1
i+2
BAB IX
FILE INPUT OUTPUT

Saat kita membuat program seringkali diperlukan proses penyimpanan data hasil
proses ke suatu file maupun membacanya dari suatu file tertentu. Maka konsep ini
diistilahkan dengan kata-kata file input output. Program yang menggunakan konsep
ini akan dijalankan dalam lingkungan SHELL. Proses-proses yang dibahas pada bab
ini meliputi proses menuliskan karakter ke suatu file, baca karakter dari file dan

tampilkan ke layar monitor, gandakan file sumber ke file tujuan.
Contoh 9.1:
/*Tuliskan karakter ke suatu file */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(int argc,char *argv[])
{
FILE *fp; //pointer ke suatu file
char ch;
//variabel untuk menampung data berupa karakter/huruf
clrscr(); //bersihkan layar
if(argc!=2) //periksa apakah ada dua argumen ketika running program
//c:namaprog namafile
{
printf("anda lupa menyertakan nama filen");
exit(1);
}
if((fp=fopen(argv[1],"w"))==NULL) //buka file namafile untuk menulis
{
printf("tidak dapat membuka filen");
exit(1);
}
do{
printf("Tulis karakter dan akhiri dengan $: ");
ch=getchar(); //dapatkan satu karakter dari keyboard
putc(ch,fp); //tuliskan satu karakter ke file
} while (ch!='$');
getch();
fclose(fp); //tutup kembali file
return 0;
}
Contoh 9.2:
/* Baca karakter dari file dan tampilkan ke layar monitor */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(int argc,char *argv[])
{
FILE *fp;
char ch;
clrscr();
if(argc!=2)
{
printf("anda lupa menyertakan nama file n");
exit(1);
}
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("tidak dapat membuka file n");
exit(1);
}
ch=getc(fp);

/*dapatkan satu karakter */

while(ch!=EOF){
putchar(ch); /*tampilkan ke layar monitor */
ch=getc(fp); //dapatkan satu karakter dari file
}
getch();
fclose(fp);
return 0;
}
Contoh 9.3:
/*Gandakan file sumber ke file tujuan */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(int argc,char *argv[])
{
FILE *in,*out;
char ch;
clrscr();
if(argc!=3)
{
printf("anda lupa menyertakan 2 nama file n");
exit(1);
}
if((in=fopen(argv[1],"rb"))==NULL)
{
printf("tidak dapat membuka file sumber n");
exit(1);
}
if((out=fopen(argv[2],"wb"))==NULL)
{
printf("tidak dapat membuka file tujuan n");
exit(1);
}
/* baris di bawah ini melakukan proses ganda dari file sumber*/
while(!feof(in)) putc(getc(in),out);
getch();
fclose(in);
fclose(out);
return 0;
}

Marilah kita lihat fungsi-fungsi pustaka yang digunakan untuk proses input output ini.
1. fopen()
Memiliki fungsi: membuka stream dan menghubungkan stream dengan file
FILE *fopen(char *Namafile, char *mode);
Contoh:
fp = fopen(”test”,”w”);
-

mode adalah string yang menyatakan status.
fp adalah file pointer
-

w mode untuk status tulis ke file test.

Beberapa macam mode
“r” – buka file teks untuk dibaca
“w”- ciptakan file teks untuk ditulis
”a” – tambahkan data pada file teks yang ada
”rb”- buka file biner untuk dibaca
”wb”- ciptakan file biner untuk ditulis
”ab”- tambahkan data pada file biner yang ada
2. putc()
Berguna untuk : menuliskan karakter ke suatu stream yang sebelumnya telah
dibuka melalui fopen().
int putc(char ch, FILE *fp);
3. getc()
Fungsi ini digunakan untuk membaca karakter dari suatu stream yang
sebelunya telah dibuka melalui fopen() dalam status baca.
4. putchar()
Fungsi ini akan menuliskan karakter ke layar monitor.
5. getchar()
Fungsi ini akan mengambil karakter dari layar monitor.
6. fclose()
Fungsinya: menutup suatu stream yang telah dibuka melalui fopen()
Ingat ! setiapkali suatu file dibuka, maka file tersebut harus ditutup kembali
sebelum program berakhir.
int fclose(FILE *fp);
BAB X
STRUKTUR

Konsep Struktur adalah fasilitas yang disediakan untuk membentuk tipe data kita
sendiri. Program c hanya memberikan tipe data dasar seperti integer, float dsb. Untuk
database kita memerlukan tipe data yang merupakan gabungan dari beberapa tipe data

dasar ini, maka tipe data tersebut bisa dibuat dengan fasilitas Struktur ini.
Struktur adalah kumpulan variabel yang dinyatakan dengan satu nama, berguna untuk
mengumpulkan data yang erat satu sama lainnya. Contoh data peserta, variabel yang
diperlukan yaitu variabel untuk menyimpan nama peserta, nomer nrp, tanggal lahir,

alamat dllnya.
Bagaimana menuliskan bentuk struktur dalam suatu program??
Hal-hal yang diperlukan yaitu:
Struktur definition : membentuk satu templet yang bisa digunakan untuk membangun
variabel struktur.
Struktur elemen: Variabel-variabel yang tergabung dalam satu struktur.
Contoh:
Data pegawai bisa dibuat dalam struktur:
struct datapegawai{
char nama[20];
char alamat[20];
float gaji;
};

Contoh 10.1
/*struct2.cpp */
/* Contoh program yang menggunakan bentuk structure */
#include <stdio.h>
#include <conio.h>
#include <math.h>
struct {
char nama[20];
char alamat[20];
float gaji;
} pegawai1;
float atof();
int main()
{

clrscr();
printf("Nama Pegawai I : ");
gets(pegawai1.nama);
printf("Alamat Pegawai I : ");
gets(pegawai1.alamat); /* scanf("%s",&pegawai1.alamat) */
printf("Gaji Pegawai I : ");
gets(gj);
pegawai1.gaji=atof(gj);
printf("nnData yang telah anda ketikkan : ");
printf("n%-20s%30s%10.2f",pegawai1.nama,pegawai1.alamat,pegawai1.gaji);
printf("nnTekan sembarang tombol");
getch();
return 0;
}
Contoh 10.2
/* Program struktur

*/

#include <stdio.h>
#include <conio.h>
#include <math.h>
struct

inventaris

{

char nobarang[8];
char namabarang[30];
int jumlah;
float harga;
float harga_total;
};

struct inventaris barang[5];
int main()
{

int i;
clrscr();
for(i=0; i<2; i++)
{

printf("nobarang : ");gets(barang[i].nobarang);
printf("namabarang : ");gets(barang[i].namabarang);
printf("jumlah : ");scanf("%d",&barang[i].jumlah);
//fflush(stdio);
printf("harga : ");scanf("%5.2f",&barang[i].harga);

barang[i].harga_total=barang[i].harga*barang[i].jumlah;
}

/* display */
for(i=0; i<2; i++)
{

printf("nobarang : %s n",barang[i].nobarang);
printf("namabarang :%s n ",barang[i].namabarang);
printf("jumlah : %d n",barang[i].jumlah);
printf("harga : %f n",barang[i].harga);
printf("harga_total : %f n",barang[i].harga_total);
}

getch();
return 0;
}

More Related Content

What's hot

Klasifikasi Data dan Tipe/Skala Pengukuran Data
Klasifikasi Data dan Tipe/Skala Pengukuran DataKlasifikasi Data dan Tipe/Skala Pengukuran Data
Klasifikasi Data dan Tipe/Skala Pengukuran DataM. Jainuri, S.Pd., M.Pd
 
Pengantar statistika slide 3
Pengantar statistika slide 3Pengantar statistika slide 3
Pengantar statistika slide 3Az'End Love
 
Analisis Sistem Informasi Penjualan Alfamart
Analisis Sistem Informasi Penjualan Alfamart Analisis Sistem Informasi Penjualan Alfamart
Analisis Sistem Informasi Penjualan Alfamart SariWahyuningsih4
 
Mi+ +bab+3+metode+transportasi
Mi+ +bab+3+metode+transportasiMi+ +bab+3+metode+transportasi
Mi+ +bab+3+metode+transportasiHari Sumartono
 
Metode proses pengembangan perangkat lunak
Metode proses pengembangan perangkat lunakMetode proses pengembangan perangkat lunak
Metode proses pengembangan perangkat lunakMoch. Nor Kholis
 
Data Management (Enhanced ERD and Mapping ERD)
Data Management (Enhanced ERD and Mapping ERD)Data Management (Enhanced ERD and Mapping ERD)
Data Management (Enhanced ERD and Mapping ERD)Adam Mukharil Bachtiar
 
Modul teknik digital dan logika
Modul teknik digital dan logikaModul teknik digital dan logika
Modul teknik digital dan logikaBambang Apriyanto
 
Program queue dengan single linked list
Program queue dengan single linked listProgram queue dengan single linked list
Program queue dengan single linked listRhe Dwi Yuni
 
Notasi algoritmik & programming style
Notasi algoritmik & programming styleNotasi algoritmik & programming style
Notasi algoritmik & programming styleTenia Wahyuningrum
 
ANALISA DAN PERANCANGAN APLIKASI SISTEM INFORMASI PELAYANAN KESEHATAN STUDI K...
ANALISA DAN PERANCANGAN APLIKASI SISTEM INFORMASI PELAYANAN KESEHATAN STUDI K...ANALISA DAN PERANCANGAN APLIKASI SISTEM INFORMASI PELAYANAN KESEHATAN STUDI K...
ANALISA DAN PERANCANGAN APLIKASI SISTEM INFORMASI PELAYANAN KESEHATAN STUDI K...PT XL Planet (www.elevenia.co.id)
 
Pertemuan 1.pptx
Pertemuan 1.pptxPertemuan 1.pptx
Pertemuan 1.pptxDonaMarina
 
Modul 01 : Pengantar Pemodelan Sistem
Modul 01 : Pengantar Pemodelan SistemModul 01 : Pengantar Pemodelan Sistem
Modul 01 : Pengantar Pemodelan SistemArif Rahman
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
 
Model Simulasi MONTE CARLO (DISTRIBUSI)
Model Simulasi MONTE CARLO (DISTRIBUSI)Model Simulasi MONTE CARLO (DISTRIBUSI)
Model Simulasi MONTE CARLO (DISTRIBUSI)Endang Retnoningsih
 
Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan Topan Helmi Nicholas
 
KD3 Teknik Normalisasi Data
KD3 Teknik Normalisasi DataKD3 Teknik Normalisasi Data
KD3 Teknik Normalisasi DataDesty Yani
 

What's hot (20)

Klasifikasi Data dan Tipe/Skala Pengukuran Data
Klasifikasi Data dan Tipe/Skala Pengukuran DataKlasifikasi Data dan Tipe/Skala Pengukuran Data
Klasifikasi Data dan Tipe/Skala Pengukuran Data
 
4. tahapan penelitian
4. tahapan penelitian4. tahapan penelitian
4. tahapan penelitian
 
Pengantar statistika slide 3
Pengantar statistika slide 3Pengantar statistika slide 3
Pengantar statistika slide 3
 
Analisis Sistem Informasi Penjualan Alfamart
Analisis Sistem Informasi Penjualan Alfamart Analisis Sistem Informasi Penjualan Alfamart
Analisis Sistem Informasi Penjualan Alfamart
 
PKM KC Mevici Dianresti
PKM KC Mevici Dianresti PKM KC Mevici Dianresti
PKM KC Mevici Dianresti
 
Mi+ +bab+3+metode+transportasi
Mi+ +bab+3+metode+transportasiMi+ +bab+3+metode+transportasi
Mi+ +bab+3+metode+transportasi
 
Metode proses pengembangan perangkat lunak
Metode proses pengembangan perangkat lunakMetode proses pengembangan perangkat lunak
Metode proses pengembangan perangkat lunak
 
Data Management (Enhanced ERD and Mapping ERD)
Data Management (Enhanced ERD and Mapping ERD)Data Management (Enhanced ERD and Mapping ERD)
Data Management (Enhanced ERD and Mapping ERD)
 
Modul teknik digital dan logika
Modul teknik digital dan logikaModul teknik digital dan logika
Modul teknik digital dan logika
 
Program queue dengan single linked list
Program queue dengan single linked listProgram queue dengan single linked list
Program queue dengan single linked list
 
Notasi algoritmik & programming style
Notasi algoritmik & programming styleNotasi algoritmik & programming style
Notasi algoritmik & programming style
 
ANALISA DAN PERANCANGAN APLIKASI SISTEM INFORMASI PELAYANAN KESEHATAN STUDI K...
ANALISA DAN PERANCANGAN APLIKASI SISTEM INFORMASI PELAYANAN KESEHATAN STUDI K...ANALISA DAN PERANCANGAN APLIKASI SISTEM INFORMASI PELAYANAN KESEHATAN STUDI K...
ANALISA DAN PERANCANGAN APLIKASI SISTEM INFORMASI PELAYANAN KESEHATAN STUDI K...
 
Sistem basis data 4
Sistem basis data 4Sistem basis data 4
Sistem basis data 4
 
Pertemuan 1.pptx
Pertemuan 1.pptxPertemuan 1.pptx
Pertemuan 1.pptx
 
Modul 01 : Pengantar Pemodelan Sistem
Modul 01 : Pengantar Pemodelan SistemModul 01 : Pengantar Pemodelan Sistem
Modul 01 : Pengantar Pemodelan Sistem
 
Ppt PROPOSAL PENELITIAN
Ppt PROPOSAL PENELITIANPpt PROPOSAL PENELITIAN
Ppt PROPOSAL PENELITIAN
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
 
Model Simulasi MONTE CARLO (DISTRIBUSI)
Model Simulasi MONTE CARLO (DISTRIBUSI)Model Simulasi MONTE CARLO (DISTRIBUSI)
Model Simulasi MONTE CARLO (DISTRIBUSI)
 
Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan
 
KD3 Teknik Normalisasi Data
KD3 Teknik Normalisasi DataKD3 Teknik Normalisasi Data
KD3 Teknik Normalisasi Data
 

Similar to Materi matakuliah bahasa c

Pengantar Pemrograman Chapter 2
Pengantar Pemrograman Chapter 2Pengantar Pemrograman Chapter 2
Pengantar Pemrograman Chapter 2Dede Kurniadi
 
Modul praktikum dasar algoritma dan pemograman
Modul praktikum dasar algoritma dan pemogramanModul praktikum dasar algoritma dan pemograman
Modul praktikum dasar algoritma dan pemogramanCatur Suranto S.T
 
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdfDasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdfRizaJr
 
Modul algoritma dan pemograman
Modul algoritma dan pemogramanModul algoritma dan pemograman
Modul algoritma dan pemogramanPANJI_ADITYAN
 
Tugas praktikum algoritma modul 1 faisal al zamar
Tugas praktikum algoritma modul 1 faisal al zamarTugas praktikum algoritma modul 1 faisal al zamar
Tugas praktikum algoritma modul 1 faisal al zamarFaisal Zamar
 
Slide-INF202-INF202-Slide-01.pdf
Slide-INF202-INF202-Slide-01.pdfSlide-INF202-INF202-Slide-01.pdf
Slide-INF202-INF202-Slide-01.pdfGratechComputer
 
Bahasa Pemrograman dan Script
Bahasa Pemrograman dan ScriptBahasa Pemrograman dan Script
Bahasa Pemrograman dan ScriptS N M P Simamora
 
Intruksi Fundamental
Intruksi FundamentalIntruksi Fundamental
Intruksi FundamentalAkmal Fajar
 
Modul algoritma satu sampai lima
Modul algoritma satu sampai limaModul algoritma satu sampai lima
Modul algoritma satu sampai limaAhmad S
 
Bahasa Pemrograman C++
Bahasa Pemrograman C++Bahasa Pemrograman C++
Bahasa Pemrograman C++Rangga Ananto
 

Similar to Materi matakuliah bahasa c (20)

Download gratis modul c++
Download gratis modul c++Download gratis modul c++
Download gratis modul c++
 
Pengantar Pemrograman Chapter 2
Pengantar Pemrograman Chapter 2Pengantar Pemrograman Chapter 2
Pengantar Pemrograman Chapter 2
 
Modul c++
Modul c++Modul c++
Modul c++
 
Modul praktikum dasar algoritma dan pemograman
Modul praktikum dasar algoritma dan pemogramanModul praktikum dasar algoritma dan pemograman
Modul praktikum dasar algoritma dan pemograman
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdfDasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
 
Bahasa Pemprograman c
Bahasa Pemprograman cBahasa Pemprograman c
Bahasa Pemprograman c
 
Modul algoritma dan pemograman
Modul algoritma dan pemogramanModul algoritma dan pemograman
Modul algoritma dan pemograman
 
Modul algoritma dan pemograman
Modul algoritma dan pemogramanModul algoritma dan pemograman
Modul algoritma dan pemograman
 
Tugas praktikum algoritma modul 1 faisal al zamar
Tugas praktikum algoritma modul 1 faisal al zamarTugas praktikum algoritma modul 1 faisal al zamar
Tugas praktikum algoritma modul 1 faisal al zamar
 
Slide-INF202-INF202-Slide-01.pdf
Slide-INF202-INF202-Slide-01.pdfSlide-INF202-INF202-Slide-01.pdf
Slide-INF202-INF202-Slide-01.pdf
 
Bahasa Pemrograman dan Script
Bahasa Pemrograman dan ScriptBahasa Pemrograman dan Script
Bahasa Pemrograman dan Script
 
C++ lengkap
C++ lengkap C++ lengkap
C++ lengkap
 
Pertemuan I Teori
Pertemuan I TeoriPertemuan I Teori
Pertemuan I Teori
 
Intruksi Fundamental
Intruksi FundamentalIntruksi Fundamental
Intruksi Fundamental
 
Pengenalan c++
Pengenalan c++Pengenalan c++
Pengenalan c++
 
Modul algoritma satu sampai lima
Modul algoritma satu sampai limaModul algoritma satu sampai lima
Modul algoritma satu sampai lima
 
Tugas alogaritma
Tugas alogaritmaTugas alogaritma
Tugas alogaritma
 
C++
C++C++
C++
 
Bahasa Pemrograman C++
Bahasa Pemrograman C++Bahasa Pemrograman C++
Bahasa Pemrograman C++
 

More from Izhan Nassuha

Pendaftaran perawat (careworker) ke jepang
Pendaftaran perawat (careworker) ke jepangPendaftaran perawat (careworker) ke jepang
Pendaftaran perawat (careworker) ke jepangIzhan Nassuha
 
Buku panduan-seminar-nasional-terbaru
Buku panduan-seminar-nasional-terbaruBuku panduan-seminar-nasional-terbaru
Buku panduan-seminar-nasional-terbaruIzhan Nassuha
 
matakuliah Teknik dasar dan pengenalan fotografi
matakuliah Teknik dasar dan pengenalan fotografimatakuliah Teknik dasar dan pengenalan fotografi
matakuliah Teknik dasar dan pengenalan fotografiIzhan Nassuha
 
rundown-acara-pernikahan
rundown-acara-pernikahanrundown-acara-pernikahan
rundown-acara-pernikahanIzhan Nassuha
 
Lirik dan makna lagu lir ilir dan gundul-gundul pacul
Lirik dan makna lagu lir ilir dan gundul-gundul paculLirik dan makna lagu lir ilir dan gundul-gundul pacul
Lirik dan makna lagu lir ilir dan gundul-gundul paculIzhan Nassuha
 
Bab1 mata kuliah metode numerik
Bab1 mata kuliah metode numerik Bab1 mata kuliah metode numerik
Bab1 mata kuliah metode numerik Izhan Nassuha
 
Jurnal tugas akhir (skirpsi) poltekpos teknik informatika
Jurnal tugas akhir (skirpsi) poltekpos teknik informatikaJurnal tugas akhir (skirpsi) poltekpos teknik informatika
Jurnal tugas akhir (skirpsi) poltekpos teknik informatikaIzhan Nassuha
 
Materi mata kuliah teknik Simulasi antrian
Materi mata kuliah teknik Simulasi antrianMateri mata kuliah teknik Simulasi antrian
Materi mata kuliah teknik Simulasi antrianIzhan Nassuha
 
Buku panduan cara menggelar acara resepsi pernikahan
Buku panduan cara menggelar acara resepsi pernikahanBuku panduan cara menggelar acara resepsi pernikahan
Buku panduan cara menggelar acara resepsi pernikahanIzhan Nassuha
 
Model perencanaan kawasan agroforestry bambu
Model perencanaan kawasan agroforestry bambuModel perencanaan kawasan agroforestry bambu
Model perencanaan kawasan agroforestry bambuIzhan Nassuha
 
Buku pedoman magang jepang
Buku pedoman magang jepangBuku pedoman magang jepang
Buku pedoman magang jepangIzhan Nassuha
 
Contoh cv magang jepang
Contoh cv magang jepangContoh cv magang jepang
Contoh cv magang jepangIzhan Nassuha
 
Praktikum fungsi dasar bahasa c
Praktikum fungsi dasar bahasa cPraktikum fungsi dasar bahasa c
Praktikum fungsi dasar bahasa cIzhan Nassuha
 
Kisi kisi uas sistem informasi manajemen (sim)
Kisi kisi uas sistem informasi manajemen (sim) Kisi kisi uas sistem informasi manajemen (sim)
Kisi kisi uas sistem informasi manajemen (sim) Izhan Nassuha
 
Ebook learning for life (Cerita inspiratif pembangun motivasi hidup)
Ebook learning for life (Cerita inspiratif pembangun motivasi hidup)Ebook learning for life (Cerita inspiratif pembangun motivasi hidup)
Ebook learning for life (Cerita inspiratif pembangun motivasi hidup)Izhan Nassuha
 
metode numerik kurva fitting dan regresi
metode numerik kurva fitting dan regresimetode numerik kurva fitting dan regresi
metode numerik kurva fitting dan regresiIzhan Nassuha
 
Metode Numerik Bab 2 Sistem bilangan dan kesalahan
Metode Numerik Bab 2 Sistem bilangan dan kesalahanMetode Numerik Bab 2 Sistem bilangan dan kesalahan
Metode Numerik Bab 2 Sistem bilangan dan kesalahanIzhan Nassuha
 
Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linierIzhan Nassuha
 
Ebook kumpulan cerita motivasi
Ebook kumpulan cerita motivasi Ebook kumpulan cerita motivasi
Ebook kumpulan cerita motivasi Izhan Nassuha
 

More from Izhan Nassuha (20)

Pendaftaran perawat (careworker) ke jepang
Pendaftaran perawat (careworker) ke jepangPendaftaran perawat (careworker) ke jepang
Pendaftaran perawat (careworker) ke jepang
 
Buku panduan-seminar-nasional-terbaru
Buku panduan-seminar-nasional-terbaruBuku panduan-seminar-nasional-terbaru
Buku panduan-seminar-nasional-terbaru
 
matakuliah Teknik dasar dan pengenalan fotografi
matakuliah Teknik dasar dan pengenalan fotografimatakuliah Teknik dasar dan pengenalan fotografi
matakuliah Teknik dasar dan pengenalan fotografi
 
rundown-acara-pernikahan
rundown-acara-pernikahanrundown-acara-pernikahan
rundown-acara-pernikahan
 
Lirik dan makna lagu lir ilir dan gundul-gundul pacul
Lirik dan makna lagu lir ilir dan gundul-gundul paculLirik dan makna lagu lir ilir dan gundul-gundul pacul
Lirik dan makna lagu lir ilir dan gundul-gundul pacul
 
Bab1 mata kuliah metode numerik
Bab1 mata kuliah metode numerik Bab1 mata kuliah metode numerik
Bab1 mata kuliah metode numerik
 
Jurnal tugas akhir (skirpsi) poltekpos teknik informatika
Jurnal tugas akhir (skirpsi) poltekpos teknik informatikaJurnal tugas akhir (skirpsi) poltekpos teknik informatika
Jurnal tugas akhir (skirpsi) poltekpos teknik informatika
 
Materi mata kuliah teknik Simulasi antrian
Materi mata kuliah teknik Simulasi antrianMateri mata kuliah teknik Simulasi antrian
Materi mata kuliah teknik Simulasi antrian
 
Buku panduan cara menggelar acara resepsi pernikahan
Buku panduan cara menggelar acara resepsi pernikahanBuku panduan cara menggelar acara resepsi pernikahan
Buku panduan cara menggelar acara resepsi pernikahan
 
Model perencanaan kawasan agroforestry bambu
Model perencanaan kawasan agroforestry bambuModel perencanaan kawasan agroforestry bambu
Model perencanaan kawasan agroforestry bambu
 
Desain web
Desain webDesain web
Desain web
 
Buku pedoman magang jepang
Buku pedoman magang jepangBuku pedoman magang jepang
Buku pedoman magang jepang
 
Contoh cv magang jepang
Contoh cv magang jepangContoh cv magang jepang
Contoh cv magang jepang
 
Praktikum fungsi dasar bahasa c
Praktikum fungsi dasar bahasa cPraktikum fungsi dasar bahasa c
Praktikum fungsi dasar bahasa c
 
Kisi kisi uas sistem informasi manajemen (sim)
Kisi kisi uas sistem informasi manajemen (sim) Kisi kisi uas sistem informasi manajemen (sim)
Kisi kisi uas sistem informasi manajemen (sim)
 
Ebook learning for life (Cerita inspiratif pembangun motivasi hidup)
Ebook learning for life (Cerita inspiratif pembangun motivasi hidup)Ebook learning for life (Cerita inspiratif pembangun motivasi hidup)
Ebook learning for life (Cerita inspiratif pembangun motivasi hidup)
 
metode numerik kurva fitting dan regresi
metode numerik kurva fitting dan regresimetode numerik kurva fitting dan regresi
metode numerik kurva fitting dan regresi
 
Metode Numerik Bab 2 Sistem bilangan dan kesalahan
Metode Numerik Bab 2 Sistem bilangan dan kesalahanMetode Numerik Bab 2 Sistem bilangan dan kesalahan
Metode Numerik Bab 2 Sistem bilangan dan kesalahan
 
Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
 
Ebook kumpulan cerita motivasi
Ebook kumpulan cerita motivasi Ebook kumpulan cerita motivasi
Ebook kumpulan cerita motivasi
 

Recently uploaded

Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDNurainiNuraini25
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxssuser50800a
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...Kanaidi ken
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfbibizaenab
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSovyOktavianti
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxsukmakarim1998
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...Kanaidi ken
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxTugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxmawan5982
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxRizkyPratiwi19
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfDimanWr1
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatLatihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatArfiGraphy
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 

Recently uploaded (20)

Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxTugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatLatihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 

Materi matakuliah bahasa c

  • 1. BAHASA C/C++ Oleh : Dra. Wahyuni Z Imran , Msc Modul Mata kuliah Selengkapnya bisa di download gratis di website >> http://www.dagangku.com
  • 2. Tujuan Instruksional: Tujuan Instruksional Umum :Setelah mengikuti praktikum ini peserta dapat menbuat program dengan bahasa C++ dan mengkompilasi dengan menggunakan gcc yang ada dilinux Khusus :Setelah mengikuti praktikum ini: 1. 2. 3. 4. 5. Peserta menegerti tentang konsep pemrograman di C++ Peserta mengerti dan memahaimi perintah-perintah di C++ Peserta mengerti seleksi kondisi di C++ Peserta mengerti tentang struktur data di linux Peserta dapat membuat programC++ sederhana
  • 3. PENDAHULUAN Pelatihan Bahasa C bertujuan untuk memberikan pengetahuan kepada peserta tentang konsep dasar C yang diperlukan untuk membuat suatu program C. Diharapkan dengan diketahuinya konsep-konsep dasar pemrograman C, peserta dapat menyelesaikan suatu permasalahan dengan cara membuat program sendiri. Konsep pemrograman meliputi konsep tipe bilangan, konsep pengulangan, konsep pencabangan dan lain-lainnya. Semua akan dibahas pada bab-bab khusus. Untuk dapat membuat program sendiri, pertama-tama tentulah masalah yang akan dibuat programnya harus diketahui dan dipahami betul. Identifikasikan masukan dari masalah tersebut, apakah berupa bilangan bulat, atau bilangan desimal, atau suatu karakter.Setelah diketahui masukannya, lalu identifikasi lagi proses yang akan dibuat dengan masukan tadi. Jika proses juga telah djabarkan, perlu diuraikan keluaran yang akan dihasilkan oleh proses tadi. Lebih mudah lagi dapat dijabarkan melalui diagram di bawah ini: Masukan Proses Keluaran A C=A+B C B Gambar 1. Kemudian langkah-langkah penyelesaian masalah tersebut dapat diuraikan lebih rinci lagi menggunakan barisan-barisan tulisan yang menjabarkan langkah tadi dengan kata-kata. Deretan langkah-langkah tersebut dalam ilmu informatika disebut Algoritma. Algoritma dapat diuraikan dengan bahasa apa saja. Jika orang yang membuat algoritma ini berbahasa indonesia, maka algoritma dapat dituliskan dalam bahasa indonesia. Biasanya seorang pembuat program atau lebih dikenal dengan istilah programmer akan menulis algoritmanya dengan standart baku. Perubahan itu bertujuan agar semua orang, baik orang berbahasa indonesia, maupun orang berbahasa lain bisa mengerti langkah-langkah yang akan dilakukan. maka algoritma tersebut dirubah kedalam deretan langkah-langkah yang dituliskan dengan istilah-istilah yang telah baku di dalam ilmu informatika, sehingga terbentuklah pseudocode. Istilah ini tentunya menggunakan kosa kata bahasa inggris. Implementasi Pseudocode atau algoritma ke dalam bahasa pemrograman tertentu akan menjadi suatu program. Jika implentasi tersebut menggunakan bahasa C maka hasil yang terbentuk adalah program C. Lain lagi jika implementasi menggunakan bahasa Basic maka hasilnya berupa program Basic.
  • 4. Bagaimana membedakan program C dengan program Basic dari nama filenya? Jawabannya adalah dengan melihat bagian ekstensi suatu file, jika program c maka file yang dibuat diberi nama xxxx.C. Sedangkan untuk program Basic, file yang dibuat diberi nama xxxx.BAS Singkatnya, langkah-langkah pembuatan program tadi dapat diuraikan sebagai berikut: -Masalah -Algoritma -Pseudo Code -Program Contoh: Seseorang ingin menghitung suatu penjumlahan dari dua bilangan A dan B dan hasil penjumlahannya akan disimpan dalam satu bilangan diberi nama C. Jenis bilangannya adalah bilangan bulat. Nilai dari A dan B telah ditentukan sebelumnya, yaitu A=5 dan B=10. Sebelum nilai-nilai tersebut ditampilkan, akan ditulis ” Hallo, Selamat Datang!”. Baru setelah itu, akan ditampilkan nilai A, nilai B dan nilai C. Ilustrasi proses pembuatan programnya dapat dilihat pada gambar 2 di bawah ini.
  • 5. Algoritma ------ Kode Semu Deklarasikan variabel A adalah bilangan Bulat Deklarasikan variabel B adalah bilangan Bulat Deklarasikan variabel C adalah bilangan Bulat Cetak “Hallo, Selamat Datang !” Beri nilai A sama dengan 5 Beri nilai B sama dengan 10 Jumlahkan A dan B, simpan di C Cetak A, ganti baris Cetak B, ganti baris Cetak C, ganti baris - Set A integer and equal 5 Set B integer and equal 10 Set C integer Print “Hallo, Selamat Datang !” Calculat C equal A plusB Print A Print B Print C Gambar 2. Langkah pembuatan program MONITOR : Layar Tampilan Program C: int main() { int A=5; int B=10; int C; printf(“Hallo Selamat Datang!n”); C=A+B; printf(“ %d n”,A);printf(“ %d n”,B); printf(“ %d n”,C); getch(); return 0; Hallo Selamat Datang! 5 10 15 } Program C: }
  • 6. // Program C /* Program #1 */ #include <stdio.h> #include <conio.h> int main() { int A, B, C; clrscr(); printf(“Hallo Selamat Datang!n”); A= 5; B=10; C=A+B; printf(“ %d n”,A); printf(“ %d n”,B); printf(“ %d n”,C); getch(); return 0; }
  • 7. BAB I KONSEP DASAR C Bab ini memperkenalkan beberapa perjanjian cara pemberian nama dan cara deklarasi tipe data primitif seperti bilangan bulat, bilangan desimal dan karakter yang diperbolehkan dalam bahasa C. 1.1 IDENTIFIERS Identifier adalah bentuk paling sederhana dalam Program C, terdiri dari barisan huruf(„A‟….‟Z‟, „a‟…‟z‟,‟_‟) dan bilangan („0‟…‟9‟). Sebuah Identifier harus dimulai dari sebuah huruf. Dalam bahasa C, huruf besar berbeda dengan huruf kecil. Hal ini disebut dengan istilah case sensitive Contoh:  Cara penulisan yang benar : angka, Angka , ANGKA, n1, jumlah_angka, PajakPenjualan  Cara penulisan yang salah: 2angka, sepuluh%, Jumlah-Total Salah satu cara penulisan program yang baik, dilihat dari pemberian nama Identifier yang diskriptif. Dengan kata lain, dari membaca nama identifier saja sudah diketahui maksudnya. Aturan ini juga berlaku dalam pemberian nama identifier yang terdiri lebih dari satu kata. Karena dalamm bahasa C, huruf besar dan kecil diartikan sesuatu yang berbeda, maka identifier yang terdiri lebih dari satu kata dapat dituliskan dengan dimulai huruf besar untuk huruf pertama setiap katanya.  Contoh: Cara penulisan yang berbeda: pajak_penjualan, nama_depan, PajakPenjualan, NamaDepan 1.2 KEYWORDS/RESERVED WORDS Ada kumpulan nama Identifier yang disebut keywords atau reserved words, yang digunakan untuk membentuk bahasa C itu sendiri. Nama-nama ini dituliskan dengan huruf kecil. asm auto continue default float for new operator short signed try typedef
  • 8. 1.3 TIPE DATA PRIMITIF Tipe data primitif ini dibagi menjadi 3 kategori; Bilangan bulat : int, short, long Bilangan desimal ; float, double Karakter: char Penggabungan Tipe data dengan penulisan identifier dalam sebuah program menyatakan suatu pendeklarasian variable tertentu.  tipe var; contoh : int angka; float x;  tipe var1,var2,var3; contoh : int a, b, c; char s, t; //variabel tunggal //variabel majemuk 1.3.1 Tipe Bilangan Bulat Tipe untuk bilangan bulat : int, short int, long int Kesanggupan masing-masing tipe ditentukan oleh jenis Hardware.  short int jangkauan nilai yang dapat diberikan pada variabel dengan tipe ini berkisar antara –32768 sampai dengan 32767. Jika jangkauan nilai yang diinginkan berkisar antara 0 sampai dengan 65535 maka tambahkan kata unsigned sebelum int.  long int jangkauan nilai ini lebih besar yaitu antara –231 sampai dengan 231-1 Cara pendeklarasiannya: int ANGKA = 50; short mulai = 1; unsigned int PotonganHarga=60000; long L1,L2,L3,L4=1000; 1.3.2 Tipe Karakter Karakter disimpan sebagai data numerik. Biasanya yang digunakan adalah standard ASCII. Cara penulisan konstanta karakter ditulis dengan tambahan tanda petik tunggal. Cara mendeklarasikannya : char ch=‟T‟; // pendeklarasian satu karakter dengan inisialisasi Deretan karakter akan membentuk suatu string. Penulisannya diapit tanda petik dua (“Sejahtera”).
  • 9. Cara mendeklarasikannya : char s[10]=”Sejahtera” ; //pendeklarasian string ( deretan karakter) // dengan inisialisasi Escape (Control) Codes Kode kontrol terletak pada jangkauan 0 sampai 31 dan menyatakan informasi kontrol terminal atau informasi. Macam-macam kode kontrol dapat dilihat pada table berikut. Nama Kode C Deskripsi Newline „n‟ Karakter ganti baris. Sebagai tanda ganti baris baru pada file teks atau file ASCII Return „r‟ Akhir dari suatu input dari keyboard Horizontal tab „t‟ Pindah ke daerah tab berikutnya Backspace „b‟ Geser cursor ke kiri satu karakter. Biasanya system menghapus karakter sebelumnya. 1.3.3 Tipe bilangan desimal Tipe untuk bilangan desimal : float, double, long double  float Jangkauan nilai yang dapat diberikan pada variabel tipe ini berkisar antara 3.4E-38 sampat dengan 3.4E+38
  • 10.  double dan long double Jangkauan nilai yang dapat diberikan pada variabel tipe ini berkisar antara 1.7E-308 sampat dengan 1.7E+308 Contoh: Cara pendeklarasiannya: float x= 0.21, z= 10e4; double Avogadro = 6.02e23; 1.3.4 Nama konstanta Dalam membuat program, seringkali diperlukan penulisan suatu konstanta, misalkan nilai  Nilai konstanta tidak akan berubah dalam suatu program. . Cara pendeklarasianya:  const double PI = 3.141592653589793 1.4 STANDARD INPUT OUTPUT Agar program menjadi iteraktif, kadang diperlukan input dari user. Ini dapat dilakukan dengan perintah scanf() atau gets(). Sedangkan untuk menampilkan data di layar monitor dapat dilakukan dengan perintah printf(). Fungsi-fungsi ini didefinisikan pada file stdio.h. Dalam penggunaan fungsi-fungsi di atas kadang diperlukan string kontrol yang gunanya untuk memformat kode. Macam-macam string kontrol Kode format %d %f %c %s kegunaannya Tampilkan bilangan bulat Tampilkan bilangan desimal Tampilkan sebuah karakter Tampilkan sebuah string 1.4.1 Fungsi scanf() Salah satu kegunaan scanf() adalah untuk mendapatkan input yang dimasukkan user melalui keyboard. Bentuk dasarnya yaitu: scanf(“string kontrol”, deretan argument) ; String kontrol dapat berisi salah satu dari kode format atau gabungan dari beberapa kode format, tergantung dari banyaknya deretan argument yang ada. Banyaknya kode format harus sama dengan banyaknya argument. Pada deretan argument, tanda & harus ada di setiap awal sebuah variabel yang akan menampung nilai yang diberikan melalui keyboard.
  • 11. Contoh:  scanf(“%d”,&bilangan);  scanf(“%f %f “, &potongan, &jumlah); 1.4.2 Fungsi gets() Fungsi gets() akan memiliki argument berupa nama variabel yang bertipe string dan membaca deretan karakter dari keyboard sampai user menekan tombol ENTER.. ENTER tidak disimpan melainkan tanda akhir NULL („0‟). Contoh:  gets(str); // char str[10] 1.4.3 Fungsi printf() Fungsi printf() akan menampilkan output pada monitor. Bentuk dasarnya yaitu: printf(“string kontrol “, deretan argument); contoh:  printf( “%s %d”,”Ini adalah sebuah string”, 200);  printf( “Ini adalah sebuah string %d “,200); 1.5 CONTOH PROGRAM C SEDERHANA Dalam menulis program, sebaiknya diawali dengan pemberian penjelasan tentang tujuan. Hal ini dapat diletakkan dalam bentuk komentar. Pernyataan berupa komentar ditandai dengan tanda (/*…….*/).
  • 12. /* Penjelasan tentang tujuan program, nama pembuat, tanggal pembuatan program dsb */ #include <stdio.h> #include <conio.h> /*Turbo C preprocessor */ int main() { /* deklarasi variabel yang digunakan */ int bilangan_bulat1, bilangan_bulat2 ; float bilangan_desimal1, bilangan_desimal2; /*input dari keyboard */ printf(“Masukkan input dari keyboard”); scanf(“%d”, &bilangan_bulat1); ……… /*proses*/ /*output ke monitor */ printf(“ Nilai bilangan_bulat1 = %d n“, bilangan_bulat1); getch(); return 0; /*untuk menampilkan screen output */ /*nilai balik fungsi main() */ } Latihan Bab 1 1. Apakah penulisan nama variabel di bawah ini benar menurut aturan bahasa C. Jika salah, perbaiki. a. McDonald b. O‟Brien c. 4_Score d. Is_Largest_int e. _mainprog f. A1B2C3 g. Giants h. 7th_inning 2. Tuliskan deklarasi C untuk variabel dan tipe data: a. Sebuah bilangan bulat N dengan nilai awal 5 b. Sebuah bilangan bulat 16-bit M dengan nilai awal 5
  • 13. c. Sebuah bilangan bulat 32-bit L dengan nilai awal 600055 d. Sebuah karakter C dengan nilai awal „A‟ e. Dua bilangan bulat P dan Q . Nilai P tidak diinisialisasi sedangkan nilai Q bernilai awal 455 3. Berikan nilai desimal ASCII yang mewakili karakter a. „V‟ b. „6‟ c. „!‟ d. „~‟ e. „t‟ f. Tab g. BackSpace h. Carriage Return 4. Tentukan bentuk String yang memiliki deretan kode ASCII a. 66 121 116 101 b. 49 50 51 32 71 111 33 Latihan Pemahaman Program : Coba jabarkan langkah-langkah dalam program ini dan bagaimana hasil keluarannya. /* Program contoh penggunaan int dan unsigned int */ #include <stdio.h> #include <conio.h> /*Turbo C preprocessor */ int main() { /* deklarasi variabel yang digunakan */ int i; unsigned int j; clrscr() ; // bersihkan layar /*proses*/ j=60000; i=j; /*output ke monitor */ printf(“%d %u n“, i,j); getch(); /*untuk menampilkan screen output */ return 0; /*nilai balik fungsi main() */ }
  • 14. /* Program penggunaan scanf */ #include <stdio.h> #include <conio.h> int main() { char nm[10]; int umur; printf(„Siapa nama Anda : ”); scanf(“%s”, nm); /*nama disimpan dalam variabel nm */ printf(“Berapa umur Anda”); scanf(“%d”, &umur); /*nilai disimpan dalam variabel umur*/ printf(“Umur saya %d tahun n”,umur); getch(); return 0; } /*Program#5 : Penulisan variabel char dan string */ int main() { char ch; char str[80]; /*deklarasi variabel bertipe karakter*/ /*deklarasi variabel bertipe string */ printf(“Ketikkan sembarang tomboln”); ch=getche(); /*baca satu karakter dari keyboard*/ printf(“Karakter yang diketik adalah %cn”,ch); printf(“Masukkan nama Anda dan akhiri dengan 0 : ”); gets(str); printf(“Hallo %sn”, str); getch(); return 0; }
  • 15. BAB II OPERATOR 2.1 Operator Aritmatika Program komputer melakukan perhitungan dengan cara mengkombinasikan bilangan numeric dengan operator. Negasi (-) merupakan operator unary karena terdiri dari satu nilai numerik dan akan merubah tanda nilai tersebut. Sedangkan (+),(-),(*) dan (/) adalah operator binary karena memerlukan dua operand.  Misalkan dideklarasikan int M=6,N=8; double X=2.3, Y=6.7; (-M-N+2)*4 = (-14+2)*4 = -48 -X*Y = -15.41 Pada operator (/) terdapat perbedaan untuk tipe bilangan bulat dan bilangan desimal.  Pembagian bilangan bulat 17 / 5 = 3 (hasil pembagian/quotient) 17 % 5 = 2 (sisa hasil pembagian/remainder) 6.0 % 4 (tidak boleh)  Pembagian bilangan desimal 17.0 / 5 = 3.4 4.7 / 2 = 2.35 4.0 / 3 = 1.333333 2.2 Operator Assignment Operator ini berguna untuk memindahkan nilai variabel.  Int I = 3, SIZE = 40, K; K = I + SIZE; SIZE = 50;  K = I = 5; /*deklarasi
  • 16. 2.3 Operator Compound Assignment Assignment dan operator aritmatik dapat digabungkan menggunakan operator compound Assingment . Variabel op= ekpresi -> dihitung sebagai -> variabel = variabel op ekspresi  Misal X = 14 dan Y = 3 Compound Assignment X += 5; Y += X-2 Y *= 2 Simple Assignment X=X+5 Y = Y + (X-2) Y=Y*2 result X bernilai 19 Y bernilai 15 Y bernilai 6 2.4 Operator Increment dan Decrement Format prefix :  ++X X = 5; Y = ++X * 10; Format postfix: ( increment ) -- X (decrement ) /* operasi ++ dilakukan dulu, jadi X bernilai 6 /* kemudian lakukan perkalian 6 * 10 X++ (increment) X-- (decrement)  X = 5; Y = X-- * 10; /* operasi X * 10 dilakukan terlebih dahulu /* jadi nilai Y = 50. Kemudian nilai X dikurang satu. /* Sekarang X bernilai 4 2.5 Operator Bitwise Operator ini beroperasi pada setiap bit dalam proses penyimpanan.  AND (&) : a = a&b setiap bit dari b diANDkan dengan padanan bit dari a, hasilnya disimpan di variabel a.  OR (|) a=a|b setiap bit dari b diORkan dengan bit padanannya dari a, hasilnya disimpan di variabel a  XOR (^) a=a^b
  • 17. setiap bit dari b diXORkan dengan bit padanan dari a, hasilnya disimpan di variabel a  NOT (-) a=-a setiap bit di a dirubah (dari 1 menjadi 0 dan kebalikannya)  Geser Kiri (<<) a=a<<4 geser bit sebanyak 4 bit ke kiri, bergulung.  Geser Kanan (>>) a=a>>4 geser bit sebanyak 4 bit ke kanan, bergulung. 2.6 Operator Relational Operator ini berguna untuk membandingkan antara dua variabel, hasilnya berupa boolean (benar=1/salah=0).       Sama dengan (==) Tidak sama dengan (!=) Lebih besar dari (>) Lebih besar/sama dengan (>=) Lebih kecil dari (<) Lebih kecil/sama dengan (<=) 2.7 Operator Logical  AND (&&)  OR (||)  NOT (!) Contoh 2.1 /* Program merubah data tinggi seseorang dalam satuan feet, inch dan dirubah ke dalam satuan m, cm*/ #include <stdio.h> #include <conio.h> /*Turbo C preprocessor */ int main() { /* deklarasi variabel yang digunakan */ const float inch_ke_cm = 2.54; int totalInchi, feet,inch ; float m, cm;
  • 18. /*input dari keyboard */ printf(“Masukkan ukuran tinggi Anda dalam satuan inchi”); scanf(“%d”, &totalInchi); /*proses*/ feet = totalInchi/12; inch = totalInchi%12; cm = inch_ke_cm * totalInchi; //konversi ke float m = cm/100; /*output ke monitor */ printf(“ Ukuran tinggi Anda = %d feet dan %d inchi “, feet,inch); printf(“ Ukuran tinggi Anda dalam satuan cm = %f n“, cm); printf(“ Ukuran tinggi Anda dalam satuan m = %f n“, m); getch(); return 0; /*untuk menampilkan screen output */ /*nilai balik fungsi main() */ } Jika program ini dijalankan: Masukkan ukuran tinggi Anda dalam satuan inchi 67 Ukuran tinggi Anda = 5 feet dan 7 inchi Ukuran tinggi Anda dalam satuan cm = 170.18 Ukuran tinggi Anda dalam satuan m = 1.7018
  • 19. BAB III KONSEP PENGULANGAN 3.1 PENGULANGAN FOR (FOR_LOOP) Dalam pembuatan program, seringkali kita dihadapkan oleh masalah pengulangan. Proses yang berulang-ulang sebanyak n kali dalam bahasa C dapat dinyatakan dengan pernyataan for. Penulisan for dengan satu perintah tidak perlu menggunakan  for (inisialisasi; syarat pengulangan; perubah nilai cacah) pernyataan/perintah; Contoh 3.1 : #include <stdio.h> #include <conio.h> int main() { int i; for(i=0; i<=5; i++) printf("Langkah ke %d n", i); getch(); return 0; } Penulisan for dengan jumlah perintah lebih dari satu menggunakan tanda {}.  for (inisialisasi;syarat pengulangan;perubah nilai cacah) { pernyataan/perintah; pernyataan/perintah; pernyataan/perintah; } Contoh 3.2: #include <stdio.h> #include <conio.h> int main() { int i; int masukan; for(i=0; i<=5; i++) { printf("Masukkan bilangan Ke- %d ",i); scanf("%d",&masukan); printf("Masukkan Ke- %d adalah %d n",i,masukan); } getch(); return 0; }
  • 20. Inisialisasi bisa terdiri lebih dari satu variabel.  for(inisialisasi1, inisialisasi2;syarat pengulangan; perubah nilai cacah) Contoh 3.3: #include <stdio.h> #include <conio.h> int main() { int i; int k; for(i=0, k=2; i<=5; i++) { k=k+i; printf("Nilai k = %d n", k); } getch(); return 0; } Untuk pengulangan tak berhingga  for( ; ; ) Contoh 3.4: #include <stdio.h> #include <conio.h> int main() { for( ; ; ) { char ch; printf("ntSelamat Datangnn"); printf("Jika ada mau keluar tekan 'Y' atau 'y' "); ch=getche(); if(ch=='Y'||ch=='y') break; } getch(); return 0; } Catatan: ch adalah variabel bertipe karakter , getche adalah fungsi built-in untuk menerima masukan berupa karakter kemudian ditampilkan ke layar break adalah pernyataan untuk memberhentikan proses. Apabila dalam suatu pengulangan terdapat didalamnya pengulangan lagi maka pengulangan demikian disebut nested for
  • 21.  Nested for Contoh 3.5: #include <stdio.h> #include <conio.h> int main() { int i; int j; for(i=0; i<=5; i++) for(j=0; j<=3; j++) { printf(" Nilai i= %d dan j= %d n",i,j); } getch(); return 0; } 3.2. PENGULANGAN WHILE (WHILE_LOOP) Proses pengulangan lain dapat dinyatakan dengan perkataan WHILE. Bedanya dengan for terletak di perubah nilai cacah. Pada pernyataan while hanya diperlukan satu syarat saja.  while (syarat) pernyataan/perintah; Contoh 3.6: #include <stdio.h> #include <conio.h> int main() { int i; int j; i=0; while(i<5) { printf("Nilai Kurang dari Lima n"); } getch(); return 0; }  while (syarat) { pernyataan; pernyataan; }
  • 22. Contoh 3.7: #include <stdio.h> #include <conio.h> int main() { int i; float bilangan; i=0; while(i<5) { printf("Masukkan suatu bilangan n"); scanf("%d",&bilangan); i++; } getch(); return 0; } 3.3. PENGULANGAN DO_WHILE (DO_WHILE LOOP) Pengulangan do_while meletakkan syarat setelah perintah-perintah yang ada. Berarti semua perintah yang terdapat didalam do_while akan diproses minimal satu kali, walaupun nantinya syarat yang diberikan tidak dipenuhi. Disinilah letak perbedaannya dengan pernyataan while. Pada while, jika syarat tidak dipenuhi, maka semua pernyataan didalamnya tidak akan diproses.  do { perintah/pernyataan; perintah/pernyataan; }while( syarat ); Contoh 3.8: #include <stdio.h> #include <conio.h> int main() { int i; float bilangan; i=0; do { printf("Masukkan suatu bilangan n"); scanf("%d",&bilangan); i++; }while(i<5) getch(); return 0; }
  • 23. BAB IV KONSEP PENCABANGAN Selain proses pengulangan, dalam pembuatan program terdapat pula masalah untuk menentukan pilihan. Sebagai contoh, bagaimana menentukan suatu bilangan adalah bilangan genap atau bilangan ganjil. Cara penyelesaiannya yaitu dengan menggunakan konsep pencabangan. Bahasa C menyediakan pernyataan IF atau IFELSE, atau pernyataan SWITCH-CASE. 4.1. PENCABANGAN IF  if (syarat) perintah; Contoh 4.1 : #include <stdio.h> #include <conio.h> int main() { int a; a=4; if(a%2==0) printf("Nilai a adalah genap"); getch(); return 0; }  if (syarat) { perintah/pernyataan; perintah/pernyataan; } Contoh 4.2 0 #include <stdio.h> #include <conio.h> int main() { int a; int b; a=3,b=7; if(a > b) { printf("Nilai a lebih besar dari nilai b n"); printf("Selisih nilai mereka adalah %d n", a-b); } getch();
  • 24. return 0; } 4.2. PENCABANGAN IF_ELSE  if(syarat) perintah; else perintah; Contoh: if(a%2!=0) printf(“Bilangan a adalah ganjiln”); else printf(“Bilangan a adalah genap”);  if (syarat) { perintah/pernyataan; perintah/pernyataan; } else { perintah/pernyataan; perintah/pernyataan; } Contoh 4.3. #include <stdio.h> #include <conio.h> int main() { float a, b, c, t, u ; a=9.0; b=4.0; c=2; if (a==b && c<=5) { t=a+b/5*c; printf("Nilai t = % f n",t); } else { u=(2-a/3)+(a*b-4); printf("Nilai u=%f n",u); } getch(); return 0; }
  • 25.  if (syarat) if(syarat) perintah; else perintah; else if(syarat) perintah; else perintah; Contoh 4.4 : #include <stdio.h> #include <conio.h> int main() { int umur; printf("Berapa umurnya anda : "); scanf("%d", &umur); if (umur >40) if(umur<60) printf("Anda sudah tuan"); else printf("Anda termasuk manulan"); else if(umur<20) printf("Anda dalam masa remajan"); else printf("Anda sudah dewasan"); getch(); return 0; } 4.3. LOOP BREAKING Jika pernyataan break terdapat dalam suatu proses pengulangan, komputer akan segera memberhentikan proses pengulangan dan langsung ke luar loop menuju pernyataan selanjutnya. Contoh 4.5 : #include <stdio.h> #include <conio.h> int main() { int t; for(t=0;t<100;t++) { printf(“”%d”,t); if(t==10) break; } getch(); return 0; }
  • 26. 4.4. PERNYATAAN CONTINUE Cara kerja pernyataan continue hampir sama dengan break, hanya saja pada continue proses tidak segera berhenti melainkan memaksa proses iterasi berikutnya dengan mengabaikan pernyataan berikutnya. Contoh 4.6 : #include <stdio.h> #include <conio.h> int main() { int x; for(x=0; x<100; x++) { if( x%2 ) continue; printf(“%d “, x); } getch(); return 0; } 4.6. PENCABANGAN SWITCH_CASE  switch(variabel) { case 1: pernyataan; break; case 2 : pernyataan; break; …. default: pernyataan; break; }  switch(variabel) { } case „a‟: pernyataan; break; case „b‟ : pernyataan; break; …. default: pernyataan; break;
  • 27. Contoh 4.7 : #include <stdio.h> #include <conio.h> int main() { int angka; printf("Masukkan angka (1-7) "); scanf("%d",&angka); switch(angka) { case '1': printf("M I N G G U"); break; case '2': printf(" S E N I N "); break; case '3': printf("S E L A S A "); break; case '4': printf("R A B U "); break; case '5': printf("K A M I S "); break; case '6': printf("J U M A T "); break; case '7':printf("S A B T U "); break; default : printf(" ANDA SALAH MEMBERI ANGKA"); } getch(); return 0; } BAB V KONSEP ARRAY DAN STRING Pendeklarasian variabel pasti akan dijumpai saat pembuatan program. Untuk variabel yang jenisnya sama, seperti nomer registrasi pokok mahasisma, diperlukan pendeklarasian variabel yang banyak. Untuk memudahkan pembuat program maka disediakan pendeklarasian variabel dengan nama yang sama, hanya saja diberi indeks nomer dari 0 sampai bilangan tertentu. NRP[0], NRP[1], ......NRP[100]; 5.1. PENDEKLARASIAN ARRAY 1 DIMENSI Suatu nama variabel yang diberi indeks bilangan tertentu disebut dengan ARRAY. ARRAY adalah kumpulan data yang bertipe sama, dan diberi nama dengan ditambahkan indeks nomer.  Untuk menyatakan data suhu bertipe integer sebanyak 5 buah, cara biasa dapat dituliskan demikian
  • 28.  int suhu1, suhu2, suhu3, suhu4, suhu 5 Hal ini tentu menyulitkan jika data yang ingin dituliskan banyak. Alternatif lain yang disediakan oleh bahasa pemrograman yaitu dengan menggunakan konsep ARRAY. Maka data suhu di atas dapat ditulis dengan cara lain yaitu:  int suhu[5] Artinya suhu1 bisa dipadankan dengan suhu[0], suhu 2 dipadankan dengan suhu[1] dan seterusnya. Perlu diingat, bahasa C memulai indeks dari 0 sampai nilai yang terdapat di dalam kurung siku dikurang satu. Dengan kata lain  int suhu[5] menyatakan adanya 5 variabel suhu yaitu suhu[0], suhu[1], suhu[2], suhu[3] dan suhu[4]. Variabel suhu[5] tidak terdefinisi karena indeksnya mulai dari 0. Semua tipe bilangan dapat dinyatakan dalam variabel ARRAY, misalnya tipe float  float berat_tepung[4] Deklarasi ini menyatakan ada 4 variabel bertipe float, dimulai dari berat_tepung[0], berat_ tepung[1], berat_ tepung[2], dan berat_ tepung[3]. Variabel berat_tepung[4] tidak terdefinisi. Untuk menyatakan string (deretan karakter ) digunakan variabel ARRAY bertipe karakter. Variabel ini digunakan untuk menyimpan nama atau informasi berupa karakter.  char nm[20] nm=”Indonesia”; Artinya, nm[0]=‟I‟, nm[1]=‟n‟ …, nm[8]=‟a‟, dan nm[9]=‟0‟. Di bawah ini ada contoh program: Contoh 5.1 /* Program menerima masukan dari keyboard nilai data berupa ARRAY tipe integer Berdimensi satu*/ #include <stdio.h> /*Turbo C preprocessor */ #include <conio.h> int main() { /* deklarasi variabel yang digunakan */
  • 29. int suhu[5]; int i; int jumlah=0; /*input dari keyboard */ for(i=0;i<5;i++) { printf(“Masukkan suhu ke- %d ”, i); scanf(“%d”, &suhu[i]); } /*proses*/ for(i=0;i<5;i++) { jumlah=jumlah+suhu[i]; } /*output ke monitor */ clrscr(); Printf(“nn”); for(i=0;i<5;i++) { printf(“Nilai suhu ke- %d = %d n”, i , suhu[i]); } printf(“ Jumlah totalnya = %d “, jumlah); /* untuk menampilkan jumlah */ getch(); /*untuk menampilkan screen output */ return 0; /*nilai balik fungsi main() */ } Contoh 5.2 /* Program menerima masukan dari keyboard data berupa ARRAY tipe karakter Berdimensi satu*/ #include <stdio.h> #include <conio.h> /*Turbo C preprocessor */ int main() { /* deklarasi variabel yang digunakan */ char as[5]; char bs[5]; char cs[10]; int i; int j=0; int k=0; clrscr(); /*input dari keyboard */
  • 30. printf("Masukkan 4 deretan karakter "); scanf("%s",&as); printf("Masukkan 4 deretan karakter "); scanf("%s",&bs); /*proses*/ for(i=0;i<8;i=i+2) { cs[i] =as[j++]; cs[i+1]=bs[k++]; } cs[8]='0'; /*output ke monitor */ printf("Tulisan cs = %s ", cs); getch(); return 0; } /*untuk menampilkan screen output */ /*nilai balik fungsi main() */
  • 31. 5.2. PENDEKLARASIAN ARRAY 2 DIMENSI Array 2 dimensi diperlukan untuk permasalahan yang berbentuk tabel atau matriks. Misalkan akan disimpan data suhu di suatu tempat dengan ketentuan yaitu data suhu yang akan disimpan berupa data suhu pada pagi hari, suhu siang hari dan suhu malam hari. Data ini dipantau mulai dari hari senin sampai minggu. Jika hari senin dinyatakan dengan indeks 0 Jika hari senin dinyatakan dengan indeks 0 Jika hari selasa dinyatakan dengan indeks 1 diwakili dengan Jika hari rabu dinyatakan dengan indeks 2 BARIS Jika hari kamis dinyatakan dengan indeks 3 Jika hari jumat dinyatakan dengan indeks 4 Jika hari sabtudinyatakan dengan indeks 5 Jika hari minggu dinyatakan dengan indeks 6 Pagi diberi indeks 0 Siang diberi indeks 1 Malam diberi indeks 2 diwakili dengan KOLOM Maka array yang dapat menyimpan data dalam kasus ini berbentuk : ARRAY 2 DIMENSI Dan dideklarasikan dalam program seperti : float Suhu[7][3]; Contoh lain berupa Aplikasi dengan Matriks.
  • 32. Contoh 5.3 /* Program menerima masukan dari keyboard nilai data berupa ARRAY tipe float berdimensi dua*/ #include <stdio.h> /*Turbo C preprocessor */ #include <conio.h> int main() { /* deklarasi variabel yang digunakan */ float suhu[7][3]; int i,j; int jumlah=0; /*input dari keyboard */ for(i=0;i<7;i++) for(j=0;j<3;j++) { printf(“Masukkan suhu hari- %d – saat %d ”, i,j); scanf(“%d”, &suhu[i][j]); } /*proses*/ for(i=0;i<7;i++) for(j=0;j<3;j++) { jumlah=jumlah+suhu[i][j]; } /*output ke monitor */ clrscr(); Printf(“nn”); for(i=0;i<7;i++) for(j=0;j<3;j++) { printf(“Nilai suhu hari- %d – saat % = %f n”, i , suhu[i][j]); } printf(“ Rata = %f “, jumlah/21); /* untuk menampilkan rata */ getch(); /*untuk menampilkan screen output */ return 0; /*nilai balik fungsi main() */ }
  • 33. Contoh 5.4 /* Program Array 2-D*/ /* Penjumlahan Dua Matriks Bujur Sangkar */ #include <stdio.h> #include <math.h> int main () { int N; int i,j; float A[10][10]; float B[10][10]; float C[10][10]; clrscr(); printf("nntMasukkan Berapa Orde Matriks yang Anda Inginkan = "); scanf("%d",&N); printf("nntMasukkan Data Matriks pertaman"); for (i=0;i<N;i++) for (j = 0;j<N;j++) {printf("nMasukkan Angka Baris %d dan Kolom %d = ",i+1,j+1); scanf("%f",&A[i][j]); } printf("nntMasukkan Data Matriks Keduan"); for (i=0;i<N;i++) for (j=0;j<N;j++) {printf("nMasukkan Angka Baris %d dan Kolom %d = ",i+1,j+1); scanf("%f",&B[i][j]); } for (i=0;i<N;i++) for (j=0;j<N;j++) C[i][j] = A[i][j] +B[i][j]; printf("nntJumlah Data Kedua Matriks = n"); for (i=0;i<N;i++) for (j=0;j<N;j++) printf("%.0f",C[i][j]); getch (); return 0; }
  • 34. Tugas 5: 1. Buatlah program yang dapat menerima 2 data berupa matriks berordo 3 x 3. Kemudian hitung persamaan di bawah ini : C=2*A+3*B Tampilkan semua matriks tersebut. 2. Sebuah Array 2 dimensi berukuran 5x5 berisi data jumlah siswa (bilangan bulat) pada kelas 1a, 1b, 1c, 1d dan 1e dari tahun 1996 – 2000. 1996 1997 1998 1999 2000 1a 25 26 32 30 26 1b 33 33 25 34 27 1c 35 34 35 32 28 1d 25 24 27 29 29 1e 25 24 28 30 30 Hitung jumlah siswa keseluruhan dari tahun 1996-2000. Hitung jumlah siswa pada tahun 2000.
  • 35. BAB VI FUNGSI Akan dibuat suatu program untuk melakukan proses aljabar sederhana yaitu proses penjumlahan, pengurangan, perkalian maupun pembagian. Semua proses ini bisa dibuat dalam satu program seperti di bawah ini: Contoh 6.1 /*Program#1.1: Program Aritmatika sederhana (+,-,*,/) */ #include <stdio.h> #include<conio.h> int main() { float a,b,hasil; clrscr(); printf(“Masukkan bilangan a “); scanf(“%f”,&a); printf(“Masukkan bilangan b “); scanf(“%f”,&b); printf(“n======================================”); //proses penjumlahan hasil = a+b; printf(“nHasil penjumlahan %f dan %f adalah %f “, a,b,hasil); printf(“n---------------------------------------------------------------”); //proses pengurangan hasil = a-b; printf(“nHasil selisih %f dan %f adalah %f “, a,b,hasil); printf(“n---------------------------------------------------------------”); //Lanjut halaman berikutnya
  • 36. //proses perkalian hasil = a*b; printf(“nHasil perkalian %f dg %f adalah %f “, a,b,hasil); printf(“n---------------------------------------------------------------”); //proses pembagian while(b==0) //Bilangan penyebut tidak boleh bernilai nol { printf(“nBilangan b tidak boleh 0n Masukkan bilangan b “); scanf(“%f”,&b); } hasil = a/b; printf(“nHasil %f dibagi %f adalah %f “, a,b,hasil); printf(“n======================================”); printf(“n SELESAI “); getch(); return 0; } //Akhir Program#1.1 Proses penjumlahan, pengurangan, perkalian maupun pembagian pada program sebelumnya masing-masing dapat dibuatkan dalam modul yang terpisah-pisah yang akan disebut sebagai fungsi. Tujuan dari pembuatan fungsi adalah untuk memudahkan pembuat program dalam mengembangkan programnya. Selain itu, dengan membuat fungsi ukuran program dapat diperkecil. Bagaimana membuat fungsi ??? 6.1 ATURAN PEMAKAIAN FUNGSI DALAM PROGRAM Hal yang perlu diperhatikan dalam proses pembuatan fungsi : 1. Pembuatan prototipe fungsi yang diletakkan sebelum penulisan program main 2. Pemanggilan fungsi di dalam program main 3. Penjabaran fungsi setelah program main selesai Silahkan perhatikan program 1.2 :
  • 37. /*Program#1.2 Mencari nilai pangkat dari suatu bentuk x pangkat y */ #include <stdio.h> #include <conio.h> int pangkat (int x, int y); 1 //prototipe fungsi pangkat , // dengan parameter x,y dan syarat y>=0 int main() { } int bil1,bil2; 2 int nilaiPangkat; clrscr(); printf(”Masukkan dua bilangan sebagai a pangkat b ”); scanf(”%d%d”, &bil1 &bil2); nilaiPangkat=pangkat(bil1,bil2); // argumen bil1 dan bil2 printf(”nNilai %d pangkat %d adalah %d ”, bil1,bil2, nilaiPangkat); getch(); return 0; 3 int pangkat(int x,int y) //Penjabaran fungsi pangkat { int hasil=1; if (y==0) hasil = 1; else for (i=1;i<=y;i++) hasil = hasil*x; return hasil; } //Akhir Program#1.2 Pembuatan prototipe fungsi yang diletakkan sebelum penulisan program main merupakan pemberitahuan saat proses kompilasi, bahwa ada suatu fungsi bernama tertentu yang akan digunakan di dalam program main dengan bentuk seperti yang dituliskan. Pemanggilan fungsi di dalam program main berguna untuk memasukkan argumen tertentu pada posisi parameter agar diproses oleh fungsi kemudian hasilnya dikembalikan pada program main. Cara penulisann penjabaran fungsi setelah program main selesai harus sama dengan prototipenya, hanya saja tidak diakhiri oleh tanda (;) titik koma. Ini perlu selalu diingat!!. Di bagian sinilah terdapat semua proses yang diperlukan untuk menyelesaikan tujuan dari fungsi yang akan dibuat. Hindari penggunaan printf dalam fungsi yang bertujuan untuk mencari suatu nilai tertentu. Untuk fungsi-
  • 38. fungsi yang bertujuan sebagai input ataupun sebagai output, silahkan gunakan printf. Di bawah ini diberikan contoh. Mari pusatkan kembali perhatian kita ke program pertama yaitu program perhitungan aljabar sederhana meliputi penjumlahan, pengurangan, perkalian maupun pembagian. Fungsi Penjumlahan dapat dibuat seperti : float tambah(float a, float b) { float hasil; hasil=a+b; return hasil; } Silahkan lanjutkan pembuatan fungsi untuk proses pengurangan, perkalian dan pembagian. Yang perlu diperhatikan untuk membuat suatu fungsi adalah: 1. Nama fungsi 2. Nilai balik fungsi 3. Parameter fungsi 4. Penulisan return Keterangan: - Nama fungsi adalah nama yang ingin diberikan untuk fungsi yang akan dibuat. Silahkan pilih nama untuk mewakili fungsi tersebut. Jika namanya terdiri dari dua kata maka jangan diberi spasi kosong. Contoh “fungsiTambah” (jangan ditulis “fungsi Tambah”). - Nilai balik fungsi adalah hasil keluaran yang diinginkan dari fungsi itu, apakah bertipe float, integer atau karakter, atau tidak ada nilai balik sama sekali. Jika fungsi tidak ada hasil keluarannya maka sebagai nilai balik fungsi tuliskan void. Selain itu tuliskan tipe data nilai balik yang diinginkan (bisa float, int, char atau double dll). Nilai balik dicirikan dengan penggunaan kata return. - Parameter fungsi adalah sesuatu yang dijadikan nilai masukan untuk fungsi tersebut. Untuk fungsi penjumlahan tentunya diperlukan dua buah bilangan yang akan dijumlahkan, maka disediakan dua parameter masukan. Dengan demikian program proses aljabar tadi bisa dirubah penulisannya sbb: /* Program#1.3: Program proses aljabar dalam bentuk modul-modul */ #include <stdio.h> #include <conio.h> //Prototipe Fungsi
  • 39. float tambat(float a, float b); float kurang(float a, float b); float kali(float a, float b); float bagi(float a, float b); void garis(char ch); //Program Utama int main() { float bil1,bil2,hasil; clrscr(); printf(“Masukkan bilangan a “); scanf(“%f”,&bil1); printf(“Masukkan bilangan b “); scanf(“%f”,&bil2); garis(„=‟); //proses penjumlahan hasil = tambah(bil1,bil2); //pemanggilan fungsi tambah dengan 2 argumen printf(“nHasil penjumlahan %f dan %f adalah %f “,bil1,bil2,hasil); garis(„-‟); //proses pengurangan hasil = kurang(bil1,bil2); printf(“nHasil selisih %f dan %f adalah %f “,bil1,bil2,hasil); garis(„-‟); hasil = kali(bil1,bil2); printf(“nHasil perkalian %f dg %f adalah %f “,bil1,bil2,hasil); garis(„-‟); //proses pembagian while(bil2==0) { printf(“nBilangan b tidak boleh 0n Masukkan bilangan b “); scanf(“%f”,&bil2); } hasil = bagi(bil1,bil2); printf(“nHasil %f dibagi %f adalah %f “,bil1,bil2,hasil); garis(„=‟); printf(“n SELESAI “); getch(); return 0; } //Modul-modul yang akan digunakan dalam program utama //Fungsi Penjumlahan float tambah(float a, float b) { float hasil; hasil=a+b; return hasil; // hasil memberi nilai balik untuk fungsi tambah }
  • 40. //Fungsi Pembagian float bagi(float a, float b) { float hasil; hasil=a/b; return hasil; // hasil memberi nilai balik untuk fungsi bagi } //Fungsi Pengurangan float kurang(float a, float b) { float hasil; hasil=a-b; return hasil; // hasil memberi nilai balik untuk fungsi kurang } //Fungsi Perkalian float kali(float a, float b) { float hasil; hasil=a*b; return hasil; //hasil memberi nilai balik untuk fungsi kali } //Fungsi Garis void garis(char ch) { static i; printf(“n”); for(i=1;i<50;i++)] { printf(“%c”,ch); } return; //tidak ada nilai balik untuk fungsi garis } 6.2. DIAGRAM PEMANGGILAN FUNGSI Program#1.4 mengilustrasikan jalannya proses pemanggilan suatu fungsi dalam program. Jika fungsi dipanggil maka proses akan dilanjutkan pada perintah perintah yang ada di dalam fungsi. Setelah selesai semua perintah di dalam fungsi, proses akan kembali ke program utama pada posisi satu baris dibawah pemanggilan fungsi tadi. Jelasnya dapat dilihat pada program#1.4 /* Program#1.4: #include<stdio.h> #include<conio.h> //Prototip fungsi void a(); */
  • 41. void b(); //Program Utama int main() { clrscr(); printf(“ di main menu”) a(); printf(“sudah selesai menjalankan fungsi a()”); b(); printf(“sudah selesai menjalankan fungsi b()”); printf(“Program selesai”); getch(); return 0; } void a() { printf(“di dalam fungsi a()”); } void b() { printf(“di dalam fungsi b()”); } Coba jalankan program di atas ini, lihat hasilnya. TUGAS BAB VI: 1. Di bawah ini adalah suatu fungsi dengan nama luas_segitiga. Fungsi ini memiliki nilai balik berupa bilangan desimal berguna untuk memberi hasil perhitungan luas segitiga. Karena menghitung luas segitiga salah satunya diperlukan masukan berupa nilai alas dan nilai tinggi maka fungsi memerlukan dua parameter dengan tipe bilangan desimal. float luas_segitiga (float alas, float tinggi) { float luas; luas = (alas*tinggi)/2; return luas; } Buatlah program untuk dapat memanggil fungsi ini. Jika program telah sukses, tambahkan lagi fungsi menghitung luas lingkaran dan luas persegi panjang dan panggil fungsi-fungsi tersebut pada program utama. 2. Fungsi mencari nilai mutlak dari suatu bilangan. Fungsi pustaka abs(), diperoleh dari kata absolut yaitu mutlak, mengubah nilai apapun menjadi positif.
  • 42. Bentuk dasar : int abs(int x) //Program Tugas1-2 #include <stdio.h> #include <conio.h> #include <math,h> int main() { int x= -1234; // variabel x clrscr(); // untuk membersihkan layar // cetak pada monitor printf(“nilai : %d, nilai mutlaknya %d n”,x,abs(x)); // tampilkan segera ke layar output getch(); return 0; } Buatlah fungsi anda sendiri yang prinsip kerjanya sama dengan fungsi abs() . Beri nama fungsi anda dengan nama yang berbeda dari fungsi pustakanya. 3. Lanjutkan program Tugas1-3 di bawah ini. /*Program Tugas1-3 Program Menjumlahkan angka 0 sampai 9 */ #include<stdio.h> #include<conio.h> // Prototip fungsi void prosesJumlah( int x); // Proses Penjumlahan 0-9 void tampilkan(); // Tampilkan jumlah akhirnya // Variabel global untuk menyimpan hasil penjumlahan int jumlah; int main() { int angka; jumlah=0; clrscr(); for(angka=0;angka<10;angka++) prosesJumlah(angka); tampil(); getch(); return 0; } void prosesJumlah(int x) { //Silahkan tulis perintah anda
  • 43. Beri nama program xxyyyTug13.c 4. Buatlah program mencari nilai terbesar, nilai terkecil, jumlah total berbobot dari 3 bilangan desimal sembarang (a,b,c). Bentuk 3 fungsi yaitu: 1. Fungsi mencari nilai terbesar dari 3 bilangan tersebut 2. Fungsi mencari nilai terkecil dari 3 bilangan tersebut 3. Fungsi mencari jumlah total berbobot dari 3 bilangan tersebut Total = 3.5 a + 4.0 b + 2.5
  • 44. BAB VII STRING Bab ini akan memperkenalkan bentuk fungsi pustaka yang berguna untuk membuat program dengan tipe data string. 7.1 FUNGSI strchr Fungsi strchr : fungsi untuk menemukan suatu karakter tertentu yang pertama muncul pada suatu deretan karakter. Contoh 7.1: /*Program contoh penggunaan strchr */ #include<stdio.h> #include<conio.h> #include<string.h> int main() { char string[15]; char *ptr, c='r'; strcpy(string,"This is a string"); ptr=strchr(string,c); if(ptr) printf("The character %c is at position %d n",c,ptr-string); else printf("The character was not foundn"); getch(); return 0; } 7.2 FUNGSI strcmp Fungsi strcmp : fungsi untuk membandingkan antara dua string Contoh 7.2: /*Program contoh penggunaan strcmp */ #include<stdio.h> #include<conio.h> #include<string.h> int main() { char *buf1="aaa", *buf2="bbb",*buf3="ccc"; int ptr; ptr = strcmp(buf2,buf1);
  • 45. if(ptr>0) printf("Buffer2 is greater than buffer1 n"); else printf("Buffer2 is less than buffer1 n"); ptr=strcmp(buf2,buf3); if(ptr>0) printf("Buffer2 is greater than buffer3 n"); else printf("Buffer2 is less than buffer3 n"); getch(); return 0; }
  • 46. BAB VIII POINTER Pada bab ini akan di bahas mengenai konsep pointer dalam pemrograman. Apa itu pointer? Pointer adalah suatu variabel khusus yang berisi data berupa alamat tertentu. Beda dengan variabel yang telah dipelajari sebelumnya, karena variabel yang telah dipelajari berisi suatu data yang berupa bilangan atau deretan karakter. Untuk apa data yang berupa alamat? Perlu diingat bahwa setiap byte di dalam memori komputer memiliki alamat tertentu. Pada komputer yang memiliki memori 640K, alamat memori dimulai dari 0 sampai dengan alamat memori tertinggi yaitu 655359. Variabel yang kita kenal sebelumnya juga disimpan di memori ini, walaupun tidak disebutkan alamatnya langsung. Untuk menunjuk ke suatu alamat memori secara langsung digunakanlah pointer ini. Jadi sebenarnya pointer itu isinya alamat. Contoh: Misalkan pint adalah variabel pointer, vint adalah variabel yang berisi data bilangan bulat dan vint berada pada alamat 0xFFF2. Maka pointer pint dapat diatur agar menunjuk ke variabel vint. Alamat memori 1000 Variabe di memori 1003 1001 *pint vint = 56 pint=&vint 1002 1003 56 1004 Gambar 4.1 8.1 PENULISAN VARIABEL DAN OPERATOR DARI POINTER Contoh 8.1 memberikan contoh penulisan deklarasi suatu pointer dan penggunaan operator pointer. Ada dua operator pointer yaitu tanda * dan tanda &. Tanda & adalah operator unary yang akan memberikan alamat dari operandnya. Operator * akan memberikan nilai yang ditunjuk oleh pointer tersebut pada alamat tertentu.
  • 47. Contoh 8.1: #include<stdio.h> #include<conio.h> int main() { int *almt_bil, bil, nil; bil = 100; almt_bil=&bil; //dapatkan alamat bil nil=*almt_bil; // dapatkan isi dari variabel pada alamat tsb. printf(”%d”,nil); // tampilkan isi variabel pada alamat tsb. getch(); return 0; } Contoh 8 .2 adalah contoh program yang salah: Contoh 8.2: #include<stdio.h> #include<conio.h> int main() { Float x=10.1; Float y; Int *p; p = &x; y=*p; printf(”%f”,y); // tampilkan isi variabel y. getch(); return 0; } Porgram ini akan memberikan nilai yang salah, dikarenakan deklarasi p sebagai pointer yang menunjuk ke suatu nilai integer. Sehingga kompiler hanya mentrasfer 2 byte informasi ke y, padahal semestinya harus 4 byte untuk floating point. 8.2. BAGAIMANA MENULIS PERNYATAAN POINTER Contoh 8.3: #include<stdio.h> #include<conio.h> int main() { int x; int *p1,*p2; p1= &x; p2=p1;
  • 48. printf(”%p”,p2); // tampilkan bentuk heksadesimal dari alamat x, bukan nilai x. getch(); return 0; } 8.3. ARITMATIKA POINTER Dalam bahasa C, operator yang disediakan untuk pointer hanya ada dua yaitu operator + dan operator -.Untuk jelasnya, asumsikan p1 adalah pointer yang menunjuk ke suatu nilat bertipe integer dengan alamat 3000. Kalau ditulis dalam program pernyataan seperti di bawah ini, p1++ ; maka isi dari p1 adalah 3002. Mengapa tidak 3001??? Karena setiap komputer menaikkan p1, maka komputer akan menunjuk ke bilangan integer berikutnya. Demikian juga untuk pengurangan p1--; akan merubah nilai p1 menjadi 2998, jika sebelumnya nilai p1 adalah 3000. Nilai kenaikkan suatu pointer ditentukan oleh tipe dasar nilai yang ditunjuk oleh pointer tersebut ( Gambar4.2). char *ch=3000; int *i=3000; ch 3000 ch+1 3001 ch+2 3002 ch+3 3003 ch+4 3000 ch+5 3001 Gambar 4.2 i i+1 i+2
  • 49.
  • 50. BAB IX FILE INPUT OUTPUT Saat kita membuat program seringkali diperlukan proses penyimpanan data hasil proses ke suatu file maupun membacanya dari suatu file tertentu. Maka konsep ini diistilahkan dengan kata-kata file input output. Program yang menggunakan konsep ini akan dijalankan dalam lingkungan SHELL. Proses-proses yang dibahas pada bab ini meliputi proses menuliskan karakter ke suatu file, baca karakter dari file dan tampilkan ke layar monitor, gandakan file sumber ke file tujuan. Contoh 9.1: /*Tuliskan karakter ke suatu file */ #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(int argc,char *argv[]) { FILE *fp; //pointer ke suatu file char ch; //variabel untuk menampung data berupa karakter/huruf clrscr(); //bersihkan layar if(argc!=2) //periksa apakah ada dua argumen ketika running program //c:namaprog namafile { printf("anda lupa menyertakan nama filen"); exit(1); } if((fp=fopen(argv[1],"w"))==NULL) //buka file namafile untuk menulis { printf("tidak dapat membuka filen"); exit(1); } do{ printf("Tulis karakter dan akhiri dengan $: "); ch=getchar(); //dapatkan satu karakter dari keyboard putc(ch,fp); //tuliskan satu karakter ke file } while (ch!='$'); getch(); fclose(fp); //tutup kembali file return 0; }
  • 51. Contoh 9.2: /* Baca karakter dari file dan tampilkan ke layar monitor */ #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(int argc,char *argv[]) { FILE *fp; char ch; clrscr(); if(argc!=2) { printf("anda lupa menyertakan nama file n"); exit(1); } if((fp=fopen(argv[1],"r"))==NULL) { printf("tidak dapat membuka file n"); exit(1); } ch=getc(fp); /*dapatkan satu karakter */ while(ch!=EOF){ putchar(ch); /*tampilkan ke layar monitor */ ch=getc(fp); //dapatkan satu karakter dari file } getch(); fclose(fp); return 0; }
  • 52. Contoh 9.3: /*Gandakan file sumber ke file tujuan */ #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(int argc,char *argv[]) { FILE *in,*out; char ch; clrscr(); if(argc!=3) { printf("anda lupa menyertakan 2 nama file n"); exit(1); } if((in=fopen(argv[1],"rb"))==NULL) { printf("tidak dapat membuka file sumber n"); exit(1); } if((out=fopen(argv[2],"wb"))==NULL) { printf("tidak dapat membuka file tujuan n"); exit(1); } /* baris di bawah ini melakukan proses ganda dari file sumber*/ while(!feof(in)) putc(getc(in),out); getch(); fclose(in); fclose(out); return 0; } Marilah kita lihat fungsi-fungsi pustaka yang digunakan untuk proses input output ini. 1. fopen() Memiliki fungsi: membuka stream dan menghubungkan stream dengan file FILE *fopen(char *Namafile, char *mode); Contoh: fp = fopen(”test”,”w”); - mode adalah string yang menyatakan status. fp adalah file pointer
  • 53. - w mode untuk status tulis ke file test. Beberapa macam mode “r” – buka file teks untuk dibaca “w”- ciptakan file teks untuk ditulis ”a” – tambahkan data pada file teks yang ada ”rb”- buka file biner untuk dibaca ”wb”- ciptakan file biner untuk ditulis ”ab”- tambahkan data pada file biner yang ada 2. putc() Berguna untuk : menuliskan karakter ke suatu stream yang sebelumnya telah dibuka melalui fopen(). int putc(char ch, FILE *fp); 3. getc() Fungsi ini digunakan untuk membaca karakter dari suatu stream yang sebelunya telah dibuka melalui fopen() dalam status baca. 4. putchar() Fungsi ini akan menuliskan karakter ke layar monitor. 5. getchar() Fungsi ini akan mengambil karakter dari layar monitor. 6. fclose() Fungsinya: menutup suatu stream yang telah dibuka melalui fopen() Ingat ! setiapkali suatu file dibuka, maka file tersebut harus ditutup kembali sebelum program berakhir. int fclose(FILE *fp);
  • 54. BAB X STRUKTUR Konsep Struktur adalah fasilitas yang disediakan untuk membentuk tipe data kita sendiri. Program c hanya memberikan tipe data dasar seperti integer, float dsb. Untuk database kita memerlukan tipe data yang merupakan gabungan dari beberapa tipe data dasar ini, maka tipe data tersebut bisa dibuat dengan fasilitas Struktur ini. Struktur adalah kumpulan variabel yang dinyatakan dengan satu nama, berguna untuk mengumpulkan data yang erat satu sama lainnya. Contoh data peserta, variabel yang diperlukan yaitu variabel untuk menyimpan nama peserta, nomer nrp, tanggal lahir, alamat dllnya. Bagaimana menuliskan bentuk struktur dalam suatu program?? Hal-hal yang diperlukan yaitu: Struktur definition : membentuk satu templet yang bisa digunakan untuk membangun variabel struktur. Struktur elemen: Variabel-variabel yang tergabung dalam satu struktur. Contoh: Data pegawai bisa dibuat dalam struktur: struct datapegawai{ char nama[20]; char alamat[20]; float gaji; }; Contoh 10.1 /*struct2.cpp */ /* Contoh program yang menggunakan bentuk structure */ #include <stdio.h> #include <conio.h> #include <math.h> struct { char nama[20]; char alamat[20]; float gaji; } pegawai1; float atof(); int main()
  • 55. { clrscr(); printf("Nama Pegawai I : "); gets(pegawai1.nama); printf("Alamat Pegawai I : "); gets(pegawai1.alamat); /* scanf("%s",&pegawai1.alamat) */ printf("Gaji Pegawai I : "); gets(gj); pegawai1.gaji=atof(gj); printf("nnData yang telah anda ketikkan : "); printf("n%-20s%30s%10.2f",pegawai1.nama,pegawai1.alamat,pegawai1.gaji); printf("nnTekan sembarang tombol"); getch(); return 0; }
  • 56. Contoh 10.2 /* Program struktur */ #include <stdio.h> #include <conio.h> #include <math.h> struct inventaris { char nobarang[8]; char namabarang[30]; int jumlah; float harga; float harga_total; }; struct inventaris barang[5]; int main() { int i; clrscr(); for(i=0; i<2; i++) { printf("nobarang : ");gets(barang[i].nobarang); printf("namabarang : ");gets(barang[i].namabarang); printf("jumlah : ");scanf("%d",&barang[i].jumlah); //fflush(stdio); printf("harga : ");scanf("%5.2f",&barang[i].harga); barang[i].harga_total=barang[i].harga*barang[i].jumlah; } /* display */ for(i=0; i<2; i++) { printf("nobarang : %s n",barang[i].nobarang); printf("namabarang :%s n ",barang[i].namabarang); printf("jumlah : %d n",barang[i].jumlah); printf("harga : %f n",barang[i].harga); printf("harga_total : %f n",barang[i].harga_total); } getch(); return 0; }