• Tidak ada hasil yang ditemukan

ee0d1 modul praktikum algoritma 1

N/A
N/A
Protected

Academic year: 2017

Membagikan "ee0d1 modul praktikum algoritma 1"

Copied!
36
0
0

Teks penuh

(1)

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

(2)
(3)

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 ()

(4)

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>

(5)

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();

(6)

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

(7)

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

(8)

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

(9)

<= 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++

(10)

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

(11)

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

(12)

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() {

(13)

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

(14)

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..

(15)

--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 () {

(16)

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.

(17)

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!

(18)

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

(19)
(20)

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 ()

{

(21)

}

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

(22)

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) {

(23)

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.

(24)

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]; }

(25)

}

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) {

(26)

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';

(27)

(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.

(28)

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

(29)

Simpan Progam Anda dengan nama CSTR01.CPP

2. Tuliskan Format dan jelaskan pula fungsi dari library cstring berikut;

(30)

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;

(31)

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>

(32)

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?.

(33)

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];

(34)

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 );

(35)

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

(36)

//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();

Gambar

Gambar 1
Tabel 1Constanta (#define)
gambar dibawah ini:

Referensi

Dokumen terkait

Untuk perkembangan harga komoditas di pasar domestik, tercatat dalam periode 20-22 Maret 2012 ada beberapa komoditas yang harganya mengalami kenaikan jika dibandingkan dengan

Pada hakikatnya logika adalah: orang-orang yang tipe kepribadiannya kongruen (sama dan sebangun) dengan pekerjaan yang mereka pilih seharusnya mendapatkan bahwa mereka mempunyai

Dapat dilihat bahwa di setiap saat, grafik amplitudo sel[1,1] pada simulasi tanpa anomali (warna merah) selalu lebih tinggi daripada grafik simulasi dengan anomali.

Diantara alternatif strategi pembelajaran matematika yang dapat mendukung tercapainya tujuan mata pelajaran matematika adalah strategi pembelajaran yang berlandaskan

Pertunjukan Nini Thowong merupakan salah satu kesenian yang ada di Desa Panjangrejo Kecamatan Pundong Kabupaten Bantul.Pada awalnya warga sekitar mempunyai keyakinan bahwa

PERUBAHAN JADWAL UJI WAWASAN SELEKSI TERBUKA JABATAN PIMPINAN TINGGI PRATAMA (ESELON II) DI LINGKUNGAN KEMENTERIAN KESEHATAN..

pemeriksaan. Pada tahun ini pencapaian sasaran dianggap sudah berhasil karena sasaran ini sudah sesuai dengan target yang ditetapkan sehingga proses pemeriksaan dan

Pemecahan masalah pembelajaran permainan sepak bola di Sekolah Dasar Negeri Penusupan 04 Kecamatan Pangkah Kabupaten Tegal melalui teknik menggiring bola