Kamis, 02 Juni 2022

3.13 KONSEP DAN PROSEDUR OPERASI FILE DAN INPUT OUTPUT (IO) DALAM PBO


Program komputer bisa berguna jika ia bisa berinteraksi dengan dunia lain. Interaksi di sini
maksudnya input/output atau I/O. Pada bab ini, kita akan melihat input output pada file dan
koneksi jaringan (network). Pada Java, input/output pada file dan jaringan dilakukan
berdasarkan aliran (stream), di mana semua objek dapat melakukan perintah I/O yang sama.
Standar output (System.out) dan standar input (System.in) adalah contoh aliran.
Banyak subrutin yang digunakan untuk bekerja dengan I/O melemparkan pengecualian yang
wajib ditangani. Artinya subrutin tersebut harus dipanggil di dalam pernyataan try ... catch
sehingga pengecualian yang terjadi bisa ditangani dengan baik
Bahasa pemrograman Java membuat proses I/O menjadi lebih sederhana. Maksudnya seperti
ini, untuk semua proses I/O Anda hanya memerlukan satu class untuk proses input (dan sumber
input bisa dari mana saja) dan satu class
untuk proses output (dan tujuan output, juga. bisa ke mana saja). Semua class
yang diperlukan untuk proses I/O ada di dalam paket java.io

Dalam Stream ini terdapat proses input dan output sebagai berikut : 1. Input Stream 238 Kelas java.io.InputStream adalah: public abstract class InputStream Adapun 2 method utama dari InputStream adalah : • Read Method ini digunakan untuk membaca stream. • Close Method ini digunakan untuk menutup koneksi input stream. Dalam proses Penginputan Stream ini pun terdapat pembagian dalam kelasnya, yaitu : a) Byte Stream Merupakan kelas dan interface ini digunakan untuk menangani data biner. b) Character Stream Merupakan kelompok kelas ini digunakan untuk menangani proses baca tulis karakter Unicode. Kelas ini merupakan pengembangan dari kelas Byte Stream sehingga lebih efisien. Data input dalam Stream ini berfungsi untuk saling melengkapi dengan DataOutputStream, yaitu untuk mendapatkan data yang telah ditulis. 2. Output Stream Subclass-subclass dari outputStream adalah :  ByteArrayOutputStream: digunakan untuk menuliskan stream menjadi byte array.  FileOutputStream : digunakan untuk menulis pada file  FilterOutputStream :merupakan superclass dari subclass-subclass seperti DataOutputStream, BufferOutputStream, PrintStream, CheckedOutputStream  ObjectOutputStream : digunakan untuk menuliskan objek pada OutputStream.  PipedOutputStream : digunakan untuk menjadi output dari PipedInputStream. Data Output dalam stream ini merupakan class yang menyediakan cara praktis untuk menuliskan tipe data primitif ke output stream yang lebih mudah digunakan dalam penyelesaian program dalam java


3.12.3 MEMBUAT KODE PROGRAM APLIKASI PBO YANG MENERAPKAN COLLECTION SEBAGAI PENYIMPANAN


  • List
    List variable mengandung beberapa item dan dideklarasikan menggunakan kurung siku. contoh : [. . .]
    - jika digunakan pada list kosong : def mobil []
    - jika digunakan pada list yang memiliki nilai awal : def mobil [5, 3, 10, 9]
    - jika sebelumnya digunakan pada “def mobil” hanya berupa angka, tapi list pada groovy mengandung sebuah tipe data campuran seperti :
    def violet= [5, true, ‘tire’, 5.12]
    println violet = [2]
    println violet = [-3] “FYI, program akan membaca dimulai dari kanan”
    println violet.get =(3)

Kurung siku ‘[]’ digunakan membuat list tapi digunakan juga untuk mengacu kepada indeks yang ada di dalam list misalnya (println violet = [2])-contoh ini sering disebut sebagai subscript notasi. Pada contoh diatas kalian akan melihat print out dari “violet = [2]”-daftar item dengan (subcript). pada hal ini menyebabkan sedikit kebingungan kenapa tire yang ditampilkan. Hal ini dikarenakan list berbasis nol ‘0’ dan item pertama di indeks ‘0’ tidak indeks ‘1’. Dimana kita menggunakan violet [2] kita meminta untuk list yang ada ketiga di dalam list.

