SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
STMIK PPKIA PRADNYA
PARAMITA
Kampus : Jl. Laksda Adi Sucipto No. 249-A Malang - 65141 Telp. (0341) 412699, Fax. (0341) 412782
Official Website : www.stimata.ac.id E-mail : seket@stimata.ac.id
MODUL PRAKTIKUM
ALGORITMA DAN
PEMROGRAMAN I
MODUL 1 : Membuat Aplikasi Sederhana
A. Latar belakang
Pada modul 1 ini membahas mengenai pengenalan dan mengaktifkan program C++ yang nantinya banyak digunakan untuk membuat aplikasi serta mempraktekan pembuatan aplikasi sederhana dalam program C++.
B. Tujuan
Pada akhir pembahasan, diharapkan Mahasiswa mampu membuat sebuah aplikasi sederhana program C++.
C. Dasar teori
Mengaktifkan C++
Setelah anda mengerjakan latihan ini ada bisa mengaktifkan program C++ dari DOS prompt
Buka Bahasa C++ di direktori komputer anda. Pilih menu Start pada komputer anda kemudian clik menu Programs. Dari menu Program kemudian clik menu MS-DOS Prompt. Setelah kita clik menu MS-DOS Prompt akan muncul C:\Windows. Pindahkan direktori dari direkori C:\ ke Direktori yang memuat C++. Misal jika C++ berada diderektori D. Aktivekan direktori D terlebih dahulu yakni ketik C:\WINDOWS:> D: Kemudian tekan tombol ENTER , lalu ketik D:\CD CPP\BIN , kemudian tekan tombol [ENTER]. Sehingga direktori aktive sekarang adalah D:\CPP\BIN. Untuk menjalankan C++, ketik TC kemudian tekan tombol ENTER, maka akan muncul kotak Editor C++. Setelah itu, ketik baris perintah berikut pada monitor anda masing-masing.
Struktur Utama C++
Untuk belajar pemrograman C++ dengan baik, kita harus mengenal struktur dasar atau bangun (frame) pemrograman C++ itu sendiri. Struktur C program adalah
void main() {
}
Main(), penggunaan kata main() adalah untuk menunjukkan bahwa main() adalah nama fungsi.
void, disertakan pada sebuah fungsi, jika fungsi tersebut tidak memerlukan nilai pengembalian harga dari hasil kerja fungsi itu sendiri. Tanda { adalah permulaan/awal program, sendangkan }
adalah tanda untuk mengakhiri atau menutup program
1. // Latihan pertama
Penulisan program dapat dilakukan beberapa cara, namun dari beberapa cara penulisan tersebut dapat digolongkan pada dua model yakni, penulisan yang mudah di pahami dan yang sulit dipahami. Sulit dipahami disini apabila kita ingin men-debuge program atau membaca alur dari program yang disusun kurang rapi. Namun penulisan program seperti ini tidak mempengaruhi proses compiler C++ saat di compile atau dengan kata lain tidak masalah bagi engine C++. Permasalahannya terletak pada kitanya sendiri yang kesulitan memahami alaur program. Penulisan dapat anda simak pada program dibawah ini..
Penulisan program yang kurang baik #include <iostream.h>
void main ()
Penulisan program yang baik
#include <iostream.h> void main ()
{
cout << "I like this Program!"; }
Untuk mengetahui program yang kita tulis benar atau salah, kita lakukan pengkompilan file tersebut dengan cara pilih menu COMPILE atau tekan tombol [ALT+F9]. Setelah itu akan muncul kotak compiling. Jika ada yang salah maka muncul pesan pada kotak Message, yang menunjukkan dimana letak kesalahan dari penulisan program. Jika program kita benar maka pada block warna biru muncul pesan SUCCESS.
Untuk menjalankan program, pilih tombol RUN atau tekan tombol [ALT + R]. Untuk mengetahui hasil progam diatas pilih tombol menu WINDOWS, OUTPUT. Menutup jendela tampilan hasil pilih menu WINDOWS, CLOSE.
Lakukan perubahan dengan menambah perintah clrscr() dari program diatas. clrscr() adalah perintah untuk menghapus layar monitor.
#include <iostream.h> void main ()
{
clrscr();
cout << "I like this Program!"; }
setelah itu tekan tombol ALT+F9, amati pada massage bok anda. Ternyata pada massage box muncul pesan Function ‘crlscr’ should have a prototype. Artinya fungsi clrscr() yang kita tambahkan diatas harus disertakan pula file headernya yaitu [CONIO.H] pada program.
Program yang lengkap adalah sebagai berikut;
1. //Nama File <LTH01.CPP>
#include <iostream.h>
#include <conio.h>
void main () {
clrscr();
cout << "I like this Program!"; getch();
}
Pertanyaan :
1. Apa kegunaan file Iostream.h
2. Hilangkan tanda titik koma pada baris ke lima dari program diatas, muncul pesan apa pada saat program diatas dicompile?
3. Apa artinya.
4. Apa kegunaan perintah pada baris ke tujuh dari LTH01.CPP.
5. Ubah nama file LTH01.CPP menjadi LTH01.C compile file tersebut catat pesan apa yang ada. Jelaskan arti pesan tersebut.
2. //Nama File <LTH02.CPP>
int main () {
clrscr();
cout << "Hello World! "; cout << "I'm a C++ program"; getch();
return 0; }
Tugas :
1. Tulislah perbedaan yang ada, jika dua program diatas (LTH02 & LTH02B) dijalankan. 2. Buatlah program yang menampilkan indentitas kemahasiswaan anda di STIMATA
Nim :
Nama :
Tempat / Tgl-Lahir :
Jurusan :
Semester :
Alamat Di Malang :
Nama File <LTH02B.CPP>
#include <iostream.h> #include <conio.h>
int main () {
clrscr();
cout << "Hello World! ";<< “\n” cout << "I'm a C++ program"; getch();
MODUL 2 : Variabel, Type Data, Operator dan Aritmatik
Operator
A. Latar belakang
Pada modul 2 ini membahas penggunaan Type Data, Variabel, Operator dan Aritmatik yang telah dibahas pada saat teori. Perlunya melakukan praktek dan mengerjakan latihan sebagai penambahan pemahaman mahasiswa secara skill, selain pemahan secara abstrak.
B. Tujuan
Pada akhir pembahasan, diharapkan Mahasiswa mampu memahami variabel, type-type data, operator dan aritmatic operator dalam C++.
C. Dasar teori
Komentar
Komentar dituliskan untuk memeberikan penjelasan terhadap baris kode atau blok kode program. Komentar tersbut tidak mengerjakan sesuatu apapun dan tidak ikut dikompile pada saat proses compile program dijalankan.
Komentar dalam C++ terdapat dua model // Tanda untuk baris Komentar
/* Tanda untuk blok komentar */
Contoh-contoh penggunaan komentar bisa dilihat pada program <LTH03.CPP>
Variabel
Mari kita berpikir sejenak, jika saya menanyakan ke pada anda tentang angka 25 yang tesimpan di otak anda sekarang. Kemudian saya menyuruh anda untuk menyimpan lagi angka 5 di otak anda juga. Sekarang otak anda mempunyai dua angka yaitu 25 dan 5. Jika saya bertanya pada anda, tambahkan angka 2 pada angka pertama (25) kemudian kurangi dengan 1. Anda dapat menghitung menjadi 27 (25 + 2) dan hasil akhir adalah 26 (27 -1) dan menyimpannya pada memori anda. Sehingga otak anda dibebani untuk menyimpan 4 macam angka.
Proses kesemuanya itu, komputer dapat melakukan sebagai mana kita melakukannya dengan melibatkan dua variabel. Proses yang sama dapat diekspresikan dalam C++ dengan instruksi sebagai berikut
a = 25; b = 5; a = a + 2; hasil = a – 1;
Dari illustrasi diatas, akhirnya kita dapat menyimpulkan, bahwa yang dimaksud dengan variabel itu adalah “nama bagian (identitas) di memori yang digunakan untuk menyimpan sebuah nilai yang telah ditentukan”
Lingkup dari variabel
Global variabel
Lokal variabel
[image:7.595.108.523.356.765.2]Variabel yang dideklarasikan dalam sebuah fungsi. Jenis variabel lokal ini, hanya bisa diakses oleh fungsi yang memuat variabel itu sendiri. Lihat gambar dibawah;
Gambar 1
Type Data
Name
Bytes* Description
Range*
Char
1
Character or integer 8 bits
length.
signed: -128 to 127
unsigned: 0 to 255
Short
2
integer 16 bits length.
signed: -32768 to 32767
unsigned: 0 to 65535
Long
4
integer 32 bits length.
signed:-2147483648 to
2147483647
unsigned: 0 to 4294967295
Int
*
Integer. Its length
traditionally depends on the
length of the system's Word
type, thus in MSDOS it is 16
bits long, whereas in 32 bit
systems (like Windows
9x/2000/NT and systems
that work under protected
mode in x86 systems) it is
32 bits long (4 bytes).
See short, long
Float
4
floating point number.
3.4e + / - 38 (7 digits)
double 8
double precision floating
point number.
1.7e + / - 308 (15 digits)
Long
double
10
long double precision
floating point number.
1.2e + / - 4932 (19 digits)
Bool
1
Boolean value. It can take
one of two values: true or
false.true
or
false # include <iostream.h>int bangun; char nama; char string[20]
main() {
int panjang; int lebar;
cout << “ masukkan panjang sisi”; cin >> panjang;
cout << “ masukkan lebar sisi”; cin >> lebar;
}
Global variabel
Wchar_t 2
Wide character. It is
designed as a type to store
international characters of a
two-byte character set. .
[image:8.595.95.536.57.144.2]wide characters
Tabel 1
Constanta (#define)
Kita dapat menuliskan sebuah nilai, dimana nilai tersebut tidak berubah oleh proses yang ada
Contoh
#define lebar 100 #define Panjang 500 #define PI 3.1415925
Konstan (const)
Contoh
const int Lebar = 100; const int Panjang = 500;
OPERATOR
Setelah memahami tentang eksistensi dari variabel dan contanta, kita dapat memulai mengoperasikannya keduannya dalam program. Untuk tujuan itu, C++ menyediakan operator-operator yang dikelompokkan dalam kata kunci dan simbul-simbul khusus. Kata kunci dan simbul-simbul tersebut perlu untuk dipahami sebagai dasar operasi bahasa C++
Assignation (=)
Tanda sama dengan adalah tanda operator untuk menyimpan sebuah nilai ke dalam variabel. a = 18
adalah proses menyimpan nilai 18 ke dalam variabel a. Pada bagian sebelah kiri tanda = dikenal sebagai lvalue (left value), dan sebelah kanan dikenal sebagai rvalue (right value). Sebelah kiri harus berupa variabel sedangkan sebelah kanan bisa bisa variabel, contanta, hasil dari operai atau kombinasi keduanya.
Contoh a = 4; c = 5 + a; c = 2 + (b + 5);
Aritmatic operator (+, -, *, /, %)
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Module
Operator relasi
== Sama dengan != Tidak sama dengan > Lebih besar
< Kurang dari >= Lebih besar sama
<= Kurang sama dengan
Increase dan decrease
Operator increase (--) dan operator decrease (++)
Contoh
--a; // decrease a++; // increase b = 10;
a = b++; a = --b;
Bitwise operator (&, |, ^, ~, <<, >>)
& Logika DAN
| Logika OR
^ Eklusif OR
~ Not atau bit inversi << Shift left
>> Shift Right
Tulislah Program berikut dalam direktori anda masing-masing.
3. //Nama File <LTH03.CPP>
#include <iostream.h> #include <conio.h>
Int main () {
// deklarasi variabel-variabel lokal: int a, b;
int hasil;
// proses yang terjadi: a = 5;b = 2;
a = a + 1; hasil = a - b;
// menghapus layar clrscr();
// cetak hasil proses cout << “hasil pengurangan a-b adalah : “;<<result;
// pemberhentian program getch();
return 0; }
Tulislah Program berikut dalam direktori anda masing-masing. Cermati dan pahami penggunaan sebuah fungsi dan variasi pemanggilannya dalam program dibawah ini.
TUGAS
1. Jelasakan prioritas operator pada bahasa C++
3. Jika di definisikan data sebagai berikut int x, y, z;
x = 4, y, 6
1. x -= 5 2. y += 4 3. x *= 4 4. z = x +y z = 12 % z 5. x /= 2
MODUL 3 : Operator Logika
A. Latar Belakang
Operator merupakan simbol yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi, misalnya untuk:
- menjumlahkan dua nilai
- memberikan nilai ke suatu variabel (assignment) - membandingkan kesamaan dua nilai.
Operator ini digunakan untuk perhitungan dasar aritmatika. Anda akan mengerjakan latihan dan melakukan percobaan penggunaan beberapa tanda operator untuk digunakan pada proses penghitungan.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa dapat menggunakan pengujian logika dalam pemrograman C++. Operator Logika:
IF
IF … ELSE
IF…. ELSE IF … ELSE
C. Dasar Teori
FORMAT
if (condition) statement
Keterangan
Condition : adalah niali yang diuji atau syarat yang dibeikan
Statement : kalimat yang diberikan setelah syarat yang diberikan
Contoh
Kode beikut menunjukkan pencetakan kalimat “x adalah 100”, hanya jika nilai yang tersimpan pada variabel x adalah 100.
if (x == 100)
cout << "x adalah 100";
Jika kita menginginkan lebih dari satu statement yang ditampilkan ketika kondisi bernilai benar, maka kita dapat menggunakan blok stetemen. Kode berikut ini menunjukkan bagaimana kita menggunkan lebih dari satu perintah menampilkan cout) dalam blok.
if (x == 100)
{
cout << "x is "; cout << x;
}
Kita dapat menambahkan kalimat yang kita inginkan dengan menambahkan kata kunci else dari kode program diatas.
FORMAT IF…ELSE
if (condition) statement1 else statement2
dalam format ini kodisi diuji apakah bernilai benar atau salah, jika kondisi bernilai BENAR maka
yang di kerjakan. Dalam contoh program dibawah dapat diuraikan sebagai berikut kondisinya
adalah (x = = 100). Statement1 = cout << "x is 100" dan statement2 adalah cout << "x is not 100".
Contoh:
if (x == 100)
cout << "x is 100"; else
cout << "x is not 100";
IF … ELSE IF … ELSE
if (condition) statement1 else if (condition) statement2 else statement3
if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0";
Berikut ini adalah contoh-contoh perbandingan pernyataan
void main() {
int x = 4, y = 10 , x = 8; char a = 40, b = 40, c = 40 ;
float r = 12.50, s = 14.54, t = 15.78;
//kelompok pertama perbandingan pernyataan if (x=y) z = -13; //set nilai Z = -13 if (x>z) a = ‘A’; //set nilai a = 65
if (!(x>z)) a =’B’; //tidak melakukan perubahan apapun if (b<=c) r = 0.0; //set nilai r = 0.0
if (r!=s) t = c/2; //set nilai t = 2.0
//kelompok kedua perbandingan pernyataan if (x=(r!=s)) z = 1000;
if (x=y) z = 222; if (x!=0) z =333; if (x) z = 444;
//kelompok ketiga perbandingan pernyataan x = y = z = 77;
if ((x=y) && (x == 77)) z =33; if ((x>y) || (z >12 )) z =22; if (x && y && z) z =11;
if ((x=1) && (y = 2)) && (z = 3)) r=12; if ((x==1) && (y = 3)) && (z = 4)) r=12.46; }
4 //Nama File <LTH04.CPP)
//penggunaan operator logika #include <iostream.h> #include <conio.h>
void main() {
cout << "Masukkan jumlah barang :";cin>>jml; cout << "Masukkan harga barang :";cin>>hrg;
cout << "Total harga :"<<jml*hrg<<endl; if ((jml >10) && (hrg>100000)){
dsc = 0.1 * (jml*hrg); tothrg =(jml*hrg) - dsc; }
else {
dsc = 0; tothrg =(jml*hrg); }
totbyr = tothrg;
cout << "Total discount :"<<dsc<<endl; cout << "Total pembayaran :"<<totbyr<<endl; getch();
}
(percobaan)
program diatas adalah penggunaan operator logika (&& = AND) sebagai kondisi uji. Operator logika AND mempunyai persyaratan, yaitu kondisi1 (sebelah kiri tanda &&) dan kondisi2 (sebelah kanan &&) harus bernilai benar semuanya. Pada program diatas, perintah pengujian kondisi if ((jml>10) && (hrg>100000)) akan bernilai benar jika inputan variabel jml lebih besar dari pada 10 dan inputan variabel hrg lebih besar 100000. Jika salah satu variabel inputan tersebut tidak tidak terpenuhi, berarti kondisi uji bernilai salah. Pada saat uji kondisi bernilai benar maka baris program yang diakses adalah dsc = 0.1 * (jml*hrg);tothrg =(jml*hrg) - dsc; Namun bila kondisi uji bernilai sebaliknya (salah) maka yang diakses adalah baris perintah dsc = 0; tothrg =(jml*hrg);
#include <iostream.h>
long factorial (long a) {
// menguji apakah nilai a lebih besar dari pada satu if (a > 1)
return (a * factorial (a-1)); else
return (1); }
int main () {
long l;
cout << "Masukkan Bilangan: ";
cin >> l; //inputkan data dari keyboard cout << "fakrorialnya adalah! :" << l << " = " << factorial (l); return 0;
}
TUGAS (Bentuk laporan)
1. Buatlah program untuk menampilkan nilai dari ujian Anda; Jika Nilai >=80 maka tampilan dilayar adalah A
Jika Nilai >=75 maka tampilan dilayar adalah B+ Jika Nilai >=70 maka tampilan dilayar adalah B Jika Nilai >=65 maka tampilan dilayar adalah C+ Jika Nilai >=55 maka tampilan dilayar adalah C Jika Nilai >=45 maka tampilan dilayar adalah D Jika Nilai < 45 maka tampilan dilayar adalah E
MODUL 4 : Perulangan
A. Latar Belakang
Praktikum pada modul 4 ini membahas penggunaan control perulangan yang telah dibahas pada saat Dasar Teori dikelas. Ada tiga macam jenis dari struktur kontrol pengulangan yaitu while, do … while, dan for. Mengerjakan latihan dan melakukan praktek mengenai penggunaan perulangan sebagai penambahan pemahaman mahasiswa dengan skill, selain pemahan abstrak.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa dapat memahami jenis-jenis perulangan dalam pemrograman C++:
While
Do ... While
For
C. Dasar Teori
While
Forma while:
while (expression) statement
Fungsi while adalah mengulang statement selama expression bernilai benar
Contoh, kita akan membuat sebuah program untuk menghitung berangsur-angsur menurun menggunakan perulanan while
#include <iostream.h> int main ()
{
int n;
cout <<"Masukkan bilangan awal: "; cin >> n;
while (n>0) {
cout << n << ", "; --n;
}
cout << "Terakhir!"; return 0;
}
Masukkan bilangan awal : 8
8, 7, 6, 5, 4, 3, 2, 1, Terakhir!
Ketika program tersebut dijalankan dan user menginputkan sebuah angka mulailah program menghitung menurun. Kemudian while memulai perulangan, jika nilai yang diinputkan oleh user untuk kondisi n > 0, maka block instruksi dibawah while akan dieksekusi dan mengidentifikasi angka berulang selama kondisi n>0 bernilai benar
Semua proses dalam program diatas dapat diterjemahkan pada alur berikut
1. User memberikan sebuah angka ke variabel n.
2. While menginstruksikan untuk mengecek, jika (n>0). Pada kondisi tersebut ada dua kemungkinan:
true: menjalankan statement (langkah ke 3,)
false: melompati statement. Program menuju step 5..
--n;
(mencetak n pada layar monitor dan nilai n berkurang dengan 1).
4. Akhir blok. Secara otomatis kembali ke step 2.
5. Meneruskan program setelah akhir blok, kemudian mencetak TERAKHIR! Dan mengakhiri program.
Perulangan Do … While
Format:
do statement while (condition);
#include <iostream.h> int main ()
{
unsigned long n; do {
cout << "Enter number (0 to end): "; cin >> n;
cout << "You entered: " << n << "\n"; } while (n != 0);
return 0; }
Enter number (0 to end): 12345
You entered: 12345 Enter number (0 to end):
160277
You entered: 160277 Enter number (0 to end): 0
You entered: 0
#include <iostream.h> #include <conio.h>
void main( ) {
char c; clrscr();
cout <<"Masukkan sebuah Karakter X, untuk keluar PROGRAM" <<endl;
do {
c = getch(); /* menerima sebuah inputan karakter */ putchar(c); /* menampilkan hit key */
}
while (c != 'X');
cout<<"Tampil terus, Mass"; }
pada program ini, kita ingin menguji karakter inputan kita dengan kondisi yang diberikan (c != 'X') apakah sesuai atau tidak. Karakter inputan kita ditangkap oleh getch(), kemudian di simpan pada variabel c. Perulangan DO…While, mengerjakan statemen terlebih dahulu baru dilakukan pembacaan kondisi yang diberikan. Pada contoh program diatas komentar “Tampil terus, Mass”, akan berada terus dilayar, jika karakter yang diinputkan tidak sama dengan huruf X (huruf besar).
5 // NAMA FILE <LTH05.CPP>
#include <iostream.h>
void odd (int a); void even (int a);
int main () {
cout << "Type a number: (0 to exit)"; cin >> i;
odd (i); } while (i!=0); return 0;
}
void odd (int a) {
if ((a%2)!=0) cout << "Number is odd.\n"; else even (a);
}
void even (int a) {
if ((a%2)==0) cout << "Number is even.\n"; else odd (a);
}
Perulangan for.
Format perulangan For adalah:
for (initialization; condition; increase) statement;
Keterangan:
1. initialization jalankan, Umum nilai initial adalah sebuah variabel kounter. Nilai ini dijalankan hanya sekali
2. condition diperikasa, jika bernilai true perulangan dilanjutkan, selain itu perulangan dihentikan dan statement dilewati.
3. statement dijalankan. Sebagai mana biasanya, hal itu dapat berupa singgel instruksi atau blokintruksi.
4. finally, jika terpenuhi maka increase dijalankan dan perulangan kembali ke langkah 2.
Contoh program ini mengitung menurun dengan menggunakan perintah FOR
#include <iostream.h> int main ()
{
for (int n=10; n>0; n--) { cout << n << ", ";
}
cout << "OK!"; return 0; }
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, OK!
TUGAS
1. Membuat program untuk menghitung angka dimulai dari 10 sampai 25. Angka awal dan akhir dimasukkan dalam dalam lokal variabel
2. Membuat program untuk mengitung angka dari kecil ke besar, dengan memasukkan sendiri nilai awal dan akhir yang akan dihitung.
MODUL 5 : Control and Jumps
A. Latar Belakang
Pada modul 5 ini membahas penggunaan control and jumps yang telah dibahas pada saat Dasar Teori dikelas. Perlunya mempraktekan hal tersebut sebagai penambahan pemahaman mahasiswa secara skill, selain pemahan secara abstrak.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa dapat memahami :
Jenis perintah untuk mengontrol alur program (jalan eksekusi program) dalam C++.
break, continue, goto dan switch.
C. Dasar Teori
Instruksi break
Kita dapat menggunaan break untuk perulangan, jika kondisi tidak terpenuhi. Break dapat digunakan untuk mengakhiri perulangan atau menghentikan eksekusi yang tidak sebagai mana mestinya. Bisa dikatakan juga dapat digunakan untuk penghentian sebelum perulangan berakhir. Sebagai contoh kita ingin menghentika perhitungan menurun pada angka tertentu sebelum proses berakhir sacara wajar.
// break
#include <iostream.h> int main ()
{
int n;
for (n=10; n>0; n--) { cout << n << ", "; if (n==3)
{
cout << "penghentian paksa!";
break; }
}
return 0; }
10, 9, 8, 7, 6, 5, 4, 3, penghentian paksa!
Instruksi continue
Continue menyebabkan program melewati proses yang seharusnya dieksekusi dalam perulangan sebagai mana jika blok statement telah dan akan sampai, sehingga menyebabkan meloncati pada perulangan berikutnya. Sebagai contoh kita akan meloncati angka lima (5) pada perhitungan menurun berikut ini.
// continue
#include <iostream.h> int main ()
{
for (int n=10; n>0; n--) { if (n==5) continue; cout << n << ", "; }
cout << "OK!"; return 0; }
10, 9, 8, 7, 6, 4, 3, 2, 1, OK!
Membuat lompatan ke point laintnya didalam program. Ketentuannya adalah lompatan diarahkan ke label yang diberi tanda colon (:) Contoh program dibawah ini ditunjukkan dengan label loop :, Sedangkan aksses goto terhadap label tersebut ditunjukkan pada goto loop.
#include <iostream.h> int main ()
{
int n=10; loop:
cout << n << ", "; n--;
if (n>0) goto loop; cout << "FIRE!"; return 0;
}
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Selective Structure: switch.
switch (expression) { case constant1:
block of instructions 1
break;
case constant2:
block of instructions 2
break; . . . default:
default block of instructions
}
Contoh
switch example if-else equivalent switch (x) {
case 1:
cout << "x is 1"; break;
case 2:
cout << "x is 2"; break;
default:
cout << "value of x unknown";
}
if (x == 1) {
cout << "x is 1"; }
else if (x == 2) { cout << "x is 2"; }
else {
cout << "value of x unknown"; }
TUGAS
1. Buatlah program untuk mengitung angka 1 s/d 25, program berhenti diangka 10. gunakan perintah break
2. Buatlah program untuk mengitung angka 1 s/d 25, namun angka 10 tidak ditampilkan, gunakan perintah continue
3. Membuat pilihan jurusan; dari angka yang diinputkan [1 s/d 5] jika 1 = “D3 MI”; 2 = “D3 TK”; 3=”SI SI”; 4=”S1 TI” dan 5 = “S1 SK” dengan menggunakan perintah switch.
CONTOH tampilan
Masukkan Pilihan Jurusan : 1
MODUL 6 : Function
A. Latar Belakang
Function adalah satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Pada bab ini akan dipelajari tentang pembuatan fungsi pada program C++ serta cara penggunaannya serta mengerjakan soal latihan dan melakukan praktek mengenai pembuatan fungsi sebagai penambahan pemahaman mahasiswa dengan skill, selain pemahan abstrak.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa mampu membuat fungsi, melewatkan variabel dalam sebuah fungsi C++.
C. Dasar Teori
FUNGSI
Fungsi adalah sebuah kumpulan instruksi yang dijalankan ketika dipanggil dari program yang sama atau dari program lain. Berikut ini adalalah format dari fungsi:
Type name (argumen1, argument2, …. ) statement
dimana
type : adalah type data pengembalian dari fungsi atau tipe dari fungsi itu sendiri (void, int , float,….)
name : adalah nama fungsi yang mungkin dapat dipanggil
argument : adalah setiap argument yang berisi tipe data yang diikuti varibel (seperti int x)
statement : adalah badan atau kerangka dari fungsi itu sendiri
Pada program <LTH06.CPP> berikut adalah contoh pembuatan fungsi yang sederhana pada C+ +. Baris kedua dari program okefungsi (void) adalah nama fungsi. Dalam contoh program LTH06.CPP tidak ada parameter yang dilewatkan dalam fungsi. Program ini dibuat sederhana sekali. Yang perlu kita pahami disini adalah bagaimana kita menyusun sebuah fungsi sendiri dan cara pemanggilannya.
Bangun fungsi diletakkan sebelum bangun utama dari program C++. Pemanggilan fungsi dilakakun pada baris kedelapan okefungsi ().
Nah bagaimana jika ada parameter yang harus dilewatkan?. Jawabnya dapat dijumpai pada program LTH07.CPP. Disini dapat kita lihat bagaimana cara melewatkan parameter dalam sebuah fungsi.
Fungsi tanpa tipe, Fungi jenis ini menggunakan void 6 //Nama File <LTH06.CPP>
#include <iostream.h>
//bangun fungsi
void okefungsi (void) {
cout << "I'm a function!"; }
//bangun utama program int main ()
{
}
6a. Nama file <LTH6a.CPP>
#include <iostream.h>
int penjumlahan (int a, int b) {
int r; r = a+b; return (r); }
int main () {
int z;
z = pemjumlahan (5,3); cout << "hasilnya " << z; return 0;
}
Hasilnya 8
VARIABEL DALAM FUNGSI
7 //Nama File <LTH07.CPP>
#include <iostream.h> #include <conio.h>
// pendefinisian fungsi dan variabelnya. int pengurangan(int a, int b)
{
int r; r=a-b;
return (r);}
int main () {
clrscr();
// deklarasi fariabel int x=5, y=3, z;
z = pengurangan (7,2);
// menampilkan pada layar & pemanggilan fungsi cout << "Hasil model pertama " << z << '\n';
cout << "Hasil model kedua " << pengurangan (7,2) << '\n'; cout << "Hasil model ketiga " << pengurangan (x,y) << '\n'; z= 4 + pengurangan (x,y);
cout << "Hasil model keempat " << z << '\n';
//pemberhentian program getch();
return 0; }
Melewatkan argument dengan nilai dan referensi
Sedangkan pada LTH08.CPP adalah fungsi model exclusive pada C++ yang berbeda dengan C. Disini digunakan referensi untuk melewatkan argumen dan bukanya nilai yang digunakan untuk melewatkan argumen. Kelebihan cara seperti ini, kita dapat memodifikasi variabel yang ingin dilewatkan. Dimana modifikasi tersebut tidak bisa dilakukan jika cara melewatkan argumen dengan nilai.
8 //Nama File <LTH08.CPP>
#include <iostream.h>
void duplicate (int& a, int& b, int& c) {
a*=2; b*=2; c*=2; }
int main () {
int x=1, y=3, z=7; duplicate (x, y, z);
cout << "x=" << x << ", y=" << y << ", z=" << z; return 0;
}
9 //Nama File <LTH09.CPP>
#include <iostream.h>
void plesmint (int x, int &mint, int &plest) {
mint = x-1; plest = x+1; }
int main () {
int x=100, y, z; plesmint (x, y, z);
cout << "Previous=" << y << ", Next=" << z; return 0;
}
Default nilai dalam sebuah Fungsi
Default nilai dalam sebuah fungsi disini menggabarkan bahwa nilai standar dapat diikutkan atau dilewatkan pada variabel nama fungsi dan bukan pada global variabel atau locl variabel. Kelibihan penggunaan defaulr ini, yaitu ketika pemanggilan nama fungsi untuk eksekusi fungsi. Pada saat pemanggilan tersebut tidak harus melewatkan seluruh nilai variabel yang dibutuhkan. Nilai default tidak harus diserrtakan pada saat pemanggilan fungsi. Jika nilai default tidak diganti dengan nilai lainnya saat fungsi tersebut dipanggil maka nilai defaul secara otomatis nilai diabaca. Contoh panggunaan nilai default ini bisa dilihat pada program LTH12.CPP.
10 // Nama File <LTH10.CPP>
#include <iostream.h>
int dibagi (int a, int b=2) {
return (r); }
int main () {
cout << dibagi (12); cout << endl;
cout << dibagi (20,4); return 0;
}
11 // Nama File <LTH11.CPP> overloaded function
#include <iostream.h>
int divide (int a, int b) {
return (a/b); }
float divide (float a, float b) {
return (a/b); }
int main () {
int x=5,y=2;
float n=5.0,m=2.0; cout << divide (x,y); cout << "\n";
cout << divide (n,m); cout << "\n";
return 0; }
TUGAS
1. Buatlah program dalam bentuk fungsi untuk menghitung Isi dari sebuah kubus.
2. Apa kelebihan program dalam bentuk sebuah fungsi bila dibandingkan dengan program bukan.
3. Jika tanda ampersand (&) pada contoh program LTH09.CPP pada plest dhilangkan, muncul apa pada saat program tersebut di compile dan apa artinya.
MODUL 7 : Array dan Karakter String
A.
Latar Belakang
Pada modul 7, akan dibahas mengenai Array dan Karakter String. Mengerjakan Latihan dan mempraktekan membuat aplikasi yang mengandung array, serta menggunakan fungsi yang menggunakan parameter array dan kapan harus menggunakan array, akan dibahas lebih lanjut pada modul ini.
B.
Tujuan
Pada akhir pembahasan, diharapkan mahasiswa dapat memahami tentang array, tipe-tipe array serta karakter string dan implementasinya dalam C++.
C.
Dasar Teori
ARRAY
Array adalah seri dari elemen-elemen (Variabel) dalam satu tempat yang sama didalam memori dimana bisa menjadi individu-individu elemen hanya dengan menambahkan index dengan nama yang berbeda satu dengan lainnya (unique)
Sebagai gambaran, kita dapat menyimpan 5 nilai dengan tipe int tanpa harus mendeklarasikan 5 variabel yang berbeda identitas satu dengan lainnya. Dengan array kita dapat menyimpan 5 nilai yang berbeda dalam tipe yang sama dengan identitas yang unik.
Contoh :
Dalam array berikut kita ingin menyimpan 5 nilai dengan tipe integer (int) dengan nama array-nya billy, dapat diilustrasikan sebagai berikut.
Seperti variabel lainnya, array harus dideklarasikan terlebih dahulu sebelumdigunakan. Bentuk pendeklarasian array dalam C++ adalah sebagai berikut :
Type nama [elements];
Type : type yang valid adalah [ int, float…]
Nama : adalah nama variable yang dikenal
Elements : adalah data (field) didalam tanda [ ] yang spesifik, menunjukkan jumlah elemen dalam array.
12 //Nama File <LTH12.CPP> arrays example
#include <iostream.h>
int data [] = {16, 2, 77, 40, 12071}; int n, result=0;
int main () {
for ( n=0 ; n<5 ; n++ ) {
result += data[n]; }
}
Multidimensional array
Multidimensional array dapat dideskripsikan array dalam array. Segai contoh kita dapat mengasosiasikan dalam sebuah tabel dalam satu kesatuan bentuk nyata dari tipe data.
jimmy menggambarkan multidimensi dari 3 dibanding 5 (misal dalam bentuk tabel berari 3 baris , 5 kolom). Untuk mendeklarasikan hal tersebut dalam array, kita dapat menuliskan sebagai berikut:
[image:25.595.100.464.153.214.2]int jimmy [3][5]; Dari array yang bernama jimmy tersebut kita dapat mengetahui isi dari arra tesebut. Sebagai contoh kita dapat menunjukan isi array untuk baris kedua dan kolom ke empat dengan berarti isi dari array yang dimaksud adalah jimmy [1][3]. Seperti diperlihatkan pada gambar dibawah ini:
13 //Nama File <LTH13.CPP>
#include <iostream.h>
#define WIDTH 5 #define HEIGHT 3
int budi [HEIGHT][WIDTH]; int n,m;
int main () {
for (n=0;n<HEIGHT;n++) for (m=0;m<WIDTH;m++) {
budi[n][m]=(n+1)*(m+1); }
return 0; }
Array Sebagai Parameter
Pada suatu ketika kita mungkin perlu melewatkan array ke fungsi sebagai parameter. Dalam C++ hal tersebut bukanlah hal yang tidak mungkin melewatkan sebuah nilai dalam blok memori sebagai parameter ke sebuah fungsi.
Contoh
14 //Nama File <LTH14.CPP> #include <iostream.h>
void printarray (int arg[], int length) {
for (int n=0; n<length; n++) cout << arg[n] << " "; cout << "\n";
}
int main () {
int firstarray[] = {5, 10, 15};
int secondarray[] = {2, 4, 6, 8, 10}; printarray (firstarray,3);
printarray (secondarray,5); return 0;
}
KARAKTER STRING
Dalam contoh-contoh program sebelumnya, kita hanya menggunakan variabel numerik yang biasa mengekpresikan angka-angka eklusifnya. Tapi bilangan numetik didalam juga berisi karakter string. Disitu disajikan proses perpindahan dari karakter, kata-kata, kalimat, nama-nama, teks-teks, dan sebagainya. Sampai sekarang kita hanya menggunakannya dalam bentuk konstan, tetapi kita tidak pernah dapat mempertimbangkan variabel-variabel tersebut dapat masuk didalamnya.
Sebagai contoh, array berikut (or sring of characters)
char jenny [20];
dapat menyimpan sampai 20 karakter. Kita dapat membayangkannya sebagai berikut
kita dapat merepresentasikan jenny (array 20 elements of type characters) menyimpan karakter string “Hello” dan “Merry Christmas” dalam ilustrasi berikut:
Memasukkan angka ke String
Selama lvalue pemasukan berupa elemen dalam bentuk array, hal itu masih dibenarkan (valid) untuk memasukkan karakter string kedalam array yang bertipe char. Kita dapat menggunakan model seperti berikut :
mystring[0] = 'H'; mystring[1] = 'e'; mystring[2] = 'l'; mystring[3] = 'l'; mystring[4] = 'o'; mystring[5] = '\0';
(file header) cstring. H dan dapat kita akses dengan cara menuliskan sesuai dengan format sebagai berikut:
strcopy (string1, string2);
Format tersebut adalah untuk mengopy (menyimpan) isi dari string2 kedalam string1 dapat juga bentuk lain seperti sebuah array, pointer, atau konstata string. Sebagai contoh, untuk mengkopi konstanta string kedalam variabel mystring:
Strcopy (mystring, “Hello”);
15. Nama File <LTH15.CPP> #include <iostream.h>
#include <string.h>
int main () {
char szMyName [20];
strcpy (szMyName,"Khoirul"); cout << szMyName;
return 0; }
Tampilan dilayar pada saat program di runing adalah
Khoirul
Catatan: kita memerlukan file header <string.h> diberi tanda blok hitam pada file LH15.CPP
diatas agar supaya fungsi strcopy dapat di gunakan.
Meskipun demikian kita dapat juga menulis sebuah fungsi yang sederhana untuk mensetting string dengan operasi kerja yang mirip atau sama dengan strcopy.
16. Nama File <LTH16.CPP> #include <iostream.h>
void setstring (char szOut [], char szIn [])
{
int n=0; do {
szOut[n] = szIn[n];
} while (szIn[n++] != '\0'); }
int main () {
char szMyName [20];
setstring (szMyName,"Khoirul"); cout << szMyName;
return 0; }
Khoirul
Metode lain yang sering digunakan untuk memasukkan / menginputkan data ke dalam array adalah dengan menggunakan (cin). Ketika cin digunakan dengan karakter string biasanya diikuti dengan getline. Hal itu dapat diakses dengan mengikuti format dibawah ini:
cin.getline (charbuffer[ ], intlength, chardelimiter =’ \n’);
keterangan
buffer adalah alamat dimana input mau disimpan, length adalah panjang maksimum dari buffer,
delimiter adalah memindahkah ke baris baru, defaultnya tidak diikutkan dalam penulisan. Jika ingin mengikutkan kita harus menuliskannya.
17. Nama File <LTH16.CPP> #include <iostream.h>
int main () {
char mybuffer [100];
cout << "Siapa Nama Anda? "; cin.getline (mybuffer,100);
cout << "Hello " << mybuffer << ".\n"; cout << "Team Mana Kesukaan Anda? "; cin.getline (mybuffer,100);
cout << "Saya Suka " << mybuffer <<"juga.\n"; return 0;
}
Konversi String ke Bentuk lainnya
Sebuah string mungkin mengandung tipe data lainnya seperti bilangan, mungkin digunakan untuk menerjemahkan isi bilangan tersebut ke data bertipe numerik. Sebagai contoh data string berisi “9499”, data tersebut berisi 4 karakter yang berurutan yang tidak mudah dikonversi ke singel data bertipe integer. Library cstdlib menyediakan tiga fungsi untuk tujuan tersebut
1. atoi: konversi string ke int 2. atol: konversi string ke long 3. atof: konversi string ke float
18 // Nama File <LTH18.CPP> #include <iostream.h> #include <stdlib.h>
int main () {
char mybuffer [100]; float harga;
int jumlah;
cout << "Masukkan Harga: "; cin.getline (mybuffer,100); price = atof (mybuffer); cout << "Masukkan Jumlah: "; cin.getline (mybuffer,100); quantity = atoi (mybuffer);
cout << "Total Harga: " << harga*jumlah; return 0;
}
TUGAS
1. Jika diketahui data sebagai berikut
Char NamaPembeli[50];Char NamaBarang[50];Char Harga[5];Char Jumlah[3]; TotalHarga = Harga x Jumlah;
Nama, harga dan jumlah di Inputkan dari keyboard
Buatkan program dengan format tampilan seperti berikut Nama Pembeli : BAIDHOWI
Nama Barang : SARUNG SUTERA SAMARINDA
Harga : 250000
Jumlah : 3
Total Harga : 750000
Siapa Nama Anda? Khoirul
Hello Khoirul.
Team Mana Kesukaan Anda? AC
Milan
Saya Suka AC Milan juga
Masukkan Harga: 2.75
Masukkan Jumlah: 21
Simpan Progam Anda dengan nama CSTR01.CPP
2. Tuliskan Format dan jelaskan pula fungsi dari library cstring berikut;
MODUL 8 : Pointer & Dynamic Memory
A. Latar Belakang
Variabel merupakan suatu nilai yang disimpan dalam memory yang dapat diakses dengan identifier. Variabel ini sesunggunhnya disimpan pada suatu alamat didalam memory. Dimana setiap alamat memory akan berbeda dengan yang lainnya (unik). Pada modul 8, akan dibahas mengenai Pointer dan Dynamic Memory. Dengan mempraktekan teori yang telah diberikan dan mengerjakan soal-soal latihan, hal ini akan memberikan penambahan pengetahuan dan pemahaman tentang Pointer dan Dynamic Memory.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa dapat memahami tentang pointer dan dynamic memory dalam sebuah fungsi C++.
C. Dasar Teori
POINTER
Kita telah membahas bagaimana variabel-variabel cel memory dapat diakses dengan sebuah identitas. Namun variabel-variabel tesebut tidak disimpan dalam tempat yang nyata dalam memory komputer. Untuk program-program kita, memori komputer hanya penggantian dari 1 byte
cell (ukuran minimum suatu data), masing-masing data dengan alamat yang unik.
Kiasan yang baik untuk memori komputer dapat diibaratkan sebuah jalan dalam kota. Perumahan yang ada disepanjang jalan tersebut mempunyai identitas sendiri-sendir yang berbeda satu dengan lainnya. Bila kita berbicara tentang nomor rumah 24, maka kita dengan mudah dapat menjumpai nomor rumah tersebbut. Sebab tindak mungkin nomor tersebut dimiliki oleh du rumah. Kita tinggal melihat nomor tersebut diantara nomor 23 dan nomor 25.
Dalam kasus yang sama dengan penomoran rumah tersebut, organisasi sistem operasi memory juga dengan penomeran yang unik atau berbeda satu dengan lainnya. Sehingga, apabila kita berbicara tentang lakasi 1776 didalam memory komputer, kita tahu bahwa alamat tersebut hanya satu tempat dan alamat dan juga lokasi tersebut terletak diantara 1775 dan 1777.
Alamat (dereference) Operator (&)
Pada pembahasan ini, pendeklarasian variabel yang disimpan dalam memory haruslah dengan alamat yang jelas dan nyata. Pada umumnya kita tidak memutuskan atau menentukan dimana fariabel ditempatkan, untungnya hal itu otomatis dilakukan pada saat compiler dan operasi sistem pada saat dijalankan (runtime). Namum sekali sistem operasi menandai sebuah alamat disana ada beberapa pilihan yang mana kita mungkin tertarik untuk mengetahui dimana sebenarnya variabel-variabel tersebut disimpan.
Hal ini dapar dilakukan dengan memberikan identitas variabel dengan tanda ampersan (&) yang mempunyai arti “alamat dari”
Contoh ted = &andy
Untuk akan mengarahkan andy mempunyai alamat memory di 1776 maka kita tuliskan sebagai berikut
andy = 25; fred = andy; ted = &andy;
Operator Referensi (*)
Dengan mengunakan pointer kita dapat mengarahkan pengaksesan nilai yang tersimpan dalam variabel pointer hanya dengan menambahkan tanda/operator asterk (*) yang dapat diterjemahkan sebagai “value ponited by”.
Contoh Beth = *ted;
Catatan
Alamat Operator atau dereference (&)
Digunakan sebagai awalan variabel dan dapat diterjemahkan sebagai “Alamat dari”, misal &variabel1 dapat dibaca sebagai “ alamat dari variabel1 ”
Operator Referensi (*)
Dapat diterjemahkan dengan “value pointed by”. Misal *mypointer dapat diterjemahkan sebagai “value pointer by mypointer”.
Deklarasi variabel-variabel dari type pointer
Pendeklarasian pointer dapat dituliskan seperti format berikut :
Type * pointer_name;
Dimana
Type adalah tipe data pointer, bukan tipe dari pointer itu sendiri int * number;
char * character; float * greatnumber;
Berikut ini adalah contoh program yang membahas pointer
19//Nama File <LTH19.CPP>
int main () {
int value1 = 5, value2 = 15; int * mypointer;
mypointer = &value1; *mypointer = 10; mypointer = &value2; *mypointer = 20;
cout <<"value1 =" <<value1 <<endl <<"value2 =" <<value2; return 0;
}
Penjelasan
Pada program diatas (LTH09.CPP) didefinisikan value1 dan value2 dengan type integer dengan nilai 5 dan 15. Kemudian didifinisikan pula data pointer mypointer degan tipe integer. Pada baris delapan dituliskan mypointer = &value1, pada pseudocode ini kita ingin mengetahui isi value1 yang diambil dari variabel mypointer. Sedangkan mypointer adalah pointer dengan nilai sama dengan 10. Dengan cara yang sama seperti pada value1, value2 juga demikian prosesnya. Dengan demikian pada saat perintah ini (cout <<"value1 =" <<value1 <<endl <<"value2 =" <<value2;)dibaca maka dilayar monitor kita akan muncul
value1 = 10; value2 = 20;
Jadi yang muncul bukan angka 5 dan angka 15, melainkan 10 dan 20.
20// Nama File <LTH20.CPP>
#include <iostream.h>
int main () {
int value1 = 5, value2 = 15; int *p1, *p2;
p1 = &value1; // p1 = alamat dari value1 p2 = &value2; // p2 = alamat dari value2 *p1 = 10; // value pointed by p1 = 10
*p2 = *p1; // value pointed by p2 = value pointed by p1 p1 = p2; // p1 = p2 (value of pointer copied)
*p1 = 20; // value pointed by p1 = 20
cout <<"value1 =" <<value1 <<endl <<"value2 =" <<value2; return 0;
}
TUG AS
DYNANIC MEMORY
Sampai pada pembahasan sekarang, dalam program-program yang kita buat, kita hanya mengetahui tentang penggunaan memori pada saat kita mendeklarasikan sebuah variabel array dan objek-objek lainya yang kita tambahkan dalam program. Tetapi, bagaimana jika kita membutuhkan jumlah memori, dimana jumlah bisa ditentukan pada saat program dijalankan. Cara seperti ini belum kita bahas sama sekali sebelumnya. Nah untuk mengetahui dynamic memory ini kita akan membahas hal tersebut. Sebagai contoh, kita membutuhkan pemasukan dari user untuk menentukan jumlah kebutuhan dari ruang(space) didalam memori kita, bagamana caranya?.
Operator new dan new[ ]
Formula
Pointer = new type atau
Pointer = new type [elemens]
Ekspresi yang pertama digunakan untuk menandai tipe elemen tunggal dimemori. Sedangkan ekspresi yang kedua digunakan untuk tipe dalam bentuk array (blok).
Contoh
Int * Bambang;
Bambang = new int [5];
MODUL 9 : Struktur dan User Define Data Types
A. Latar Belakang
Pada modul 9 ini membahas mengenai struktur dan user define types yang terdapat dalam C++ yang telah dibahas pada saat Dasar Teori dikelas. Perlunya mempraktekan hal tersebut sebagai penambahan pemahaman mahasiswa secara skill, selain pemahan secara abstrak.
B. Tujuan
Pada akhir pembahasan, diharapkan mahasiswa dapat memahami Struktur dan User Define Data Types dalam C++.
C. Dasar Teori
// ISIDATA
#include "stdio.h" #include "string.h" #include "iostream.h" #include "conio.h" #include "stdlib.h"
struct record { char last_name[20]; char first_name[15]; int age;
float salary; };
typedef struct record person; FILE *people;
void main() {
person employee; int rec, result; char c;
lagi:
people = fopen("PEOPLE.DAT", "r+b"); clrscr();
printf("Which record do you want [0-3]? "); scanf("%d", &rec);
while (rec >= 0) {
fseek(people, rec*sizeof(employee), SEEK_SET);
result = fread(&employee, sizeof(employee), 1, people); if (result==1)
{
printf("\nRECORD %d\n", rec);
printf("Surname...: %s\n", employee.last_name); printf("Given name...: %s\n", employee.first_name); printf("Age...: %d years\n", employee.age);
printf("Current salary...: $%8.2f\n\n", employee.salary); //rekam data
fseek(people, (!&rec*sizeof(employee)), SEEK_SET); fwrite(&employee,sizeof(employee), 1,people );
else
printf("\nRecord %d not found!\n\n", rec);
cout << "Tampilkan lagi ?[y], selain [y] KELUAR :" ;cin >>c; if (c=='y') goto lagi;
else exit(1); }
fclose(people); getch();
}
// HAPUSDATA
#include "stdio.h" #include "string.h" #include "conio.h" #include "iostream.h" #include "io.h"
//
struct record {
char nip[6];char first_name[15];char last_name[20]; int age;float salary;
}; typedef struct record person; FILE *people,*people1;
void main() {
person employee;
int rec,i,result,curpos,x;char c,ndel; lagi:
clrscr();
people = fopen("data.dat", "r+b");
cout <<"Menghapus ecord ke [0-N]? ";cin>>rec; while (rec >= 0)
{
//seek this record in data.dat file
fseek(people, rec*sizeof(employee), SEEK_SET);
result = fread(&employee, sizeof(employee), 1, people); if (result==1) {
printf("\nThe Record %d is\n", rec);
printf("Nomor Induk...: %s\n", employee.nip);
printf("Nama Depan...: %s\n", employee.first_name); printf("Nama Lengkap...: %s\n", employee.last_name); printf("Usia...: %d Thn\n", employee.age);
printf("Gaji Pokok...: Rp. %8.2f\n\n", employee.salary);
cout << "Hapus data[y], selain [y] Exit :" ;cin >>c; if (c=='y') {
//create a new file data1.dat
people1 = fopen("data1.dat", "wb+");
//count records in data.dat file curpos = ftell(people);
fseek(people, 0L, SEEK_END); //seek from end of file
x = (ftell(people)/(sizeof(employee))); //number of records
//Repositions file pointer to stream's beginning rewind(people);
//looping for save a record in Data1.dat file
//close both data files
fclose(people); fclose(people1);
//delete the data.dat file
unlink("e:\\irul\\datacpp\\data.dat");
//rename data1.dat file to data.dat rename("data1.dat","data.dat"); goto lagi;
} else break; }
else
printf("\nRecord %d Nggak Ada!\n\n", rec);
cout <<"Tampilkan lagi? [y], selain [y] KELUAR :" ;cin >>c; if (c=='y') goto lagi; else break;
}
fclose(people); }
// LAPORAN DATA
#include "stdio.h" #include "string.h" #include <conio.h> #include <iostream.h> #include <stdlib.h>
struct record {
char nip[6];char first_name[15];char last_name[20]; int age;float salary;
};typedef struct record person; FILE *people;
void main(){
person employee;
char name[8];long cc,x,curpos;int i; clrscr();
people = fopen("DATA.DAT", "r");
clrscr();
//counter pengendali tampilan record curpos = ftell(people);
fseek(people, 0L, SEEK_END);
x = (ftell(people)/(sizeof(employee))); fseek(people, curpos, SEEK_SET);
//akhir pengendalian
gotoxy(23,1);cout<<"DAFTAR KARYAWAN PT SUKSES TERUS";
gotoxy(1,2);cout<<" No Nama Umur Gaji";
for (cc=0;cc<x;cc++) {
fread(&employee, sizeof(employee), 1, people); gotoxy(1,cc+3);cout<<"³"<<employee.nip;
gotoxy(4,cc+3);cout<<"³"<<employee.first_name; gotoxy(10,cc+3);cout<<" "<<employee.last_name; gotoxy(27,cc+3);cout<<"³"<<employee.age<<"³";
gotoxy(32,cc+3);printf("Rp. %10.2f\n",employee.salary); }
fclose(people); getch();