Anda di halaman 1dari 56

PRAKTIKUM 1

STRUKTUR C++, TIPE DATA & VARIABEL

A. TUJUAN
1. Memahami struktur dasar pemrograman bahasa C++.
2. Mengetahui beberapa tipe data dasar (jenis dan jangkauannya)
3. Memahami tentang variabel dan konstanta
4. Mengetahui aturan penggunaan variable dan konstanta
5. Dapat membuat program menggunakan variable dan konstanta untuk
menyelesaikan suatu masalah

B. DASAR TEORI
Struktur Dasar Pemrograman C
Program C terdiri dari
main(). Fungsi

terdiri

dari

satu / lebih fungsi, salah satu diantaranya harus


sebuah

header dan sebuah badan. Header berisi

preprocessor statement seperti #include dan nama fungsi. Badan ditandai oleh {}
dan berisi serangkaian pernyataan yang masing-masing diakhiri tanda ;
Adapun bentuk umum dari program bahasa C adalah
# include file
# define var konstan
deklarasi fungsi
main()
{
deklarasi variabel global
:
<pernyataan - pernyataan>
:
}
nama fungsi (arg1, arg2,...)
{
deklarasi variabel lokal
:
< pernyataan - pernyataan>
:
}
Keterangan:
#include file :
Merupakan nama file library yang fungsinya akan digunakan dalam program.

#define var konstan :


Mendefinisikan sebuah nilai sebagai konstanta, dimana dalam program
nilainya selalu tetap.
Deklarasi fungsi:
Mendeklarasikan fungsi apa saja yang akan dipakai dalam program, selain
fungsi main().
main() :
Merupakan fungsi induk yang harus ada dalam program.
Deklarasi variabel:
Sebelum

sebuah

variabel

digunakan

dalam

program

maka

harus

dideklarasikan yang maknanya adalah memesan tempat pada memori.


Banyaknya tempat yang dipesan bergantung pada tipe data apa yang
digunakan oleh variabel tersebut.
Pengenalan Fungsi-Fungsi Dasar C
a. Fungsi main()
Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi
titik awal dan titik akhir eksekusi program. Tanda { di awal fungsi menyatakan awal
tubuh fungsi dan sedangkan tanda } di akhir fungsi merupakan akhir tubuh fungsi.

b. Fungsi printf()
Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan
suatu hasil pada layar. Dalam bentuk yang lebih umum, format printf()
printf(string kontrol, daftar argumen);

String kontroldapat berupa satu atau sejumlah karakter yang akan ditampilkan
ataupun berupa penentu format yang akan mengatur penampilan dari argumen
yang terletak pada daftar argumen. Mengenai penentu format di antaranya
berupa:
%d

untuk menampilkan bilangan bulat (integer)

%f

untuk menampilkan bilangan titik-mengambang (pecahan)

%c

untuk menampilkan sebuah karakter

%s

untuk menampilkan sebuah string

Dalam string control dapat berisi karakter khusus yangbiasadisebutescape


sequencecharacters,yaitu :
Karakter
\0
\a
\b
\f
\n
\r
\t
\v
\\
\
\
\?
\ooo
\xhh

Keterangan
Karakteerber-ASCIInol(karakternull)
Karakterbell
Karakterbackspace
Karaktergantihalaman(formfeed)
Karakterbaris baru(newline)
Karaktercarriagereturn(keawalbaris )
Karaktertabhorizontal
Karaktertabvertika
Karakter\
Karakter
Karakter
Karakter?
Karakteryangnilaioktalnyaadalahooo(3digitoctal)
Karakter yang nilai heksadesimalnya adalah hh (2
heksadesimal)

digit

Contoh:
#include <stdio.h>
main( )
{
printf(No
: %d\n, 10);
printf(Nama : %s\n, Ali);
printf(Nilai : %f\n,80.5);
printf(Huruf : %c\n,A);
}
Pengenalan Praprosesor #Include
#includemerupakan salah satu jenis pengarah praprosesor (preprocessor
directive). Pengarah praprosesor ini dipakai untuk membaca file yang diantaranya
berisi deklarasi fungsi dan definisi konstanta. File-file ini mempunyai ciri yaitu
namanya diakhiri dengan ekstensi .h.
Bentuk umum #include:
1.

#include <namafile>

2.