Ini mungkin menjadi hal yang mengejutkan untuk programmer bahwa println violet [-3] valid. Ini sangat berguna untuk mengakses list item dari akhir yang ada di list. item -1 adalah yang terakhir dalam list, jadi violet[-3] akan menjadi ‘value’ yang memiliki nilai ‘benar’.

get() juga method yang digunakan untuk mengakses elemen list oleh indeks sebagai contoh : violet.get(3) memberi kita 5.12
berikut capture-nya :

berikut cara-nya jika menggunakan emulator

Didalam multiple indeks subscript notation dan ambil unsur-unsur tertentu. Contoh dibawah ini aku ambil element 0 dan 2 (temperatures[0, 2]) kemudian elemen 1, 3 dan 4 (temperatures[1, 3, 4]). menggunakan indeks dengan list :
def bilangan=[10, 5, 8, 3, 6]
assert bilangan [0,2] ==[10, 8]
assert bilangan [1, 3, 4] == [5, 3, 6]

Range juga dapat digunakan dalam subscript notasi dan seperti yang ditunjukkan pada contoh dibawah ini, mengembalikkan sebuah list yang berisi indeks item yang disertakan dalam range. menggunakan range dengan list :
def bilangan = [10, 5, 8, 3, 6]
assert bilangan = [1. .3] == [5, 8, 3]

Kita juga menggunakan indeks campuran individu dan range seperti yang kita lihat. Contoh indeks dan range dalam list :
def bilangan = [10, 5, 8, 3, 6]
assert bilangan = [0, . . 1, 3]==[10, 5, 3]
assert bilangan = [0, . . 1, 1 . . 3] ==[10, 5, 5, 8, 3]
assert bilangan = [0, . . 1, 1 . . 3, 4]==[10, 5, 5, 8, 3, 6]

Adding element
Menambahkan sebuah element kita menggunakan method ‘add()’ atau operator ‘<<’. contoh sebagai berikut :
deff violet = [1, true, ‘rabbit’, 5.12]
violet << ‘tire’
violed.add(222)
println violet

Sets
Set seperti list tapi setiap element dalam satu set unik. contoh :
def namaOrang = [‘mamad’, ‘yuli’, ‘endang’, ‘mamad’] as set
println namaOrang

Jika kalian mencoba code diatas, maka akan menampilkan [mamad, yuli, endang]. pengulangan tidak akan ditampilkan.

Usefull list methods
size()
adalah method pengembalian, berupa elementyang dijadikan dalam bentuk angka. contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
println belanja.size()

method first() dan last() returns dari elemen pertama dan terakhir didalam list. Untuk head() adalah sinonim dari first(). Contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
println belanja.first()
println belanja.head()
println belanja.last()
jika kalian jalankan code diatas, akan muncul “sayur, sayur, beras”

method tail() returns list tanpa element first(head) dan init() returns method tanpa element terakhir. Contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
println belanja.tail()
println belanja.init()

jika kalian menjalankan code diatas, maka pada tail akan menampilkan :
[popok, beras]
jika kalian menjalankan code diatas, pada ini akan menampilkan :
[sayur, popok]

Methode contains(), returns jika elemen true diminta terkandung dalam list. contoh :
def belanja= [‘sayur’, ‘popok’, ‘beras’]
println belanja.contains(‘popok’)

jika kalian menjalankan code diatas, maka akan menampilkan true, karena contains akan mencari apakah benar ‘popok’ ada pada list.

method revers() returns mirror di list. contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
println belanja.reverse()

jika kalian menjalankan code diatas akan menampilkan [beras, popok, sayur]. ini adalah method reverse.

sort() akan sortir elemen yang ada didalam order secara “natural”. pada dasarnya, hal ini bergantung pada halaman list yang sebanding dalam beberapa cara, method sort paling cocok digunakan ketika semua list content memiliki jenis yang sama (misalnya, string atau numbers). contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
belanja.sort()

jika kalian menjalankan code ini maka akan menampilkan [beras, popok, sayur]

2. Maps
Maps, memungkinkan membangun tipe look-up menggunakan tabel keys dan value. Bahasa lain menyebutnya kamus atau terkait array.
Maps kosong di deklarasikan menggunakan [:], dan contoh dibawah ini menunjukkan digunakan ketika mendeklarasikan variable periodik.
def periodik = [:]

