laporan praktikum resmi tipe data abstrak (typedef dan struct)

Upload: giseyaki

Post on 18-Oct-2015

373 views

Category:

Documents


5 download

DESCRIPTION

LAPORAN PRAKTIKUM RESMITIPE DATA ABSTRAK (TYPEDEF & STRUCT)ALGORITMA DAN STRUKTUR DATA 1ALBERT SUGIHARTONONIM 201301018S1 SISTEM INFORMASI STIKOM YOS SUDARSO PURWOKERTO

TRANSCRIPT

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