#include namafile
Bentuk pertama(#include<namafile>)mengisyaratkan bahwa pencarian file

dilakukan pada direktori khusus, yaitu direktori file include. Sedangkan bentuk kedua

(#include namafile)menyatakan bahwa pencarian file dilakukan pertama kali pada


direktori aktif tempat program sumber dan seandainya tidak ditemukan pencarian
akan dilanjutkan pada direktori lainnya yang sesuai dengan perintah pada sistem
operasi.
Komentar Dalam Program
Untuk keperluan dokumentasi dengan maksud agar program mudah dipahami
di saat lain, biasanya pada program disertakan komentar atau keterangan mengenai
program. Dalam C, suatu komentar dapat ditulis dengan dua cara:
1. Ditulis dengan diawali dengan tanda /* .*/.
Untuk penulisan dengan tanda ini, penulisan dapat lebih dari satu baris. Awal
komentar diberi tanda /* dan akhir komentar diberi tanda */
2. Ditulis dengan tanda //.
Penulisan dengan tanda ini hanya untuk satu baris komentar. Tanda //
diberikan diawal komentar saja.
Contoh :
// Tanda ini adalah komentar satu baris
#include <stdio.h>
main()
{
printf(Coba\n);
/* Ini adalah program pertama,
komentar lebih dari satu baris */
}

Variabel
Suatu variabel digunakan dalam program untuk menyimpan suatu nilai dan
nilai yang ada padanya dapat berubah selama proses program berlangsung.
Namadari

suatuvariabeldapatditentukansendiriolehpemrogramdenganaturan

sebagai berikut:
1. Karakter pertama berupa huruf (A-Z) atau (a-z) atau underscore (_)
2. Tidak boleh mengandung simbol khusus kecuali underscore ( _ )
3. Nama variabel tidak boleh sama dengan kata kunci C++
4. Nama variabel boleh terdiri dari kata kunci C++ yang digabungdengan kata lain .
5. Huruf besar dan kecil dari nama variabel akan dibedakan oleh bahasa C++
6. Nama variabel tidak boleh menggunakan operator aritmetika (+ - / * %)
7. Nama variabel tidak boleh mengandung spasi

Deklarasi Variabel
Bentuk umum deklarasi variabel:

Nama_tipenama_variabel;

Contoh:
int n1; // deklarasi variabel integer n1
int n1,n2; // deklarasi dua variabel n1, n2

DeklarasiKonstanta
Berbedadenganvariabel,konstantatidakdapatdiubah jikatelah diinisialisasi.
Berikut beberapa cara untuk mendeklarasikan konstanta
a. Menggunakankeywordconst
Contoh:
void main()
{
const float phi = 3.141592; // deklarasi konstanta
float jari_jari, keliling, luas;
jari_jari = 7.2;
luas = phi * jari_jari * jari_jari;
keliling = 2 * phi * jari_jari;
cout<<"Luas lingkaran adalah " << luas<<endl;
cout<<"Keliling lingkaran adalah " << keliling;
}
b. Menggunakan#define
Keuntungan menggunakan #define apabila dibandingkan dengan const adalah
kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama
kalimencarisimbol #define.
Contoh :
#define phi 3.14152965

//deklarasi konstanta

void main()
{
float jari_jari, keliling, luas;
jari_jari = 7.2;
luas = phi * jari_jari * jari_jari;
keliling = 2 * phi * jari_jari;
cout<<"Luas lingkaran adalah " << luas<<endl;
cout<<"Keliling lingkaran adalah " << keliling;
}

Inisialisasi Variabel
Inisialisasi variabel adalah pemberian nilai awal variabel saat program dijalankan.
Inisialisasi dapat dilakukan saat deklarasi variabel atau setelah deklarasi. Contoh:
1. Deklarasi dan inisialisasi variabel dalam satu perintah
int n = 1;
2. Deklarasi dan inisialisasi dalam perintah berbeda.
int a; a = 10;
TipeData
TipeDasar

Ukuran Memori
(byte)

JangkauanNilai

JumlahDigitPresisi

Char

-128hingga+127

Short

-32768hingga+32767

Int/Long

-2.147.438.648hingga2.147.438.647

Float

3,4E-38hingga3,4E38

Double

1.7E-308hingga1.7E308

longdouble

10

3.4E-4932hingga1.1E4932

6- 7
15-16
19

C. TUGAS PENDAHULUAN
1. Pilihlah nama-nama variabel yang benar dan yang salah, mengapa ?
int
calloc
xxx

char
Xx
z

6_05
A$

floating
ReInitialize

_1312
alpha_beta_routine

2. Buatlah flowchart untuk mengkonversikan ukuran panjang dalam centimeter


menjadi meter dan kelebihannya dalam centimeter (misalnya panjang 165 cm,
maka hasil konversi adalah 1 m 65 cm).
3. Dari soal no 2, buatlah deklarasi variable yang diperlukan jika akan dibuat
program dalam bahasa C++.
D. PRAKTIKUM
1. Carilah kesalahan dalam program di bawah ini :
main ()
{ INT jumlah;

/* PERHITUNGAN HASIL
jumlah = 25 + 37 - 19;
/* TAMPILKAN HASIL
printf("Berapa hasil perhitungan 25 + 37 - 19 ?\n);
printf("Jawabannya adalah %d\n" jumlah); }
2. Program di bawah ini seharusnya menampilkan output satu baris sbb :
c * c = 25,000000
Namun, belum berhasil karena masih ada beberapa kesalahan. Temukan
minimal 3 kesalahan dalam program tersebut.
#include <Studio.h>
main ()
{ float a, b, c;
a = 3;
b = 4.0;
c = a * a + b * b
printf("c * c = %d", c);
}
3. Berapakah nilai jawaban yang ditampilkan oleh program di bawah ini :
#include <stdio.h>
main()
{ int jawab, hasil;
jawab = 100;
hasil = jawab - 10;
printf("Jawabannya adalah %d\n", hasil + 6);
}
E. TUGAS PRAKTIKUM
Tuliskan kesalahan program, perbaikan dan hasil yang dikeluarkan oleh program
dari praktikum yang sudah anda lakukan..

PRAKTIKUM 2
OPERATOR & I/O

A. TUJUAN
1. Memahami operator pada bahasa C++.
2. Memahami berbagai fungsi perintah Input/Output pada bahasa C++.
3. Mengetahui aturan penggunaan operator dan fungsi-fungsi input/output
4. Dapat membuat program menggunakan operator dan fungsi input/output untuk
menyelesaikan suatu masalah
B. DASAR TEORI
Operator
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam
program untuk melakukan sesuatu operasi atau manipulasi, seperti menjumlahkan
dua buah nilai, memberikan nilai ke suatu variabel, membandingkan kesamaan dua
buah nilai.

Operator Aritmatika

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah :
*

perkalian

pembagian

sisa pembagian

penjumlahan

pengurangan

Sedang operator berikut tergolong sebagai operator unary.


-

tanda minus

tanda plus

contoh operator sisa pembagian seperti berikut:

Sisa pembagian bilangan 7 dengan 2 adalah 1 (7 % 2 1)


Sisa pembagian bilangan 6 dengan 2 adalah 0 (6 % 2 0)

Sisa pembagian bilangan 8 dengan 3 adalah 1 (8 % 3 2)

Operator Penurunan dan Kenaikan

Masih berkaitan dengan operasi aritmatika, C menyediakan operator yang


disebut sebagai operator kenaikan dan operator penurunan, yaitu :
++

operator kenaikan

-- operator penurunan
Operator kenaikan digunakan untuk menaikkan nilai variabel sebesar satu.
Penempatan operator terhadap variabel dapat dilakukan di muka atau di
belakangnya, contohnya :
x = x+1;
y = y-1;
Dapat ditulis menjadi :
++x;
--y;
atau :
x++;
y--;

Prioritas Operator Aritmatika

Tabel di bawah ini memberikan penjelasan mengenai prioritas dari masing-masing


operator. Operator yang mempunyai prioritas tinggi akan diutamakan dalam hal
pengerjaan dibandingkan dengan operator yang memiliki prioritas lebih rendah.
Tabel Prioritas operator aritmatika dan urutan pengerjaannya
PRIORITAS

OPERATOR

URUTAN

Tertinggi

()

dari kiri ke kanan

Terendah

*)

++

+=

--

dari kanan ke kiri *)

dari kiri ke kanan

dari kiri ke kanan *)


-=

*=

/=

%=

dari kanan ke kiri

Bentuk unary + dan unary memiliki prioritas yang lebih tinggi daripada bentuk
binary + dan binary -

Operator Penugasan
Operator penugasan (assignment operator) digunakan untuk memindahkan

nilai dari suatu ungkapan (expression) ke suatu pengenal. Operator pengerjaan yang

umum digunakan dalam bahasa pemrograman, termasuk bahasa C adalah operator


sama dengan (=). Contoh:
fahrenheit = celcius * 1.8 + 32;
Maka = adalah operator penugasan yang akan memberikan nilai dari ungkapan :
celcius * 1.8 + 32 kepada variabel fahrenheit.
a = b = 15;
maka nilai variabel a akan sama dengan nilai variabel b akan sama dengan 15.

Operator Kombinasi
C

menyediakan

operator

untuk

memendekkan

penulisan

operasi

penugasan.

Tabel Operator kombinasi dan padanannya


x += 2;
x -= 2;
x *= 2;
x /= 2;
x %= 2;
x <<= 2;
x >>= 2;
x &= 2;
x |= 2;
x ^= 2;

kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari

x = x + 2;
x = x - 2;
x = x * 2;
x = x / 2;
x = x % 2;
x = x << 2;
x = x >> 2;
x = x & 2;
x = x | 2;
x = x ^ 2;

Fungsi Output

Fungsi printf()
Fungsi yang paling umum adalah digunakan dalam menampilkan data.

Berbagai jenis data dapat ditampilkan ke layar dengan memakai fungsi ini.
Format :
printf(string kontrol, daftar argumen);

String control terdiri dari 2 bentuk informasi


1. Karakter yang akan di cetak secara literal.
2. Data identifier = conversion specification.
Argumen1, argumen2 dll adl sesuatu yg akan mensubstitusi identifier bisa berupa.

1. variabel, atau
2. konstanta, atau
3. ekspresi / ungkapan yang dievaluasi dahulu sebelum nilainya dicetak.
Contoh :
main()
{
printf ("saya belajar C");

string

printf ('a');
character
printf ("dua ditambah dua sama dengan %d",4);
variabel
}
Desimal dan panjang field yang diberikan dapat diatur. Cara mengatur lebar
field dan jumlah desimal yang ingin dicetak cukup dengan memberikan format
tambahan pada %f .
Contoh program:
main()
{
float bil = 2.5, nomor = 30.756;
printf ("bilangan = %10.2f \n",bil);
printf ("nomor
= %10.2f, nomor);
Output :

bilangan = ------ 2.50


nomor

= ----- 30.76

Fungsi puts()
Digunakan khusus untuk menampilkan data string ke layar. Sifat fungsi ini

adalah string yang ditampilkan secara otomatis akan diakhiri dengan \n (pindah
baris)
Contoh :
#include <stdio.h>
main()
{
puts("UNIVERSITAS NEGERI SURABAYA");
}
Output :
UNIVERSITAS NEGERI SURABAYA

Fungsi putchar()
Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter ke

layar. Penampilan karakter tidak diakhiri dengan perpindahan baris.


Contoh :
putchar('A');
menghasilkan output yang sama dengan
printf("%c", 'A');

Fungsi output cout


Digunakan untuk menampilkan kelayar tanpa menggunakan string kontrol,

baik untuk string maupun identifier.Bentuk umum:


cout<<argumen1<<argumen2<<;
Argumen dapat berupa string, variabel atau suatu konstanta. Untuk menggunakan
fungsi cout diperlukan include iostream.h. Contoh: penggunaan fungsi cout :
void main()
{ int a=10; float b=78.9; char c='a';
cout<<a<<b<<c<<endl;
cout<<"a = "<<a<<" b = "<<b<<" c = "<<c<<"\n";
cout<<20; cout<<endl;
cout<<40.4; cout<<endl;
cout<<'D';}
Fungsi Input

Fungsi scanf()
Fungsi scanf() merupakan fungsi yang dapat digunakan untuk membaca

data dari keyboard dan memasukkan ke dalam program. Daftar argumen dapat
berupa satu

atau beberapa

argumen

dan harus

berupa

alamat. Untuk

menyatakan suatu alamat dari variabel di depan dapat ditambahkan tanda & ( tanda
& dinamakan sebagai operator alamat ). Contoh :
printf("masukkan bil. pertama : ");
scanf() ("%10.2f",&bil);
scanf() menggunakan pointer ke variabel
1. Jika variabelnya bertipe data dasar, maka gunakan &
2. Jika variabelnya adalah string, tidak menggunakan &

contoh program dengan scanf:


#include <stdio.h>
main()
{
float dolar,rupiah;
printf ("berapa dollar uang anda ?\n");
scanf ("%f", &dolar);
rupiah = dolar * 12000.00;
printf ("uang anda setara dengan ");
printf ("%2.2f rupiah \n",rupiah);
}
Output :
berapa dollar uang anda ?
1.2
uang anda setara dengan 2400.00 rupiah.

Fungsi gets()
Fungsi input khusus untuk string.

Contoh :
#include <stdio.h>
main()
{
char nama[20]; clrscr();
printf("Masukkan nama : "); gets(nama);
printf("\n Nama anda %s",nama);
}

Fungsi getch(), getche(), getchar()


Fungsi getch, getche dan getchar adalah input khusus untuk karakter.

getch() = input 1 karakter dan tidak ditampilkan


getche() = input 1 karakter, ditampilkan & tidak perlu Enter
getchar() = input 1 karakter, ditampilkan dan perlu Enter

Fungsi input cin

Bentuk umum :
cin>>argumen1>>argumen2>>;

Argumen berupa variable. Untuk menggunakan fungsi cin diperlukan include


iostream.h
Ada beberapa cara memasukkan data kedalam fungsi input cin yang mempunyai
beberapa argument:
1. Setiap argument dipisahkan dengan spasi
2. Setiap argument dipisahkan dengan enter
3. Pemisahan argument berdasar masukan sesuai dengan tipe data
argument masing-masing. Jika argumennya mempunyai tipe data
sama, cara ini tidak dapat digunakan.
Contoh:
#include <iostream>
using namespace std;
int main()
{
int a = 10, b = 20,c = 30, d = 40;
cout << "Enter four integers: ";
cin >> a >> b >> c >> d;
cout << "The numbers you entered are:"<< endl;
cout<<"a = "<<a<<", b = "<<b<<", c = " << c <<", d =
" << d;
return 0;
}
C. TUGAS PENDAHULUAN
1. Buatlah flowchart untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan
rumus
F = C * 1.8 + 32
2. Buat flowchart untuk menginputkan data berupa Nama, Umur dan Alamat.
Selanjutnya cetaklah data yang sudah diinputkan tadi
D. PRAKTIKUM
1. Buatlah program untuk tugas pendahuluan no 2 dengan menggunakan fungsi
input:
cin()
gets()
Cobalah dengan memasukkan nama lengkap saudara. Apakah ada perbedaan
hasilnya? Jelaskan.

2. Cobalah program berikut:


#include <iostream>
main()
{
int fahrenheit;
int celsius; cout << "Enter temperature in Fahrenheit: ";
cin >> fahrenheit;
cout << endl;
celsius = 5 / 9 * (fahrenheit - 32);
cout<< fahrenheit << " degree F = "<< celsius << " degree
C.";
}
Cobalah dengan memasukkan nilai Fahrenheit 32 dan 110. Bagaimanakan
hasilnya? Apakah sesuai dengan perhitungan manual? Jika tidak sesuai
perbaikilah program tersebut.

E. TUGAS PRAKTIKUM
Sebuah toko mengambil keuntungan 30% dari sebuah barang yang akan dijualnya.
Buatlah program, untuk menentukan berapa keuntungan yang didapat toko tersebut
ketika seorang pembeli membeli sejumlah tertentu barang tersebut.
Sebelum membuat program , analisa masalah tersebut dengan menentukan input,
proses dan outputnya serta buatlah flowchartnya.

PRAKTIKUM 3
KONDISIONAL

A. TUJUAN
1. Memahami konsep struktur dasar seleksi kondisi
2. Memahami aturan penulisan struktur kondisi
3. Dapat menerapkan struktur kondisi dalam algoritma penyelesain masalah
4. Dapat membuat program dengan struktur kondisi
B. DASAR TEORI
Struktur Kondisi If
Kondisi if memeriksa apakah suatu kondisi dinyatakan benar (true). Kondisi
merupakan suatu operasi logika. Jika kondisi bernilai true maka program akan
melakukan suatu pernyataan yang telah ditentukan untuk kondisi tersebut. Bentuk
umum dari kodisi if adalah:
If (kondisi) pernyataan
Contoh program dengan kondisi if:
void main()
{
int Num1, Num2;
cout<<masukkan nilai 1:;
cin>>Num1;
cout<<masukkan nilai 2:;
cin>>Num2;
if(Num1>Num2)
cout<<Num1<< + <<Num2<< = <<Num1+Num2;
}
Dalam contoh program diatas, diminta memasukkan 2 buah nilai integer,
kemudian dua buah nilai tersebut dibandingkan. Jika kondisi nilai pertama lebih
besar dari nilai kedua maka akan ditampilkan dilayar kedua nilai tersebut dan hasil
penjumlahan dari kedua nilai tersebut. Jika kondisi tersebut tidak terpenuhi tidak ada
yang dilakukan program.
Selain perbandingan dilakukan dengan angka, dapat juga dilakukan
perbandingan variabel dengan suatu konstanta. Berikut adalah contoh program
perbandingan yang dilakukan antara variabel dengan kostanta:

void main()
{
char c;
cout<<ketikkan sebuah huruf:;
cin>>c;
if(c==a||c=e||c==i ||c=o||c==u)
cout<<anda mengetik huruf vokal;
}
Dalam contoh diatas, program akan mencetak hasil dilayar hanya jika
masukan berupa karakter vokal. Masukan dibandingkan dengan karakter vokal a,
i, u, e, o. Karena perbandingan dilakukan terhadap banyak nilai dan akan
bernilai benar jika masukan merupakan salah satu vokal, maka digunakan operator
or (||).
Struktur Kondisi if-else
Kondisi if melakukan operasi hanya berdasar satu kondisi, selain kondisi
tersebut akan diabaikan. Pada pernyataan kondisi if-else, jika kondisi yang
diinginkan tidak terpenuhi maka akan dilakukan suatu operasi lain. Bentuk umum:
if(kondisi) pernyataan1 else pernyataan 2

Ketika dieksekusi, pertama yang dilakukan adalah memeriksa kondisi. Jika kondisi
bernilai true, sistem mengeksekusi pernyataan 1. Jika kondisi bernilai false sistem
akan mengeksekusi pernyataan 2 (sesudah else) dan kemudan melanjutkan dengan
sisa program.
Contoh program dengan struktur kondisi if-else:
void main()
{
int Num1, Num2;
cout<<masukkan nilai 1:;
cin>>Num1;
cout<< masukkan nilai 2:;
cin>>Num2;
if(Num1>Num2)
cout<<Num1<< - <<Num2<< = <<Num1-Num2;
else
cout<<Num2<< <<Num1<< = <<Num2-Num1;
}

Dalam contoh program diatas, diminta memasukkan 2 buah nilai integer, kemudian
dua buah nilai tersebut dibandingkan. Jika kondisi nilai pertama lebih besar dari nilai
kedua maka akan ditampilkan dilayar kedua nilai tersebut dan hasil pengurangan
nilai pertama di kurangi nilai kedua. Jika kondisi tersebut tidak terpenuhi maka akan
ditampilkan dilayar kedua nilai tersebut dan hasil pengurangan nilai kedua di kurangi
nilai pertama.
Selain dari if else, juga dikenal bentuk if else if. Contoh
penggunaan if .else if untuk mengimplementasikan program kalkulator sederhana
#include <stdio.h>
main()
{
int valid_operator = 1;
char operator;
float number1, number2, result;
cout<<"Masukkan 2 buah bilangan dan sebuah
operator"<<endl;
cout<<"dengan format : number1 operator number2"<<endl;
cin>>number1>>operator>>number2;
if(operator == '*')
result = number1 * number2;
else if(operator == '/')
result = number1 / number2;
else if(operator == '+')
result = number1 + number2;
else if(operator == '-')
result = number1 - number2;
else
valid_operator = 0;
if(valid_operator)
cout<<endl<<number1<< <<operator<< <<number2
<< = <<result;
else
cout<<"Invalid operator!";
}

Pernyataanswitch

Pernyataanswichadalahpernyataanyangdigunakanuntukmenjalankansalah
satupernyataan daribeberapakemungkinanpernyataan,berdasarkannilaidarisebuah
ungkapandannilaipenyeleksian.Pernyataanifelseifjamakdapatdibangundenganp
ernyataanswitch.BentukUmumnya:
switch(ekspresi)
{
case konstanta1: pernyataan1;
break;
case konstanta2: pernyataan2;
break;
casekonstanta3: pernyataan3;
break;
:
:
casekonstantaN:pernyataanN;
break;
default:
pernyataanlain;
}

Halhalyangperludiperhatikanadalah:
1. Dibelakangkeywordcaseharus

diikutiolehsebuahkonstanta,

tidakbolehdiikuti

olehekspresiataupunvariable.
2. Konstanta yang digunakan bertipe int atau char
3. keyword break digunakan untuk keluar dari switch..case
4. defaultdieksekusi jika konstanta1 sampai

konstanta N tidak ada yang

memenuhiekspresi.

Contoh penggunaan pernyataan switch untuk mengimplementasikan kalkulator


sederhana
#include <stdio.h>
main()
{
int valid_operator = 1;
char operator;
float number1, number2, result;
cou<<"Masukkan 2 buah bilangan dan sebuah operator\n";

cou<<"dengan format : number1 operator number2\n\n";


cin>>number1>>operator>>number2;
switch(operator) {
case '*' : result = number1
case '/' : result = number1
case '+' : result = number1
case '-' : result = number1
default : valid_operator =
}

* number2;
/ number2;
+ number2;
- number2;
0;

break;
break;
break;
break;

if(valid_operator)
cout<< number1<<operator<< number2<<result;
else
cout<<Invalid operator!\n";
}

C. TUGAS PENDAHULUAN
Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan
prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!

D. PRAKTIKUM
1. Perbaikilah program berikut sehingga memberikan hasil w = 21
const int SECRET = 5
main ()
{
int x, y, w, z;
z = 9;
if z > 10
x = 12; y = 5, w = x + y + SECRET;
else
x = 12; y = 4, w = x + y + SECRET;
cout << "w = " << w << endl;
}
2. Apakah kesalahan dari program berikut? Perbaikilah sehingga program dapat

dijalankan.Apakah hasilnya?
main ()
{
int a, b;
bool found;
cout << "Enter two integers: ;
cin >> a >> b;

if a > a *b && 10 < b


found = 2 * a > b;
else
{
found = 2 * a < b;
if found
a = 3;
c = 15;
if b
{
b = 0;
a = 1;
}
}
3. int main()
{
int testScore;
cout << "Enter the test score: ";
cin >> testScore;
cout << endl;
switch (testScore / 10)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5: cout << "The grade is
case 6: cout << "The grade is
case 7: cout << "The grade is
case 8: cout << "The grade is
case 9:
case 10:cout << "The grade is
default:cout << "Invalid test
}
return 0;
}
Pada program ini jika dijalankan :
1. Enter the test score: 110
Invalid test score.
2. Enter the test score: -70
Invalid test score.
3. Enter the test score: 75
The grade is C.
The grade is B.
The grade is A.
Invalid test score

F."
D."
C."
B."

<<
<<
<<
<<

endl;
endl;
endl;
endl;

A." << endl;


score." << endl;

Dari ketiga hasil running program, untuk input diluar 1 sampai 100
memberikan hasil yang benar. Tetapi untuk input 1 sampai 100 hasilnya
salah. Untuk input 75 harusnya tercetakThe grade is C.
Apakah kesalahan dari program tersebut? Cobalah perbaiki sehingga
mendapatkan hasil yang benar.

E. TUGAS PRAKTIKUM
1. Sebuah supermarket membuat prrogram promo, dimana jika seorang pembeli
mempunyai total pembelanjaan Rp. 100.000,- keatas maka akan mendapat
potongan sebesar 10 %. Tulislah sebuah program untuk menentukan harga yang
harus dibayar oleh seorang pembeli dimana total pembelanjaan diinputkan dari
keyboard.

2. Buatlah program untuk menghitung diskriminan dan mencari akar-akar dari


persamaan kuadrat : ax2 + bx + c = 0, dengan ketentuan sbb :
D = b2 - 4ac

Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu

: x1 = x2 = -b /

2a
Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu :
x1 = (-b + sqrt(D)) / 2a

x2 = (-b - sqrt(D)) / 2a
Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu :
x1 = -b / 2a + (sqrt(-D) / 2a) i
x2 = -b / 2a - (sqrt(-D) / 2a) i

Input

: a, b, c (float)

Output : Nilai Diskriminan serta nilai akar-akar persamaan tsb (x1& x2).
3. Buatlah program menggunakan switch-case untuk menampilkan menu dan
melakukan proses sbb :
Menu :

1. Menghitung volume kubus


2. Menghitung luas lingkaran
3. Menghitung volume silinder.

Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan.

PRAKTIKUM 4
PERULANGAN

A. TUJUAN
1. Memahami kapan keadaan pengulangan digunakan.
2. Mengenal beberapa perintah pengulangan dalam C
3. Mengerti masing-masing format perintah pengulangan dalam C.
4. Dapat menerapkan perintah pengulangan dalam algoritma penyelesaian
suatu masalah
5. Dapat membuat program dengan perintah pengulangan.

B. DASAR TEORI
Struktur Pengulangan while
Pengulangan while digunakan untuk mengeksekusi beberapa instruksi jika
kondisinya bernilai true. Sehingga jika kondisi awal bernilai falsemaka perintahperintah dalam whiletidak akan pernah dieksekusi.
Bentuk umum:

while (kondisi)
instruksi

Ketika dieksekusi, instruksi while pertama memeriksa

kondisi. Jika kondisi

memberikan nilai true , sistem akan mengeksekusi instruksi. Kemudian mengulangi


tes kondisi dan mengerjakan instruksi jika hasilnya masih true. Hal ini diulangi
sampai kondisi mengembalikan nilai false.
Contoh penggunaaan pengulangan dengan while dalam program untuk
menjumlahkan 10 angka yang dimasukan:
void main()
{ int number, sum = 0, count = 0;
while (count < 10)
{
cout<<"Masukkan angka";
cin>>number;
sum += number;
count++;
}
cout<<"jumlah: "<<sum;
}

Dalam contoh program diatas, perulangan dilakukan 10 kali dengan instruksi while
(count

<

10), count

<

10 adalah tes kondisi. Dalam hal ini tes

adalah:apakahcount lebih kecil dari 10 ? . Jika jawabannya ya maka instruksi di


pengulangan while dieksekusi. Jika tidak maka perulangan tidak dilakukan lagi
dan menuju perintah selanjutnya yaitucout<<"jumlah: "<<sum;

Struktur Pengulangan do while


Pengulangan do while juga mengeksekusi beberapa instruksi berulang jika kondisi yang
telah ditentukan dipenuhi. Dalam perulangan do while tes kondisi dilakukan pada

akhir pengulangan. Bentuk umum pengulangan do while :


do {
Instruksi instruksi
} while (kondisi)

Berikut ini adalah contoh program untuk menghitung nilai count dimulai
dengan 0, dengan penambahan 2 dan akan berhenti pada 15
main()
{
int Count = 0;
do {
cout<< Count * 2;
Count++;
} while( Count <= 15 );
}
Pada contoh program diatas, pertama kali akan dicetak Count * 2, kemudian
Count ditambahkan satu sebagai perubahan tes kondisi untuk menghitung berapa
kali pengulangan sudah dilakukan pengulangan. Tes kondisi dilakukan setelah
instruksi dalam pengulangan dilakukan dengan instruksi sebagai berikut ( Count
<= 15 ), jika hasil tes kondisi bernilai true maka pengulangan dikerjakan jika
bernilai false maka pengulangan berhenti.

Struktur Pengulangan For


Struktur pengulangan ketiga adalah pengulangan for. Pengulangan for
dapat mengeksekusi instruksi berulang sejumlah yang sudah ditentukan. Bentuk
umumnya adalah sebagai berikut:

for(inisialisasi;tes kondisi;perubahan nilai)


{
instruksi;
}
Inisialisasi merupakan pemberian nilai awal pada variabel yang akan dilakukan tes
kondisi. Tes kondisi digunakan untuk menentukan apakah pengulangan bisa
dikerjakan. Dan yang terakhir perubahan nilai yaitu perubahan nilai untuk tes kondisi
sehingga pengulangan bisa mencapai batas untuk berhenti.
Berikut adalah contoh pengulangan for untuk menghitung dari 1 sampai 10:
for (int count = 1; count <= 10; count++)
{
printf(%d\n, count);
}
Tes kondisi mungkin tidak berhubungan dengan variabel yang diinisialisi dan
diperbaharui.

Pada

contoh

ini

pengulangan

menghitung

sampai

pemakai

memberikan respon untuk menghentikan pengulangan. Contoh seperti berikut:


for (count = 1; response != 'T'; count++)
{
printf(%d\n, count);
printf("Lanjut (Y/T): ");
scanf(%c,&response);
}
Perulangan Bersarang (Nested Loop)
Pada sebuah perulangan didalamnya dapat terjadi perulangan juga, yang
dikenal dengan nested loop. Perulangan yang berada didalam (inner loop) harus
dieksekusi sejumlah perulangan yang berada diluarnya(outer loop).
Misalnya pada table perkalian berikut:

Pada baris 0 perkalian akan berulang dari kolom 0 sampai 9. Proses perkalian akan
diulang kembali untuk baris 1 dan seterusnya. Untuk permasalahan tersebut maka
diperlukan dua perulangan, perulangan yang berada didalam untuk mengulang
kolom dan perulangan diluar untuk mengulang baris. Berikut contoh programnya:

void main()
{ int row;
// Outer loop counter
int col; // Inner loop counter
for(row=1; row<=10; row++){
{ for(col=1; col<=10; col++)
cout << row*col << " ";
cout << endl;
}
}

C. TUGAS PENDAHULUAN
Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan
prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!
D. PRAKTIKUM
1. Program berikut mempunyai kesalahan dalam perulangan. Temukan
kesalahan tersebut dan perbaiki. Selanjutnya jalankan program yang sudah
diperbaiki, apakah hasil dari program tersebut?
void main()
(

int i = 0, value = 0;
while (i <= 20)
{
if (i % 2 == 0 && i <= 10)
value = value + i * i;
else if (i % 2 == 0 && i > 10)
value = value + i;
else
value = value - i;
}
cout << "value = " << value << endl;

2. Rubahlah program no 1 menjadi bentuk for loop!


3. Rubahlah program berikut menjadi bentuk do while loop
int main()
{
int counter,sum,N;
cout << "Enter the number of positive integers :;
cin >> N;
sum = 0;
for (counter = 1; counter <= N; counter++)
sum = sum + counter;

cout << "The sum of the first " << N


<< " positive integers is " << sum
<< endl;
return 0;
}
4. Program dibawah ini seharusnya menjumlahkan sejumlah bilangan integer
yang dimasukkan dan berhenti ketika bilangan yang dimasukkan adalah -1.
Kemudian menampilkan banyaknya data yang dimasukkan kecuali -1 dan
hasil penjumlahan semua data tersebut kecuali -1. Perbaikilah program
tersebut sehingga memberikan hasil yang benar. Cobalah dengan
memasukkan data 1 2 3 4 5 -1, jumlah data yang ditampilkan harusnya 5 dan
hasil penjumlahan adalah 15. apakah hasilnya sudah benar?
int main()
{
int total = 0,count = 0,number;
do{
cin >> number;
total = total + number;
count++;
}while (number != -1);
cout<<"The number of data read is "<< count << endl;
cout<<"The sum of the numbers entered is " << total;
return 0;
}
E. TUGAS PRAKTIKUM
1. Buatlah program untuk menampilkan semua bilangan genap yang terletak antara
20 sampai dengan 120, dengan menggunakan perulangan while.
2. Buat program untuk menampilkan seperti contoh berikut dengan perulangan for:
jika n = 5 hasil: 55555
4444
333
22
1
n diinputkan
3. Buat program untuk membuat deret 11 sampai nn dimana n diinputkan. Contoh
jika n =3, maka output : 1 4 27. Gunakan fungsi looping do while.

PRAKTIKUM 5
ARRAY

A. TUJUAN
1. Memahami pengertian array.
2. Memahami format penggunaan array dalam C..
3. Membuat program dengan menggunakan array.

B. DASAR TEORI
Array adalah sekelompok data yang mendeskripsikan sesuatu yang sejenis
dan disimpan ke dalam variabel dengan nama yang sama. Ada dua macam array
yaitu array satu dimensi dan array multi-dimensi.
Array Satu Dimensi

Deklarasi Arrray Satu Dimensi


Seperti variabel lain, bentuk umum pendeklarasian array adalah sebagai

berikut:
identifier nama[ukuran]
Identifer adalah tipe dari array. Kemudian diikuti dengan nama yang sesuai aturan C.
Tanda [ ], berisi ukuran maksimal yang dapat ditampung array.
Contoh deklarasi array satu dimensi seperti berikut:
char Nama[12];
float Grade[100];
double Angle[360];

Inisialisasi Array Satu Dimensi


Seperti variabel lain, array dapat diinisialisasi. Bentuk umum inisialisasi array

satu dimensi adalah sebagai berikut:


identifier name[dimension] = { element1, element2, , elementn};

Elemen1 menggambarkan elemen pertama dari array. Elemen dihitung dari 0


kemudian 1 dan seterusnya. Contoh inisialisasi array satu dimensi seperti berikut:
int angka[6] = { 0, 1, 2, 3, 4, 5 };
char Warna[5] = { 'H', 'I', 'T', 'A', 'M' };

Pemrosesan Array Satu Dimensi


Pada Bahasa C++ indeks dimulai dari 0. Untuk menelusuri array, harus

diketahui index yang dimiliki array. Untuk memproses array satu dimensi dapat
digunakan perulangan. Seperti dalam contoh berikut
void main()
{
float Distance[]= { 44.14, 720.52, 96.08, 468.78 };
cout<<"Anggota array"<<endl;
for(int i = 0; i < 4; ++i)
cout<<Distance [<<i<] = "<<Distance[i];
}
Array Dua Dimensi
Array berdimensi dua adalah array dari array berdimensi satu. Dengan kata
lain array dua dimensi adalah array dimana masing-masing anggotanya juga array.

Deklarasi Array Dua Dimensi


Array dua dimensi terdiri dari baris dan kolom. Masing-masing baris

menggambarkan suatu kategori dimana datanya mempunyai kategori lain yang


digambarkan pada kolom.
Karena array dua dimensi terdiri dari baris dan kolom maka, digunakan dua
tanda [ ]. Bentuk umum array dua dimensi:
identifier nama[ukuran1][ukuran2]
Identifer adalah tipe dari array. Kemudian diikuti dengan nama berdasar aturan C.
Nama diikuti dengan dua tanda [ ], dimana didalamnya terdapat dua ukuran tempat
yang dipesan untuk array tersebut. Ukuran1 menunjukkan ukuran baris yang
dipesan, sedang ukuran2 merupakan ukuran kolom dari array tersebut.
Contoh deklarasi array dua dimensi seperti berikut:
int MHSAngkProdi[4][5];
Deklarasi di atas menggambarkan jumlah mahasiswa dalam sebuah prodi pada
setiap angkatan. Ukuran 4 menggambarkan jumlah angkatan dan setiap angkatan
mempunyai 5 prodi.

Inisialisasi Array Dua Dimensi


Inisialisasi dilakukan sama seperti pada array satu dimensi. Karena array dua

dimesni digambarkan sebagai baris dan kolom maka jumlah elemen yang dimiliki
array dua dimensi dapat ditentukan dari hasil perkalian jumlah baris * jumlah kolom..
Bentuk umum inisialisasi array dua dimensi adalah sebagai berikut:
identifier nama[ukuran1][ukuran2] = { elemen1, elemen2, , elemenn};

Contoh inisialisasi array berdimensi dua seperti berikut:


float bil[2] [3] = { 1,2,3, 4,5,6}

Dari contoh inisialisasi tersebut maka berarti bahwa elemen bil [0] [0] = 1, elemen bil
[0] [1] = 2, elemen bil [0] [2] = 3, elemen bil [1] [0] = 4, elemen bil [1] [1] = 5, elemen
bil [1] [2] = 6. Berikut adalah contoh program dimana terdapat inisialisasi array dua
dimensi:
#include <iostream>
int main()
{
float Distance[2][4] = {44.14, 720.52, 96.08, 468.78,
6.28, 68.04, 364.55, 6234.12};
printf("Anggota array";
printf( "\nDistance [0][0] %f: " , Distance[0][0]);
printf("\nDistance [0][1] %f: " , Distance[0][1]);
printf("\nDistance [0][2] %f: " ,Distance[0][2]);
printf( "\nDistance [0][3] %f : " ,Distance[0][3]);
printf( "\nDistance [1][0] %f : " , Distance[1][0]);
printf( "\nDistance [1][1] %f : " , Distance[1][1]);
printf("\nDistance [1][2] %f : " ,Distance[1][2]);
printf( "\nDistance [1][3] %f : " ,Distance[1][3]);
return 0;
}
Agar elemen array pada contoh di atas mudah dibaca ketika inisialisasi, maka nilai
dapat dapat diberi tanda { } untuk membedakan setiap barisnya, seperti berikut
float Distance[2][4] =
{ {44.14, 720.52, 96.08, 468.78,}
{6.28, 68.04, 364.55, 6234.12 }};

//baris 1
//baris2

Pemrosesan Array Dua Dimensi


Untuk menelusuri array, harus diketahui berapa kolom dan baris yang dimiliki

array. Untuk memproses array dua dimensi dapat digunakan dua perulangan for.
Seperti dalam contoh berikut
int main()
{
float Dist[][4] =
{ { 44.14, 720.52, 96.08, 468.78 },
{ 6.28, 68.04, 364.55, 6234.12 }
};
Cout<<"Anggota array"<<endl;
for(int i = 0; i < 2; ++i)
for(int j = 0; j < 4; ++j)
cout<<Distance [<<i<<][<<j<<]:"<<Dist[i][j];
return 0;
}
C. TUGAS PENDAHULUAN
Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan
prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!

D. PRAKTIKUM
1. Cobalah

program

untuk

mengisi

dan

menampilkan

beberapa

variabel

arrayberikut
main()
{
int nilai[10];
int indeks;
/* menginisialisasi array supaya berisi 0 */
for(indeks=0; indeks<10; indeks++)
nilai[indeks] = 0;
nilai[0] = 197;
nilai[2] = -100;
nilai[5] = 350;
nilai[3] = nilai[0] + nilai[5];
nilai[9] = nilai[5] / 10;
--nilai[2];
for(indeks = 0; indeks < 10; indeks++)
printf("nilai[%d] = %d\n", indeks, nilai[indeks]);
}

a.Pada program diatas, jika kondisi pada for diganti menjadi


indeks = 1; indeks <= 10; indeks++
apakah yang terjadi? Mengapa?
b.Rubahlah program diatas sehingga menampilkan nilai secara terbalik dari
indeks terbesar ke indeks terkecil.
2. Cobalah program untuk menjumlahkan dua buah array berikut:
main()
{
int jml,total = 0, kolom, baris;
int bil[][5] = {
{1, 2, 35, 7, 10},
{6, 7, 4, 1, 0}
};
for(baris = 0; baris <2; baris++ )
for(kolom = 0; kolom < 5; kolom++ )
total += data[baris][kolom];
cout<<"Hasil penjumlahan 2 array tsb adalah = "<<total;
}
a. Rubahlah program diatas dimana nilai array bil diinputkan.
b. Selanjutnya rubahlah program dengan jumlah baris dan jumlah kolom
diinputkan. (buat maks baris dan kolom = 10)
3. Cobalah Array dua dimensi untuk membentuk transpose matrik berikut:
main()
{
float X[2][2], swap;
cout<<"Masukkan elemen matriks X"<<endl;
cout<<"X[0][0] : X[0][1] = ";
cin>>X[0][0]>>X[0][1]);
cout<<"X[1][0] : X[1][1] = ";
cin>>X[1][0]>>X[1][1];
swap = X[0][1];
X[0][1] = X[1][0];
X[1][0] = swap;
cout<<endl<<Transpose dari matriks X adalah:";
cout<<X[0][0]<< <<X[0][1]<<endl;
cout<<X[1][0]<< << X[1][1];
}

Rubahlah program diatas dengan jumlah kolom dan baris matriks diinputkan. Data
dari setiap item matriks diinputkan juga. Selanjutnya cari transposenya.

E. TUGAS PRAKTIKUM
1. Buat program untuk menampilkan deret Fibonacci sbb :
Contoh : jumlah deret = 10
0

13

21

34

2. Buat program untuk menginputkan n bilangan Kemudian cetaklah semua


bilangan dimana bilangan yang sama cukup dicetak satu kali. Contoh, jika
diinputkan : 1 2 3 1 3 4, maka output : 1 2 3 4.

3. Buat program daftar rapor siswa, dimana pada rapor setiap siswa terdapat daftar
nilai semua pelajaran, nilai rata-rata kelas setiap pelajaran. Jumlah mata
pelajaran pada sejumlah 5. Jumlah siswa diinputkan.
Contoh, jika data siswa :
Siswa
1
2
Maka output:
Rapor siswa 1:
Pelajaran 1: 80
Pelajaran 2: 70
Pelajaran 3: 90
Pelajaran 4: 100
Pelajaran 5: 65

80
70

Nilai Pelajaran
70
90
100
60
70
80

60
90

Rapor siswa 2
Rata-rata kelas : 75 Pelajaran 1: 80
Rata-rata kelas : 65 Pelajaran 2: 70
Rata-rata kelas : 80 Pelajaran 3: 90
Rata-rata kelas : 90 Pelajaran 4: 100
Rata-rata kelas : 75 Pelajaran 5: 65

Rata-rata kelas : 75
Rata-rata kelas : 65
Rata-rata kelas : 80
Rata-rata kelas : 90
Rata-rata kelas : 75

PRAKTIKUM 6
STRING

A. TUJUAN
1. Memahami tentang konsep string
2. Mengetahui cara mengakses elemen string
3. Mengetahui berbagai fungsi mengenai string dan dapat menerapkan dalam
program
4. Dapat membuat program dengan menggunakan string
B. DASAR TEORI
Untuk membuat suatu string diperlukan array karena C hanya mempunyai tipe
char.. Contoh deklarasi string:
char Name[20]; char BookTitle[40];
char WebReference[80]; char WeekDay[4];
Untuk inisialisasi variable string sama seperti inisialisasi data array. Contoh
inisialisasi string:
char Name[6] = { F', 'a', r', i', 's' };
atau dapat dilakukan seperti berikut:
char Name[12] = Faris";
Seperti array yang lain, masing-masing anggota array karakter dapat diakses
berdasar indeksnya.
Jika diperlukan daftar string lebih dari satu, maka digunakan array 2 dimensi,
dimana dimensi pertama merupakan jumlah string pada variabel tersebut dan
dimensi kedua menunjukkan banyaknya karakter untuk masing-masing string.
Contoh:
char NamaMhs[4][10] = { Aditya", Budi", Charles", Doni" };
NamaMhs adalah array dengan 4 string, dan tiap string mempunyai maksimal 9
karakter (+1 untuk karakter null-terminated).

Fungsi-fungsi untuk string

Fungsi strlen().

Untuk mengetahui banyaknya karakter pada suatu string.


syntax :

int strlen(const char* Value);

Fungsi strcat()

Untuk menambahkan dua string


syntax :

char *strcat(char *Destination, const char *Source);

Fungsi strncat()

Untuk menambahkan sejumlah karakter pada satu string kesuatu string yang lain.
Syntax:

char* strncat(char* Destination, const char* Source, int Number);

Fungsi strcpy()

Untuk menyalin satu string ke string yang lain.


syntax :

char* strcpy(char* Destination, const char* Source);

Fungsi strncpy()

Untuk menyalin sejumlah karakter dari string yang lain.


syntax:

char* strncpy(char* Destination, const char* Source, int Number);

Fungsi strcmp

Membandingkan 2 string
syntax:

int strcmp(const char* S1, const char* S2);

Fungsi stricmp()

Membandingkan dua string tanpa memandang huruf besar atau huruf kecil
syntax :

int stricmp(const char* S1, const char* S2);


Hasil perbandingan: negative jika S1 < S2
0 jika S1 dan S2 sama

positive jika S1 > S2


Fungsi strlwr()

Digunakan untuk mengkonversikan string ke huruf kecil


syntax :

char *strlwr(const char *S);

Fungsi strupr()

Untuk mengkonversikan string ke huruf besar.


syntax :

char *strupr(const char *S);

Fungsi strchr()

Memeriksa apakah huruf pertama pada string sesuai dengan karakter tertentu.
syntax :

char* strchr(const char* S, char c);

Fungsi strrchr()

Memeriksa apakah huruf terakhir pada string sesuai dengan karakter tertentu
syntax :

char* strrchr(const char* S, char c);

C. TUGAS PENDAHULUAN
Buatlah analisa dari kedua tugas praktikum dibawah, tentukan input, output dan
prosesnya. Selanjutnya buat flowchart dari 2 tugas praktikum dibawah!

C. PRAKTIKUM
Cobalah program program dibawah ini :
1. Memasukkan data string dari keyboard
#define MAKS 15
main()
{
char nama[MAKS];
printf("Masukkan nama Anda : ");
gets(nama);
printf("\nHalo, %s.

Selamat belajar string.\n", nama);

}
2. Variasi dalam menginisialisasi string.
main()
{
char kompiler_c[] =
{'V','i','s','u','a','l',' ','C','+','+','\0'};
char kompiler_C[] = "Visual C++";
puts(kompiler_c);
printf("%s\n", kompiler_C);
}
3. Menyalin isi string1 ke string2 menggunakan fungsi strcpy().
main()
{
char str1[80];
char str2[]="ABCDE";
strcpy(str1, str2);
//menyalin isi str2 ke str1
printf("String pertama adalah : %s\n", str1);
printf("String kedua adalah
: %s\n", str2);
}

4. Menghitung suatu string masukan menggunakan fungsi strlen().


#define MAKS 256
main()
{
char kal[MAKS];
printf("Masukkan kalimat yang akan dihitung
panjangnya :\n");
fgets(kal, sizeof kal, stdin);
printf("\nPanjang string tsb = %d karakter\n",
strlen(kal));
}
5. Menggabungkan isi string1 dengan string2 menggunakan fungsi strcat().
#define PJG 15
main()
{
char str1[PJG], str2[PJG];
strcpy(str1, "sala");
strcpy(str2, "tiga");

//str1 diisi "sala"


//str2 diisi "tiga"

strcat(str1, str2);

//tambahkan str2 ke akhir st1

printf("str1 --> %s

str2 --> %s\n", str1, str2);

6. Membandingkan isi string1 dengan string2 menggunakan fungsi strcmp().


main()
{
char str1[]="HALO";
char str2[]="Halo";
char str3[]="HALO";
printf("Hasil pembandingan %s dengan %s --> %d\n",
str1, str2, strcmp(str1, str2));
printf("Hasil pembandingan %s dengan %s --> %d\n",
str2, str1, strcmp(str2, str1));
printf("Hasil pembandingan %s dengan %s --> %d\n",
str1, str3, strcmp(str1, str3));
}

7. Mencari karakter dalam sebuah string menggunakan fungsi strchr().


main()
{
char str[]="ABcde";
char *hasil1;
char *hasil2;
hasil1 = strchr(str, 'B');
hasil2 = strchr(str, 'X');
printf("Dari string ABcde\n");
printf("Mencari karakter B = %s\n", hasil1);
printf("Mencari karakter X = %s\n", hasil2);
}
E. TUGAS PRAKTIKUM
1. Buat program untuk membalik string masukan. (Petunjuk : gunakan fungsi
strlen() untuk mendapatkan panjang kalimat)
Contoh :
Kalimat yang mau dibalik : Saya sedang belajar C
Hasil pembalikan kalimat : C rajaleb gnades ayaS
2. Buat program untuk memasukkan data nama mahasiswa

dalam satu kelas.

Kemudian cetaklah daftar nama mahasiswa yang mempunyai huruf pertama


sesuai masukan.

PRAKTIKUM 7
FUNGSI

A. TUJUAN
1. Memahami konsep dasar dan definisi fungsi
2. Mengerti dan memahami cara deklarasi dan pemanggilan fungsi
3. Membuat algoritma yang memuat fungsi
4. Membuat program dengan mengaplikasikan fungsi untuk menyelesaikan suatu

masalah
D. DASAR TEORI
Deklarasi Fungsi
Bentuk umum deklarasi fungsi adalah sebagai berikut:
ReturnValue NamaFungsi(Argumen);

Jika diinginkan melakukan suatu permintaan fungsi tanpa menginginkan


suatu hasil, maka fungsi dikualifikasikan sebagai void dan tidak mempunyai return
value. Deklarasinya seperti berikut:
void NamaFungsi(Argumen);

Tetapi jika suatu fungsi diharapkan akan memberikan nilai tertentu maka return
value berupa tipe data tertentu, seperti int, float, double, atau char. Berikut adalah
contoh deklarasi fungsi yang mempunyai return value :
char NamaFungsi(Argumen);
float NamaFungsi(Argumen);
Nama sebuah fungsi mengikuti aturan penamaan variable dalam C.
Fungsi yang tidak membutuhkan sesuatu maka dalam () kosong. Fungsi
dapat memerlukan lebih dari satu kebutuhan. Kebutuhan fungsi ini dinamakan
argumen. Argumen didefinisikan dengan tipe data dan nama argumen.

Mendefinisikan Fungsi
Bentuk umum pendefinisian fungsi :
ReturnValue NamaFungsi(Argumen) {Badan fungsi};
Contoh sebuah fungsi sederhana:
void Message() {printf(contoh Fungsi dalam C);

PEMANGGILAN FUNGSI
Untuk memanggil satu fungsi dari fungsi lain, dituliskan nama dari fungsi
tersebut serta dicantumkan argument jika diperlukan.

Contoh:
void main()
{ message(); //pemanggilan fungsi message()
}

PENEMPATAN FUNGSI DALAM PROGRAM


Ada dua cara untuk menempatkan definisi fungsi dalam program :
1. Definisi fungsi diletakkan setelah fungsi yang memanggil.
Untuk kondisi ini fungsi harus dideklarasikan terlebih dahulu sebelum dilakukan
pemanggilan. Bentuknya sebagai berikut:
ReturnValue FungsiC();
main()
{
FungsiC();
}
ReturnValue FungsiC()
{
Badan FungsiC
}

2. Deklarasi dan definisi fungsi dilakukan sebelum dilakukan pemanggilan.


ReturnValue FungsiC()
{
Badan FungsiC
}
main()
{
FungsiC();
}

Teknik Pengembalian Nilai


void
Fungsi yang tidak mempunyai return value dideklarasikan dan didefinisikan
sebagai void. Sebuah fungsi dapat bertipe void jika tidak diharapkan akan
memberikan nilai tertentu.
Return Value
Jika sebuah fungsi dideklarasikan untuk mengembalikan suatu nilai tertentu,
maka kompiler harus mengetahui nilai apa yang akan dihasilkan fungsi. Nilai yang
dihasilkan harus sesuai dengan tipe yang dideklarasikan. Bentuk umum dari fungsi
dengan pengembalian nilai tertentu adalah sebagai berikut:
ReturnValue FungsiC()
{
Pernyataan-pernyataan;
return Nilai;
}
void main()
{
variabel = FungsiC();
}

Nilai yang merupakan pengembalian nilai dalam suatu fungsi dapat berupa :
1.

Konstanta

2.

Variabel

3.

Ekspresi

Teknik Pengiriman Argumen

Untuk melakukan pekerjaannya, terdapat fungsi yang memerlukan argumen.


Pengiriman Argumen berdasarkan Nilai
Untuk menggunakan fungsi didalam fungsi lain maka harus dilakukan

pemanggilan fungsi dengan memanggil nama fungsi dan memberikan argumen yang
diperlukan. Hanya nama dari argumen yang diperlukan tanpa tipe datanya.
Contoh program sebagai berikut:
float jumlah(float, float);
main()
{
float a, b,c;
printf("Masukkan nilai a : ");
scanf("%f", &a);
printf("Masukkan nilai b : ");
scanf("%f", &b);
c = jumlah(a, b);
printf("\nHasil penjumlahan a + b = %g\n", c);
}
float jumlah(float x, float y)
{
return(x + y);
}

/ * definisi fungsi * /

Pengiriman Argumen dengan Referensi


C mengijinkan fungsi yang dipanggil untuk memodifikasi nilai argumen yang

dikirimkan jika diperlukan. Jika diperlukan fungsi yang dipanggil untuk merubah nilai
dari argumen yang dikirimkan dan memberikan hasil nilai yang sudah dirubah maka
argumen harus dikirimkan menggunakan referensinya.
Untuk mengirimkan argumen sebagai referensi, ketika mendeklarasikan
fungsi, nama argumen diawali dengan &. Argumen yang dikirimkan sebagai
referensi biasa 0, satu, atau lebih atau bisa juga semua argumen.

Berikut adalah contoh program untuk menukar nilai dengan argumen


berdasar referensi::
void tukar (&int, &int);
main()
{
int a,b;
a = 88;
b = 77;
printf("Nilai sebelum pemanggilan fungsi\n");
printf("a = %d
b = %d\n", a, b);
tukar(a,b);
printf("\nNilai setelah pemanggilan fungsi\n");
printf("a = %d
b = %d\n", a, b);
}
void tukar(int &x, int &y)
{
int z;
z = x;
x = y;
y = z;
printf("\nNilai di akhir fungsi tukar()\n");
printf("x = %d
y = %d\n", x, y);
}
C. TUGAS PENDAHULUAN
Buat Flowchart untuk tugas praktikum dibawah.
E. PRAKTIKUM
1. Cobalah program untuk memanggil fungsi berulang-ulang berikut :
void cetak_pesan(void);
main()
{
int i;
for(i=1; i<=5; i++)
cetak_pesan();
printf("\n");
}
void cetak_pesan()
{
printf("Cetak pesan ini\n");}
Rubahlah program diatas dengan banyaknya perulangan berdasar input.

2. Perbaikilah program untuk menghitung nilai bilangan kuadrat berikut.


void square(float); //prototype function
main()
{
printf("%f, %f, %f\n", square(1.), square(2.),square(3.));
}
void square(float x)
{
cout<<x * x;
}
3. Perbaikilah program untuk mengkonversi besaran sudut dari derajat ke radian
berikut.
#define PI 3.14159f
float radian(float);

//Prototype

main()
{
float derajat;

//Main function

printf("Masukkan besar sudut dlm derajat : ");


scanf("%f", &derajat);
printf("%g derajat=%g radian\n", derajat, radian(derajat));
}
float radian(float x)
{
float hasil;

//The function

hasil = x / 180.0f * PI;


}
4. Cobalah program untuk menampilkan bilangan kuadrat secara random berikut.
Apakah kegunaan perintah srand()dan rand()?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
squareInt(int);
randomInt(int);
main()
{
int rs;

srand(time(NULL));
rs = squareInt(randomInt(10));
printf("Random Square = %d\n", rs);
}
randomInt(int y)
{
return 1 + rand() % y;
}
squareInt(int x)
{
return x * x;
}
5. Perbaikilah program untuk mencari bilangan terkecil berikut.
float minimum (float);
main()
{
float a, b, kecil;
printf("Masukkan nilai a : ");
scanf("%f", &a);
printf("Masukkan nilai b : ");
scanf("%f", &b);
kecil = minimum(a);
printf("\nBilangan terkecil antara %g dan %g adalah
%g\n\n", a, b, kecil);
}
float minimum(float x, y)
{
if (x < y)
return(x);
else
return(y);
}
6. Cobalah dua program dibawah. Apakah perbedaannya? Apakah pengaruh
penggunaan tanda & (alamat) pada parameter fungsi untuk penukaran dua
bilangan ? Jelaskan

a.
void tukar (int, int);
main()
{
int a = 88, b = 77;
printf("Nilai sebelum pemanggilan fungsi\n");
printf("a = %d
b = %d\n", a, b);
tukar(a,b);
printf("\nNilai setelah pemanggilan fungsi\n");
printf("a = %d
b = %d\n", a, b);
}
void tukar(int x, int y)
{
int z;
z = x;
x = y;
y = z;
printf("\nNilai di akhir fungsi tukar()\n");
printf("x = %d
y = %d\n", x, y);
}
b.
void tukar (int *, int *); /* prototype fungsi */
main()
{
int a,b;
a = 88;
b = 77;
printf("Nilai sebelum pemanggilan fungsi\n");
printf("a = %d
b = %d\n", a, b);
tukar(&a,&b);

/* alamat a dan alamat b */

printf("\nNilai setelah pemanggilan fungsi\n");


printf("a = %d
b = %d\n", a, b);
}
void tukar(int *px, int *py)
{

int z;
z = *px;
*px = *py;
*py = z;
printf("\nNilai di akhir fungsi tukar()\n");
printf("x = %d
y = %d\n", *px, *py);
}
7. Cobalah program berikut. Mengapa variabel a pada main program dan pada
fungsi mempunyai nilai berbeda?
int OddEvenTest(int);
main()
{
int a, hasil;
a = 5;
hasil = OddEvenTest(a);
printf(\n Dalam main program :\n);
printf("a = %d; hasil = %d\n", a, hasil);
}
OddEvenTest(int b)
{
int a;
a = b % 2;
printf("nilai a dalam fungsi= %d\n", a);
return a;
}
F. TUGAS PRAKTIKUM
1. Buatlah fungsi untuk menghitung jumlah dan rata-rata dari tiga bilangan riil.
Tulislah sebuah program untuk menghitung jumlah luas dua bujursangkar. Rumus
bujursangkar terletak didalam fungsi.

2.

Buatlah suatu fungsi ganjil() yang mengembalikan nilai 1 jika argumen yang

diberikan adalah bilangan ganjil dan mengembalikan nilai 0 jika argumen tsb bukan
bilangan ganjil.

PRAKTIKUM 8
POINTER

A. TUJUAN
1. Memahami tentang konsep dari variabel pointer
2. Memahami tentang pointer dalam fungsi
3. Dapat menerapkan komputer dalam menyelesaikan masalah
4. Dapat membuat program dengan variabel pointer.
B. DASAR TEORI
Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek
lain. Pada kenyataan yang sebenarnya, variabel pointer berisi alamat dari suatu
obyek lain (yaitu obyek yang dikatakan ditunjuk oleh pointer). Sebagai contoh, px
adalah variabel pointer dan x adalah variabel yang ditunjuk oleh px. Kalau x berada
pada alamat memori (alamat awal) 1000, maka px akan berisi 1000.
Mendeklarasikan Variabel Pointer
Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut :
tipe *nama_variabel

Sebagai contoh :
int px;
char *pch1, *pch2;

/ *contoh 1 */
/ *contoh 2 */

Contoh pertama menyatakan bahwa pxadalah variabel pointer yang menunjuk ke


suatu data bertipe int, sedangkan contoh kedua masing pch1 dan pch2 adalah
variabel pointer yang menunjuk ke data bertipe char.

Mengatur Pointer agar Menunjuk ke Variabel Lain


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

dengan menempatkannya di depan nama variabel.

Sebagai contoh, bila x

dideklarasikan sebagai variabel bertipe int, maka&xberarti alamat dari variabel x.


Adapun contoh pemberian alamat x ke suatu variabel pointer px (yang
dideklarasikan sebagai pointer yang menunjuk ke data bertipe int) yaitu :
px = &x;
Pernyataan di atas berarti bahwa px diberi nilai berupa alamat dari variabel x.
Setelah pernyataan tersebut dieksekusi barulah dapat dikatakan bahwa px
menunjuk ke variabel x.

Mengakses Isi Suatu Variabel Melalui Pointer


Jika suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh
pointer tersebut dapat diakses melalui variabel itu sendiri (pengaksesan langsung)
ataupun melalui pointer (pengaksesan tak langsung). Pengaksesan tak langsung
dilakukan dengan menggunakan operator indirection (tak langsung) berupa simbol *
(bersifat unary). Contoh penerapan operator * yaitu :
*px
yang menyatakan isi atau nilai variabel/data yang ditunjuk oleh pointer px .
Contoh:
main()
{
int y, x = 87;
/* x & y bertipe int */
int *px;
/* var pointer yang menunjuk ke data yang bertipe int */
x = 87;
px = &x;
y = *px;

/* px diisi dengan alamat dari variabel x */


/* y diisi dengan nilai yg ditunjuk oleh px */

printf("Alamat x
= %p\n", &x);
printf("Isi px
= %p\n", px);
printf("Isi x
= %d\n", x);
printf("Nilai yang ditunjuk oleh px = %d\n", *px);
printf("Nilai y
= %d\n", y);
}

Contoh eksekusi :
Alamat x
= 0012FF78
Isi px
= 0012FF78
Isi x
= 87
Nilai yang ditunjuk oleh px = 87
Nilai y
= 87
Mengakses dan Mengubah isi Suatu Variabel Pointer
Contoh berikut memberikan gambaran tentang pengubahan isi suatu variabel
secara tak langsung (yaitu melalui pointer).
main()
{
float d = 54.5, *pd;
printf("Isi d mula-mula = %g\n", d);
pd = &d;
*pd += 10;

// memberikan alamat dari d ke pd

printf("Isi d sekarang

= %g\n", d);

}
hasil eksekusi :
Isi d mula-mula = 54.5
Isi d sekarang = 64.5
Adapunpd = &d; berarti pdmenunjukke variabeld.Sedangkan pernyataan
berikutnya *pd = *pd + 10; berarti jumlahkan yang ditunjuk pd dengan 10
kemudian berikan ke yang ditunjuk oleh pd, atau identik dengan pernyataan
d = d + 10;

Pointer dan Array


Hubungan antara pointer dan array pada C sangatlah erat. Sebab
sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer.
Pembahasan berikut akan memberikan gambaran hubungan antara pointer dan
array. Misalnya dideklarasikan di dalam suatu fungsi
int jumlah[3] = { 40, 45, 64 };
int *ptJml;
Kemudian diberikan instruksi

ptJml = &jumlah[0];
maka ptJml akan berisi alamat dari elemen array jumlah yang berindeks nol.
Instruksi di atas bisa juga ditulis menjadi
ptJml = jumlah;
sebab nama array tanpa tanda kurung menyatakan alamat awal dari array.
Pointer sering digunakan untuk variable string karena string merupakan array,seperti
pada contoh berikut
main()
{
/* pkota menunjuk konstanta string SURABAYA */
char *pkota = SURABAYA;
printf(String yang ditunjuk oleh pkota = );
puts(pkota);
}

Contoh eksekusi :
String yang ditunjuk oleh pkota = SURABAYA
Pointer Sebagai Parameter Fungsi
Jika parameter fungsi bertipe pointer, maka parameter tersebut merupakan
parameter pass by reference. Sehingga nilai suatu variabel internal dapat diubah
oleh fungsi yang dipanggil. Sebagai contoh dapat dilihat pada program berikut.
void naikkan_nilai(int *x, int *y);
main()
{
int a = 3;
int b = 7;

printf("SEMULA : a = %d

b = %d\n", a, b);

naikkan_nilai(&a, &b);
printf("KINI
: a = %d

b = %d\n", a, b);

void naikkan_nilai(int *x, int *y)


{
*x = *x + 2;
*y = *y + 2;
}

Contoh hasil :
Semula : a = 3
Kini
: a = 5

b = 7
b = 9

Dynamic Allocation
Kompailer dapat menyediakan memori ketika program dieksekusi, dengan
mendefinisikan identifier baru ke variable pointer sbb:
NamaPointer = new identifier;
Contoh:
ptrNum = new int;
jika tidak diperlukan lagi dapat dihapus dengan perintah delete.
delete NamaPointer;
Contoh:
delete ptrNum;
Variabel dinamik dibuat dan dihancurkan saat program berjalan. Berikut contoh
potongan program pembentukan variable dinamik.
int *p ;
p = new int ;
*p = 25 ;

//
//
//
//

deklarasi variable pointer integer


pointer p menunjuk ke suatutempat di
memori yang akan berisi data integer
tempat yang ditunjuk pointer p diisi 25

Gambaran perintah diatas seperti berikut:

Jika sudah tidak diperlukan, isi memori perlu dihapus agar dapat digunakan untuk
yang lain. Dapat digunakan operator delete seperti berikut:
delete p ;

//Menghapus variabel dinamik yang ditunjuk p

Setelah dihapus, variable pointer p kembali menjadi variabel pointer yang menunjuk
ke

NULL.

Pointer

dapat

digunakan

lagidengan

mendefinisikan

kembali

menggunakan perintah new.


Berikut contoh program dengan variable dinamik
void main()
{
int Umur;
int *Age;
Age = & Umur;
*Age = 15;
cout<<"Umur = << Umur;
cout<<"*Age
=" <<*Age;
Age = new int;
*Age = 17;
cout<<"Umur = << Umur;
cout<<"*Age
= << *Age
delete Age;
}

Dynamic array
Array dapat dibentuk saat program dijalankan, hal ini dinamakan dynamic
array. Untuk membuat dynamic arraydigunakan operator new. Contoh seperti berikut
:
int *p;

//mendeklarasikan variable pointer int p

p = new int[10];

// p menunjuk ke suatu tempat di memori


//yang berisi 10 tempat yang berurutan

Operator new diatas membuat array bertipe int dan berukuran 10 dan p menunjuk
ke alamat array tersebut. Contoh perintah selanjutnya :
*p = 25;
p++;
*p = 35;

// nilai 25 akan disimpan pada array indeks pertama.


// p akan bergeser ke indeks selanjutnya
// nilai 35 disimpan ke lokasi array indeks kedua

Dengan perintah incerement dan decrement, pointer dapat bergeser naik atau turun
pada indeks array.

Saat dynamic array tidak digunakan lagi dapat dihapus dengan perintah delete.
Contoh
Delete [] p;
Dynamic array dapat juga diisi tanpa menggeser letak pointer. Untuk itu dapat
diisi dengan menggunakan indeks pada pointer sama seperti pada aray biasa.
Contoh:
p[0] = 25;
p[1] = 35;
C. TUGAS PENDAHULUAN
1. Misalkan terdapat deklarasi variable seperti berikut :
int *num; int N;
Tuliskan perintah untuk mengisi variable N melalui variable pointer num

2. Misalkan terdapat deklarasi variable seperti berikut : int *num;


a. Tuliskan perintah C++ untuk membuat dynamic array berukuran 10
b. Buatlah perintah untuk memasukkan data pada dynamic array tersebut
c. Tuliskan perintah untuk menghapus dynamic array tersebut.
D. PRAKTIKUM
1. Cobalah program untukmengakses isi suatu variabel melalui pointer berikut.
Perbaikilah jika terdapat kesalahan.
main()
{
int *pu;
int nu;
int u = 1234;
pu = &u;
nu = *pu;
cout<<Alamat dari u
cout<<Isi pu
cout<<Isi u
cout<<Nilai yang ditunjuk oleh pu
cout<<Nilai nu
}

=
=
=
=
=

"<<
"<<
<<
"<<
"<<

*u<<endl;
pu<<endl;
u<<endl;
*pu<<endl;
nu;

2. Cobalah program untuk mengubah isi suatu variabel melalui pointerberikut.


Perbaikilah jika terdapat kesalahan.
main()
{
float d = 54.5;
int *pd;
cout<<"Isi d mula-mula = "<<d<<endl;
pd = &d;
*pd += 10;
cout<<"Isi d sekarang

= <<d;

3. Dimanakah letak kesalahan program berikut? Mengapa? Coba perbaiki sehingga


bisa dijalankan.
void main()
{ int *p;
int *q;
p = new int[5];
*p = 2;
for (int i = 1;
p[i] = p[i - 1]
q = p;
delete [] p;
for (int j = 0;
cout << q[j] <<
cout << endl;
}

i < 5; i++)
+ i;

j < 5; j++)
" ";

4. Cobalah program di bawah. Bagaimana nilai a dan b sebelum dan sesudah


pemanggilan fungsi? jelaskan.
void naikkan_nilai(int *x, int *y);
main()
{
int a = 3;
int b = 7;

printf("SEMULA : a = %d

b = %d\n", a, b);

naikkan_nilai(&a, &b);
printf("KINI
: a = %d

b = %d\n", a, b);

void naikkan_nilai(int *x, int *y)


{
*x = *x + 2;
*y = *y + 2;
}
E. TUGAS PRAKTIKUM
1. Buat program untuk menampilkan sebaris string seperti contoh berikut ;
Unesa Surabaya
menggunakan variable pointer (pointer to string).

2. Buat program untuk mencetak huruf keempat ( V ) dari kata :


UNIVERSITAS dengan menggunakan variabel pointer .

3. Buat program untuk memasukkan dan mencetak nilai sejumlah mahasiswa.


Gunakan variable pointer untuk menyimpan nilai tersebut. Jumlah mahasiswa
tergantung dari input

Anda mungkin juga menyukai