Setiap key didalam map adalah unik dan point-point didalam map. dalam contoh dibawah ini kita mulai dari basic tabel periodic oleh deklarasi sebuah variable (periodic) dengan sebuah pasangan set key-value (key:value) masing-masing dipisahkan oleh koma (,) dan diselenggarakan dalam kurung ([]…):
contoh cara deklarasi dengan element
def belanja = [‘p’: ‘popok’,
‘sa’: ‘sayuran’,
‘be’: ‘beras’]

println belanja[‘p’]
println belanja.p
println belanja.get(‘be’)
jika kalian jalankan kode diatas, maka dengan singkatan p/sa/be, akan menampilkan dari singkatan yang di deklarasikan.

Kalian juga harus memperhatikan bahwa kita dapat mengakses item map menggunakan :
1. key dalam kurung siku ([])
— seperti yang kita lakukan dengan list : println belanja [‘p’]
— ini sering disebut sebagai subscript notasi
2. kita juga dapat menggunakan titik (.) dengan mengikuti key :
— seperti dalam println belanja.p
— ini sering disebut sebagai dot-point notation
3. terakhir yang get() method dilewatkan sebuah key dan pengembalian nilai associated.

Key dalam map dapatkan nama mereka disediakan untuk mematuhi aturan yang sama untuk kita ikut nama-nama variable. itu berarti bahwa keys dalam belanja tidak harus ditulis sebagai string :
def belanja = [p: ‘popok’,
be: ‘beras’,
sa: ‘sayuran’]

jika kalian coba code diatas maka akan menampilkan, {p=popok, be=beras, sa=sayuran}

Adding elements
untuk menambahkan sebuah element ke map kita dapat menggunakan kurung siku ( [] ), dot-point notation, atau put() method untuk menambahkan pada sebuah new key/value pair. contoh :
def belanja = [‘p’: ‘popok’,
‘sa’: ‘sayuran’,
‘be’: ‘beras’]

belanja[‘te’] = ‘terong’
belanja.b = ‘Boron’
belanja << [‘c’: ‘Carbon’]
belanja.put(’n’, ‘Nitrogen’)

jika kalian menjalankan code diatas maka akan menampilkan, {p=popok, sa=sayuran, be=beras, te=terong, b=Boron, c=Carbon, n=Nitrogen}

Keys
Map keys tidak harus string, mereka dapat menjadi perpaduan string, angka atau object lainnya. Coba kita lihat pada contoh berikut lalu kita lihat juga berbagai potongan-potongan dari kode :

sumber source : https://leanpub.com/groovytutorial/
  1. create new class (chicken)
    1…dan simpan new instance dari ‘chicken’ dalam variable ‘cluckers’
  2. kemudian buat sebuah map yang dapat dipanggil ‘mixed map’ dengan perbedaan tipe keys :
    1. 12 adalah nomor
    2. ‘chicken’ adalah string
    3. (cluckers) menunjukkan bahwa keys adalah value variabel
  3. gunakan notation kurung siku dan method ‘get’ untuk akses nilai yang sejajar yang keys 12.
    1. ‘mixedMap.12’ tidak akan berkerja
  4. gunakan kurung siku, dot-point dan method ‘get’ untuk akses value yang sejajar untuk key ‘chicken’.
  5. gunakan kurung siku notation dan method ‘get’ untuk akses value key (cluckers)
    1. mixedMap.cluckers
  6. println ‘mixedMap’ disebut untuk menampilkan konten map.

Useful map method
Seperti pada list, method size() pengembalian elemen didalam map
method ‘get’ dapat digunakan untuk mendapatkan value untuk permintaan key. Pilihan kedua parameter dapat menyediakan dan mengembalikkan jika map tidak dapat mengandung requested key. contoh ‘get’ methode :

contoh get method

Methode keySet() pengembalian semua list containing dari keys didalam map dan value pengembalian list value di dalam map. contoh ‘keySet’ :

contoh keySet

method containsKey() dan containsValue() berguna untuk mengecek pada isi map. contoh :

contoh containsKey dan containsValue

Sekian penjelasan singkat dari Java Collection. terima kasih.

3.12.2 MENERAPKAN COLLECTION SEBAGAI MEDIA PENYIMAPANAN DATA DALAM PBO


Tugas dia ngapain sih? apa aja yang bisa dilakuin? daripada kita terus-terusan bertanya yuk simak penjelasan tentang collection di pemrograman java.

