Tugas UTS Pemrograman Berorientasi Obyek

42 downloads 631 Views 81KB Size Report
Tugas UTS Pemrograman Berorientasi Obyek. Group A. Setiap mahasiswa mengerjakan satu soal dari group ini menurut aturan sebagai berikut:.
Tugas UTS Pemrograman Berorientasi Obyek

Group A Setiap mahasiswa mengerjakan satu soal dari group ini menurut aturan sebagai berikut: • • • • • • • • • •

NRP berakhiran NRP berakhiran NRP berakhiran NRP berakhiran NRP berakhiran NRP berakhiran NRP berakhiran NRP berakhiran NRP berakhiran NRP berakhiran

angka 1 mengerjakan soal nomor 1 angka 2 mengerjakan soal nomor 2 angka 3 mengerjakan soal nomor 3 angka 4 mengerjakan soal nomor 4 angka 5 mengerjakan soal nomor 5 angka 6 mengerjakan soal nomor 6 angka 7 mengerjakan soal nomor 7 angka 8 mengerjakan soal nomor 8 angka 9 mengerjakan soal nomor 9 angka 0 mengerjakan soal nomor 10

Nilai pengerjaan group ini adalah 60%.

1. Buat sebuah program untuk mencari proses perkalian dibawah ini *** x ** ---------**** *** ---------**** sedemikian rupa sehingga jumlah semua digit dalam masing-masing kolom sama. Hint: ada 2 jawaban. 411 * 13 = 5343, semua kolom berjumlah 10

2. Buat sebuah program yang mencari faktor prima terbesar dari angka yang di-inputkan oleh user. • Gunakan tipe data long untuk menerima input angka dari user. Jangan gunakan tipe data int. • Jika user memberi input angka negatif atau pecahan, program menampilkan pesan kesalahan dan meminta input ulang dari user.

Masukkan sebuah angka positif: 6254378921

The largest divisor of 6254378921 is 893482703

3. Buat sebuah program yang mencari semua kombinasi dari memasukkan tanda + dan - pada baris angka 123456789 sedemikian rupa sehingga ekspresi aritmatika yang dihasilkan jika dihitung akan berjumlah 100. Tanda + dan - hanya bisa dipilih salah satu untuk tiap digit. • Angka 1 bisa didahului oleh - atau +. Jadi, mula-mula angka 1 bisa menjadi angka negatif atau angka positif. • Semua digit angka yang lain bisa: • Didahului oleh -, yang berarti memulai angka baru untuk dikurangkan dari perhitungan yang sedang berlangsung • Didahului oleh +, yang berarti memulai angka baru untuk ditambahkan dari perhitungan yang sedang berlangsung • Tidak didahului oleh - ataupun +, yang berarti digit angka tersebut adalah bagian dari digit angka didepannya / dikirinya. Hint: total ada 12 jawaban 1 + 23 - 4 + 5 + 6 + 78 - 9 = 100

4. Buat sebuah program yang menerima inputan alphanumerik dari user yang diakhiri dengan penekanan tombol enter; setelah itu program akan menghitung dan menampilkan berapa kali sebuah digit angka ada dalam inputan tadi. Contoh: Enter characters: 82 7 7ah835 7621 653847 76124 g72g Digits: 1 2 3 4 5 6 7 8 Count: 2 4 2 2 2 3 6 3 5. Buat sebuah program yang menampilkan semua kotak dengan 3 × 3 sel; dimana dalam tiap sel terdapat sebuah angka satu digit (angka 1 – 9) dan hasil penjumlahan baris, kolom, dan diagonalnya adalah sama. Hint: total ada 8 variasi. 4, 3, 8 9, 5, 1 2, 7, 6

6. Buat sebuah program yang menerima input bilangan bulat positif dan kemudian membuat segitiga abjad seperti dibawah ini: Enter a positive number: 15 A BCB DEFED GHIJIHG KLMNONMLK PQRSTUTSRQP VWXYZABAZYXWV CDEFGHIJIHGFEDC KLMNOPQRSRQPONMLK TUVWXYZABCBAZYXWVUT DEFGHIJKLMNMLKJIHGFED OPQRSTUVWXYZYXWVUTSRQPO ABCDEFGHIJKLMLKJIHGFEDCBA

