MODUL 1
PENGETAHUAN DASAR PEMROGRAMAN
A. TUJUAN
a. Mahasiswa
mengetahui dasar – dasar penulisan program komputer
b. Mahasiswa
memahami struktur bahsa C/C++
c. Mahasiswa
dapat mengetahui dan bisa menggunakan tipe data tertentu dalam pembuatan
program
d. Mahasiswa
bisa memasukan dan mengambil data dari program
B. DASAR TEORI
1. STRUKTUR
BAHASA PEMROGRAMAN C/C++
<preprosesor
directive>
{
<statement>;
<statement>;
}
|
#include <iostream.h>
#include <conio.h>
void main(){
cout<<"selamat pagi"<<endl;
getch();
}
|
1.1. Header File
Adalah
berkas yang berisi prototype fungsi.
definisi konstanta. dan definisi variable.Fungsi
adalah kumpulan code C yang diberi nama dan ketika nama tersebut dipanggil maka
kumpulan kode tersebut dijalankan.
Contoh
: stdio.h , iostream.h, conio.h, math.h dll.
1.2. Preprosesor Directive(#include)
Adalah salah satu pengarah prepocessor directive yang
tersedia pada C++. Preprocessor
selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk umumnya
:
# include<nama_file>
|
Tidak diakhiri dengan
tanda semicolon, karena bentuk
tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris tersebut
menginstrusikan kepada run yang
menyisipkan file lain dalam hal ini file yang berakhiran .h(file header).
# include
<iostream.h>
|
diperlukan
pada program yang melibatkan objek cout.
|
# include <conio.h>
|
diperlukan
bila melibatkan clrscr(),yaitu perintah untuk membersihkan layar.
|
# include <iomanip.h>
|
diperlukan
bila melibatkan setw() yang bermanfaat untuk mengatur lebar dari suatu
tampilan data.
|
# include <math.h>
|
diperlukan
pada program yang menggunkan operasi sqrt () yang bermanfaat untuk operasi
matematika kuadrat.
|
1.3. Fungsi main ()
Fungsi
ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi. Melihat bentuk seperti itu dapat
kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main().
Berarti dalam setiap pembuatan program utama, maka dapat dipastikan seorang
pemrogram menggunakan minimal sebuah fungsi. Pembahasan lebih lanjut mengenai
fungsi akan diterangkan kemudian. Yang sekarang coba ditekankan adalah kita
menuliskan program utama kita didalam sebuah fungsi main().
1.4. Statement
Statement adalah
instruksi atau perintah kepada suatu program ketika program itu dieksekusi
untuk menjalankan suatu aksi. Setiap statement
diakhiri dengan titik-koma (;).
1.5. Tanda Semicolon
Tanda semicolon “ ; ” digunakan untuk
mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah
tanda semicolon.
1.6. Komentar
Komentar
tidak pernah dirun oleh runr. Dalam C++ terdapat 2 jenis
komentar, yaitu:
Jenis 1
: /* Komentar anda diletakkan di dalam ini
Bisa
mengapit lebih dari satu baris */
Jenis 2 ://
Komentar anda diletakkan disini (hanya bisa perbaris)
2.
Tipe
Data C/C++
Pada umumnya,
program komputer bekerja dengan memanipulasi objek(data) di dalam memori.
Objek(data) yang akan diprogram bermacam-macam jenis atau tipenya misalnya
nilai numerik(angka), karakter(huruf), kumpulan karakter, dll.
Suatu tipe
menyatakan jenis data yang akan dimanipulasi dalam program, gunanya untuk
mendefinisikan objek yang akan diprogram. Suatu tipe diacu dari namanya.
Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan dalam domain nilai, Tipe
data dikelompokkan menjadi tipe dasar dan tipe bentukan.
2.1. Tipe Dasar
Tipe yang
dapat langsung dipakai(angka-angka atau karakter) karena sudah didefinisikan
sebelumnya oleh pemeroses bahasa.
2.1.1. Bilangan Bulat
Bilangan yang tidak mengandung
pecahan desimal.
Nama
Tipe : Integer
Domain
Nilai :
Secara teoritis tak terbatas dari
-∞ s.d +∞. Pada algoritma dapat dibatasi tergantung kebutuhan untuk objek,
misalnya untuk jam [0..23]. Dalam implementasinya pada bahasa pemrograman, tipe
integer punya rentang nilai terbatas untuk menghemat memory.
· Contoh
nilai : 300, 0, -1000, 113010038, -24
· Contoh
objek : Nim, Jam, Menit, Detik
2.1.2. Bilangan Riil
Bilangan yang mengandung pecahan
desimal
Nama Tipe : Real
Domain Nilai :Secara teoritis tak
terbatas dari -∞ s.d +∞.
· Contoh
nilai : 2.8 , -0.39, 4.24 , 57.567, -102.00
· Contoh
objek : Nilai ujian
2.1.3. Bilangan Logika
Nama Tipe : Boolean
Domain Nilai : Benar(True--1)
atau Salah(False--0)
Konstanta : True dan False
2.1.4. Karakter
Karakter
tunggal yang diapit oleh tanda petik satu.
Nama
Tipe : char
Domain
Nilai :
Huruf
alfabet (’a’..’z’ dan ’A’..’Z’)
Tanda
baca (’!’, ’?’ , ’,’ , ’.’)
Angka
’0’ , ’1’ ,..., ’9’
Karakter
khas seperti ’#’ , ’&’ , ’%’ , ’@’ , ’*’ , dll
·
Contoh nilai : ’l’ , ’p’ , ’+’ , ’6’,
’A’
Tipe
Dasar
|
Ukuran
Memori (byte)
|
Jangkauan
Nilai
|
Jumlah
Digit Presisi
|
Char
|
1
|
-128
hingga +127
|
-
|
Int
|
2
|
-32768
hingga +32767
|
-
|
Long
|
4
|
-2.147.438.648
hingga 2.147.438.647
|
-
|
Float
|
4
|
3,4E-38
hingga 3,4E38
|
6-7
|
Double
|
8
|
1.7E-308
hingga 1.7E308
|
15-16
|
Long
double
|
10
|
3.4E-4932
hingga 1.1E4932
|
19
|
2.2. Tipe bentukan
Tipe
yang dibentuk(dan diberi nama) dari tipe dasar atau dari tipe lain yang sudah
dikenal, bahkan dapatt didefinisikan sendiri oleh pemrogram. Macam tipe
bentukan :
2.2.1. String (kumpulan karakter) Deretan karakter dengan panjang tertentu
Nama
Tipe : String
Domain
Nilai : Satu atau lebih karakter yang diapit oleh tanda petik tunggal
· Contoh
nilai : ’Apa kabar’,’Teknik Informatika’,’A234’, ’Ramayana’,dll.
· Contoh
objek : Nama, Alamat
2.2.2. Tipe
Struktur
Suatu
tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari
data yang disebut field. Field – field tersebut digabungkan
menjadi satu tujuan untuk kemudahan dalam operasi.
3.
VARIABLE
Variable adalah
suatu pengenal (identifier) yang
digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda
dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai
kebutuhan. Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan (assignment statement),
yang mempunyai sintaks sebagai berikut :
Nama dari suatu variable
dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
1. Tidak boleh sama dengan nama keyword
reserved, function yang dimiliki bahasa
2. Maksimum 32 karakter. Bila lebih, maka karakter selebihnya tidak akan
diperhatikan oleh computer.
3. Case
sensitive membedakan huruf besar dan huruf kecil.
4. Karakter
pertama harus huruf atau(_), dan selebihnya boleh huruf.
5. Tidak boleh
mengandung spasi atau blank.
4. OPERATOR
Operator
adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu
operasi atau manipulasi.
4.1. Operator
Penugasan
Operator
Penugasan (Assignment operator) dalam bahasa C++ berupa tanda sama
dengan (“=”).
Contoh :
nilai = 80;
A = x * y;
Penjelasan :
variable“nilai”
diisi dengan 80 dan
variable“A”
diisi dengan hasil perkalian antara x dan y.
4.2. Operator
Aritmatika
Operator aritmatika adalah operator yang digunakan
untuk pengolahan aritmatika seperti penjumlahan dua bilangan bulat atau
penjumlahan dua bilangan pecahan, pengurangan dua bilangan bulat atau
pengurangan dua bilangan pecahan, perkalian dua bilangan bulat atau perkalian
dua bilangan pecahan, pembagian dua bilangan bulat atau pembagian dua bilangan
pecahan, mencari sisa pembagian bilangan bulat (modulo), penambahan
nilai variable dengan satu (increment),
dan pengurangan nilai variable dengan
satu (decrement).
Operator
|
Deskripsi
|
Contoh
|
+
|
Penjumlahan
(add)
|
m + n
|
-
|
Pengurangan
(Substract)
|
m – n
|
*
|
Perkalian
(Multiply)
|
m * n
|
/
|
Pembagian
(Divide)
|
m / n
|
%
|
Sisa
Pembagian Integer (Modulus)
|
m % n
|
_
|
Negasi
(Negate)
|
-m
|
NB :
Operator seperti operator negasi (-) disebut unary operator, karena membutuhkan hanya satu buah operand Operator % (modulus) digunakan untuk mencari sisa pembagian antara dua bilangan.
Misalnya : 9 % 2 = 1, 9 % 3 = 0
#include
<iostream.h>
#include
<conio.h>
void
main(){
int m = 90, n
= 50;
cout<<m<<"
+ "<<n<<" = "<<m+n<<endl;
cout<<m<<"
- "<<n<<" = "<<m-n<<endl;
cout<<m<<"
* "<<n<<" = "<<m*n<<endl;
cout<<m<<"
/ "<<n<<" = "<<m/n<<endl;
cout<<m<<"
% "<<n<<" = "<<m%n<<endl;
cout<<"-"<<m<<"
= "<<-m<<endl;
getch();
}
|
Karena
tipe datanya adalah int, maka 90/50=1, supaya dapat merepresentasikan nilai yang
sebenarnya, gunakan tipe data float. Cara
lain penulisan dengan menggunakan operator aritmatika :
m = m + n ↔ m += n
m = m - n ↔ m -= n
m = m * n ↔ m *= n
m = m /
n ↔ m /= n
m = m % n ↔ m %= n
4.3. Operator
Hubungan (perbandingan)
Operator
Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah
nilai atau variable). Operator
hubungan dalam bahasa C++
Operator
|
Arti
|
Contoh
|
|
= =
|
Sama
dengan (bukan assignment)
|
x= =y
|
Apakah
x sama dengan y
|
!=
|
Tidak
sama dengan
|
x != y
|
Apakah
x tidak sama dengan y
|
>
|
Lebih
besar
|
x>y
|
Apakah
x lebih besar dari y
|
<
|
Lebih
kecil
|
x<y
|
Apakah
x lebih kecil dari y
|
>=
|
Lebih
besar atau sama dengan
|
x>=y
|
Apakah
x lebih dari sama dengan y
|
<=
|
Lebih
kecil atau sama dengan
|
x<=y
|
Apakah
x kurang dari sama dengan y
|
#include
<iostream.h>
#include
<conio.h>
void main (){
int m = 6, n = 10;
if (m == n){
cout<<m<<"sama dengan"<<n<<endl;
}
else if(m != n){
cout<<m<<"tidak
sama dengan"<<n<<endl;
}
else if(m > n){
cout<<m<<"lebih
besar dari"<<n<<endl;
}
else if(m < n) {
cout<<m<<"lebih
kecil dari"<<n<<endl;
}
getch ();
}
|
4.4. Operator
Naik dan Turun ( increment dan decrement )
Operator increment ↔++
Operator decrement↔--
Catatan:
untuk operator
++ dan -- adalah salah satu contoh operator yang hanya memerlukan satu operand (unary operator).
Operator ++ dan -- akan menyatakan operasi yang berbeda jika operator
diletakkan sebelum atau sesudah operand.
#include <iostream.h>
#include <conio.h>
void
main() {
int m = 55, n = 77;
cout<<"m =
"<<m<<", n = "<<n<<endl;
++m;--n;
cout<<"m =
"<<m<<", n = "<<n<<endl;
m++;n--;
cout<<"m =
"<<m<<", n = "<<n<<endl;
getch();
}
|
4.5. Operator
Logika
Operator logika adalah operator yang digunakan untuk
membandingkan dua buah nilai logika. Nilai logika adalah nilai benar atau
salah. Jika sebelumnya pada operator relasi yang dibandingkan adalah nilai dari
data apakah benar (1) ataukah salah (0), maka pada operator logika bisa
dikatakan yang dibandingkan adalah logika hasil dari operator relasi.
Operator
|
Fungsi
|
Contoh
|
Hasil
|
Penjelasan
|
!
|
NOT
|
!(5>4)
|
0(salah)
|
Fungsi
NOT digunakan untuk membalik hasil
logika.
|
&&
|
AND
|
(3>=3)&&(2
!=(4/2))
|
0(salah)
|
Fungsi
AND akan memberikan nilai benar (1)
jika kedua nilai logika yang dibandingkan bernilai benar (1).
|
||
|
OR
|
(3>=3)||(2
!= (4/2))
|
1(benar)
|
Fungsi
OR akan memberikan nilai benar (1)
jika salah satu nilai logika yang dibandingkan bernilai benar (1).
|
A
|
B
|
!B
|
A&&B
|
|
||
1
|
1
|
0
|
1
|
1
|
||
1
|
0
|
1
|
0
|
1
|
||
0
|
1
|
0
|
0
|
1
|
||
0
|
0
|
1
|
0
|
0
|
#include <stdio.h>
#include <conio.h>
main() {
printf("%d", ! (5 > 4));
printf("\n%d", (3 >= 3) && (2
!= (4/2)));
printf("\n%d",(3 >= 3) || (2 !=
(4/2)));
getch();
}
|
4.6. Operator Bitwise
Operator bitwise
digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memory.
Operator
|
Fungsi
|
Contoh
|
Penjelasan
|
&
|
AND
|
A&B
|
AND bitwise dari A dan B
|
|
|
OR
|
A |B
|
OR bitwise dari A dan B
|
^
|
XOR
|
A ^ B
|
XOR bitwise dari A dan B
|
~
|
Complement 1
|
~ A
|
Mengubah bit 0 menjadi
1,dan sebaliknya
|
>>
|
Shift right
|
A >> 2
|
Bit-bit dari A digeser
ke kanan sebanyak 2 posisi bit
|
<<
|
Shift left
|
B << 1
|
Bit-bit dari B digeser
ke kiri sebanyak 1 posisi bit
|
#include
<iostream.h>
#include <conio.h>
void main(){
int m = 78, n = 23;
cout<<m<<" <<2"<<"
= "<<(m<<2)<<endl;
cout<<m<<"
>>2"<<" = "<<(m>>2)<<endl;
cout<<m<<" &
"<<n<<" = "<<(m&n)<<endl;
cout<<m<<" |
"<<n<<" = "<<(m|n)<<endl;
cout<<m<<" ^
"<<n<<" = "<<(m^n)<<endl;
cout<<" ~ "<<m<<"
= "<<~m<<endl;
getch();
}
|
C.
PERMASALAHAN
1). Buatlah program untuk mengkonversikan nilai dari
kilometer ke meter dan nilai inci ke centimeter secara statis!
2). Buatlah program untuk mengkonversikan nilai dari
kilometer ke meter kemudian dikonversikan lagi ke cm secara dinamis!
Berikut
ini adalah data permasalahan yang telah di buat menjadi sebuah program :
a) Konversi
nilai dari kilometer ke meter dan nilai inci ke centimeter secara statis.
#include <iostream.h>
#include <conio.h>
void main()
{
float a=2.5;
float b=3;
float m=1000*a;
cout<<"Jadi konversi nilai jarak dalam
satuan 2,5 km menjadi m adalah ="<<m<<endl;
float cm=2.54*b;
cout<<"Jadi konversi nilai 3 inci
menjadi cm adalah = "<<cm<<endl;
getch();
}
|
Dengan
hasil run sebagai berikut :
b) Konversi
nilai dari kilometer ke meter kemudian dikonversikan lagi ke centimeter secara
dinamis.
#include <iostream.h>
#include <conio.h>
void main()
{
float a;
cout<<"Masukkan nilai yang ingin di
konversikan = ";
cin>>a;
float m =1000*a;
float cm =100*m;
cout<<"Jadi nilai konversi km ke m
adalah "<<m<<"sedangkan konversi nilai m ke cm adalah
"<<cm<<endl;
getch ();
}
|
Dengan
hasil run sebagai berikut :
D. ANALISA PROGRAM
1.
Analisis program perbaris.
a). Konversi nilai dari kilometer ke meter
dan nilai inci ke centimeter secara statis pada permasalahan pertama.
#include<iostream.h>
|
v #include<iostream.h>
diperlukan pada program yang melibatkan
objek cout.
#include<conio.h>
|
v #include<conio.h>
merupakan file header program yang mendeklarasikan fungsi “getch()”.
void main ()
{
|
v Fungsi
utama adalah bagian yang pertama kali dieksekusi. Fungsi utama ini tersusun
atas kata main lalu diikuti dengan
tanda ().
v Kurung kurawal buka “{” adalah pembuka sebuah
program yang diakhirnya akan di tutup menggunakan kurung kurawak tutup “}”.
float a=2.5;
|
v Mendeklarasikan variabel bertipe data float,
dimana nilai a = 2,5.
float b=3;
|
v Mendeklarasikan variabel bertipe data float, dimana nilai b = 3.
float m=1000*a;
|
v Tanda (*) adalah operator yang digunakan untuk
pengolahan aritmatika dalam hal ini adalah perkalian nilai 1000 dengan nilai
variabel a yang kemudian disimpan kedalam variabel m yang bertipe float.
cout<<"Jadi konversi nilai jarak dalam
satuan 2,5 km menjadi m adalah = "<<m<<endl;
|
v cout merupakan
sebuah objek di dalam C++ yang digunakan untuk mencetak data ke layar.
cout<<"Jadi konversi nilai jarak dalam satuan 2,5 km menjadi m
adalah = "<<m<<endl; merupakan proses menampilkan ke layar
berupa kalimat " Jadi konversi nilai jarak dalam satuan 2,5 km menjadi m
adalah =" dan “<<” adalah operator, yang disertai dengan penyisipan
nilai m. “endl” merupakan karakter yang dipergunakan untuk mengakhiri baris.
float cm=2.54*b;
|
v Mendeklarasikan
proses perkalian nilai 2.54 dengan nilai variabel b yang kemudian disimpan
kedalam variabel cm yang bertipe float
cout<<"Jadi konversi nilai 3 cm menjadi
inci adalah = "<<cm<<endl;
|
v Proses
menampilkan kalimat “Jadi konversi nilai 3 cm menjadi inci adalah” pada layar run, yang disertai dengan penyisipan
nilai variabel cm.
getch();
}
|
v Digunakan
untuk menahan layar run agar tidak menutup saat dieksekusi.
Cara kerja :
Pada saat program di run, cout secara
otomatis akan menampilkan kalimat “ Jadi
konversi nilai jarak dalam satuan 2,5 menjadi m adalah = 2500” pada layar.
Nilai 2500 diperoleh dari syntax float m=1000*a; dimana nilai 1000
dikalikan dengan nilai variabel a kemudian disimpan ke dalam variabel m yang
bertipe data float. Setelah itu, <<m<< akan menyisipkan
nilai hasil perkaliannya kedalam kalimat yang ditampilkan dan endl akan mengakhiri baris.
Kemudian proses akan dilanjutkan pada statement kedua dengan proses yang
sama seperti yang terjadi pada statement pertama. cout pada statement kedua akan menampilkan kalimat
“Jadi konversi nilai 3 inci menjadi cm adalah = 7.62“. Nilai 7.62 diperoleh dari syntax float cm=2.54*b; dimana
nilai 2.54 dikalikan dengan nilai variabel b
kemudian disimpan ke dalam variabel cm yang bertipe data float.
Setelah itu, <<cm<< akan menyisipkan nilai hasil perkaliannya
kedalam kalimat yang ditampilkan dan
endl akan mengakhiri baris.
b). Konversi nilai dari kilometer ke meter
kemudian di konversikan lagi ke centimeter secara dinamis pada permasalahan
kedua.
#include<iostream.h>
|
v #include<iostream.h> diperlukan pada
program yang melibatkan objek cout.
#include<conio.h>
|
v #include<conio.h>
merupakan file header program yang mendeklarasikan fungsi “getch()”.
void main ()
{
|
v Fungsi
utama adalah bagian yang pertama kali dieksekusi. Fungsi utama ini tersusun
atas kata main lalu diikuti dengan tanda ().
v Kurung
kurawal buka “{” adalah pembuka sebuah program yang diakhirnya akan di tutup
menggunakan kurung kurawak tutup “}”.
float a;
|
v Mendeklarasikan
variabel a yang bertipe data float.
cout<<"Masukkan nilai yang ingin di
konversikan = ";
|
v Merupakan
proses menampilkan ke layar berupa kalimat " Masukkan nilai yang ingin di
konversikan =".
cin>>a;
|
v Merupakan
proses memasukkan nilai variabel a dengan menggunakan keyboard.
float m =1000*a;
|
v float
digunakan pada pendeklarasian data bertipe bilangan
desimal. Tanda (*) adalah operator yang digunakan untuk pengolahan aritmatika
dalam hal ini adalah perkalian nilai 1000 dengan nilai variabel a yang kemudian
disimpan kedalam variabel m yang bertipe float.
float cm =100*m;
|
v Tanda (*) adalah operator yang digunakan untuk
pengolahan aritmatika dalam hal ini adalah perkalian nilai 100 dengan nilai
variabel m yang kemudian
disimpan kedalam variabel cm
yang bertipe float.
cout<<"Jadi nilai konversi km ke m
adalah = "<<m<<"sedangkan
konversi nilai m ke cm adalah "<<cm<<endl;
|
v Merupakan
proses menampilkan kalimat “Jadi nilai konversi km ke m adalah = “ yang
disertai dengan penyisipan nilai variabel m ke layar, dan merupakan proses
menampilkan kalimat “sedangkan konversi nilai m ke cm adalah =” yang disertai
dengan penyisipan nilai variabel cm.
getch();
}
|
v Digunakan untuk menahan layar run agar tidak
lansung hilang saat dieksekusi.
Cara kerja :
Pada saat program di run, cout pada statement
pertama secara otomatis akan menampilkan kalimat “Masukkan nilai yang ingin
dikonversikan” di layar. cin akan memasukkan
angka yang kita input dengan menggunakana keyboard pada layar run, sebagai contoh masukkan angka 3.
Setelah itu, cout pada statement kedua akan menampilkan kalimat “Jadi
nilai konversi km ke m adalah 3000 sedangkan konversi nilai m ke cm adalah
300000” di layar. Nilai 3000 diperoleh dari syntax float m=1000*a;
dimana nilai 1000 dikalikan dengan nilai variabel a dan disimpan ke dalam
variabel m yang bertipe data float. Kemudian hasil dari perkalian
tersebut akan dimasukkan ke syntax float cm=100*m;, proses ini akan menghasilkan
nilai 300000 di layar. Sedangkan <<m<< dan <<cm<< akan
memasukkan hasil perkalian 3000 dan 300000 kedalam kalimat yang ditampilkan.
E.
KESIMPULAN
1. Seorang programmer harus tepat dalam menentukan
penggunaan tipe data untuk variable karena
sifat dari masing - masing tipe data berbeda-beda, baik
dalam pemanggilannya maupun dalam bit datanya.
Type
|
Keterangan
|
Void
|
Diartikan
sebagai type data dan tanpa pengembalian
|
Int
|
Bilangan
bulat (Integer)
|
Float
|
Bilangan
pecahan (Floating point)
|
DAFTAR
PUSTAKA
Kadir,Abdul.2005.Algoritma dan Pemrograman dengan Menggunakan C++.Yogyakarta:
ANDI.
Frieyadie.2006.Panduan
Pemrograman C++.Yogyakarta: ANDI.
0 komentar:
Post a Comment