import java.util.* ;
class Film {
private double hargaTiket;
this .judul = judul;
this .genre = genre;
this .jamTayang = jamTayang;
this .hargaTiket = hargaTiket;
}
public void tampilkanInfo( ) {
System .
out .
println ( "Judul: " + judul
) ; System .
out .
println ( "Genre: " + genre
) ; System .
out .
println ( "Jam Tayang: " + jamTayang
) ; System .
out .
println ( "Harga Tiket: Rp " + hargaTiket
) ; }
}
class Studio {
private int nomorStudio;
private int kapasitasKursi;
private Film film;
public Studio( int nomorStudio, int kapasitasKursi, Film film) {
this .nomorStudio = nomorStudio;
this .kapasitasKursi = kapasitasKursi;
this .film = film;
}
public void tampilkanInfo( ) {
System .
out .
println ( "Nomor Studio: " + nomorStudio
) ; System .
out .
println ( "Kapasitas Kursi: " + kapasitasKursi
) ; film.tampilkanInfo ( ) ;
}
public int getKapasitas( ) {
return kapasitasKursi;
}
}
class Penonton {
public Penonton
( String namaPenonton
) { this .namaPenonton = namaPenonton;
}
public void tampilkanInfo( ) {
System .
out .
println ( "Nama Penonton: " + namaPenonton
) ; }
}
class Tiket {
private int nomorTiket;
private Studio studio;
private int kursi;
private Penonton penonton;
public Tiket( int nomorTiket, Studio studio, int kursi, Penonton penonton) {
this .nomorTiket = nomorTiket;
this .studio = studio;
if ( kursi > studio.getKapasitas ( ) ) {
System .
out .
println ( "Kursi Melebihi Kapasitas" ) ; this .kursi = studio.getKapasitas ( ) ;
} else if ( kursi < 1 ) {
System .
out .
println ( "Kursi Tidak Boleh Dibawah Satu" ) ; this .kursi = 1 ;
} else {
this .kursi = kursi;
}
this .penonton = penonton;
}
public void tampilkanInfo( ) {
System .
out .
println ( "\n -- Nomor Tiket: " + nomorTiket
+ " --" ) ; studio.tampilkanInfo ( ) ;
System .
out .
println ( "Kursi: " + kursi
) ; penonton.tampilkanInfo ( ) ;
}
}
class Ideone {
public static void main
( String [ ] args
) {
Film film1 = new Film( "Transformers" , "Sci-Fi" , "12:00" , 45000.0 ) ;
Film film2 = new Film( "The Batman" , "Action" , "15:00" , 50000.0 ) ;
Film film3 = new Film( "Scream" , "Horror" , "19:00" , 40000.0 ) ;
Studio studio1 = new Studio( 1 , 40 , film1) ;
Studio studio2 = new Studio( 2 , 50 , film2) ;
Studio studio3 = new Studio( 3 , 45 , film3) ;
System .
out .
println ( "=== Informasi Film ===" ) ; Tiket tiket1 = new Tiket( 1 , studio1, 1 , new Penonton( "Andre" ) ) ;
Tiket tiket2 = new Tiket( 2 , studio2, 2 , new Penonton( "Bagas" ) ) ;
Tiket tiket3 = new Tiket( 3 , studio3, 3 , new Penonton( "Clara" ) ) ;
tiket1.tampilkanInfo ( ) ;
tiket2.tampilkanInfo ( ) ;
tiket3.tampilkanInfo ( ) ;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgRmlsbSB7CiAgICBwcml2YXRlIFN0cmluZyBqdWR1bDsKICAgIHByaXZhdGUgU3RyaW5nIGdlbnJlOyAgIAogICAgcHJpdmF0ZSBTdHJpbmcgamFtVGF5YW5nOwogICAgcHJpdmF0ZSBkb3VibGUgaGFyZ2FUaWtldDsKCiAgICBwdWJsaWMgRmlsbShTdHJpbmcganVkdWwsIFN0cmluZyBnZW5yZSwgU3RyaW5nIGphbVRheWFuZywgZG91YmxlIGhhcmdhVGlrZXQpIHsKICAgICAgICB0aGlzLmp1ZHVsID0ganVkdWw7CiAgICAgICAgdGhpcy5nZW5yZSA9IGdlbnJlOwogICAgICAgIHRoaXMuamFtVGF5YW5nID0gamFtVGF5YW5nOwogICAgICAgIHRoaXMuaGFyZ2FUaWtldCA9IGhhcmdhVGlrZXQ7CiAgICB9CgogICAgcHVibGljIHZvaWQgdGFtcGlsa2FuSW5mbygpIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkp1ZHVsOiAiICsganVkdWwpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiR2VucmU6ICIgKyBnZW5yZSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJKYW0gVGF5YW5nOiAiICsgamFtVGF5YW5nKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkhhcmdhIFRpa2V0OiBScCAiICsgaGFyZ2FUaWtldCk7CiAgICB9Cn0KCmNsYXNzIFN0dWRpbyB7CiAgICBwcml2YXRlIGludCBub21vclN0dWRpbzsKICAgIHByaXZhdGUgaW50IGthcGFzaXRhc0t1cnNpOwogICAgcHJpdmF0ZSBGaWxtIGZpbG07CgogICAgcHVibGljIFN0dWRpbyhpbnQgbm9tb3JTdHVkaW8sIGludCBrYXBhc2l0YXNLdXJzaSwgRmlsbSBmaWxtKSB7CiAgICAgICAgdGhpcy5ub21vclN0dWRpbyA9IG5vbW9yU3R1ZGlvOwogICAgICAgIHRoaXMua2FwYXNpdGFzS3Vyc2kgPSBrYXBhc2l0YXNLdXJzaTsKICAgICAgICB0aGlzLmZpbG0gPSBmaWxtOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHRhbXBpbGthbkluZm8oKSB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOb21vciBTdHVkaW86ICIgKyBub21vclN0dWRpbyk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJLYXBhc2l0YXMgS3Vyc2k6ICIgKyBrYXBhc2l0YXNLdXJzaSk7CiAgICAgICAgZmlsbS50YW1waWxrYW5JbmZvKCk7CiAgICB9CgogICAgcHVibGljIGludCBnZXRLYXBhc2l0YXMoKSB7CiAgICAgICAgcmV0dXJuIGthcGFzaXRhc0t1cnNpOwogICAgfQp9CgpjbGFzcyBQZW5vbnRvbiB7CiAgICBwcml2YXRlIFN0cmluZyBuYW1hUGVub250b247CgogICAgcHVibGljIFBlbm9udG9uKFN0cmluZyBuYW1hUGVub250b24pIHsKICAgICAgICB0aGlzLm5hbWFQZW5vbnRvbiA9IG5hbWFQZW5vbnRvbjsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCB0YW1waWxrYW5JbmZvKCkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTmFtYSBQZW5vbnRvbjogIiArIG5hbWFQZW5vbnRvbik7CiAgICB9Cn0KCmNsYXNzIFRpa2V0IHsKICAgIHByaXZhdGUgaW50IG5vbW9yVGlrZXQ7CiAgICBwcml2YXRlIFN0dWRpbyBzdHVkaW87CiAgICBwcml2YXRlIGludCBrdXJzaTsKICAgIHByaXZhdGUgUGVub250b24gcGVub250b247CgogICAgcHVibGljIFRpa2V0KGludCBub21vclRpa2V0LCBTdHVkaW8gc3R1ZGlvLCBpbnQga3Vyc2ksIFBlbm9udG9uIHBlbm9udG9uKSB7CiAgICAgICAgdGhpcy5ub21vclRpa2V0ID0gbm9tb3JUaWtldDsKICAgICAgICB0aGlzLnN0dWRpbyA9IHN0dWRpbzsKCiAgICAgICAgaWYgKGt1cnNpID4gc3R1ZGlvLmdldEthcGFzaXRhcygpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiS3Vyc2kgTWVsZWJpaGkgS2FwYXNpdGFzIik7CiAgICAgICAgICAgIHRoaXMua3Vyc2kgPSBzdHVkaW8uZ2V0S2FwYXNpdGFzKCk7CiAgICAgICAgfSBlbHNlIGlmIChrdXJzaSA8IDEpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJLdXJzaSBUaWRhayBCb2xlaCBEaWJhd2FoIFNhdHUiKTsKICAgICAgICAgICAgdGhpcy5rdXJzaSA9IDE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5rdXJzaSA9IGt1cnNpOwogICAgICAgIH0KCiAgICAgICAgdGhpcy5wZW5vbnRvbiA9IHBlbm9udG9uOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHRhbXBpbGthbkluZm8oKSB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbi0tIE5vbW9yIFRpa2V0OiAiICsgbm9tb3JUaWtldCArICIgLS0iKTsKICAgICAgICBzdHVkaW8udGFtcGlsa2FuSW5mbygpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiS3Vyc2k6ICIgKyBrdXJzaSk7CiAgICAgICAgcGVub250b24udGFtcGlsa2FuSW5mbygpOwogICAgfQp9CgogY2xhc3MgSWRlb25lIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICAKICAgICAgICBGaWxtIGZpbG0xID0gbmV3IEZpbG0oIlRyYW5zZm9ybWVycyIsICJTY2ktRmkiLCAiMTI6MDAiLCA0NTAwMC4wKTsKICAgICAgICBGaWxtIGZpbG0yID0gbmV3IEZpbG0oIlRoZSBCYXRtYW4iLCAiQWN0aW9uIiwgIjE1OjAwIiwgNTAwMDAuMCk7CiAgICAgICAgRmlsbSBmaWxtMyA9IG5ldyBGaWxtKCJTY3JlYW0iLCAiSG9ycm9yIiwgIjE5OjAwIiwgNDAwMDAuMCk7CiAgICAgICAgCiAgICAgICAgU3R1ZGlvIHN0dWRpbzEgPSBuZXcgU3R1ZGlvKDEsIDQwLCBmaWxtMSk7CiAgICAgICAgU3R1ZGlvIHN0dWRpbzIgPSBuZXcgU3R1ZGlvKDIsIDUwLCBmaWxtMik7CiAgICAgICAgU3R1ZGlvIHN0dWRpbzMgPSBuZXcgU3R1ZGlvKDMsIDQ1LCBmaWxtMyk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPT09IEluZm9ybWFzaSBGaWxtID09PSIpOwogICAgICAgIFRpa2V0IHRpa2V0MSA9IG5ldyBUaWtldCgxLCBzdHVkaW8xLCAxLCBuZXcgUGVub250b24oIkFuZHJlIikpOwogICAgICAgIFRpa2V0IHRpa2V0MiA9IG5ldyBUaWtldCgyLCBzdHVkaW8yLCAyLCBuZXcgUGVub250b24oICJCYWdhcyIpKTsKICAgICAgICBUaWtldCB0aWtldDMgPSBuZXcgVGlrZXQoMywgc3R1ZGlvMywgMywgbmV3IFBlbm9udG9uKCJDbGFyYSIpKTsKCiAgICAgICAgdGlrZXQxLnRhbXBpbGthbkluZm8oKTsKICAgICAgICB0aWtldDIudGFtcGlsa2FuSW5mbygpOwogICAgICAgIHRpa2V0My50YW1waWxrYW5JbmZvKCk7CiAgICAKICAgIH0KfQoKCg==