Problem 1. Implementasi Interface. Diberikan definisi interface BentukDuaDimensi berikut:

dokumen-dokumen yang mirip
Problem 1. Sorting Data

Nama Soal Pembagian Ring Road Batas Waktu 1 detik Nama Berkas Ringroad[1..10].out Batas Memori 32 MB Tipe [output only] Sumber Brian Marshal

Pemrograman Lanjut Class, Instance Variable dan Method PTIIK

Protokol. Pemrograman Client/Server dengan Java Socket. Protokol TCP/IP. Tipe pemrograman jaringan. Java Socket

BAB III SEKUENSIAL 3.1. Kompetensi Dasar 3.2. Perintah Masukan a. Scanner

Pemrograman Dasar P E M R O G R A M A N T E R S T R U K T U R I N P U T / O U T P U T

OPERASI FILE READ WRITE

Secuil Cerita tentang Facebook Hacker Cup 2012 Qualification Round [Part II]

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS PEMROGRAMAN JAVA 1 MATA KULIAH : PEMROGRAMAN 1 KODE MATA KULIAH : PTI 202 SEMESTER : 1

Arrays. Misalkan kita ingin menyimpan 100 buah integer Buat 100 variabel bertipe integer. Tidak efisien!

Pemrograman Lanjut. Interface

Pemrograman Lanjut Class and Object PTIIK

BAB Argument Command-Line dan System Properties

Struktur Data dan Algoritma

IOSTREAM bagian 2. Kholid Fathoni

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

I/O Streams. Oleh Kholid Fathoni

Setelah mempelajari topik Analisis Algoritma di kuliah SDA, ada beberapa kompetensi yang perlu Anda kuasai:

Pertemuan 4 Array pada Java

03/04/2018. Collection set List Map. Pemrograman Berorientasi Object

Membuat Object Comparable

JAVA BASIC PROGRAMMING Joobshet

Pertemuan 5: Pengenalan Variabel Array

SYLLABUS DAN PENDAHULUAN. Astrid Lestari Tungadi, S.Kom., M.TI.

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Modul Praktikum Pemrograman

PRAKTIKUM 7 DASAR INPUT OUTPUT

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

12/8/2012 MODUL -10. Apa itu SPSS? Apa yang bisa dilakukan SPSS? Apa kesamaan SPSS dengan Microsoft Office Excel?

TIPE DATA. 2.1 String

