bab 1 pbo c++ struktur
DESCRIPTION
TRANSCRIPT
BAB I
STRUKTUR
1.1. TUJUAN
Tujuan pembelajaran dalam bab ini yaitu:
1. Mengetahui pengertian dan pengaksesan struktur
2. Mampu mengelompokkan sejumlah data dengan tipe yang berlainan.
3. Mengetahui pengertian kelas dan cara pengaksesannya.
1.2. DASAR TEORI
1.2.1. Struktur
Struktur adalah pengelompokan variabel-variabel yang
bernaung dalam satu nama yang sama. Variabel-variabel yang
membentuk suatu struktur, selanjutnya disebut sebagai elemen dari
struktur atau field. Dengan demikian dimungkinkan suatu struktur
dapat berisi elemen-elemen data berbeda tipe seperti char, int, float,
double, dan lain-lain.
Tipe data struct secara umum adalah untuk menyimpan paket
(sekumpulan) data ke dalam satu buah nama variabel saja.
Kumpulan data tersebut diikat sedemikian rupa menjadi satu.
Kumpulan data di dalam sebuah struct bisa mempunyai tipe data
dasar yang beraneka ragam. Kumpulan data dalam sebuah struct
sangat dianjurkan membentuk sebuah kesatuan makna berkaitan
dengan nama struct-nya. Misal, jika struct-nya bernama segitiga
maka isi struct-nya antara lain: alas, tinggi, luas dan keliling. Konsep
yang lebih lanjut dapat juga dalam sebuah struct terdapat struct lagi
(nested struct).
1.2.2. Struct untuk Array
Array adalah struktur data yang terdiri dari item berurutan, di
mana semua itemnya bertipe sama. Dalam Java, item dalam array
1
2
selalu dinomori dari nol hingga nilai maksimum tertentu, yang
nilainya ditentukan pada saat array tersebut dibuat. Misalnya, suatu
array berisi 100 bilangan bulat, yang dinomori dari nol hingga 99.
Item dalam array bisa bertipe salah satu tipe Java primitif. Item-item
ini bisa juga berupa referensi ke objek, sehingga, misalnya kita bisa
membuat array yang berisi semua komponen dalam applet. Bagian
ini akan membahas bagaimana array dibuat dan digunakan pada
Java. Juga mencakup kelas standar java.util.ArrayList. Suatu objek
bertipe ArrayList sangat mirip dengan array dari Object, akan tetapi
ia bisa bertambah ukuran secara dinamis.
1.2.3. Analogi Struktur dan Kelas
Dalam paradigma pemrograman berorientasi obyek dikenal
kelas dan obyek. Kelas merupakan blue print dari obyek – obyek
yang akan dibuat. Analogi kelas dan obyek seperti rancangan model
rumah dan pembangunan rumah-rumah, adapun proses pembuatan
obyek dari kelas dikenal dengan instantiasi.
Pembuatan obyek dari kelas dengan instantiasi. Sebagai
contoh kita ambil kelas manusia. Kelas manusia mempunyai atribut :
nama. Selain itu kelas manusia juga mempunyai method : tampilkan
nama, kerja, makan.
Method Abstrac
Method Abstrac adalah method yang belum mempunyai
implementasi. Pendefinisian method abstract adalah dengan
menambahkan keyword abstract, seperti contoh dibawah ini :
Abstract void berangkat_kerja ();
Sebuah kelas menyerupai sebuah struktur yang merupakan
tipe data sendiri, misalkan tipe data titik yang terdiri dari koordinat x
dan y. Bahasa Java telah menggunakan sebuah kelas untuk
3
menyatakan tipe data titik karena bahasa pemrograman Java
merupakan bahasa pemrograman berorientasi objek murni sehingga
tidak mengenal struktur tapi mengenal apa yang disebut dengan
kelas.
Perbedaan sebuah kelas dengan sebuah struktur adalah
sebuah kelas dapat berdiri sendiri dan dapat digunakan untuk
berbagai keperluan kelas-kelas yang lain, sedangkan sebuah struktur
tidak dapat berdiri sendiri. Sebuah kelas lebih fleksibel untuk
digunakan oleh kelas lain tanpa harus membongkar kode program
utama, sedangkan jika digunakan struktur maka kode program harus
dibongkar unuk disalin bagian strukturnya ke kode program utama
yang lain. Sebuah file dapat terdiri dari berbagai kelas, namun
biasanya pada bahasa pemrograman Java sebuah file hanya terdiri
dari satu kelas yang disimpan dengan nama kelas, misal file List.java
berisi kelas List. Namun jika kelas yang dibuat misalnya public class
nama_kelas, maka kelas itu harus disimpan dalam satu file hanya
untuk satu kelas. Setelah dilakukan kompilasi maka pada Java akan
ada sebuah file .class yang berisi bytecode dari setiap kelas. Jika
sebuah file terdiri dari dua kelas maka setelah dikompilasi akan
dihasilkan dua buah file .class yang nantinya akan dibaca oleh
interpreter Java saat program dieksekusi.
Sebuah kelas saat program dieksekusi dan perintah new
dijalankan, maka akan dibuat sebuah objek. Objek adalah elemen
pada saat runtime yang akan diciptakan, dimanipulasi dan
dihancurkan saat eksekusi sehingga sebuah objek hanya ada saat
sebuah program dieksekusi, jika masih dalam bentuk kode, disebut
sebagai kelas jadi pada saat runtime (saat sebuah program
dieksekusi), yang kita punya adalah objek, di dalam teks program
yang kita lihat hanyalah kelas.
4
1.3. ANALISA PRAKTIKUM
1.3.1. Struktur
Struktur bermanfaat untuk mengelompokkan sejumlah data
dengan tipe yang berlainan.
Contoh deklarasi struktur :
1. struct mahasiswa
{
2. int nim;
3. char nama[50];
4. char alamat[75];
};
Keterangan :
1. Struct adalah definisi dari struktur yang dimana mahasiswa
menjadi bagian dari strukturnya.
2. Untuk nim memakai int karena nim berupa angka jadi
memakai tipe data integer.
3. Untuk nama memakai char karena nama berupa huruf jadi yang
dipakai adalah tipe data karakter dengan nilai 50 karena sebagai
batasan kalau nama dapat dimasukkan sampai 50 huruf.
4. Sama seperti char nama. Alamat pun memakai tipe data char
dengan nilai 75 sebagai pendeklarasiaannya.
1.3.2. Pengaksesan Struktur
1. Bentuk 1
1 #include<iostream.h>
2 #include<conio.h>
3 #include<string.h>
4 void main()
{
5
5 struct mahasiswa
{
6 int nim;
7 char nama[50];
8 char alamat[75];
};
9 mahasiswa satu;
10 satu.nim=8;
11 strcpy(satu.nama,"Mahendra Data");
strcpy(satu.alamat,"Jl. Manyar No.5
Semarang");
12 cout<<satu.nim<<" "<<satu.nama<<"
"<<satu.alamat<<endl<<end
13 getche();
}
Dan hasilnya adalah :
Keterangan :
1. Untuk no. 1 hingga No. 3 adalah header dari file program.
2. No. 4 adalah void main yang merupakan void utama yang
merupakan fungsi utama dari program.
3. No. 5 struct mahasiswa untuk pendeklarasian dengan
jenis mahasiswa.
Gambar 1.1. Hasil eksekusi struktur bentuk 1
6
4. No. 6 int nim memakai int karena nim berupa angka jadi
memakai tipe data integer sebagai pendeklarasiaannya.
5. No. 7 char nama[50] maksudnya untuk nama memakai
char karena nama berupa huruf jadi yang dipakai adalah tipe
data karakter dengan nilai 50 karena sebagai batasan kalau
nama dapat dimasukkan sampai 50 huruf.
6. No. 8 char alamat[75] maksudnya Sama seperti char
nama. Alamat pun memakai tipe data char dengan nilai 75
sebagai pendeklarasiaannya.
7. No. 9 mahasiswa satu maksudnya adalah objeknya.
8. No. 10 satu.nim=8 maksudnya adalah sebagai keterangan
dari objek.
9. No. 11 strcpy mempunyai fungsi untuk menginputkan data
yang dideklarasikan didalamnya.
10. No. 12 cout<< perintah untuk menampilkan program
dalam hasil eksekusi.
11. No. 13 getche(); bermaksud untuk fungsi balik program
dalam borland c++ dan jika memakai turbo c++
getche()tidak diperlukan.
2. Bentuk 2
#include<iostream.h>
#include<conio.h> 1
#include<string.h>
struct mahasiswa 2
{
int nim;
char nama[50]; 3
char alamat[75];
};
void main() 4
7
{
mahasiswa satu; 5
satu.nim=8; 6
strcpy(satu.nama,"Mahendra Data");
strcpy(satu.alamat,"Jl. Manyar No.5
Semarang"); 7
cout<<satu.nim<<" "<<satu.nama<<"
"<<satu.alamat<<endl<<endl; 8
getche();
}
Dan hasil eksekusinya adalah :
Keterangan :
1. Untuk no. 1 adalah header dari file program.
2. struct mahasiswa bermaksud untuk mendeklarasikan
struktur mahasiswa.
3. Inputan pada struct mahasiswa yang akan ditampilkan dalam
hasil eksekusi. Dimana yang digunakan adalah script char
(untuk tipe data karakter) int (tipe data bilangan bulat) .
4. void main yang merupakan void utama yang merupakan
fungsi utama dari program.
5. mahasiswa satu maksudnya adalah objeknya.
Gambar 1.2. Hasil eksekusi struktur bentuk 2.
8
6. satu.nim=8 maksudnya adalah sebagai keterangan dari
objek.
7. strcpy mempunyai fungsi untuk menginputkan data yang
dideklarasikan didalamnya.
8. cout<< perintah untuk menampilkan program dalam hasil
eksekusi.
3. Bentuk 3
#include<iostream.h>
#include<conio.h> 1
#include<string.h>
struct mahasiswa 2
{
int nim;
char nama[50]; 3
char alamat[75];
}satu; 4
void main() 5
{
satu.nim=8;
strcpy(satu.nama,"Mahendra Data");
strcpy(satu.alamat,"Jl. Manyar No.5
Semarang");
cout<<satu.nim<<" "<<satu.nama<<"
"<<satu.alamat<<endl<<endl;
getche();
}
9
Dan hasilnya adalah :
Keterangan :
1. Untuk no. 1 adalah header dari file program.
2. Pada scirpt No. 2 struct mahasiswa bermaksud untuk
mendeklarasikan struktur mahasiswa.
3. Script No. 3 Inputan pada struct mahasiswa yang akan
ditampilkan dalam hasil eksekusi.
4. No. 4, satu; merupakan inisialisasi.
5. No. 5, void main yang merupakan void utama yang
merupakan fungsi utama dari program.
4. Bentuk 4
1 #include<iostream.h>
#include<conio.h>
#include<string.h>
2 void main()
{
3 struct mahasiswa
{
4 char nim[8];
char nama[10];
int umur;
};
Gambar 1.3. Hasil eksekusi struktur bagian 3.
10
5 mahasiswa amir={"9651001","Amir",20};
mahasiswa amat={"9651002","Amat",22};
mahasiswa tuti={"9651003","Tuti",19};
cout<<"Mahasiswa pertama :
"<<amir.nim<<endl;
6 cout<<"Mahasiswa pertama :
"<<amir.nama<<endl;
cout<<"Mahasiswa pertama :
"<<amir.umur<<endl;
cout<<endl;
cout<<"Mahasiswa kedua :
"<<amat.nim<<endl;
cout<<"Mahasiswa kedua :
"<<amat.nama<<endl;
cout<<"Mahasiswa kedua :
"<<amat.umur<<endl<<endl;
getche();
}
Dan hasilnya adalah :
Gambar 1.4. Hasil eksekusi struktur bentuk 4
11
Keterangan :
1. Untuk no. 1 adalah header dari file program.
2. No.2, void main yang merupakan void utama yang
merupakan fungsi utama dari program.
3. No. 3, struct mahasiswa bermaksud untuk
mendeklarasikan struktur mahasiswa.
4. No. 4, Inputan pada strcut mahasiswa yang akan ditampilkan
dalam hasil eksekusi.
5. No. 5, Input yang akan ditampilkan saat fungsi karakternya
dipanggil pada saat eksekusi berlangsung.
6. No. 6, cout<< perintah untuk menampilkan program
dalam hasil eksekusi.
1.3.3. Struct Untuk Array
Contoh Source code Struct untuk ARRAY ini adalah seperti berikut :
#include<stdio.h>
#include<iostream.h>
#include<conio.h> 1
#include<string.h>
struct orang 2
{
char nama[50]; 3
int umur;
};
void main() 4
{
orang saya[3]; 5
int i,x; 6
for(i=0;i<=2;i++) 7
{
cout<<"Nama orang ke "<<(i+1)<<" adalah :";
12
cin>>saya[i].nama;
cout<<"Umur orang ke "<<(i+1)<<"adalah :";
cin>>saya[i].umur; 8
}
cout<<endl; 9
for(x=0;x<=2;x++)
{
cout<<"Nama orang ke
"<<(x+1)<<"adalah :"<<saya[x].nama<<endl;
cout<<"Umur orang ke
"<<(x+1)<<"adalah :"<<saya[x].umur<<endl<<endl
;
}
getche();
}
Dan hasil eksekusinya adalah :
Keterangan :
1. Untuk no. 1 adalah header dari file program.
Gambar 1.5. Hasil eksekusi struct untuk array.
13
2. No.2, struct berarti menunjukkan definisi fungsi struktur
yang digunakan dalam program tersebut. Dan orang
menunjukkan struktur tag-nya.
3. No. 3, Inputan pada strcut orang yang akan dimasukkan dalam
hasil eksekusi.
4. No.4, void main yang merupakan void utama yang
merupakan fungsi utama dari program.
5. No.5, orang saya[3] hanya sebagai istilah, dan jumlah
orangnya ada 3 dan sebagai pendeklarasian tipe data array pada
program tersebut.
6. No. 6, i dan x masuk dalam bilangan integer karena
masukkannya berupa angka.
7. No. 7, for(i=0;i<=2;i++) yang dimana i=0 adalah nilai
awal dari variabel. i<=2 berarti angka masukkan nanti kurang
dari 2. Sedangkan i++ sebagai pengatur kenaikan nilai variabel
pengendali loop.
8. No.8, cout<< perintah untuk menampilkan program dalam
hasil eksekusi.
9. No.9, cout<<endl; berfungsi agar hasil eksekusi
selanjutnya diberi jarak satu enter.
1.3.4. Analogy Struct Dalam Kelas
Kelas merupakan struktur dari objek, yang contohnya sebagai
berikut :
#include<iostream.h>
#include<conio.h> 1
#include<string.h>
struct buku 2
14
{
char judul[35];
char pengarang[25]; 3
int jumlah;
};
void main() 4
{
clrscr(); 5
buku novel; 6
strcpy(novel.judul,"Meriam Benteng
Navarone"); 7
strcpy(novel.pengarang,"Alistair Maclean");
novel.jumlah=12; 8
cout<<novel.judul<<endl;
cout<<novel.pengarang<<endl; 9
cout<<novel.jumlah<<endl;
getche();
}
Dan hasilnya adalah :
Keterangan :
1. Untuk no. 1 adalah header dari file program.
Gambar 1.6. Hasil eksekusi untuk analogi struktur
15
2. struct berarti menunjukkan definisi struktur. Dan buku
menunjukkan struktur tag-nya.
3. Inputan pada struct buku yang akan dimasukkan dalam hasil
eksekusi.
4. void main yang merupakan void utama yang merupakan
fungsi utama dari program.
5. clrscr atau clear screen berfungsi untuk membersihkan layar.
6. buku novel merupakan objek.
7. strcpy mempunyai fungsi untuk menginputkan data yang
dideklarasikan didalamnya.
8. novel.jumlah=12; untuk mendefinisikan bahwa jumlah
adalah 12.
9. cout<< untuk menampilkan program dalam hasil eksekusi.
Dan jika dijadikan kelas, maka hasilnya sebagai berikut :
#include<iostream.h>
#include<conio.h> 1
#include<string.h>
class buku 2
{
public: 3
char judul[35];
char pengarang[25]; 4
int jumlah;
};
void main() 5
{
clrscr();
16
buku novel;
strcpy(novel.judul,"Meriam Benteng Navarone");
strcpy(novel.pengarang,"Alistair Maclean");
novel.jumlah=12;
cout<<novel.judul<<endl;
cout<<novel.pengarang<<endl;
cout<<novel.jumlah<<endl<<endl;
getche();
}
Dan hasil eksekusinya adalah sebagai berikut :
Keterangan :
1. Untuk no. 1 adalah header dari file program.
2. class buku untuk mendefinisikan jenis kelasnya adalah buku.
3. public: untuk memberikan hak akses secara umum.
4. Inputan pada class buku yang akan dimasukkan dalam hasil
eksekusi.
5. void main yang merupakan void utama yang merupakan fungsi
utama dari program.
Gambar 1.7. Hasil eksekusi dari analogi struktur yang dikadikan kelas
17
1.4. KESIMPULAN
Dari percobaan-percobaan diatas maka kita dapat menarik kesimpulan
sebagai berikut :
1. Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe
yang berlainan
2. Struktur mempunyai 4 bentuk yang berbeda tetapi mempunyai hasil
eksekusi yang sama.
3. Untuk mengubah analogi struktur menjadi kelas, kita cukup mengganti
kode struct menjadi class.