laporan praktikum resmi tipe data abstrak (typedef dan struct)
Embed Size (px)
DESCRIPTION
LAPORAN PRAKTIKUM RESMITIPE DATA ABSTRAK (TYPEDEF & STRUCT)ALGORITMA DAN STRUKTUR DATA 1ALBERT SUGIHARTONONIM 201301018S1 SISTEM INFORMASI STIKOM YOS SUDARSO PURWOKERTOTRANSCRIPT
-
LAPORAN PRAKTIKUM SEMENTARA
TIPE DATA ABSTRAK (TYPEDEF DAN STRUCT)
Disusun oleh :
Albert Sugihartono
201301018
Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom
JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014
-
2
BAB I
TEORI DASAR
1. Pengantar
Tipe Data Abstrak atau Abstract Data Type (ADT) merupakan koleksi data dan operasi yang
dapat digunakan untuk memanipulasi data tersebut. Dalam C++, ADT dapat dibuat dalam
sebuah Class. Class dalam C++ merupakan pengembangan dari struct dalam Bahasa
pemograman C. Class memiliki data dan fungsi. Data dan fungsi yang dideklarasi private tidak
dapat diakses secara langsung oleh client, sementara data dan fungsi yang dideklarasikan
public akan bersifat public dan dapat diakses oleh client secara langsung. Selain class, dalam
tipe data abstrak terdapat pula typedef. Typedef memiliki fungsi sebagai alias atau sinonim
atas tipe data yang mengikutinya.
2. Class atau Struct
Struct memiliki member yang mana masing-masing member memiliki nama dan tipe.
Masingmasing tipe tidak selalu sama dan dikelompokan ke dalam satu nama. Struct atau
structures membantu mengatur data-data yang rumit, khususnya program yang besar, karena
struktur membiarkan sekelompok variable diperlakukan sebagai satu unit daripada sebagai
entity yang terpisah. Bentuk penulisannya :
Struct point {
double x, y;
};
Struktur termasuk kedalam tipe data yang dibangkitkan (derived data type), yang disusun
dengan menggunakan obyek tipe lain.
Contoh definisi struktur :
-
3
Struct mhs
{
Char *nama;
Char *nim;
Int uts, uas;
Float akhir;
Char mutu;
}
Kata kunci struct menunjukkan definisi struktur, dan identifikasi mhs menunjukkan
structure tag. Dengan demikian terdapat tipe data baru bernama struct mhs, yang terdiri dari
nama mahasiswa, nilai uts, nilai uas, nilai akhir dan nilai mutu yang masing-masing disebut
field. Operasi yang sering diterapkan pada struktur adalah proses menyalin atau
menunjukkan struktur sebagai unit, menggunakan alamatnya dan mengakses membernya.
Untuk menghubungkan nama struktur dan nama membernya digunakan operator dot atau
simbol . .
3. Typedef
Typedef digunakan untuk memberikan nama alias pada suatu tipe data.
Bentuk penulisan : typedef
Typedef merupakan mekanisme untuk membuat sinonim atau alias dari tipe data yang telah
didefinisikan sebelumnya.
Contoh pendeklarasian typedef :
typedef int angka;
Dari deklarasi diatas dapat didefinisikan sebuah tipe data baru bernama angka sebagai sinonim
atau alias untuk int angka. Dengan demikian, pernyataan int angka untuk selanjutnya dapat
diganti dengan angka saja.
-
4
4. Typedef dan Struct
Pada bagian typedef dan struct, merupakan tipe data gabungan antara typedef dan struct yang
mana dapat didefinisikan ke bentuk umum sebagai berikut :
typedef struct
{
tipe_data ;
tipe_data ;
. . .
}
-
5
BAB II
PENJELASAN PROGRAM
Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan pemrograman
C++ secara sederhana sesuai dengan modul praktikum pada Program praktikum 2.1.cpp,
luas_segitiga_struct.cpp, kalkulator_struct.cpp, dan program_praktikum_4.1.cpp
Listing Program praktikum 2.1
//=============================================================
===============
// Name : Program praktikum 2.1.cpp
// Author : ALBERT
// Version :
// Copyright :
// Description : Hello World in C++, Ansi-style
//=============================================================
===============
#include using
namespace std;
int main() {
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
};
struct data_teman
{
struct data_tanggal tgl_lahir;
};
struct data_teman info_teman;
info_teman.tgl_lahir.tanggal=12; info_teman.tgl_lahir.bulan=3;
info_teman.tgl_lahir.tahun=1981;
cout
-
6
"
-
7
6. Info_teman.tgl_lahir.tanggal pada listing program merupakan contoh menghubungkan nama
struktur dan nama membernya dengan penghubung dot. Tanggal sendiri diambil dari field
struct data_tanggal dan diassignment (setelah terhubung) sebagai satu unit.
7. Using namespace std; dimaksudkan agar program menggunakan nama spasi standard
(kepanjangan dari std).
8. Int main() mengindikasikan badan program (main program/program utama) dan dibuka dengan
simbol { dan ditutup simbol }.
9. Return 0 merupakan nilai balik dalam program, karena main didahului dengan int (didahului
oleh tipe data) yang mana dalam hal ini main program harus memiliki nilai balik.
Listing program luas_segitiga_struct.cpp
/*
* luas_segitiga_struct.cpp
*
* Created on: Apr 8, 2014
* Author: ALBERT
*/
#include
using namespace std;
struct segitiga
{
int alas;
int tinggi;
int luas;
};
int main()
{ segitiga a;
cout
-
8
cin>>a.alas;
couta.tinggi;
a.luas=0.5*a.tinggi*a.alas;
cout
-
9
5. Pada program, terdapat ekspresi a.luas=0.5*a.tinggi*a.alas; yang merupakan rumus
perhitungan luas segitiga.
Listing program kalkulator_struct.cpp
/*
* kalkulator_struct.cpp
*
* Created on: Apr 8, 2014
* Author: ALBERT
*/
#include
using namespace std;
struct hitung
{
int tambah,kurang,kali,bagi,satu,dua,pilih;
};
int main()
{
hitung kalkulator;
cout
-
10
kalkulator.tambah=kalkulator.satu+kalkulator.dua;
cout
-
11
Output hasil penjumlahan
Output hasil pengurangan
Output hasil perkalian
Output hasil pembagian
-
12
Penjelasan listing program kalkulator_struct.cpp
Berikut penjelasan listing dari program kalkulator_struct.cpp :
1. Pada program terdapat kata kunci struct diikuti dengan hitung sebagai structure tagnya.
2. int tambah, kurang, kali, bagi, pilih, satu, dua merupakan member dari struct hitung.
3. Dalam int main, terdapat pendeklarasian hitung kalkulator yang digunakan sebagai
penghubung sehingga variable kalkulator dapat digunakan untuk mengakses member yang
ada dalam struct hitung.
4. Member pada struct diakses melalui kalkulator dengan menggunakan titik sehingga menjadi
satu kesatuan variable yang baru. Sebagai contoh kalkulator.pilih yang digunakan sebagai
variable pemilihan.
5. Switch merupakan fungsi pemilihan (selain if) dimana pada program ditulis switch(pilih).
Hal ini dimaksudkan apabila pilih=1 maka switch(1) sehingga akan merujuk ke case sesuai
value pada variable pilih. Variable pilih dimaksudkan sebagai wadah value untuk pilihan
dari menu yang disediakan yang kemudian disalurkan oleh switch kepada case n (n harus
sesuai value pilihan). Case berisi program yang dipilih yang berakhiran dengan break;
berfungsi sebagai penghenti proses switch. Untuk default dimunculkan sebagai pilihan
alternative apabila value yang diinput tidak ditemukan pada case-case yang ada.
6. Pada tiap tiap case, terdapat sebagai contoh kalkulator.tambah=kalkulator.satu +
kalkulator.dua; kalkulator.kurang=kalkulator.satu kalkulator.dua dan seterusnya.
Ekspresi-ekspresi tersebut merupakan rumus untuk operasi matematika sesuai dengan
operatornya. Penjumlahan (+), pengurangan (-), perkalian (*), dan pembagian ( / ). Untuk
variable kalkulator.satu dan kalkulator.dua adalah variable yang digunakan untuk value
angka pertama dan angka kedua yang digunakan dalam ekspresi.
-
13
Listing program_praktikum_4.1.cpp
/*
* program_praktikum_4.1.cpp
*
* Created on: Apr 8, 2014
* Author: ALBERT
*/
#include
using namespace std;
typedef struct mahasiswa
{
char NIM[12];
char nama[30];
float ipk;
};
int main()
{
mahasiswa mhs;
coutmhs.NIM;
coutmhs.nama;
coutmhs.ipk;
cout
-
14
Output program_praktikum_4.1.cpp
Penjelasan program_praktikum_4.1.cpp
Berikut penjelasan listing program dari program_praktikum_4.1.cpp :
1. typedef struct pada program merupakan pendefinisian dari gabungan typedef dan struct
yang diikuti oleh structure tag/nama struct yaitu mahasiswa, sehingga menjadikan sebuah
tipe data baru yaitu struct mahasiswa.
2. char NIM, char nama, dan float ipk adalah member dari typedef struct mahasiswa yang
digunakan sebagai variable NIM (NIM), nama mahasiswa (nama) dan total indeks prestasi
(ipk). Pada variable ipk digunakan tipe data float karena value ipk dapat berupa desimal.
3. Dalam int main, terdapat pendeklarasian mahasiswa mhs; yang menjadikan mhs bertipe data
mahasiswa. Dengan begitu, member dalam typedef struct mahasiswa dapat diakses melalui
variable mhs dengan menggunakan penghubung titik. Sebagai contoh pada program
mhs.NIM, mhs.nama.
4. Member yang telah diakses menjadi satu kesatuan variable baru.
Tugas Praktikum
Pada tugas praktikum ini merupakan sebuah program menampilkan produk yang dibeli sesuai
input.
/*
* program_menghitung.cpp
*
-
15
* Created on: Apr 8, 2014
* Author: ALBERT
*/
#include
using namespace std;
typedef struct toko
{
char produk[10];
int harga;
};
int main()
{
toko s;
cout
-
16
Penjelasan program tugas praktikum
Berikut penjelasan dari program tugas praktikum :
1. Pada program terdapat typedef struct toko yang dimaksudkan sebagai pendeklarasian
typedef struct diikuti oleh variable sebagai structure tag sehingga menjadikan tipe data baru
yaitu typedef struct toko.
2. char produk dan int harga merupakan member didalam typedef struct toko. Produk
digunakan untuk menampung item/barang yang dibeli sedangkan harga digunakan untuk
menampung jumlah nominal yang harus dibayar.
3. Dalam int main, terdapat variable s yang dideklarasikan oleh variable toko dan menjadikan
variable s bertipe data toko. Dengan begitu, member dari typedef struct toko dapat diakses
oleh variable s.
4. Member pada typedef struct toko diakses dengan variable s dengan cara digabungkan
menggunakan titik yang menjadikan suatu entity variable yang baru.
-
17
BAB III
KESIMPULAN
Tipe Data Abstrak atau Abstract Data Type (ADT) merupakan koleksi data dan operasi yang dapat
digunakan untuk memanipulasi data yang mana ada yang kita sebut dengan class atau struct. Yang
membedakan antara class dan struct adalah class merupakan perkembangan pada C++ dari struct
pada Bahasa C. Struct memiliki member yang memiliki nama dan tipe. Tipe yang ada tidak selalu
sama yang kemudian akan digabungkan ke dalam satu unit. Ini memudahkan pengaturan data-data
yang rumit missal dalam program yang besar. Dalam C++, nama struct (structure tag) adalah tipe
yang oleh karenanya, point merupakan tipe. Ketika mengakses member atau pada saat
menghubungkan nama struktur dan nama membernya digunakan simbol . . Nama member harus
unik dalam scope struct. Karena pada saat member diakses, nama struct harus ditulis, maka
pemanggilan nama member yang sama dari struct yang berbeda tidak menjadi masalah. Typedef
struct memiliki kesamaan dengan struct, hanya saja typedef struct merupakan gabungan antara
typedef dan struct. Kuncinya adalah bagaimana agar suatu variable beserta tipe datanya dapat
diakses oleh variable lain dengan tujuan yang bermacam-macam sehingga program menjadi lebih
efesien dan efektif.
-
18
Sumber Referensi
Kristanto, Andi. 2003. Struktur Data Dengan C++
Yogyakarta : Graha Ilmu
Ardhana. YM Kusuma. 2013. Struktur Data Dalam Ilustrasi Eclipse Indigo C++
Yogyakarta : CAPS (Center of Academic Publishing Service)