Kita mulai dari apa itu Collection di pemrograman java, Collection adalah sebuah framework yang dibuat untuk menyimpan dan memanipulasi sebuah objek. Collection biasanya digunakan pada sebuah data seperti mencari, meng-urutkan, meng-input dan menghapus. Kerangka kerja (Framework) menyediakan dalam bentuk Interface (contoh : Set, List, Queue, Deque dll). untuk class (ArrayList, Vector, LingkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet dll). Gambar berikut adalah hirarki pada java collection :

Hirarki Java Collenction sumber : http://onestringlab.com/belajar-java-collections/

Collection sendiri merupakan wadah yang menampung value pada kontainer tunggal. Framework java collection menyediakan dengan cara extensible (secara kamus internasional : dapat dibuat panjang atau luas) dan dapat disatukan untuk menangani collections. Pada Groovy, collection dibuat lebih mudah untuk digunakan dan difokuskan menjadi 2 jenis, yaitu :
1. List : menyediakan sebuah container untuk beberapa nilai.
2. Maps : digunakan sebagai metode untuk mengindeks seperangkat nilai-nilai.

  • List
    List variable mengandung beberapa item dan dideklarasikan menggunakan kurung siku. contoh : [. . .]
    - jika digunakan pada list kosong : def mobil []
    - jika digunakan pada list yang memiliki nilai awal : def mobil [5, 3, 10, 9]
    - jika sebelumnya digunakan pada “def mobil” hanya berupa angka, tapi list pada groovy mengandung sebuah tipe data campuran seperti :
    def violet= [5, true, ‘tire’, 5.12]
    println violet = [2]
    println violet = [-3] “FYI, program akan membaca dimulai dari kanan”
    println violet.get =(3)

Kurung siku ‘[]’ digunakan membuat list tapi digunakan juga untuk mengacu kepada indeks yang ada di dalam list misalnya (println violet = [2])-contoh ini sering disebut sebagai subscript notasi. Pada contoh diatas kalian akan melihat print out dari “violet = [2]”-daftar item dengan (subcript). pada hal ini menyebabkan sedikit kebingungan kenapa tire yang ditampilkan. Hal ini dikarenakan list berbasis nol ‘0’ dan item pertama di indeks ‘0’ tidak indeks ‘1’. Dimana kita menggunakan violet [2] kita meminta untuk list yang ada ketiga di dalam list.

Ini mungkin menjadi hal yang mengejutkan untuk programmer bahwa println violet [-3] valid. Ini sangat berguna untuk mengakses list item dari akhir yang ada di list. item -1 adalah yang terakhir dalam list, jadi violet[-3] akan menjadi ‘value’ yang memiliki nilai ‘benar’.

get() juga method yang digunakan untuk mengakses elemen list oleh indeks sebagai contoh : violet.get(3) memberi kita 5.12
berikut capture-nya :

berikut cara-nya jika menggunakan emulator

Didalam multiple indeks subscript notation dan ambil unsur-unsur tertentu. Contoh dibawah ini aku ambil element 0 dan 2 (temperatures[0, 2]) kemudian elemen 1, 3 dan 4 (temperatures[1, 3, 4]). menggunakan indeks dengan list :
def bilangan=[10, 5, 8, 3, 6]
assert bilangan [0,2] ==[10, 8]
assert bilangan [1, 3, 4] == [5, 3, 6]

Range juga dapat digunakan dalam subscript notasi dan seperti yang ditunjukkan pada contoh dibawah ini, mengembalikkan sebuah list yang berisi indeks item yang disertakan dalam range. menggunakan range dengan list :
def bilangan = [10, 5, 8, 3, 6]
assert bilangan = [1. .3] == [5, 8, 3]

Kita juga menggunakan indeks campuran individu dan range seperti yang kita lihat. Contoh indeks dan range dalam list :
def bilangan = [10, 5, 8, 3, 6]
assert bilangan = [0, . . 1, 3]==[10, 5, 3]
assert bilangan = [0, . . 1, 1 . . 3] ==[10, 5, 5, 8, 3]
assert bilangan = [0, . . 1, 1 . . 3, 4]==[10, 5, 5, 8, 3, 6]

Adding element
Menambahkan sebuah element kita menggunakan method ‘add()’ atau operator ‘<<’. contoh sebagai berikut :
deff violet = [1, true, ‘rabbit’, 5.12]
violet << ‘tire’
violed.add(222)
println violet

