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
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.
sebuah
variabel
digunakan
dalam
program
maka
harus
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
%f
%c
%s
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
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
/* 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
tanda minus
tanda plus
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--;
OPERATOR
URUTAN
Tertinggi
()
Terendah
*)
++
+=
--
*=
/=
%=
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
Operator Kombinasi
C
menyediakan
operator
untuk
memendekkan
penulisan
operasi
penugasan.
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);
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 :
= ----- 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
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 &
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);
}
Bentuk umum :
cin>>argumen1>>argumen2>>;
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
memenuhiekspresi.
* 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;
F."
D."
C."
B."
<<
<<
<<
<<
endl;
endl;
endl;
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.
: 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 :
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
Dalam contoh program diatas, perulangan dilakukan 10 kali dengan instruksi while
(count
<
10), count
<
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.
Pada
contoh
ini
pengulangan
menghitung
sampai
pemakai
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;
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
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];
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.
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};
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
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]);
}
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
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 strlen().
Fungsi strcat()
Fungsi strncat()
Untuk menambahkan sejumlah karakter pada satu string kesuatu string yang lain.
Syntax:
Fungsi strcpy()
Fungsi strncpy()
Fungsi strcmp
Membandingkan 2 string
syntax:
Fungsi stricmp()
Membandingkan dua string tanpa memandang huruf besar atau huruf kecil
syntax :
Fungsi strupr()
Fungsi strchr()
Memeriksa apakah huruf pertama pada string sesuai dengan karakter tertentu.
syntax :
Fungsi strrchr()
Memeriksa apakah huruf terakhir pada string sesuai dengan karakter tertentu
syntax :
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.
}
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);
}
strcat(str1, str2);
printf("str1 --> %s
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);
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()
}
Nilai yang merupakan pengembalian nilai dalam suatu fungsi dapat berupa :
1.
Konstanta
2.
Variabel
3.
Ekspresi
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 * /
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.
//Prototype
main()
{
float derajat;
//Main function
//The function
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);
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 */
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;
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;
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);
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 ;
//
//
//
//
Jika sudah tidak diperlukan, isi memori perlu dihapus agar dapat digunakan untuk
yang lain. Dapat digunakan operator delete seperti berikut:
delete p ;
Setelah dihapus, variable pointer p kembali menjadi variabel pointer yang menunjuk
ke
NULL.
Pointer
dapat
digunakan
lagidengan
mendefinisikan
kembali
Dynamic array
Array dapat dibentuk saat program dijalankan, hal ini dinamakan dynamic
array. Untuk membuat dynamic arraydigunakan operator new. Contoh seperti berikut
:
int *p;
p = new int[10];
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;
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
=
=
=
=
=
"<<
"<<
<<
"<<
"<<
*u<<endl;
pu<<endl;
u<<endl;
*pu<<endl;
nu;
= <<d;
i < 5; i++)
+ i;
j < 5; j++)
" ";
printf("SEMULA : a = %d
b = %d\n", a, b);
naikkan_nilai(&a, &b);
printf("KINI
: a = %d
b = %d\n", a, b);