LAPORAN TUGAS AKHIR PEMROGRAMAN BERORIENTASI OBJEK “Application of Film Profile” Rista Bramastya#1, Sigit Purnomo#2, Xaphyra Aura Shava Aulia#3 Jurusan Pendidikan Teknik Informatika, Fakultas Teknik, Universitas Negeri Malang ristabramastya04@gmail.com1, sighidpoernamma97@gmail.com2, aurashava33@gmail.com3 Abstrak Film adalah media komunikasi yang bersifat audio visual untuk menyampaikan suatu pesan kepada sekelompok orang yang berkumpul di suatu tempat tertentu. Setiap film diproduksi untuk dipasarkan sesuai target pasarnya masing-masing, mulai dari anak-anak hingga orang dewasa. Banyak dari kalangan anakanak yang berusia dibawah 15 tahun ingin menonton film yang tidak sesuai dengan ketentuan usianya. Program aplikasi profile film adalah sebuah program aplikasi yang menyediakan sebuah info film yang terdapat informasi seperti: judul film, nama pemain, link synopsis, dan link untuk menonton film. Dalam aplikasi ini terdapat berbagai pilihan kategori judul film yang mungkin akan dipilih user. Terdapat pilihan kategori usia sehingga memudahkan user dalam memilih film yang sesuai dengan usianya. Kata kunci : film, kategori film, batasan usia I. PENDAHULUAN Film adalah media komunikasi yang bersifat audio visual untuk menyampaikan suatu pesan kepada sekelompok orang yang berkumpul di suatu tempat tertentu. (Effendy, 1986: 134). Dengan gambar dan suara, film mampu bercerita banyak dalam waktu singkat. Ketika menonton film penonton seakan-akan dapat menembus ruang dan waktu yang dapat menceritakan kehidupan dan bahkan dapat mempengaruhi audiens. Pada dasarnya film dapat dikelompokan ke dalam dua pembagian dasar, yaitu kategori film cerita dan non cerita. Film cerita adalah film yang diproduksi berdasarkan cerita yang dikarang, dan dimainkan oleh aktor dan aktris. Pada umumnya film cerita bersifat komersial, artinya dipertunjukan di bioskop dengan harga karcis tertentu atau diputar di televisi dengan dukungan sponsor iklan tertentu. Film non cerita adalah film yang mengambil kenyataan sebagai subyeknya, yaitu merekam kenyataan dari pada fiksi tentang kenyataan. (Sumarno, 1996:10). Setiap film diproduksi untuk dipasarkan sesuai target pasarnya masing-masing, mulai dari anakanak hingga orang dewasa. Banyak dari kalangan anak-anak yang berusia dibawah 15 tahun ingin menonton film yang tidak sesuai dengan ketentuan usianya. Program aplikasi Profile Films adalah sebuah program aplikasi yang menyediakan sebuah info film yang terdapat informasi seperti: judul film, nama pemain, link synopsis, dan link untuk menonton film. Program aplikasi ini juga berguna untuk membantu orang tua dalam menyajikan sebuah film kepada anak-anaknya sesuai dengan ketentuan usia II. DASAR TEORI 2.1. Konsep Dasar Sistem Pada program Aplikasi Profile Fim akan dibuat menggunakan bahasa java dalam pemrograman berorienrasi objek. Pemrograman berorientasi objek (PBO) adalah paradigma pemrograman yang berorientasikan kepada objek yang merupakan suatu metode dalam pembuatan program, dengan tujuan untuk menyelesaikan kompleksnya berbagai masalah meningkat. Java adalah bahasa pemrograman yang multi platform dan multi device, aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam pcode (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin dan java secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi. 2.2. Alat Bantu Pengembangan Sistem Aplikasi ini menggunakan alat bantu pengembangan perangkat lunak pemrograman bahasa java yaitu software NetBeans IDE 8.0.2. Software tersebut digunakan untuk mendesign sekaligus meng-coding pogram. Pada program Aplikasi Profil Film juga menggunakan database untuk menyimpan data-data yang diinputkan, sehingga pengembang menggunakan phpMyAdmin yang merupakan perangkat lunak yang ditulis dalam bahasa pemrograman PHP untuk mengelola basis data dalam MySQL. III. PERANCANGAN 3.1. Rancangan program Profile Films yang dikembangkan adalah sebuah aplikasi yang dibuat dengan dasar pemrograman berorientasi objek. Dasar pembuatan aplikasi ini adalah dengan teori-teori yang diambil dari beberapa referensi yang berasal dari modul praktikum serta buku dan sekaligus pemahaman dari rekan sebaya. Dalam isi konteks program ini, juga mengambil teori-teori mengenai sistem database yang baik dan benar. Dalam program ini, terdapat menu-menu seperti login, menu utama, serta tampilan dari profil film. 3.2. Desain Aplikasi IV. PEMBAHASAN Implementasi sistem dibangun menggunakan bahasa pemrograman java dengan menggunakan kerangka kerja NetBeans untuk membangun program yang berbasis GUI. Implementasi ini terdiri dari beberapa antarmuka untuk menjalankan fungsionalitas sistem, menampilkan informasi serta memilah pengakses program. Apabila inputan nama berupa angka maka program secara otomatis akan menampilkan peringatan berupa “Inputan nama tidak boleh angka”. Secara umum, program Profile Films ini hanya menampilkan 3 bagian, yaitu Login, Menu Utama, dan Tampilan Informasi. Rancangan Tampilan Awal adalah sebagai berikut: Gambar 4.3 Inputan Nama Kosong Apabila inputan nama kosong maka program secara otomatis akan menampilkan peringatan berupa “Inputan nama tidak boleh kosong”. Gambar 4.1 Tampilan Awal Rancangan tampilan awal program dengan menerapkan program login untuk memilah pengakses program. Gambar 4.4 Menu Usia Kurang Dari 15 Tahun Tampilan di atas muncul apabila pengakses berusia di bawah 15 tahun, maka program akan menampilkan daftar film sesuai usia mereka. Gambar 4.2 Inputan Nama Berupa Angka Gambar 4.5 Daftar Film Dalam Negeri Tampilan di atas muncul apabila pengakses memilih kategori film dalam negeri, maka akan ditampilkan daftar film sesuai kategori. Gambar 4.6 Daftar Film Luar Negeri Tampilan di atas muncul apabila pengakses memilih kategori film luar negeri, maka akan ditampilkan daftar film sesuai kategori. Gambar 4.7 Menu Usia Diatas 15 Tahun Tampilan di atas muncul apabila pengakses berusia di atas 15 tahun, maka program akan menampilkan daftar film sesuai usia mereka. Gambar 4.8 Daftar Film Romance Tampilan di atas muncul apabila pengakses memilih kategori film Romance, maka akan ditampilkan daftar film sesuai kategori. Gambar 4.11 Tampilan Informasi Film Gambar 4.9 Daftar Film Horror Tampilan di atas muncul apabila pengakses memilih kategori film Horror, maka akan ditampilkan daftar film sesuai kategori. Tampilan ini muncul saat pengakses menekan info yang sebelumnya telah memilih kategori dan judul film, maka akan ditampilkan informasi film yang diinginkan Gambar 4.12 Tampilan Nama Pengakses Program Gambar 4.10 Daftar Film Comedy Tampilan di atas muncul apabila pengakses memilih kategori film Comedy, maka akan ditampilkan daftar film sesuai kategori. Tampilan nama pengakses program yang langsung tersimpan pada database yang sudah dibuat. st = koneksi.stmt; } /** * This method is called from within the constructor to initialize the form. Gambar 4.13 Daftar Informasi Film Daftar informasi film yang sebelumnya telah diinputkan pada database yang telah dibuat, sehingga pengakses akan mudah untuk mendapatkan informasi yang diinginkan. Source Code * WARNING: Do NOT modify this code. The content of this method is always * regenerated Editor. by the Form */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GENBEGIN:initComponents a. Login.java package rentingyuk; private void initComponents() { import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Login javax.swing.JFrame { extends Statement st; public Login() { initComponents(); koneksi.getConnection(); jLabel1 javax.swing.JLabel(); jButton1 javax.swing.JButton(); = = new new jComboBox1 = javax.swing.JComboBox(); new jLabel2 javax.swing.JLabel(); = new jLabel3 javax.swing.JLabel(); = new jLabel4 javax.swing.JLabel(); = new jLabel5 javax.swing.JLabel(); = new jTextField1 = javax.swing.JTextField(); new jLabel6 javax.swing.JLabel(); new = jLabel7 javax.swing.JLabel(); = new setDefaultCloseOperation(javax.swin g.WindowConstants.EXIT_ON_CLOSE); setTitle("PROFILEFILM.COM"); setBackground(new java.awt.Color(65, 220, 220)); tahun", "lebih dari 15 tahun", " " })); jComboBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.Acti onEvent evt) { jComboBox1ActionPerformed(evt); } jLabel1.setText("jLabel1"); }); jButton1.setBackground(new java.awt.Color(255, 255, 255)); jLabel2.setFont(new java.awt.Font("Tahoma", 1, 36)); // NOI18N jButton1.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N jLabel2.setForeground(new java.awt.Color(0, 0, 255)); jButton1.setIcon(new javax.swing.ImageIcon(getClass().ge tResource("/rentingyuk/ll.jpg"))); // NOI18N jButton1.setText("Tampil"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.Acti onEvent evt) { jButton1ActionPerformed(evt); jLabel2.setText("PROFILE FILMS"); jLabel4.setFont(new java.awt.Font("Tahoma", 2, 18)); // NOI18N jLabel4.setText("Lengkapi data diri anda !"); jLabel5.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N jLabel5.setText("Nama "); } }); jComboBox1.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(ne w String[] { "Pilih", "kurang dari 15 jTextField1.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.Acti onEvent evt) { .addComponent(jLabel3) .addGap(170, 170, 170) jTextField1ActionPerformed(evt); .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_S IZE, 229, javax.swing.GroupLayout.PREFERRED_S IZE)) } }); jLabel6.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N jLabel6.setText("Usia"); jLabel7.setIcon(new javax.swing.ImageIcon(getClass().ge tResource("/rentingyuk/ta.jpg"))); // NOI18N jLabel7.setText("jLabel7"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentP ane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.sw ing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGr oup() .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_S IZE, 228, javax.swing.GroupLayout.PREFERRED_S IZE)) .addGap(0, Short.MAX_VALUE)) 0, .addGroup(layout.createSequentialGr oup() .addGroup(layout.createParallelGrou p(javax.swing.GroupLayout.Alignment .LEADING) .addGroup(layout.createSequentialGr oup() .addGap(153, 153, 153) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_S IZE, 102, javax.swing.GroupLayout.PREFERRED_S IZE)) .addGap(33, 33, 33) .addGroup(layout.createParallelGrou p(javax.swing.GroupLayout.Alignment .LEADING) .addGroup(layout.createSequentialGr oup() .addGroup(layout.createSequentialGr oup() .addGap(186, 186, 186) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_S IZE, 293, javax.swing.GroupLayout.PREFERRED_S IZE))) .addContainerGap(61, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.A lignment.TRAILING, layout.createSequentialGroup() .addGap(58, 58, 58) .addComponent(jComboBox1, Short.MAX_VALUE)) 0, 352, .addGap(41, 41, 41)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.sw ing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGrou p(javax.swing.GroupLayout.Alignment .LEADING) .addGroup(layout.createSequentialGr oup() .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_S IZE, 66, javax.swing.GroupLayout.PREFERRED_S IZE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_S IZE, 0, javax.swing.GroupLayout.PREFERRED_S IZE) .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_S IZE, 54, javax.swing.GroupLayout.PREFERRED_S IZE)) .addPreferredGap(javax.swing.Layout Style.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.Layout Style.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZ E, Short.MAX_VALUE) .addGroup(layout.createParallelGrou p(javax.swing.GroupLayout.Alignment .LEADING, false) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_S IZE, 173, javax.swing.GroupLayout.PREFERRED_S IZE) .addComponent(jTextField1) .addContainerGap() .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_S IZE, 30, javax.swing.GroupLayout.PREFERRED_S IZE) .addGroup(layout.createParallelGrou p(javax.swing.GroupLayout.Alignment .LEADING) .addGroup(layout.createSequentialGr oup() .addGap(220, 220, 220) .addComponent(jLabel3) .addGap(16, 16, 16)) .addGroup(javax.swing.GroupLayout.A lignment.TRAILING, layout.createSequentialGroup() .addPreferredGap(javax.swing.Layout Style.ComponentPlacement.RELATED) javax.swing.GroupLayout.DEFAULT_SIZ E, javax.swing.GroupLayout.PREFERRED_S IZE) .addComponent(jLabel6)) .addComponent(jLabel7) .addPreferredGap(javax.swing.Layout Style.ComponentPlacement.UNRELATED) )) .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_S IZE, 20, javax.swing.GroupLayout.PREFERRED_S IZE) .addGap(18, 18, 18) .addGroup(layout.createParallelGrou p(javax.swing.GroupLayout.Alignment .BASELINE) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_S IZE, 23, javax.swing.GroupLayout.PREFERRED_S IZE) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_S IZE, javax.swing.GroupLayout.DEFAULT_SIZ E, javax.swing.GroupLayout.PREFERRED_S IZE)) .addGap(60, 60, 60) .addPreferredGap(javax.swing.Layout Style.ComponentPlacement.RELATED, 94, Short.MAX_VALUE) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_S IZE, 31, javax.swing.GroupLayout.PREFERRED_S IZE) .addGap(77, 77, 77)) ); pack(); }// </editor-fold>//GENEND:initComponents private void jButton1ActionPerformed(java.awt.ev ent.ActionEvent evt) {//GENFIRST:event_jButton1ActionPerformed String jTextField1.getText(); x = if(x.equals("")){ .addGroup(layout.createParallelGrou p(javax.swing.GroupLayout.Alignment .BASELINE) JOptionPane.showMessageDialog(null, "Inputan nama tidak boleh kosong", "Pesan Peringatan", JOptionPane.WARNING_MESSAGE); .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_S IZE, }else if(!x.matches ("^[a-zAZ]+$")){ JOptionPane.showMessageDialog(null, "Inputan nama tidak boleh angka", "Pesan Peringatan", JOptionPane.WARNING_MESSAGE); }else{ try { st.executeUpdate("INSERT INTO akses values('"+jTextField1.getText()+"') "); } catch (SQLException }//GENLAST:event_jComboBox1ActionPerforme d private void jTextField1ActionPerformed(java.awt .event.ActionEvent evt) {//GENFIRST:event_jTextField1ActionPerfor med }//GENLAST:event_jTextField1ActionPerform ed ex) { Logger.getLogger(Login.class.getNam e()).log(Level.SEVERE, null, ex); } int a jComboBox1.getSelectedIndex(); = dispose(); Menu nak = new Menu(a); nak.show(); } public static void main(String args[]) { //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/t utorial/uiswing/lookandfeel/plaf.ht ml */ try { }//GENLAST:event_jButton1ActionPerformed for (javax.swing.UIManager.LookAndFeelI nfo info : javax.swing.UIManager.getInstalledL ookAndFeels()) { if ("Nimbus".equals(info.getName())) { private void jComboBox1ActionPerformed(java.awt. event.ActionEvent evt) {//GENFIRST:event_jComboBox1ActionPerform ed // code here: TODO add your javax.swing.UIManager.setLookAndFee l(info.getClassName()); break; handling } } } (ClassNotFoundException ex) { catch java.util.logging.Logger.getLogger( Login.class.getName()).log(java.uti l.logging.Level.SEVERE, null, ex); } (InstantiationException ex) { catch java.util.logging.Logger.getLogger( Login.class.getName()).log(java.uti l.logging.Level.SEVERE, null, ex); } (IllegalAccessException ex) { catch private jLabel3; javax.swing.JLabel private jLabel4; javax.swing.JLabel private jLabel5; javax.swing.JLabel private jLabel6; javax.swing.JLabel private jLabel7; javax.swing.JLabel private jTextField1; // End of variables declaration//GEN-END:variables java.util.logging.Logger.getLogger( Login.class.getName()).log(java.uti l.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeel Exception ex) { java.util.logging.Logger.getLogger( Login.class.getName()).log(java.uti l.logging.Level.SEVERE, null, ex); javax.swing.JTextField static class setVisible { public setVisible(boolean b) { } } } b. Menu.java } //</editor-fold> package view; new Login().setVisible(true); } import java.sql.SQLException; import java.util.logging.Level; // Variables declaration - do not modify//GEN-BEGIN:variables private jButton1; javax.swing.JButton private jComboBox1; javax.swing.JComboBox private jLabel1; javax.swing.JLabel private jLabel2; javax.swing.JLabel import java.util.logging.Logger; import javax.swing.DefaultComboBoxModel; public class Menu javax.swing.JFrame { static String film; int pilihan; extends public Menu(int pilihan) { initComponents(); String[] a = {"Pilih","Dalam Negeri","Luar Negeri" }; String[] b = {"Pilih","Romance","Horror","Comedy " }; this.pilihan = pilihan; if(pilihan == 1){ DefaultComboBoxModel model = new DefaultComboBoxModel(a); jComboBox1 = javax.swing.JComboBox(); new jLabel1 javax.swing.JLabel(); = new jLabel2 javax.swing.JLabel(); = new jLabel3 javax.swing.JLabel(); = new jComboBox2 = javax.swing.JComboBox(); new jButton1 javax.swing.JButton(); new = jComboBox1.setModel(model); jLabel4 javax.swing.JLabel(); = new }else if(pilihan == 2){ jLabel5 javax.swing.JLabel(); = new DefaultComboBoxModel model = new DefaultComboBoxModel(b); jComboBox1.setModel(model); } setDefaultCloseOperation(javax.swin g.WindowConstants.EXIT_ON_CLOSE); } jPanel1.setBackground(new java.awt.Color(0, 204, 204)); Menu() { throw new UnsupportedOperationException("Not supported yet."); jPanel1.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N } jComboBox1.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GENBEGIN:initComponents private void initComponents() { jPanel1 javax.swing.JPanel(); = new jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(ne w String[] { "Pilih", "Dalam Negeri. Luar Negeri" })); jComboBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.Acti onEvent evt) { jComboBox1ActionPerformed(evt); } jButton1.setBackground(new java.awt.Color(255, 255, 255)); jButton1.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N }); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 36)); // NOI18N jLabel1.setText("YUK NONTON"); jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N jLabel2.setText("Kategori Film"); jButton1.setIcon(new javax.swing.ImageIcon(getClass().ge tResource("/rentingyuk/info.jpg"))) ; // NOI18N jButton1.setText("Info"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.Acti onEvent evt) { jButton1ActionPerformed(evt); jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N } }); jLabel3.setText("Judul Film"); jComboBox2.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(ne w String[] { "Pilih", "Item 2", "Item 3", "Item 4" })); jComboBox2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.Acti onEvent evt) { jComboBox2ActionPerformed(evt); jLabel4.setFont(new java.awt.Font("Times New Roman", 2, 24)); // NOI18N jLabel4.setText("Yuk Dipilih "); jLabel5.setIcon(new javax.swing.ImageIcon(getClass().ge tResource("/rentingyuk/television4069510_1920-820x500.jpg"))); // NOI18N jLabel5.setText("jLabel5"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); } }); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(j avax.swing.GroupLayout.Alignment.LE ADING) .addGroup(jPanel1Layout.createSeque ntialGroup() .addGroup(jPanel1Layout.createParal lelGroup(javax.swing.GroupLayout.Al ignment.LEADING) .addGroup(jPanel1Layout.createSeque ntialGroup() .addGroup(jPanel1Layout.createSeque ntialGroup() .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_S IZE, 154, javax.swing.GroupLayout.PREFERRED_S IZE) .addGap(104, 104, 104) .addGroup(jPanel1Layout.createParal lelGroup(javax.swing.GroupLayout.Al ignment.LEADING, false) .addGap(170, 170, 170) .addComponent(jComboBox2, 0, javax.swing.GroupLayout.DEFAULT_SIZ E, Short.MAX_VALUE) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_S IZE, 300, javax.swing.GroupLayout.PREFERRED_S IZE)) .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_S IZE, 277, javax.swing.GroupLayout.PREFERRED_S IZE))))) .addGroup(jPanel1Layout.createSeque ntialGroup() .addGroup(jPanel1Layout.createSeque ntialGroup() .addGap(40, 40, 40) .addGap(192, 192, 192) .addGroup(jPanel1Layout.createParal lelGroup(javax.swing.GroupLayout.Al ignment.LEADING) .addComponent(jLabel1)) .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_S IZE, 130, javax.swing.GroupLayout.PREFERRED_S IZE) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_S IZE, 112, javax.swing.GroupLayout.PREFERRED_S IZE) .addGroup(jPanel1Layout.createSeque ntialGroup() .addGap(223, 223, 223) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_S IZE, 178, javax.swing.GroupLayout.PREFERRED_S IZE))) .addContainerGap(70, Short.MAX_VALUE)) ); lelGroup(javax.swing.GroupLayout.Al ignment.BASELINE) .addComponent(jLabel3) jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(j avax.swing.GroupLayout.Alignment.LE ADING) .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_S IZE, javax.swing.GroupLayout.DEFAULT_SIZ E, javax.swing.GroupLayout.PREFERRED_S IZE)) .addGroup(jPanel1Layout.createSeque ntialGroup() .addGap(27, 27, 27) .addComponent(jLabel1) .addPreferredGap(javax.swing.Layout Style.ComponentPlacement.UNRELATED) .addComponent(jLabel5) .addGap(13, 13, 13) .addGap(67, 67, 67) .addComponent(jButton1) .addContainerGap(103, Short.MAX_VALUE)) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentP ane()); .addComponent(jLabel4) .addGap(18, 18, 18) getContentPane().setLayout(layout); layout.setHorizontalGroup( .addGroup(jPanel1Layout.createParal lelGroup(javax.swing.GroupLayout.Al ignment.TRAILING) .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_S IZE, javax.swing.GroupLayout.DEFAULT_SIZ E, javax.swing.GroupLayout.PREFERRED_S IZE) .addComponent(jLabel2)) .addGap(26, 26, 26) .addGroup(jPanel1Layout.createParal layout.createParallelGroup(javax.sw ing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.A lignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZ E, javax.swing.GroupLayout.DEFAULT_SIZ E, Short.MAX_VALUE) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.sw ing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.A lignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZ E, javax.swing.GroupLayout.DEFAULT_SIZ E, Short.MAX_VALUE) .addContainerGap()) ); pack(); }// </editor-fold>//GENEND:initComponents String[] dalamNegeri = {"Pilih","Garuda di Dadaku","Tanah Air Beta", "5 Elang", "Laskar Pelangi","Koki Cilik" }; String[] luarNegeri = {"Pilih", "Children of Heaven","Grave of the Fireflies","Little Nicholas", "The Polar Express","The Incredibles" }; if(pilihan == 2){ if (jComboBox1.getSelectedIndex() 0){ == DefaultComboBoxModel model = new DefaultComboBoxModel(c); jComboBox2.setModel(model); }else if(jComboBox1.getSelectedIndex() 1){ == DefaultComboBoxModel model = new DefaultComboBoxModel(c); jComboBox2.setModel(model); private void jComboBox1ActionPerformed(java.awt. event.ActionEvent evt) {//GENFIRST:event_jComboBox1ActionPerform ed String[] c = {"Pilih","DILAN","TEMAN TAPI MENIKAH","ROMAN PICISAN","ENDLESS LOVE","THE VOW"}; String[] d = {"Pilih","SEBELUM IBLIS MENJEMPUT","DANUR","IT","DOCTOR SLEEP","PENGABDI SETAN"}; String[] e = {"Pilih","MY STUPID BOSS","YOWIS BEN","CEK TOKO SEBELAH","WARKOP DKI REBORN","MILLY & MAMET"}; }else if(jComboBox1.getSelectedIndex() 2){ == DefaultComboBoxModel model = new DefaultComboBoxModel(d); jComboBox2.setModel(model); }else if(jComboBox1.getSelectedIndex() 3){ == DefaultComboBoxModel model = new DefaultComboBoxModel(e); jComboBox2.setModel(model); } }else if (pilihan == 1){ if (jComboBox1.getSelectedIndex() 0){ try { == new View().show(); } catch (SQLException ex) { DefaultComboBoxModel model = new DefaultComboBoxModel(dalamNegeri); jComboBox2.setModel(model); }else if(jComboBox1.getSelectedIndex() 1){ } == DefaultComboBoxModel model = new DefaultComboBoxModel(dalamNegeri); jComboBox2.setModel(model); }else if(jComboBox1.getSelectedIndex() 2){ Logger.getLogger(Menu.class.getName ()).log(Level.SEVERE, null, ex); == DefaultComboBoxModel model = new DefaultComboBoxModel(luarNegeri); }//GENLAST:event_jButton1ActionPerformed private void jComboBox2ActionPerformed(java.awt. event.ActionEvent evt) {//GENFIRST:event_jComboBox2ActionPerform ed // code here: TODO add your handling }//GENLAST:event_jComboBox2ActionPerforme d jComboBox2.setModel(model); /** } * @param args the command line arguments } }//GENLAST:event_jComboBox1ActionPerforme d private void jButton1ActionPerformed(java.awt.ev ent.ActionEvent evt) {//GENFIRST:event_jButton1ActionPerformed // code here: TODO add your */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { handling film=(String) jComboBox2.getSelectedItem(); new Menu().setVisible(true); } }); dispose(); } int a=1; // Variables declaration - do not modify//GEN-BEGIN:variables private jButton1; javax.swing.JButton private jComboBox1; javax.swing.JComboBox private jComboBox2; javax.swing.JComboBox private jLabel1; javax.swing.JLabel private jLabel2; javax.swing.JLabel private jLabel3; javax.swing.JLabel private jLabel4; javax.swing.JLabel private jLabel5; javax.swing.JLabel private jPanel1; javax.swing.JPanel private Object jTextField1; public SQLException { View() throws initComponents(); DefaultTableModel (DefaultTableModel) jTable1.getModel(); dtm = dtm.setRowCount(0); String String[10]; data[]=new koneksi.getConnection(); String pilem= Menu.film; // End of variables declaration//GEN-END:variables koneksi.sql = "SELECT * FROM list_film where judul like '"+pilem+"'"; koneksi.rs = koneksi.stmt.executeQuery(koneksi.s ql); while(koneksi.rs.next()){ } data[0]=koneksi.rs.getString("judul "); c. View.java package rentingyuk; data[1]=koneksi.rs.getString("pemai n_utama"); import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.table.DefaultTableModel ; data[2]=koneksi.rs.getString("link_ sinopsis"); data[3]=koneksi.rs.getString("link_ film"); dtm.addRow(data); public class View javax.swing.JFrame { extends String data[]=new String[10]; } koneksi.stmt.close(); jTable1.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GENBEGIN:initComponents jTable1.setModel(new javax.swing.table.DefaultTableModel ( new Object [][] { {null, null, null, null} private void initComponents() { }, new String [] { jLabel2 javax.swing.JLabel(); = new jScrollPane2 = javax.swing.JScrollPane(); new jTable1 javax.swing.JTable(); = new jLabel1 javax.swing.JLabel(); = new jButton1 javax.swing.JButton(); = PEMAIN", FILM" "LINK "JUDUL", SINOPSIS", "NAMA "LINK } new setDefaultCloseOperation(javax.swin g.WindowConstants.EXIT_ON_CLOSE); setBackground(new java.awt.Color(0, 255, 204)); jLabel2.setBackground(new java.awt.Color(204, 204, 204)); jLabel2.setFont(new java.awt.Font("Colonna MT", 1, 36)); // NOI18N jLabel2.setText("SELAMAT MENONTON"); jTable1.setBackground(new java.awt.Color(204, 204, 255)); )); jTable1.setRowHeight(85); jScrollPane2.setViewportView(jTable 1); jLabel1.setIcon(new javax.swing.ImageIcon(getClass().ge tResource("/rentingyuk/posteraja.pn g"))); // NOI18N jLabel1.setText("jLabel1"); jButton1.setBackground(new java.awt.Color(255, 255, 255)); jButton1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N jButton1.setIcon(new javax.swing.ImageIcon(getClass().ge tResource("/rentingyuk/hom.png"))); // NOI18N jButton1.setText("Home"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.Acti onEvent evt) { jButton1ActionPerformed(evt); } }); lignment.TRAILING, layout.createSequentialGroup() .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_S IZE, 176, javax.swing.GroupLayout.PREFERRED_S IZE) .addGap(232, 232, 232)) javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentP ane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.sw ing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGr oup() .addContainerGap(36, Short.MAX_VALUE) .addGroup(layout.createParallelGrou p(javax.swing.GroupLayout.Alignment .LEADING) .addGroup(javax.swing.GroupLayout.A lignment.TRAILING, layout.createSequentialGroup() .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_S IZE, 619, javax.swing.GroupLayout.PREFERRED_S IZE) .addContainerGap()) .addGroup(javax.swing.GroupLayout.A lignment.TRAILING, layout.createSequentialGroup() .addComponent(jLabel2) .addGap(116, 116, 116)))) ); .addGroup(javax.swing.GroupLayout.A lignment.TRAILING, layout.createSequentialGroup() .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_S IZE, 330, javax.swing.GroupLayout.PREFERRED_S IZE) layout.setVerticalGroup( layout.createParallelGroup(javax.sw ing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGr oup() .addGap(35, 35, 35) .addGap(151, 151, 151)) .addComponent(jLabel2) .addGroup(javax.swing.GroupLayout.A .addGap(31, 31, 31) } (SQLException ex) { .addComponent(jLabel1) catch .addGap(46, 46, 46) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_S IZE, 115, javax.swing.GroupLayout.PREFERRED_S IZE) Logger.getLogger(View.class.getName ()).log(Level.SEVERE, null, ex); } } }); .addGap(58, 58, 58) } .addComponent(jButton1) // Variables declaration - do not modify//GEN-BEGIN:variables .addContainerGap(95, Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GENEND:initComponents private void jButton1ActionPerformed(java.awt.ev ent.ActionEvent evt) {//GENFIRST:event_jButton1ActionPerformed private jButton1; javax.swing.JButton private jLabel1; javax.swing.JLabel private jLabel2; javax.swing.JLabel private javax.swing.JScrollPane jScrollPane2; private jTable1; javax.swing.JTable // End of variables declaration//GEN-END:variables Login yuk = new Login(); yuk.show(); private void getSelectedIndex() }//GENLAST:event_jButton1ActionPerformed public static main(String args[]) { void { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { try { new View().setVisible(true); } d. koneksi.java package rentingyuk; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; import java.sql.DriverManager; DAFTAR PUSTAKA import java.sql.ResultSet; [1]. import java.sql.SQLException; public class koneksi { static Statement stmt; static ResultSet rs; static String sql; public static getConnection() { Connection Connection connection = null; String driver "com.mysql.jdbc.Driver"; = String url = "jdbc:mysql://localhost:3306/info_f ilm"; //ganti dengan database mu String user = "root"; String password =""; if (connection == null) { try { Class.forName(driver); connection =(Connection) DriverManager.getConnection(url, user, password); stmt = (Statement) connection.createStatement(); } (ClassNotFoundException SQLException error) { System.exit(0); } } return connection; } } catch | Ahmad Muhardian. 2016. Pemrograman Java Swing: Membuat Jendela dengan JFrame. Diakses (online) : https://www.petanikode.com/javaswing-jframe/ pada 1 Mei 2020 [2]. Arfadia, 2020. Keunggulan Java Dibandingkan Bahasa Pemrograman Lain. https://blog.arfadia.com/keunggulanjava-dibandingkan-bahasapemrograman-lain/ [3]. Billah, Ersandi. 2019. Pengertian dan Tahap Metode SDLC Waterfall . https://medium.com/@ersandibillah03/s dlc-waterfall-3a3c893be77b [4]. Hendry, 2008. Belajar Otodidak Java Dengan Netbeans. Jakarta : Elex Media Komputindo. [5]. Jogiyanto, HM. 2005. Analisis & Desain Sistem Informasi : Pendekatan Tersruktur Teori dan Praktik Aplikasi Bisnis. Yogyakarta : ANDI. [6]. Purwanto, Arip. 2018. Konsep Dasar Sistem Informasi. https://aripdwipurwanto.blogspot.com/2 018/01/konsep-dasar-sisteminformasi.html [7]. Sujana, A. "Pengertian Java Dan Fungsinya." (2014). [8]. Stuck Overvlow dkk. 2014. Diakses (online) : https://stackoverflow.com/questions/214 33374/exception-handling-in-gui pada 1 Mei 2020 [9]. RPL SMK. 2016. CARA MUDAH UNTUK MENAMPILKAN GAMBAR DI JAVA NETBEANS. Diakses (online) : http://rplsmktutorial.blogspot.com/2016/ 04/cara-menambahicon-di-javanetbeans.html pada 1 Mei 2020 [10]. Tim Asisten Praktikum. 2018. Modul 1-7 Praktikum Pemrograman Berorientasi Objek. Malang: Universitas Negeri Malang. [11]. Siswaan. 2016. Menampilkan Data di Database MySQL pada JTable Netbeans. Diakses (online) : https://kodingwae.blogspot.com/2016/0 6/menampilkan-data-di-database-mysqlpada.html pada 1 Mei 2020 [12]. Supardi, Yuniar. 2007. Pemrograman Data Base dengan Java dan MySQL. Jakarta : Elex Media Komputindo. [13]. Unokwn. 2015. Menyambungkan Beberapa form di Netbeans. Diakses (online) : http://programdesktop.blogspot.com/201 5/04/menyambungkan-beberapa-formdinetbeans.html pada 1 Mei 2020