Sets
Set seperti list tapi setiap element dalam satu set unik. contoh :
def namaOrang = [‘mamad’, ‘yuli’, ‘endang’, ‘mamad’] as set
println namaOrang

Jika kalian mencoba code diatas, maka akan menampilkan [mamad, yuli, endang]. pengulangan tidak akan ditampilkan.

Usefull list methods
size()
adalah method pengembalian, berupa elementyang dijadikan dalam bentuk angka. contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
println belanja.size()

method first() dan last() returns dari elemen pertama dan terakhir didalam list. Untuk head() adalah sinonim dari first(). Contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
println belanja.first()
println belanja.head()
println belanja.last()
jika kalian jalankan code diatas, akan muncul “sayur, sayur, beras”

method tail() returns list tanpa element first(head) dan init() returns method tanpa element terakhir. Contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
println belanja.tail()
println belanja.init()

jika kalian menjalankan code diatas, maka pada tail akan menampilkan :
[popok, beras]
jika kalian menjalankan code diatas, pada ini akan menampilkan :
[sayur, popok]

Methode contains(), returns jika elemen true diminta terkandung dalam list. contoh :
def belanja= [‘sayur’, ‘popok’, ‘beras’]
println belanja.contains(‘popok’)

jika kalian menjalankan code diatas, maka akan menampilkan true, karena contains akan mencari apakah benar ‘popok’ ada pada list.

method revers() returns mirror di list. contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
println belanja.reverse()

jika kalian menjalankan code diatas akan menampilkan [beras, popok, sayur]. ini adalah method reverse.

sort() akan sortir elemen yang ada didalam order secara “natural”. pada dasarnya, hal ini bergantung pada halaman list yang sebanding dalam beberapa cara, method sort paling cocok digunakan ketika semua list content memiliki jenis yang sama (misalnya, string atau numbers). contoh :
def belanja = [‘sayur’, ‘popok’, ‘beras’]
belanja.sort()

jika kalian menjalankan code ini maka akan menampilkan [beras, popok, sayur]

2. Maps
Maps, memungkinkan membangun tipe look-up menggunakan tabel keys dan value. Bahasa lain menyebutnya kamus atau terkait array.
Maps kosong di deklarasikan menggunakan [:], dan contoh dibawah ini menunjukkan digunakan ketika mendeklarasikan variable periodik.
def periodik = [:]

Setiap key didalam map adalah unik dan point-point didalam map. dalam contoh dibawah ini kita mulai dari basic tabel periodic oleh deklarasi sebuah variable (periodic) dengan sebuah pasangan set key-value (key:value) masing-masing dipisahkan oleh koma (,) dan diselenggarakan dalam kurung ([]…):
contoh cara deklarasi dengan element
def belanja = [‘p’: ‘popok’,
‘sa’: ‘sayuran’,
‘be’: ‘beras’]

println belanja[‘p’]
println belanja.p
println belanja.get(‘be’)
jika kalian jalankan kode diatas, maka dengan singkatan p/sa/be, akan menampilkan dari singkatan yang di deklarasikan.

Kalian juga harus memperhatikan bahwa kita dapat mengakses item map menggunakan :
1. key dalam kurung siku ([])
— seperti yang kita lakukan dengan list : println belanja [‘p’]
— ini sering disebut sebagai subscript notasi
2. kita juga dapat menggunakan titik (.) dengan mengikuti key :
— seperti dalam println belanja.p
— ini sering disebut sebagai dot-point notation
3. terakhir yang get() method dilewatkan sebuah key dan pengembalian nilai associated.

Key dalam map dapatkan nama mereka disediakan untuk mematuhi aturan yang sama untuk kita ikut nama-nama variable. itu berarti bahwa keys dalam belanja tidak harus ditulis sebagai string :
def belanja = [p: ‘popok’,
be: ‘beras’,
sa: ‘sayuran’]

jika kalian coba code diatas maka akan menampilkan, {p=popok, be=beras, sa=sayuran}

Adding elements
untuk menambahkan sebuah element ke map kita dapat menggunakan kurung siku ( [] ), dot-point notation, atau put() method untuk menambahkan pada sebuah new key/value pair. contoh :
def belanja = [‘p’: ‘popok’,
‘sa’: ‘sayuran’,
‘be’: ‘beras’]

belanja[‘te’] = ‘terong’
belanja.b = ‘Boron’
belanja << [‘c’: ‘Carbon’]
belanja.put(’n’, ‘Nitrogen’)