NOPQRSTUVWXYZAZYXWVUTSRQPON BCDEFGHIJKLMNOPONMLKJIHGFEDCB

7. Buat sebuah program yang menerima inputan alphanumerik yang diakhiri penekanan tombol enter. Program tersebut kemudian akan: • menghitung dan menampilkan jumlah blank characters (spaces, tabs, & new lines) • menghitung dan menampilkan panjang kata terpendek • menghitung dan menampilkan panjang kata terpanjang

Masukkan kalimat: asd 1240 ja9329 asdil9g9 99hdh74g7 uggkuh236bltq63g isee ydbaaj35 Input memiliki 8 blanks, tabs, & new lines Panjang kata terpendek: 3 Panjang kata terpanjang: 16

8. Buat sebuah program yang menampilkan menu dan melakukan operasi penjumlahan, pengurangan, perkalian, dan pembagian dua biliangan pecahan. User pertama-tama memasukkan a, s, m, d or q; dan kemudian dua bilangan pecahan. Jika masukkan berbeda dari 5 huruf tadi, user harus memasukkan ulang pilihannya. Jika yang dipilih adalah pembagian, program memeriksa bahwa angka kedua bukan nol.

Masukkan operasi: a: addition s: subtraction m: multiplication d: division q: quit a Masukkan argumen pertama untuk penjumlahan: 1 Masukkan argumen kedua untuk penjumlahan: 2 1.0 + 2.0 = 3.0 Masukkan operasi: a: addition s: subtraction m: multiplication d: division q: quit d Masukkan argumen pertama untuk pembagian: 10 Masukkan argumen kedua untuk pembagian: 4 10.0 / 4.0 = 2.5 Masukkan operasi: a: addition s: subtraction m: multiplication d: division q: quit q

9. Buat sebuah program yang meminta masukkan kalimat dari user. Program berperilaku sebagai berikut: • Jika kalimat memiliki karakter alphanumerik lebih dari 50, program akan menampilkan Terlalu banyak karakter alphanumerik! Dan kemudian program berhenti. • Jika kalimat memiliki karakter yang bukan karakter alphanumerik, program akan menampilkan Ada karakter bukan alphanumerik! Dan kemudian program berhenti. • Jika ada kata yang panjangnya lebih dari 6 huruf, program akan menampilkan Ada kata yang terlalu panjang! Dan kemudian program berhenti. • Jika kalimat hanya terdiri dari spasi, program akan menampilkan Tidak ada karakter alphanumerik yang diinputkan! Dan kemudian program akan berhenti. • Jika kalimat mengandung kata/kata-kata, program akan menghitung dan menampilkan secara terurut kata-kata yang memiliki huruf kapital mulai dari 0 sampai 6. Berikut contoh output program: Masukkan kalimat: Ini adalah sebuah contoh kalimat yang memiliki panjang 67 huruf alphanumerik. Terlalu banyak karakter alphanumerik!

Masukkan kalimat: Yang ini punya 34 karakter alphanumerik Ada kata yang terlalu panjang! Masukkan kalimat: kalau yang ini? Ada karakter bukan alphanumerik! Masukkan kalimat: Tidak ada karakter alphanumerik yang diinputkan! Masukkan kalimat: Ini COntoh KATa Kata dengan 1 huruf kapital: Ini Kata dengan 2 huruf kapital: COntoh Kata dengan 3 huruf kapital: KATa Masukkan kalimat: Ini conTOH YANG LeBih paNJaN G Kata dengan 1 huruf kapital: Ini G Kata dengan 2 huruf kapital: LeBih Kata dengan 3 huruf kapital: conTOH paNJaN

Kata dengan 4 huruf kapital: YANG

10. Buat sebuah program yang meminta masukkan dari user bilangan hexadecimal: angka dan huruf a-f atau A-F. Kemudian program akan melakukan pemeriksaan: • jika nilai desimal yang akan dihasilkan lebih besar dari nilai maksimum tipe data long, program akan menampilkan: Input terlalu besar atau tidak benar • Jika input berupa karakter selain 0 – 9, atau ‘a’ – ‘f’, atau ‘A’ – ‘F’, program akan menampilkan: Input salah Setelah itu program akan mengkonversi bilangan tersebut ke bilangan desimal. Contoh: input 2af akan dikonversi menjadi 678. Untuk program ini, jangan menggunakan Java exception. Masukkan angka hexadesimal: 3K Input salah Masukkan angka hexadesimal: abcdefabcdefabcdef Input terlalu besar atau tidak benar Masukkan angka hexadesimal: 567a Angka 567a dalam hexadesimal adalah 22138 Masukkan angka hexadesimal: aaaaaaaaaaaaaaa Angka aaaaaaaaaaaaaaa dalam hexadesimal adalah 768614336404564650

