Sabtu, 28 Januari 2023

Hidden Pleasures In a Bowl Of Chicken Noodle




 


Ponorogo - Mi ayam is a typical Indonesian dish made of wheat noodles seasoned with chicken which is usually diced. This dish is heavily influenced by the culinary presentation techniques used in Chinese dishes. In Indonesia, chicken noodles are the most popular Chinese-Indonesian dishes.

Chicken noodles are often sold as a street dish by street vendors with simple mobile carts, which usually travel around the streets around residential areas. Chicken noodles are also a popular dish served from small roadside food stalls to large restaurants.

In Ponorogo itself, there are many traders who use processed chicken noodles. One of them is "Kedai Wong Malang" which is located in front of SMK PGRI 2 Ponorogo. It's a very simple shop, but they have a fantastic customer.

They were able to earn 800,000 in a day. With this income, they made approximately 70 bowls of chicken noodles.

Mrs. Deni, as the owner of the shop, said that the business had been started since 2010 with her husband. they don't have a secret recipe to produce a very delicious taste.

"We don't have a special recipe, but we always make sure the ingredients we use are of high quality. We get the materials directly from the factory,” said Mrs. Deni, Friday (27/1/23).

One of their recommended menus is chicken noodles. Coupled with meatball and claw toppings, it will add to the enjoyment of chicken noodles.

Apart from chicken noodles, they also provide meatballs that taste like chicken noodles. The broth is fresh, can be enjoyed in all weather. Especially now, where it still rains a lot.

Customers who come are very comfortable. There is some reasons. Like free wifi and the place is kept clean.


Senin, 01 Agustus 2022

3.14.1 MENJELASKAN KONSEP DASAR INSTRUKSI THREAD DALAM PEMROGRAMAN APLIKASI BERORIENTASI OBYEK


Thread adalah rangkaian eksekusi dari sebuah aplikasi java dan setiap program java minimal

memiliki satu buah thread. Sebuah thread bisa berada di salah satu dari 4 status, yaitu new,

runnable, blocked, dan dead.

A. Status Thread

1. New

Thread yang berada di status ini adalah objek dari kelas Thread yang baru dibuat, yaitu

saat instansiasi objek dengan statement new. Saat thread berada di status new,belum ada

sumber daya yang dialokasikan, sehingga thread belum bisa menjalankan perintah

apapun.

2. Runnable

Agar thread bisa menjalankan tugasnya, method start() dari kelas Thread harus

dipanggil. Ada dua hal yang terjadi saat pemanggilan method start(), yaitu alokasi

memori untuk thread yang dibuat dan pemanggilan method run(). Saat method run()

dipanggil, status thread berubah menjadi runnable, artinya thread tersebut sudah

memenuhi syarat untuk dijalankan oleh JVM. Thread yang sedang berjalan juga berada di

status runnable.

3. Blocked

Sebuah thread dikatakan berstatus blocked atau terhalang jika terjadi blocking

statement, misalnya pemanggilan method sleep(). sleep() adalah suatu method yang

menerima argumen bertipe integer dalam bentuk milisekon. Argumen tersebut

menunjukkan seberapa lama thread akan “tidur”. Selain sleep(), dulunya dikenal method

suspend(), tetapi sudah disarankan untuk tidak digunakan lagi karena mengakibatkan

terjadinya deadlock. Thread akan menjadi runnable kembali jika interval method sleep()-

nya sudah berakhir, atau pemanggilan method resume() jika untuk menghalangi thread tadi

digunakan method suspend()

4. Dead

Sebuah thread berada di status dead bila telah keluar dari method run(). Hal ini bisa

terjadi karena thread tersebut memang telah menyelesaikan pekerjaannya di method

run(), maupun karena adanya pembatalan thread. Status jelas dari sebuah thread tidak

dapat diketahui, tetapi method isAlive() mengembalikan nilai boolean untuk mengetahui

apakah thread tersebut dead atau tidak.

.

B. Pembentukan Thread dalam java

Untuk membuat thread dalam java terdapat dua cara :

a. Extends class Thread

Untuk menjalankan thread, dapat dilakukan dengan memanggil method start(). Saat start()

dijalankan, maka sebenarnya method run() dari class akan dijalankan. Jadi untuk membuat


LKPD PBO XII RPL GRAFIS


DASAR DESAIN GRAFIS KELAS X

thread, harus mendefinisikan method run() pada definisi class. Konstruktor dari cara ini

adalah:

SubThread namaObject = new SubThread();

namaObject.start();

b. Implements interface Runnable

Cara ini merupakan cara yang paling sederhana dalam membuat thread. Runnable

merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface ini hanya

cukup mengimplementasikan fungsi run(). Dalam mengimplementasi fungsi run(), kita

akan mendefinisikan instruksi yang membangun sebuah thread. Konstruktor dari cara ini

adalah :

MyThread myObject= new MyThread();

Thread namaObject = new Thread(myObject);

Atau dengan cara singkat seperti :

New Thread(new ObjekRunnable());

MyThread merupakan class yang mengimplementasikan interface dari Runnable, dan

object dari class MyThread akan menjadi parameter instansi object class Thread.

c. Synchronized

Sinkronisasi adalah method atau blok yang memiliki tambahan keyword

synchronized,sehingga apabila dijalankan maka hanya satu thread pada suatu waktu yang

dapat menjalankan method atau blok program. Thread lain akan menunggu thread yang

sedang mengeksekusi method ini hingga selesai. Mekanisme sinkronisasi penting apabila

terjadi pembagian sumber daya maupun data di antara thread-thread. Sinkronisasi juga

melakukan penguncian pada sumber daya atau data yang sedang diproses.

Sinkronisasi dapat dilakukan pada dua bagian yaitu

1. Sinkronisasi Blok

Sintak untuk sinkronisasi blok adalah sebagai berikut :

synchronized (<object reference expression>) {

<code block>

}

2. Sinkronisasi Method

Sintak untuk sinkronisasi method adalah sebagai berikut:

synchronized TypeBalikanMethod NamaMethod ( parameter)

{

}

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);
  }
}