Trending

Rabu, 27 Februari 2013

Tugas ADT revisi, Program Tiket Konser

ADTadalah Type dan sekumpulan Primitif(operasi dasar)terhadap Type tersebut. selain i9tu dalam sebuah ADT yang lengkap sisertakan pula definisi invarian dari Type dan aksoma yang berlaku. ADT merupakan definisi statik , definisi type dari sebuah ADT dapat mengandung sebuah definisi ADT lain.
jadi di dalam ADT ada ADT lain 

TYPE : dalam bahasa C ini di sebut sebagai Struct sedangkan di Bahasa pascal ini i sebut record

PRIMITIF : dalam konteaks prosedural, di terjemahkan menjadi fungsi/ prosedur

contoh algoritma ADT
Judul_Program Tiket_Konser

Kamus:
    type tiketKonser: < nama_konser : string,
                                      kode_konser : string,
                                      jadwal_konser : string,
                                      tipe_kelas : string,
                                      harga_tiket : string,
                                      quota : integer >
    T : array [1..4] of tiketKonser
    type datapembeli: <  nama_pembeli : string,
                                      kode_pembelian : string,
                                      kode_undian : string >

    D : array [1..9999] datapembeli
    jumlah_pembeli : integer
    pilihan : integer;
    kode : string;

    procedure lihatKonser()
    procedure beliTiket()
    function  buatKodePembelian( T : tiketKonser) -> string
    function carikode( kodekonser : string) ->  string
    function buatKodeUndian (T : tiketKonser) -> string
    Procedure detailtiket( input a : integer)


Algoritma:
    T[1].nama_konser <- "Didi Kempot Show"
    T[1].kode_konser <- "A1"
    T[1].jadwal_konser <- "31 Februari 2013 - pukul 25.00"
    T[1].tipe_kelas <- "Festival"
    T[1].harga_tiket <- "Rp 500.000,-"
    T[1].quota <- 999

    T[2].nama_konser <- "Didi Kempot Show"
    T[2].kode_konser <- "A2"
    T[2].jadwal_konser <- "31 Februari 2013 - pukul 25.00"
    T[2].tipe_kelas <- "Tribun"
    T[2].harga_tiket <- "Rp 300.000,-"
    T[2].quota <- 666

    T[3].nama_konser <- "Mbah Surip Resurrection"
    T[3].kode_konser <- "B1"
    T[3].jadwal_konser <- "30 Februari 2013 - pukul 23.00"
    T[3].tipe_kelas <- "Festival"
    T[3].harga_tiket <- "Rp 700.000,-"
    T[3].quota <- 1313

    T[4].nama_konser <- "Mbah Surip Resurrection"
    T[4].kode_konser <- "B2"
    T[4].jadwal_konser <- "30 Februari 2013 - pukul 23.00"
    T[4].tipe_kelas <- "Tribun"
    T[4].harga_tiket <- "Rp 400.000,-"
    T[4].quota <- 444

    Output("1. Lihat konser")
    Output("2. Beli tiket")
    Output("3. Cari kode")
    Output("4. Lihat detail tiket yang sudah dibeli")
    Output("Masukkan pilihan")
    Input(pilihan)
    if (pilihan = 1) then
        lihatKonser()
    else
    if (pilihan = 2) then
        beliTiket()
    else
    if (pilihan = 3) then
        Output("Inputkan kode yang dicari")
        Input(kode)
        Output( carikode(kode) );
    else
    if (pilihan = 4) then
    Output(
    else
    Output("Pilihan tidak ada! Silakan coba kembali")









PROCEDURE lihatKonser()
Kamus lokal: -
Algoritma:
    i transversal [1..4]
    Output(T[i].nama_konser)
    Output(T[i].kode_konser)
    Output(T[i].jadwal_konser)
    Output(T[i].tipe_kelas)
    Output(T[i].harga_tiket)
    Output(T[i].quota <- 444)

PROCEDURE beliTiket()
Kamus lokal: 
    nama, kode : string
    kodeBeli : string
    kodeUndian : string
    x : integer
Algoritma:
    Output("Masukkan nama")
    Input(nama)
    Output("Masukkan kode konser : ")
    Input(kode) 
    i transversal[1..4]    
        T[i].quota <- T[i].quota-1
        x <- i
        jumlah_pembeli <- jumlah_pembeli+1
        detailtiket(x)

    kodeBeli <- buatKodePembelian( T[x] )
    kodeUndian <- BuatKodeUndian( T[x] )
    Output("Kode pembelian anda adalah ", kodeBeli)
    Output("Kode undian anda adalah ", kodeUndian)
    D[jumlah_pembeli].nama_pembeli <- nama
    D[jumlah_pembeli].kode_pembeli <- kodeBeli
    D[jumlah_pembeli].kode_undian <- kodeUndian



FUNCTION buatKodePembelian( T : tiketKonser) -> string
Kamus lokal:
    a, b, c : string
Algoritma:
    a <- T.kode_konser
    b <- T.tipe_kelas
    c <- intToStr(T.quota+1)
        -> (a,b,c)


FUNCTION carikode( kodekonser : string)  -> string
Algoritma :
    i transversal[1..4]
    if (kodekonser = T[i].kode_konser) then 
        -> ("T[i].nama_konser")


FUNCTION BuatKodeUndian ( T: TiketKonser) -> string
Kamus local:
    a,b,c,d, : string
Algoritma:
    a <- T.tipe_kelas
    b <-T.kode_konser
    c <- kode_pembelian
    d <- intToStr(T.qouta+1)
        -> (a,b,c,d) 

PROCEDURE detailtiket( input a : integer)
Algoritma :    
    Output("Anda telah memesan tiket dengan detail sebagai berikut")
    Output(T[a].nama_konser)
    Output(T[a].kode_konser)
    Output(T[a].jadwal_konser)
    Output(T[a].tipe_kelas)

Tidak ada komentar:

Posting Komentar

About

Koding

More

Designed By Blogger Templates