BAB - 8 - Pemrograman - Lanjut - PBO - INTERFACE LATIHAN [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

BAB



: INTERFACE



A. DEFINISI MASALAH Setiap alat musik memiliki nama, dan cara bermain masing-masing, seperti misalnya gitar yaitu dipetik, suling ditiup, biola digesek, dan lain sebagainya. Selain itu alat musik juga memiliki nada-nada, yang dasar Do nya ditentukan berdasarkan tangga nadanya, sehingga terdapat juga fungsi untuk menentukan nada Do berada pada nada yang mana, misalnya Do = C. Setiap alat musik juga memiliki bahan sendiri untuk membuatnya, seperti gitar dari kayu, flute dari logam, dan lain sebagainya. Buatlah sebuah interface alat musik yang diimplementasikan oleh kelas abstrak induk alat musik petik, alat musik tiup, alat musik tabuh, dan lain sebagainya (pilih 2) di mana setiap induk memiliki minimum 1 kelas anak (misal: suling extends alat musik tiup). Tentukan sendiri alat musik apa yang menurunkan kelas abstrak induknya. Buatlah tampilan menu dan inputan sekreatif dan menarik.



B. SOURCE CODE 1 2 3 4 5 6



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21



22 23



AlatMusik.java package Praktikum8; public interface AlatMusik { public void setNama(String nama); public void setSetCaraMain(); public void NadaDasar(String nada); } AM_Petik.java package Praktikum8; public abstract class AM_Petik implements AlatMusik{ private String Nama, CaraMain, NadaDasar, TanggaNada; AM_Petik(String nama, String nadaDasar) { setNama(nama); setSetCaraMain(); NadaDasar(nadaDasar); } @Override public void setNama(String nama) { this.Nama = nama; } @Override public void setSetCaraMain() { CaraMain = "DIPETIK"; } @Override public void NadaDasar(String nadaDasar) { this.NadaDasar = nadaDasar; if (nadaDasar == ("A")) { TanggaNada = "Tangga nada dengan nada dasar pilihan A:\nDo = A\t\tRe = B\nMi = C\t\tFa = D\nSo = E\t\tLa = F\nSi = G\t\tDo = A"; } else if (nadaDasar == ("B")) {



52 53



TanggaNada = "Tangga nada dengan B:\nDo = B\t\tRe = C\nMi = D\t\tFa = E\nSo = A\t\tDo = B"; } else if (nadaDasar == ("C")) { TanggaNada = "Tangga nada dengan C:\nDo = C\t\tRe = D\nMi = E\t\tFa = F\nSo = B\t\tDo = C"; } else if (nadaDasar == ("D")) { TanggaNada = "Tangga nada dengan D:\nDo = D\t\tRe = E\nMi = F\t\tFa = G\nSo = C\t\tDo = D"; } else if (nadaDasar == ("E")) { TanggaNada = "Tangga nada dengan E:\nDo = E\t\tRe = F\nMi = G\t\tFa = A\nSo = D\t\tDo = E"; } else if (nadaDasar == ("F")) { TanggaNada = "Tangga nada dengan F:\nDo = F\t\tRe = G\nMi = A\t\tFa = B\nSo = E\t\tDo = F"; } else if (nadaDasar == ("G")) { TanggaNada = "Tangga nada dengan G:\nDo = G\t\tRe = A\nMi = B\t\tFa = C\nSo = F\t\tDo = G"; } } public String getNama() { return Nama; } public String getNadaDasar() { return NadaDasar; } public String getTanggaNada() { return TanggaNada; } public String getSetCaraMain() { return CaraMain; } public abstract void Bahan(); @Override public String toString() { return String.format("Alat musik " + dengan nada dasar pilihan " + getNadaDasar() cara " + getSetCaraMain()+" dan "); } }



1 2 3 4



AM_Tiup.java package Praktikum8; public abstract class AM_Tiup implements AlatMusik{ private String Nama, CaraMain, NadaDasar, TanggaNada; AM_Tiup(String nama, String nadaDasar) {



24 25



26 27



28 29



30 31



32 33



34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50



51



nada dasar pilihan F\t\tLa = G\nSi =



nada dasar pilihan G\t\tLa = A\nSi =



nada dasar pilihan A\t\tLa = B\nSi =



nada dasar pilihan B\t\tLa = C\nSi =



nada dasar pilihan C\t\tLa = D\nSi =



nada dasar pilihan D\t\tLa = E\nSi =



getNama() + " + ".\nDimainkan dgn



5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21



22 23



24 25



26 27



28 29



30 31



32 33



34 35 36 37 38 39 40 41



setNama(nama); setSetCaraMain(); NadaDasar(nadaDasar); } @Override public void setNama(String nama) { this.Nama = nama; } @Override public void setSetCaraMain() { CaraMain = "DITIUP"; } @Override public void NadaDasar(String nadaDasar) { this.NadaDasar = nadaDasar; if (nadaDasar == ("A")) { TanggaNada = "Tangga nada dengan nada dasar pilihan A:\nDo = A\t\tRe = B\nMi = C\t\tFa = D\nSo = E\t\tLa = F\nSi = G\t\tDo = A"; } else if (nadaDasar == ("B")) { TanggaNada = "Tangga nada dengan nada dasar pilihan B:\nDo = B\t\tRe = C\nMi = D\t\tFa = E\nSo = F\t\tLa = G\nSi = A\t\tDo = B"; } else if (nadaDasar == ("C")) { TanggaNada = "Tangga nada dengan nada dasar pilihan C:\nDo = C\t\tRe = D\nMi = E\t\tFa = F\nSo = G\t\tLa = A\nSi = B\t\tDo = C"; } else if (nadaDasar == ("D")) { TanggaNada = "Tangga nada dengan nada dasar pilihan D:\nDo = D\t\tRe = E\nMi = F\t\tFa = G\nSo = A\t\tLa = B\nSi = C\t\tDo = D"; } else if (nadaDasar == ("E")) { TanggaNada = "Tangga nada dengan nada dasar pilihan E:\nDo = E\t\tRe = F\nMi = G\t\tFa = A\nSo = B\t\tLa = C\nSi = D\t\tDo = E"; } else if (nadaDasar == ("F")) { TanggaNada = "Tangga nada dengan nada dasar pilihan F:\nDo = F\t\tRe = G\nMi = A\t\tFa = B\nSo = C\t\tLa = D\nSi = E\t\tDo = F"; } else if (nadaDasar == ("G")) { TanggaNada = "Tangga nada dengan nada dasar pilihan G:\nDo = G\t\tRe = A\nMi = B\t\tFa = C\nSo = D\t\tLa = E\nSi = F\t\tDo = G"; } } public String getNama() { return Nama; } public String getNadaDasar() { return NadaDasar; }



42 43 44 45 46 47 48 49 50



51 52 53



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21



22 23



24 25



26 27



public String getTanggaNada() { return TanggaNada; } public String getSetCaraMain() { return CaraMain; } public abstract void Bahan(); @Override public String toString() { return String.format("Alat musik " + getNama() + " dengan nada dasar pilihan " + getNadaDasar() + ".\nDimainkan dgn cara " + getSetCaraMain()+" dan "); } } AM_Gesek.java package Praktikum8; public abstract class AM_Gesek implements AlatMusik { private String Nama, CaraMain, NadaDasar, TanggaNada; AM_Gesek(String nama, String nadaDasar) { setNama(nama); setSetCaraMain(); NadaDasar(nadaDasar); } @Override public void setNama(String nama) { this.Nama = nama; } @Override public void setSetCaraMain() { CaraMain = "DIGESEK"; } @Override public void NadaDasar(String nadaDasar) { this.NadaDasar = nadaDasar; if (nadaDasar == ("A")) { TanggaNada = "Tangga nada dengan nada dasar pilihan A:\nDo = A\t\tRe = B\nMi = C\t\tFa = D\nSo = E\t\tLa = F\nSi = G\t\tDo = A"; } else if (nadaDasar == ("B")) { TanggaNada = "Tangga nada dengan nada dasar pilihan B:\nDo = B\t\tRe = C\nMi = D\t\tFa = E\nSo = F\t\tLa = G\nSi = A\t\tDo = B"; } else if (nadaDasar == ("C")) { TanggaNada = "Tangga nada dengan nada dasar pilihan C:\nDo = C\t\tRe = D\nMi = E\t\tFa = F\nSo = G\t\tLa = A\nSi = B\t\tDo = C"; } else if (nadaDasar == ("D")) { TanggaNada = "Tangga nada dengan nada dasar pilihan D:\nDo = D\t\tRe = E\nMi = F\t\tFa = G\nSo = A\t\tLa = B\nSi = C\t\tDo = D";



28 29



51 52 53



} else if (nadaDasar == ("E")) { TanggaNada = "Tangga nada dengan E:\nDo = E\t\tRe = F\nMi = G\t\tFa = A\nSo = D\t\tDo = E"; } else if (nadaDasar == ("F")) { TanggaNada = "Tangga nada dengan F:\nDo = F\t\tRe = G\nMi = A\t\tFa = B\nSo = E\t\tDo = F"; } else if (nadaDasar == ("G")) { TanggaNada = "Tangga nada dengan G:\nDo = G\t\tRe = A\nMi = B\t\tFa = C\nSo = F\t\tDo = G"; } } public String getNama() { return Nama; } public String getNadaDasar() { return NadaDasar; } public String getTanggaNada() { return TanggaNada; } public String getSetCaraMain() { return CaraMain; } public abstract void Bahan(); @Override public String toString() { return String.format("Alat musik " + dengan nada dasar pilihan " + getNadaDasar() cara " + getSetCaraMain()+" dan "); } }



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15



AM_Pukul.java package Praktikum8; public abstract class AM_Pukul implements AlatMusik{ private String Nama, CaraMain, NadaDasar, TanggaNada; AM_Pukul(String nama, String nadaDasar) { setNama(nama); setSetCaraMain(); NadaDasar(nadaDasar); } @Override public void setNama(String nama) { this.Nama = nama; } @Override public void setSetCaraMain() { CaraMain = "DIPUKUL";



30 31



32 33



34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50



nada dasar pilihan B\t\tLa = C\nSi =



nada dasar pilihan C\t\tLa = D\nSi =



nada dasar pilihan D\t\tLa = E\nSi =



getNama() + " + ".\nDimainkan dgn



16 17 18 19 20 21



22 23



24 25



26 27



28 29



30 31



32 33



34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50



} @Override public void NadaDasar(String nadaDasar) { this.NadaDasar = nadaDasar; if (nadaDasar == ("A")) { TanggaNada = "Tangga nada dengan nada dasar pilihan A:\nDo = A\t\tRe = B\nMi = C\t\tFa = D\nSo = E\t\tLa = F\nSi = G\t\tDo = A"; } else if (nadaDasar == ("B")) { TanggaNada = "Tangga nada dengan nada dasar pilihan B:\nDo = B\t\tRe = C\nMi = D\t\tFa = E\nSo = F\t\tLa = G\nSi = A\t\tDo = B"; } else if (nadaDasar == ("C")) { TanggaNada = "Tangga nada dengan nada dasar pilihan C:\nDo = C\t\tRe = D\nMi = E\t\tFa = F\nSo = G\t\tLa = A\nSi = B\t\tDo = C"; } else if (nadaDasar == ("D")) { TanggaNada = "Tangga nada dengan nada dasar pilihan D:\nDo = D\t\tRe = E\nMi = F\t\tFa = G\nSo = A\t\tLa = B\nSi = C\t\tDo = D"; } else if (nadaDasar == ("E")) { TanggaNada = "Tangga nada dengan nada dasar pilihan E:\nDo = E\t\tRe = F\nMi = G\t\tFa = A\nSo = B\t\tLa = C\nSi = D\t\tDo = E"; } else if (nadaDasar == ("F")) { TanggaNada = "Tangga nada dengan nada dasar pilihan F:\nDo = F\t\tRe = G\nMi = A\t\tFa = B\nSo = C\t\tLa = D\nSi = E\t\tDo = F"; } else if (nadaDasar == ("G")) { TanggaNada = "Tangga nada dengan nada dasar pilihan G:\nDo = G\t\tRe = A\nMi = B\t\tFa = C\nSo = D\t\tLa = E\nSi = F\t\tDo = G"; } } public String getNama() { return Nama; } public String getNadaDasar() { return NadaDasar; } public String getTanggaNada() { return TanggaNada; } public String getSetCaraMain() { return CaraMain; } public abstract void Bahan(); @Override public String toString() {



51 52 53



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21



22 23



24 25



26 27



28 29



30 31



32



return String.format("Alat musik " + getNama() + " dengan nada dasar pilihan " + getNadaDasar() + ".\nDimainkan dgn cara " + getSetCaraMain()+" dan "); } } AM_Tekan.java package Praktikum8; public abstract class AM_Tekan implements AlatMusik{ private String Nama, CaraMain, NadaDasar, TanggaNada; AM_Tekan(String nama, String nadaDasar) { setNama(nama); setSetCaraMain(); NadaDasar(nadaDasar); } @Override public void setNama(String nama) { this.Nama = nama; } @Override public void setSetCaraMain() { CaraMain = "DITEKAN"; } @Override public void NadaDasar(String nadaDasar) { this.NadaDasar = nadaDasar; if (nadaDasar == ("A")) { TanggaNada = "Tangga nada dengan nada dasar pilihan A:\nDo = A\t\tRe = B\nMi = C\t\tFa = D\nSo = E\t\tLa = F\nSi = G\t\tDo = A"; } else if (nadaDasar == ("B")) { TanggaNada = "Tangga nada dengan nada dasar pilihan B:\nDo = B\t\tRe = C\nMi = D\t\tFa = E\nSo = F\t\tLa = G\nSi = A\t\tDo = B"; } else if (nadaDasar == ("C")) { TanggaNada = "Tangga nada dengan nada dasar pilihan C:\nDo = C\t\tRe = D\nMi = E\t\tFa = F\nSo = G\t\tLa = A\nSi = B\t\tDo = C"; } else if (nadaDasar == ("D")) { TanggaNada = "Tangga nada dengan nada dasar pilihan D:\nDo = D\t\tRe = E\nMi = F\t\tFa = G\nSo = A\t\tLa = B\nSi = C\t\tDo = D"; } else if (nadaDasar == ("E")) { TanggaNada = "Tangga nada dengan nada dasar pilihan E:\nDo = E\t\tRe = F\nMi = G\t\tFa = A\nSo = B\t\tLa = C\nSi = D\t\tDo = E"; } else if (nadaDasar == ("F")) { TanggaNada = "Tangga nada dengan nada dasar pilihan F:\nDo = F\t\tRe = G\nMi = A\t\tFa = B\nSo = C\t\tLa = D\nSi = E\t\tDo = F"; } else if (nadaDasar == ("G")) {



33



34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50



51 52 53



TanggaNada = "Tangga nada dengan G:\nDo = G\t\tRe = A\nMi = B\t\tFa = C\nSo = F\t\tDo = G"; } } public String getNama() { return Nama; } public String getNadaDasar() { return NadaDasar; } public String getTanggaNada() { return TanggaNada; } public String getSetCaraMain() { return CaraMain; } public abstract void Bahan(); @Override public String toString() { return String.format("Alat musik " + dengan nada dasar pilihan " + getNadaDasar() cara " + getSetCaraMain()+" dan "); } }



nada dasar pilihan D\t\tLa = E\nSi =



getNama() + " + ".\nDimainkan dgn



17 18



Gitar.java package Praktikum8; public class Gitar extends AM_Petik { private String Bahan; public Gitar(String nama,String nadaDasar) { super(nama, nadaDasar); Bahan(); } @Override public void Bahan() { Bahan = "KAYU."; } public String getBahan() { return Bahan; } public String toString() { return String.format(super.toString() +"terbuat dari "+getBahan() + "\n" + super.getTanggaNada()); } }



1 2



Suling.java package Praktikum8; public class Suling extends AM_Tiup{



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16



3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18



private String Bahan; public Suling(String nama,String nadaDasar) { super(nama, nadaDasar); Bahan(); } @Override public void Bahan() { Bahan = "KAYU, ALUMUNIUM."; } public String getBahan() { return Bahan; } public String toString() { return String.format(super.toString() +"terbuat dari "+getBahan() + "\n" + super.getTanggaNada()); } }



17 18



Biola.java package Praktikum8; public class Biola extends AM_Gesek{ private String Bahan; public Biola(String nama,String nadaDasar) { super(nama, nadaDasar); Bahan(); } @Override public void Bahan() { Bahan = "KAYU."; } public String getBahan() { return Bahan; } public String toString() { return String.format(super.toString() +"terbuat dari "+getBahan() + "\n" + super.getTanggaNada()); } }



1 2 3 4 5 6 7 8 9 10



Gamelan.java package Praktikum8; public class Gamelan extends AM_Pukul{ private String Bahan; public Gamelan(String nama,String nadaDasar) { super(nama, nadaDasar); Bahan(); } @Override public void Bahan() { Bahan = "LOGAM.";



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16



11 12 13 14 15 16 17 18



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16



} public String getBahan() { return Bahan; } public String toString() { return String.format(super.toString() +"terbuat dari "+getBahan() + "\n" + super.getTanggaNada()); } } Piano.java package Praktikum8; public class Piano extends AM_Tekan{ private String Bahan; public Piano(String nama,String nadaDasar) { super(nama, nadaDasar); Bahan(); } @Override public void Bahan() { Bahan = "KAYU, BESI dan FIBER."; } public String getBahan() { return Bahan; } public String toString() { return String.format(super.toString() +"terbuat dari "+getBahan() + "\n" + super.getTanggaNada()); } } MainAlatMusik.java package Praktikum8; import java.io.*; public class MainAlatMusik { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Daftar Alat Musik"); System.out.println("| 1. Gitar\n| 2. Suling\n| 3. Biola\n| 4. Gamelan\n| 5. Piano"); System.out.println("|-------------"); System.out.print("| Pilih : "); String nama = in.readLine(); System.out.print("| Pilih nada dasar (A-G) : "); String nadaDasar = in.readLine(); System.out.print("|-----------------------------\n"); AlatMusik petik, tiup, gesek, pukul, tekan;



17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34



if (nama == ("Gitar") || nama == ("1")) { petik = new Gitar("Gitar", nadaDasar); System.out.println(petik); } else if (nama == ("Suling") || nama == ("2")) { tiup = new Suling("Biola", nadaDasar); System.out.println(tiup); } else if (nama == ("Biola") || nama == ("3")) { gesek = new Biola("Biola", nadaDasar); System.out.println(gesek); } else if (nama == ("Gamelan") || nama == ("4")) { pukul = new Piano("Gamelan", nadaDasar); System.out.println(pukul); } else if (nama == ("Piano") || nama == ("5")) { tekan = new Piano("Piano", nadaDasar); System.out.println(tekan); } } }



HASIL PROGRAM :