jika kalian menjalankan code diatas maka akan menampilkan, {p=popok, sa=sayuran, be=beras, te=terong, b=Boron, c=Carbon, n=Nitrogen}

Keys
Map keys tidak harus string, mereka dapat menjadi perpaduan string, angka atau object lainnya. Coba kita lihat pada contoh berikut lalu kita lihat juga berbagai potongan-potongan dari kode :

sumber source : https://leanpub.com/groovytutorial/
  1. create new class (chicken)
    1…dan simpan new instance dari ‘chicken’ dalam variable ‘cluckers’
  2. kemudian buat sebuah map yang dapat dipanggil ‘mixed map’ dengan perbedaan tipe keys :
    1. 12 adalah nomor
    2. ‘chicken’ adalah string
    3. (cluckers) menunjukkan bahwa keys adalah value variabel
  3. gunakan notation kurung siku dan method ‘get’ untuk akses nilai yang sejajar yang keys 12.
    1. ‘mixedMap.12’ tidak akan berkerja
  4. gunakan kurung siku, dot-point dan method ‘get’ untuk akses value yang sejajar untuk key ‘chicken’.
  5. gunakan kurung siku notation dan method ‘get’ untuk akses value key (cluckers)
    1. mixedMap.cluckers
  6. println ‘mixedMap’ disebut untuk menampilkan konten map.

Useful map method
Seperti pada list, method size() pengembalian elemen didalam map
method ‘get’ dapat digunakan untuk mendapatkan value untuk permintaan key. Pilihan kedua parameter dapat menyediakan dan mengembalikkan jika map tidak dapat mengandung requested key. contoh ‘get’ methode :

contoh get method

Methode keySet() pengembalian semua list containing dari keys didalam map dan value pengembalian list value di dalam map. contoh ‘keySet’ :

contoh keySet

method containsKey() dan containsValue() berguna untuk mengecek pada isi map. contoh :

contoh containsKey dan containsValue

Sekian penjelasan singkat dari Java Collection. terima kasih.

3.12.1 KONSEP PENERAPAN COLLECTION SEBAGAI PENYIMPAN DATA DALAM PEMROGRAMAN BERBASIS PBO


Collection adalah suatu objek yang bisa digunakan untuk menyimpan sekumpulan objek. Objek yang ada dalam Collection disebut elemen. Collection menyimpan elemen yang bertipe Object, sehingga berbagai tipe objek bisa disimpan dalam Collection. 

 


 

Class-class mengenai Collection tergabung dalam Java Collection Framework. Class-class Collection diletakkan dalam package java.util dan mempunyai dua interface utama yaitu Collection.

Collection terbagi menjadi 3 kelompok yaitu :

      a.     Set
          Set mengikuti model himpunan, dimana objek/anggota yang tersimpan dalam Set harus unik. Urutan maupun letak dari anggota tidaklah penting, hanya keberadaan anggota saja yang penting. Kelas konkrit yang mengimplementasikan Set harus memastikan bahwa tidak terdapat elemen duplikat yang dapat ditambahkan ke dalam set. Yaitu, tidak terdapat dua elemen e1 dan e2 yang berada di dalam set yang membuat e1.equals(e2) bernilai true. Classclass yang mengimplementasikan interface Set adalah HashSet.
          HashSet dapat digunakan untuk menyimpan elemen-elemen bebas-duplikat. Kelas HashSet merupakan suatu kelas konkrit yang mengimplementasikan Set. Pembuatan objek HashSet adalah sebagai berikut:
Set <nama_objek_HashSet> = new HashSet();

     b. List
          List digunakan untuk menyimpan sekumpulan objek berdasarkan urutan masuk (ordered) dan menerima duplikat. Cara penyimpanannya seperti array, oleh sebab itu memiliki posisi awal dan posisi akhir, menyisipkan objek pada posisi tertentu, mengakses dan menghapus isi list, dimana semua proses ini selalu didasarkan pada urutannya. Class-class yang mengimplementasikan interface List adalah Vector, Stack, Linked List dan Array List. Pada jobsheet ini yang akan dibahas adalah ArrayList.
          ArrayList digunakan untuk membuat array yang ukurannya dinamis. Berbeda dengan array biasa yang ukurannya harus ditentukan di awal deklarasi array, dengan ArrayList, ukurannya akan fleksibel tergantung banyaknya elemen yang dimasukkan. Pendeklarasian object ArrayList sebaiknya diikuti dengan nama class yang akan dimasukkan dalam List
