Tugas Array dan Inheritance Kelompok 13


1. Soal

03. Define two derived classes of the abstract class ShapeBase in Listing 8.19. Your two classes will Your two classes will be called RightArrow and LeftArrow. These classes will be like the Classes Rectangle and Triangle, but they will draw arrows that point right and left, respectively.

2. Penjelasan Soal

Di soal ini diminta untuk membuat dua kelas, dimana dua kelas tersebut jika di run akan menghasilkan bentuk panah ke kanan, dan bentuk panah ke kiri.

3. Source Code Java

3.1 Class RightArrow

Class RightArrow ini memiliki total 2 class, dengan 1 main class nya, dan kelas lainnya untuk membuat method-method yang akan dipanggil di main class nantinya.

Berikut adalah source code yang berisi method-method untuk kedua main class :

1. package javaapplication3;

2.

3. import java.util.Arrays;

4. import java.util.Scanner;

5.

6.

7. public class Method {

8. Scanner aufar = new Scanner(System.in);

9.

10. private int width;

11.

12. private static String repeat(char ch, int count) {

13. char buf[] = new char[count]; // deklarasi array

14. Arrays.fill(buf, ch); // definisiin array apa yg mau dirubah

15. return new String(buf); // ngubah array buf yg tadinya char jadi string

16. }

17.

18. public static void printRightArrow(char ch, int n) {

19. for (int i = 1; i < n; i++) // for yang ini buat bikin bagian atasnya panah

20. System.out.println(repeat(‘ ‘, n – 1) + repeat(ch, i));

21.

22. System.out.println(repeat(ch, n * 2 – 1)); // buat ekor panah

23.

24. for (int i = n – 1; i >= 1; i–) // for yang ini buat bikin bagian bawahnya panah

25. System.out.println(repeat(‘ ‘, n – 1) + repeat(ch, i));

26. }

27.

28. public void DrawArrow()

29. {

30. do{

31. System.out.print("Masukan panjang untuk Left Arrow, dengan skala minimal 3 : ");

32. width = aufar.nextInt();

33.

34. if(width >= 3){

35. System.out.println();

36. for(int i = 0,r=0; i<width; i++) // semua fungsi di dalam looping ini, akan dieksekusi 7 kali

37. {

38.

39. for(int j=0;j<(width/2)-r;j++)//buat bikin spasi disebelum kepala arrow

40. System.out.print(" ");//spasinya

41.

42. for(int j=0;j<=r;j++)

43. {

44. if(j==r || j==0){

45. System.out.print("*"); // buat mencetak kepala arrow

46. }else{

47. System.out.print(" "); // buat bikin rongga dalam kepala arrow

48. }

49. }

50.

51. if(i==width/2)

52. ArrowTail(); // manggil method arrowtail

53.

54.

55. if(i<width/2) // fungsi if yang ini, tujuannya buat ngatur panjang pendeknya spasi sebelum kepala

56. r++;

57. else r–;

58.

59. System.out.println();

60. }

61. System.out.println();

62.

63. }

64. }while(width <= 3);

65. }

66.

67.

68.

69. public void ArrowTail()

70. {

71. for(int count=0; count<(width*2)+1; count++)

72. {

73. System.out.print("*"); // bikin garis lurus bintang

74. }

75. }

76. }

77.

78.

Pada baris ke 12 sampai baris ke 26, adalah method yang berfungsi untuk membuat Panah Kanan, sedangkan dari baris ke 28 sampai ke 75 adalah method yang berfungsi untuk membuat Panah Kiri.

Dan berikut adalah source code dari main class RightArrow :

1.

2. package javaapplication3;

3.

4. import java.util.Scanner;

5.

6. public class MainRightArrow {

7. public static void main(String[] args) {

8. Scanner aufar = new Scanner(System.in);

9. Method arrow = new Method();

10. int wafiqa;

11.

12. do{

13. System.out.print("Masukan panjang untuk Right Arrow, dengan skala minimal 3 : ");

14. wafiqa = aufar.nextInt();

15. System.out.println();

16.

17.

18. if(wafiqa >= 3){

19. arrow.printRightArrow(‘*’, wafiqa);

20. }

21. }while(wafiqa <= 3);

22.

23. System.out.println();

24. }

25.

26.

27. }

3.2 Class LeftArrow

Class LeftArrow ini memiliki total 2 class, dengan 1 main class nya, dan kelas lainnya untuk membuat method-method yang akan dipanggil di main class nantinya.

Dan berikut adalah source code dari main class LeftArrow :

1.

2. package javaapplication3;

3.

4.

5.

6. public class MainLeftArrow {

7.

8.

9. public static void main(String[] args)

10. {

11. Method Arrow = new Method();

12. Arrow.DrawArrow();

13. }

14.

15. }

16.

4. Output

4.1 Berikut adalah output dari main Class RightArrow tersebut :

Dari output tersebut bisa disimpulkan bahwa jika kita memasukan panjang untuk panah dibawah nilai 3, maka programnya akan bertanya lagi untuk memasukan nilai yang benar, lalu akhirnya memunculkan panah ke kanan.

4.1 Dan berikut adalah output dari main Class LeftArrow tersebut :

Dari output tersebut bisa disimpulkan bahwa jika kita memasukan panjang untuk panah dibawah nilai 3, maka programnya akan bertanya lagi untuk memasukan nilai yang benar, lalu akhirnya memunculkan panah ke kiri.

Kelompok 13

Nama :

Oksya Afifah (120216011)

M. Aufar (1202160372)

Rizky Pratama (1202160382)

Wafiqa Primasuri (1202164131)

Kelas SI-40-03


Leave a Reply