IF2281 Pemrograman Berorientasi Objek Program kecil Pelengkap Diktat. import java.io.*; import java.util.scanner; class IO {

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

Modul Praktikum 1 Pemograman Berorientasi Objek

Array Pendeklarasian Array

Pertemuan 3: Struktur Kontrol Pemrograman

IMPLEMENTASI KARAKTER ATAU SIMBOL UNICODE PADA APLIKASI BERUPA KAMUS DIGITAL HURUF CHINA MENGGUNAKAN VISUAL BASIC DAN MICROSOFT ACCESS

Algoritma Pemrograman [BS204]

Pemrograman II (Java)

Pertemuan 8. Dasar query basis data dengan SQLite ARFIAN HIDAYAT, S.KOM

BAHASA PEMROGRAMAN JAVA

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

LOGO. Semester Genap

Modul 3 Percabangan dan Perulangan

Prinsip-Perinsip Perancangan Kelas

Connection Oriented. Kholid F.

MEMBUAT OBJECT COMPARABLE DAN COMPARATOR

Procedure Cetak ( DTATA :array [1..10] of integer, N ; Integer ) ;

Irfan Satria S

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

Pemrograman Lanjut Class String PTIIK

BAB 7 Java Array. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

TIF 4201 Algoritma Dan Struktur Data

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String

Praktikum String, StringBuffer dan StringBuilder

PENGENALAN JAVA (2)

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

>>> type ("5") <'type string'> >>> a= Belajar Python >>> type a <'type string'> AP2B Dini Triasanti Struktur Pemrograman Python (Bagian 2)

P11 Array. A. Sidiq Purnomo Program Studi Teknik Informatika Universitas Mercu Buana Yogyakarta

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

Tipe data primitif adalah tipe data dasar yang dikenali oleh Java dan bukan merupakan class. Tipe data primitif ini dapat dikenali dengan ciri

String. String merupakan tipe data untuk menyimpan nilai berupa teks.

Struktur Data dan Algoritma IKI10400 Semester Gasal 2010/2011 Fakultas Ilmu Komputer Universitas Indonesia

KESASTRAAN MELAYU TIONGHOA DAN KEBANGSAAN INDONESIA: JILID 2 FROM KPG (KEPUSTAKAAN POPULER GRAMEDIA)

Enum. Yuliana Setiowati

PERTEMUAN KE-6 STRUKTUR PERULANGAN (menggunakan Loop dan Timer)

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

Bahasa C Array. Slide diambil dari MK Dasar-Dasar Pemrograman Fasilkom UI Dimodifikasi dan disesuaikan dngn kebutuhan pengajaran di PTI-Undiksha

PERTEMUAN I PENGENALAN JAVA

DASAR DASAR MICROSOFT ACCESS

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

BEKERJA DENGAN JAVA CLASS LIBRARY

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

BAB 3 STRUKTURE PROGRAM JAVA

BAB III ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem bertujuan untuk mengidentifikasi permasalahan

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

String sebagai Stream. Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

BAB 2 INPUT DARI KEYBOARD

Modul Praktikum Bahasa Pemrograman 1

MODUL 8 JOptionPane. Tujuan: Mahasiswa dapat menggunakan JOptionPane sebagai salah satu GUI dalam dalam konsep OOP

Bahasa Pemrograman :: Dasar Pemrograman Java

Data Structures. Class 5 Pointer. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

M.Octaviano Pratama

PEMROGRAMAN WEB. 11 XML, XHTML dan JSON. Andi WRE

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Fungsi wavrecord. Praktikum Pengenalan Bahasa Alami Pertemuan Pertama: Pengenalan Fungsi Dasar Pemrosesan Suara di Matlab

BAB 7. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier berbeda untuk tiap variabel.

Praktikum 8 Array di AWK

DATA DIVISION 1. FILE SECTION

ANALISIS CAPAIAN OPTIMASI NILAI SUKU BUNGA BANK SENTRAL INDONESIA: SUATU PENGENALAN METODE BARU DALAM MENGANALISIS 47 VARIABEL EKONOMI UNTU

SUKSES BERBISNIS DI INTERNET DALAM 29 HARI (INDONESIAN EDITION) BY SOKARTO SOKARTO

Pemrograman Dasar M E T H O D / F U N G S I

Modul II Object Oriented Programming

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment

MODUL PRAKTIKUM TI014 STRUKTUR DATA Season 1

PRAKTIKUM 4. Pemrograman Berorientasi Objek

Data Structures. Class 4 Arrays. Pengampu : TATI ERLINA, M.I.T. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

BAB 8 Argumen dari Command-line

Back end. Generate soal. logic. Generate plan. output. N-puzzle solved GUI. Parsing output dari solver

Transkripsi:

Perhatikan permasalahan yang ada pada tutorial ini baik-baik. Permasalahan yang disajikan pada tutorial ini akan menjadi landasan penting untuk mengikuti perkuliahan SDA dan juga mengerjakan tugas lain yang diberikan saat sesi lab. Problem 1. Implementasi Interface Diberikan definisi interface BentukDuaDimensi berikut: public interface BentukDuaDimensi { double getluas(); double getkeliling(); } Implementasikan kelas Circle yang merepresentasikan sebuah lingkaran dengan spesifikasi sebagai berikut: Kelas Circle mengimplementasikan BentukDuaDimensi. Kelas Circle mempunyai sebuah atribut, yaitu radius (double). Object-object yang berasal dari kelas Circle dapat dibandingkan. Objectobject Circle akan diurutkan berdasarkan radius, dari yang paling pendek hingga yang paling panjang. Problem 2. Reading Input, Tokenizing, Sorting Ketika kuliah DDP, Anda sering sekali menggunakan Scanner untuk menerima input standar (standard input). Untuk input yang sangat banyak, penggunaan Scanner tidak efisien karena Scanner menggunakan proses Parsing yang cukup memakan waktu. Sekarang, saatnya Anda belajar menggunakan Java API yang lain, yaitu InputStreamReader yang dibungkus dengan BufferedReader agar proses penerimaan input bisa lebih cepat. Method yang digunakan hanya satu, yaitu readline() yang membaca stream satu baris dan mengembalikan dalam bentuk String. Untuk melakukan tokenisasi String, Anda bisa menggunakan method split() yang ada pada object String atau StringTokenizer. Buatlah sebuah program yang menerima sejumlah informasi mahasiswa <nama, npm, ipk>. Input mempunyai format berikut:

<#baris> <nama 1, npm 1, ipk 1 > <nama 2, npm 2, ipk 2 >... <nama n, npm n, ipk n > Baris pertama berisi sebuah integer yang menyatakan banyaknya mahasiswa yang informasinya akan dimasukkan, yaitu sebanyak n. Baris berikutnya hingga akhir berisi informasi mahasiswa sebanyak n yang sudah dinyatakan pada baris pertama. Contoh: 5 Diberikan input seperti di atas, program akan melakukan komputasi dan akhirnya menampilkan kembali informasi <nama, npm, ipk> secara terurut sesuai aturan: Urutkan berdasarkan ipk, dari yang paling besar ke yang paling kecil Jika ipk sama, urutkan berdasarkan npm (yang bersifat unik) dari yang paling kecil ke yang paling besar. Contoh Output: Sementara ini, Anda bisa menggunakan collections.sort() untuk mengurutkan data yang disimpan di dalam sebuah collections, seperti ArrayList. Di kuliah berikutnya, Anda akan belajar cara mengurutkan data yang lebih efisien.

Problem 3. Reading Input until EOF Modifikasi kode yang sudah Anda buat untuk menyelesaikan Problem 2! Pada Problem 2, informasi banyaknya mahasiswa dituliskan pada baris pertama sehingga Anda bisa dengan nyaman menggunakan struktur for loop. Sekarang, input tidak mengandung informasi banyaknya baris secara eksplisit. Program Anda harus bisa membaca informasi mahasiswa hingga akhir input (end of file). Ketika Anda memasukkan input di command prompt windows, tanda EOF direpresentasikan dengan Ctrl+Z. Jika Anda menggunakan Linux, gunakan Ctrl+D. Contoh Input: Ari 1227 3.5 Cepy 1244 3.0 Contoh Output: Ari 1227 3.5 Cepy 1244 3.0 Problem 4. StringBuilder Ketika kuliah DDP, kalian sering menggunakan operator (+) untuk melakukan konkatenasi beberapa String (menggabungkan String). Jika operasi konkatenasi

tidak begitu banyak, cara seperti itu tidak masalah. Namun, jika program yang kita buat melibatkan banyak operasi konkatenasi, cara seperti itu bisa tidak efisien. StringBuilder hadir dimulai pada JDK 5 agar operasi konkatenasi lebih efisien. Mengapa bisa lebih efisien? String bersifat immutable sehingga setiap kali operasi konkatenasi dilakukan, operator (+) akan menghasilkan object String baru. Jelas, cara ini tidak efisien. StringBuilder bisa dianggap memiliki sifat seolah-olah mutable sehingga operasi konkatenasi String hanya cukup menambahkan karakterkarakter baru pada ujung internal char array dari String tersebut. Contoh konversi konkatenasi menggunakan (+) dengan StringBuilder: String s = a + b + c; String s = new StringBuilder().append(a).append(b).append(c).toString(); Implementasikan method tostring() pada kelas Folder sehingga menghasilkan String dengan format: [judul-1, author-1] [judul-2, author-2]... [judul-n, author-n] Template pengisian ada di file Problem4.java. Problem 5. Problem Solving using Data Structure Sejauh ini, Anda baru belajar menggunakan ADT List dengan implementasi ArrayList. Jadi, tidak masalah jika Anda menggunakan ArrayList untuk menyelesaikan permasalahan ini. Di kuliah berikutnya, Anda akan belajar menggunakan ADT atau jenis struktur data lain yang jauh lebih efisien untuk menyelesaikan permasalahan yang diberikan. Sebuah toko baju menjual 5 jenis ukuran baju, yaitu S, M, L, XL, dan XXL. Anda diminta untuk melakukan rekapitulasi berapa banyak masing-masing jenis baju tersebut dibeli.

Format masukan: <nama pembeli-1, jenis baju-1> <nama pembeli-2, jenis baju-2>... <nama pembeli-n, jenis baju-n> Masukan berakhir dengan tanda End-of-File (EOF). Contoh masukan: Andi S Budi M Toni S Rani XXL Rudi M Ani M Roni L Contoh keluaran: S 2 M 3 L 1 XL 0 XXL 1 Output pasti hanya terdiri dari 5 baris, dimana setiap baris berkaitan dengan masing-masing jenis ukuran baju. S 2 artinya adalah baju berjenis ukuran S telah dibeli sebanyak 2 unit. Problem 6. Problem Solving using Data Structure Modifikasi program yang sudah Anda buat untuk menyelesaikan Problem 5 di atas sehingga format output menjadi: S 2 Andi Toni

M 3 Ani Budi Rudi L 1 Roni XL 0 XXL 1 Rani Jadi, selain bisa menampilkan berapa banyak unit baju yang dibeli untuk setiap jenis ukuran, program juga bisa menampilkan siapa saja nama-nama orang yang membeli baju tersebut. Nama-nama tersebut diurutkan secara alfabetis. Problem 7. ADT Matrix Implementasikan ADT Matrix pada file Problem7.java. ADT Matrix merepresentasikan sebuah object matriks pada matematika dengan operasi-operasi (methods) yang dapat diterapkan padanya. Problem 8. Minesweeper Have you ever played Minesweeper? It's a cute little game which comes within a certain Operating System which name we can't really remember. Well, the goal of the game is to find where are all the mines within a MxN field. To help you, the game shows a number in a square which tells you how many mines there are adjacent to that square. For instance, supose the following 4x4 field with 2 mines (which are represented by an * character): *....*.. If we would represent the same field placing the hint numbers described above, we would end up with: *100 2210 1*10 1110 As you may have already noticed, each square may have at most 8 adjacent squares. The Input The input will consist of an arbitrary number of fields. The first line of each field contains two integers n and m (0 < n,m <= 100) which stands for the number of lines and columns of the field respectively. The next n lines contains exactly m characters and represent the field. Each safe

square is represented by an "." character (without the quotes) and each mine square is represented by an "*" character (also without the quotes). The first field line where n = m = 0 represents the end of input and should not be processed. The Output For each field, you must print the following message in a line alone: Field #x: Where x stands for the number of the field (starting from 1). The next n lines should contain the field with the "." characters replaced by the number of adjacent mines to that square. There must be an empty line between field outputs. Sample Input 4 4 *....*.. 3 5 **.....*... 0 0 Sample Output Field #1: *100 2210 1*10 1110 Field #2: **100 33200 1*100 Tips: buat beberapa class, termasuk kelas Field!