Group B Soal di group ini: Soal nomor 1 dikerjakan oleh mahasiswa perempuan yang NRP-nya ganjil Soal nomor 2 dikerjakan oleh mahasiswa perempuan yang NRP-nya genap Soal nomor 3 dikerjakan oleh mahasiswa laki-laki yang NRP-nya ganjil Soal nomor 4 dikerjakan oleh mahasiswa laki-laki yang NRP-nya genap

Nilai pengerjaan group ini adalah 40%. Kerjakan soal di group ini setelah soal di group A selesai. Jika soal di group A belum selesai / dikerjakan dengan meng-copy program teman, pengerjaan soal group B tidak akan diterima.

1. Cryptarithm adalah salah satu puzzle/permainan dimana angka dicari untuk menggantikan huruf dari kata-kata tertentu sedemikian rupa sehingga kondisi yang diminta terpenuhi. Satu

syarat umum yang harus dipenuhi adalah semua kata-kata tidak boleh diawali oleh angka nol. Contoh cryptarithm: Carilah digit angka yang bisa digunakan menggantikan huruf-huruf dari kata: three, four, dan eight; sedemikian rupa sehingga: • Three adalah bilangan prima • four adalah bilangan kuadrat • eight adalah bilangan pangkat 3 Contoh soal ini punya satu jawaban, yaitu: 42611 untuk three, 7056 untuk four, dan 13824 untuk eight. Jadi huruf t diganti dengan angka 4 dan huruf h diganti dengan angka 2, dst. Buat sebuah program yang mencari angka untuk menggantikan huruf-huruf dari kata one, two, seven, dan nine. Huruf yang berbeda diganti dengan angka yang berbeda pula. Dan huruf pertama digantikan dengan angka yang bukan nol, sedemikian rupa sehingga: • one + one = two, • seven adalah bilangan prima, dan, • nine adalah bilangan kuadrat. Program harus menampilkan baris sebagai berikut: one = ..., two = ..., seven = ..... and nine = .... adalah sebuah jawaban. Maksimum indentasi untuk program ini adalah 6. 2. Buat sebuah program untuk menyelesaikan perkalian **** x *** ------***** ***** **** ------------------******* Sedemikian rupa sehingga: a. Tiap bintang merepresentasikan sebuah angka; b. Semua digit dari bilangan perkalian pertama berbeda dengan digit sebelahnya dan tidak ada yang bernilai nol; c. Semua digit dari bilangan perkalian kedua, hasil sementara, dan hasil akhir adalah digit yang muncul di bilangan perkalian pertama. Output program haruslah seperti format diatas; dimana karakter bintang diganti dengan digit yang sesuai. Maksimum indentasi untuk program ini adalah 5. 3. Buat sebuah program yang mencari semua bilangan pecahan dalam format n/d, dimana n dan d adalah bilangan bulat positif bukan nol. Nilai n/d adalah 0.5. Semua angka bukan nol harus muncul SEKALI dan hanya SEKALI; bisa di n atau di d.

Output program haruslah dalam format: .... / ..... = 0.5 Maksimum indentasi adalah 5. 4. Buat program yang mencari semua kombinasi untuk mengganti huruf A sampai O dengan angka 1 sampai 15 sedemikian rupa sehingga terbentuk segitiga seperti dibawah. Semua angka yang bukan di baris paling bawah adalah nilai absolut dari pengurangan dari dua angka dibawahnya. A B C D E F G H I J K L M N O Output program haruslah berbentuk seperti segitiga diatas. Tiap kali menemukan satu jawaban benar, program membuat satu segitiga dimana huruf-huruf sudah diganti dengan angka-angka yang bersesuaian. Tidak ada batasan untuk spasi antar angka; hanya saja, pastikan output memang berbentuk segitiga. Maksimum indentasi adalah 8.