tersebut. Tujuannya agar method dan property dari setiap object dalam ArrayList dapat diakses secara langsung. Pembuatan objek ArrayList adalah sebagai berikut:
ArrayList <nama_objek_arraylist>=new ArrayList();

      c.     Map
Perbedaaan mendasar map dengan collection yang lain, untuk menyimpan objek pada Map, perlu sepasang objek, yaitu key yang bersifat unik dan nilai yang disimpan. Untuk mengakses nilai tersebut maka kita perlu mengetahui key dari nilai tersebut. Map juga dikenal sebagai dictionary/kamus. Pada saat menggunakan kamus, perlu suatu kata yang digunakan untuk pencarian. Class-class yang mengimplementasikan Map adalah Hashtable,HashMap, LinkedHashMap. Pada jobsheet ini yang akan dibahas adalah HashMap.
HashMap adalah class implementasi dar Map, Map itu sendiri adalah interface yang memiliki fungsi untuk memetakan nilai dengan key unik. HashMap berfungsi sebagai memory record management, dimana setiap record dapat disimpan dalam sebuah Map. kemudian setiap Map diletakkan pada vektor, list atau set yang masih turunan dari collection. Pembuatan objek HashMap adalah sebagai berikut:
HashMap <nama_objek_HashMap> = new HashMap();

3.11.3 MEMBUAT KODE PROGRAM APLIKASI BERORIENTASI OBYEK YANG MENERAPKAN DATA BENTUK STRING


Contoh Kode Program Tipe Data String Bahasa Java

 


 

Berikut contoh pendeklarasian variabel dengan tipe data String:

1
2
3
4
5
6
7
8
9
10
11
class BelajarJava {
  public static void main(String args[]){
        
    String var1 = "Belajar Java";
    String var2 = " di Duniailkom";
     
    System.out.print(var1);
    System.out.print(var2);
   
  }
}

Hasil kode program:

Belajar Java di Duniailkom

Kita juga bisa menyambung beberapa variabel bertipe string menggunakan tanda tambah ( + ). Ini disebut juga sebagai operasi concatenation:

1
2
3
4
5
6
7
8
9
10
class BelajarJava {
  public static void main(String args[]){
        
    String var1 = "Belajar Java";
    String var2 = " di Duniailkom";
     
    System.out.print(var1 + var2);
   
  }
}

Hasil kode program:

Belajar Java di Duniailkom

Di sini saya membuat dua buah variabel bertipe String, yakni var1 dan var2, kemudian di sambung menjadi 1 string akhir ke dalam perintah System.out.print().

Proses pembuatan string juga bisa diisi dengan karakter khusus seperti \”, \’ dan \n yang dipakai untuk menuliskan tanda kutip dua, tanda kutip satu dan karakter Enter (new line) ke dalam string. Berikut contoh penggunaannya:

1
2
3
4
5
6
7
8
class BelajarJava {
  public static void main(String args[]){
        
    String var1 = "Belajar \nJava \ndi \"Duniailkom\"";
     
    System.out.print(var1);
  }
}

Hasil kode program:

Belajar
Java
di "Duniailkom"

Meskipun isi untuk variabel var1 saya tulis dalam 1 baris, tapi hasilnya terpecah menjadi 3 baris teks. Ini karena karakter \n akan diterjemahkan menjadi karakter Enter, sehingga teks berikutnya pindah ke baris baru.

Cara Membaca (input) Data String

Proses input data bisa dilakukan dengan Scanner class. Untuk membaca inputan dalam tipe data String, gunakan perintah nextLine() seperti contoh berikut:

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
import java.util.Scanner;
  
class BelajarJava {
  public static void main(String args[]){
      
    Scanner input = new Scanner(System.in);
      
    String nama, alamat, hobi;
  
    System.out.print("Nama: ");
    nama = input.nextLine();
     
    System.out.print("Alamat: ");
    alamat = input.nextLine();
     
    System.out.print("Hobi: ");
    hobi = input.nextLine();
      
    System.out.println();
    System.out.println("## Hasil ##");
      
    System.out.println("Nama = "+nama);
    System.out.println("alamat = "+alamat);
    System.out.println("Hobi = "+hobi);
  }
}