Pencarian Data Secara Biner


Melanjutkan postingan sebelumnya mengenai metode pencarian data,kali ini kita akan beranjak ke metode pencarian yang lebih kompleks namun lebih efektif dari pada pencarian linear yaitu pencarian secara biner.Di pencarian biner ini kita tidak perlu mengecek elemen satu per satu namun di sini lebih ke menebak posisi data yang akan di cari.Kita membelah koleksi menjadi 2 bagian lalu kita periksa dari tengah,kiri dan kanan

Supaya lebih jelas saya kasih contoh real nya saja
  • Saya punya data sebagai berikut 3,5,8,9,11,13,14,17,20,23,25,28,30,35.Di sini datanya harus sudah urut karena itu merupakan syarat dari pencarian secara biner.Saya ingin mencari angka 11 di koleksi tersebut
  • jumlah data 14 maka 0+13//2 = 6 (data ke-7) yaitu 14 merupakan titik tengahnya
  • 11 < 14 maka penanda kanan geser ke kiri menjadi data ke-6  sedangkan titik tengah barunya 0+5//2 = 2 (data ke-3) yaitu 8
  • 11 > 8 maka penanda kiri geser ke kanan menjadi data ke-4 yaitu 9 sedangkan titik tengah barunya 3+5//2 = 8//2 = 4 (data ke-5) yaitu 11
  • 11 = 11 (data ditemukan) pencarian pun dihentikan

Contoh kode untuk pencarian biner menggunakan Java

menggunakan biner search pada java


algoritma pencarian biner di java
Kita coba data yang satunya lagi

data biner search pada java

biner search dengan java

Contoh kode dan Output di Python :













Algoritma Pencarian Data Secara Linear


Di dunia nyata, terkadang kita harus menemukan data tertentu dari sekumpulan data misalnya saat mencari terjemahan kata di dalam kamus,mencari kendaraan kita di dalam parkiran,Mencari tempat duduk di pesawat dll

Pencarian akan mudah jika jumlah datanya sedikit tapi bagaimana kalau jumlah datanya banyak misalnya ratusan,ribuan ? Pasti akan susah bukan ? Kalau dalam bahasa pemrograman sendiri kita bisa mencari data yang kita inginkan dengan mudah menggunakan algoritma pencarian.

Dengan menggunakan algoritma,kita bisa tahu apakah ada data yang kita inginkan atau tidak dengan cepat.Salah satu algoritma yang paling sederhana untuk mencari data adalah pencarian secara linear

Pencarian Linear adalah Pencarian dengan mencocokkan target dengan elemen yang ada di dalam collection tertentu satu per satu.Supaya nggak bingung begini algoritma nya :


  • Lintasi koleksinya,supaya gampang pake array saja koleksinya
  • Cocokkan kunci(targetnya) dengan elemen array
  • Jika elemen kuncinya ditemukan,kembalikan indeks elemen kunci tersebut
  • Jika tidak di temukan,kembalikan -1
Contoh kode dan outputnya di java :



Bagaimana kalau elemen yang kita cari itu muncul lebih dari 1 kali ? Hasilnya sama saja karena indeks yang akan dikembalikan adalah indeks yang terkecil (indeks saat elemen tersebut pertama kali ditemukan) dalam kasus 41 di array di atas adalah elemen ke-4 (indeks 3)

Contoh kode dan output di Python :






Regular Expression di Java


Regular Expression Java (java regex) merupakan API untuk mendefinisikan pola untuk mencari dan memanipulasi string.

Ini biasanya digunakan untuk pembatasan string misalnya untuk nomor telepon,email dll.Untuk di java regex sendiri menyediakan 1 interface dan 3 class di package java.util.regex yaitu

  1. interface MatchResult
  2. class Matcher
  3. class Pattern
  4. class PatternSyntaxException
Class yang menyediakan fasilitas untuk menggunakan java regex adalah class Matcher dan Pattern jadi kita akan membahas di sekitar 2 class itu saja

Class Matcher

Regex engine yang digunakan untuk pencocokan pada sequence karakter



Method Deskripsi
boolean matches() mengetes regex cocok dengan pattern atau tidak
boolean find() menemukan expression selanjutnya yang cocok dengan pattern
boolean find(int start) menemukan expression selanjutnya yang cocok dengan pattern dimulai dari angka start
String group() mengembalikan subsequence yang cocok
int start() mengembalikan indeks awal dari subsequence yang cocok
int end() mengembalikan indeks akhir dari subsequence yang cocok
int groupCount() mengembalikan total jumlah subsequence yang cocok

Class Pattern


Method Deskripsi
static Pattern compile(String regex) compile regex yang diberikan dan mengembalikan instance dari Pattern
Matcher matcher(CharSequence input) membuat matcher untuk mencocokkannya dengan input yang diberikan
static boolean matches(String regex, CharSequence input) gabungan compile dan matcher,compile regex beserta mencocokkannya dengan input yang diberikan
String[] split(CharSequence input) memecah string input yang diberikan menggunakan pattern yang diberikan
String pattern() mengembalikan pattern regex

Contoh kode :

















Output :
true true true
Penggunaan  (.) menandakan single character ini saya kasih contoh lagi

import java.util.regex.*;
class Contoh{
  public static void main (String[] args){
  System.out.println(Pattern.matches(".a", "ba"));//true char kedua adalah a
  System.out.println(Pattern.matches(".a", "ab"));//false char kedua bukan a
  System.out.println(Pattern.matches("..a", "cba"));//true char ketiga adalah a
  System.out.println(Pattern.matches("..a", "abc"));//false char ketiga bukan a
  System.out.println(Pattern.matches(".a", "bca"));//false lebih dari 2 char


}

Kelas Karakter Regex

Kelas Karakter Deskripsi
[abc]) a b atau c
[^abc] semua karakter kecuali a b atau c (negasi)
[a-zA-Z] a sampai z atau A sampai Z
[a-m[n-p]] a sampai m atau n sampai p
[a-z&&[def]] a sampai z dan d e atau f
[a-z&&[^cd]] a sampai z kecuali c dan d
[a-z&&[^m-p]] a sampai z tapi tidak melalui m-p

Contoh pemakaiannya (kelas karakter hanya untuk single karakter karena kalau kita masukkan lebih dari satu karakter hasilnya otomatis false)

import java.util.regex.*;
class Contoh{
  public static void main (String[] args){
  System.out.println(Pattern.matches("[abc]", "a"));//true a termasuk
  System.out.println(Pattern.matches("[^adc]", "d"));//false kecuali a c dan d
  System.out.println(Pattern.matches("[a-fA-F]", "B"));//true B di dalam A-F
  System.out.println(Pattern.matches("[a-f[j-y]]", "b"));//true b di dalam  a-f
  System.out.println(Pattern.matches("[a-h&&[cdi]]", "i"));//false i di luar h


}
}

Penghitung Regex

Digunakan untuk menspesifikan kemunculan karakter

Penghitung Deskripsi
X? X muncul sekali atau tidak sama sekali
X+ X muncul sekali atau lebih
X* X muncul nol atau lebih
X{n} X hanya muncul n kali
X{n,} X muncul n kali atau lebih
X{m,n} X muncul setidaknya m kali tapi kurang dari n kali

Contoh Penggunaan :

import java.util.regex.*;
class Contoh{
  public static void main (String[] args){
  System.out.println("Penghitung ?");
  System.out.println(Pattern.matches("[abc]?", "abc"));//false a sudah muncul berarti b dan c tidak usah muncul
  System.out.println(Pattern.matches("[abc]?", "c"));//true c hanya muncul sekali
  System.out.println(Pattern.matches("[^abc]?", "b"));//false kecuali a,b atau c
  System.out.println(Pattern.matches("[^abc]?", "f"));//true f muncul hanya sekali
  System.out.println("Penghitung +");
  System.out.println(Pattern.matches("[abc]+", "abc"));//true a b dan c muncul
  System.out.println(Pattern.matches("[abc]+", "c"));//true c muncul
  System.out.println(Pattern.matches("[^abc]+", "b"));//false kecuali a,b atau c
  System.out.println(Pattern.matches("[^abc]+", "ef"));//true e dan f muncul

}
}

Meta Karakter Regex


Meta Karakter Deskripsi
. Karakter apa saja
\d Digit, [0-9]
\D non-Digit, [^0-9]
\s karakter whitespace seperti \n\r dll
\S selain karakter whitespace
\w karakter kata (angka juga termasuk)
\W karakter selain huruf
\b pembatas kata
\B selain pembatas kata

Mungkin untuk pembatas kata anda agak asing di sini.Pembatas kata (word boundary) adalah karakter selain huruf,angka di dalam string misalnya anda membuat String " Jangan di sini" maka word boundary adalah spasi sebelum huruf J,sesudah huruf n dan sesudah huruf i.Mudah-mudahan anda bisa paham

Contoh kode :
import java.util.regex.*;
class Contoh{
  public static void main (String[] args){
  System.out.println("Meta karakter \\d");
  System.out.println(Pattern.matches("\\d", "abc"));//false tidak ada digit
  System.out.println(Pattern.matches("\\d", "2"));//true digit dan hanya muncul sekali
  System.out.println(Pattern.matches("\\d", "52"));//false digit tapi muncul lebih dari sekali
  System.out.println(Pattern.matches("\\d", "2a"));//false digit dan char
  System.out.println("Meta karakter \\D");
  System.out.println(Pattern.matches("\\D", "a"));//true non-digit dan muncul sekali
  System.out.println(Pattern.matches("\\D", "2"));//false bukan non-digit
  System.out.println(Pattern.matches("\\D", "ab"));//false non-dogit tapi muncul lebih dari sekali
  System.out.println(Pattern.matches("\\D", "2a"));//false digit dan char
  System.out.println("Meta karakter \\d dan penghitung +");
  System.out.println(Pattern.matches("\\d+", "274"));//true digit dan muncul lebih dari sekali
}
}
Itu saja postingan mengenai regex.Untuk memahami regex ini memang butuh ketelitian tinggi saya harap anda menikmatinya saja..terima kasih..

Yang Terjadi Pada Dunia Khususnya Indonesia Saat Ini..


Mungkin anda sudah bisa menebak apa isi postingan ini.Ya,negara-negara di dunia khususnya Indonesia sedang dihebohkan dengan keberadaan pandemi virus Corona.Untuk Indonesia sendiri sampai dengan Senin,23 Maret 2020 sudah terdapat 579 kasus positif dengan 49 orang telah meninggal dunia

Pandemi ini sangat berdampak pada berbagai bidang di seluruh dunia.Banyak negara melakukan opsi lockdown untuk menekan penyebaran virus Corona ini.Namun,kalau untuk Indonesia sepertinya pemerintah tidak akan melakukan opsi lockdown.

Menurut saya sih ini sudah tepat keputusannya untuk tidak buru-buru melakukan lockdown karena kalau di lakukan lockdown bagaimana nasib penduduk menengah ke bawah yang untuk makan saja mereka sudah kesulitan ? Indonesia juga negara yang luas dengan penduduk no 4 terbanyak di dunia ;Jujur saja saya nggak bisa membayangkan apa yang akan terjadi kalau Indonesia sampai memberlakukan lockdown

Untuk keadaan sekarang ini,kita tidak perlu panik namun kita juga perlu waspada.Lakukan saja hal-hal berikut ini untuk menekan penyebaran virus Corona


  • Social Distancing
.Mungkin untuk istilah Social Distancing sudah kurang tepat untuk kondisi sekarang ini.Mungkin akan lebih tepat kalau kita menyebutnya Physical Distancing (menjaga jarak fisik) karena seperti kita tahu sendiri kalau Covid-19 ini sangat berbahaya kalau kita sampai terpapar sehingga dianjurkan untuk tidak melakukan kontak fisik dengan orang lain.Bahkan untuk berhubungan dengan orang lain,kita dianjurkan untuk berjarak sekitar 1 meter.Wah,ngeri banget ya ? Wah nampak-nampaknya kita belajar jadi antisosial wkwkwkwk


  • Jangan Keluar Rumah Kalau Sekiranya Tidak Penting
Isolasi juga diri anda di dalam rumah,jangan keluar rumah dulu kalau sekiranya urusannya tidak penting.Tapi,kalau urusannya sangat penting sehingga mengharuskan keluar rumah pakailah masker, segera selesaikan urusan anda di luar rumah dan segera pulang ke rumah



  • Sering mencuci tangan dengan hand sanitizer
Untuk lebih amannya lagi,kita bisa sering-sering mencuci tangan kita setelah menyentuh barang-barang.Oh ya,jangan cuma pakai air tapi juga harus pakai hand sanitizer juga

  • Kenali Gejala-gejala Covid-19
Covid-19 ini memiliki gejala yang mirip dengan flu biasa.Namun,jangan buru-buru memeriksakan diri anda dulu ke unit kesehatan terdekat.Setau saya sih untuk flu biasa mungkin cuma sakit tenggorokan dan hidung tersumbat sedangkan untuk Covid-19 kita mengalami semacam sesak napas dan demam tinggi namun gejalanya bisa lebih berat lagi tergantung orang yang terinfeksi.Mungkin untuk satu orang dia hanya mengalami gejala ringan seperti flu biasa tapi untuk orang lain bisa saja mengalami gejala yang lebih berat seperti sakit kepala,diare,mual dll selengkapnya bisa baca di Alodokter.Anda juga bisa tanyakan di sana kalau anda mengalami gejala-gejala yang sudah disebutkan

  • Jangan Sebarin Hoaks
Mungkin ini tidak ada hubungannya sih untuk menekan penyebaran virus Corona.Namun,dengan hoax yang beredar apalagi kalo hoax tersebut sampe viral akan menjadikan masyarakat semakin panik dengan adanya pandemi ini.

Apalagi pemerintah juga akan menindak tegas orang-orang yang menyebarkan hoax tentang virus Corona.Biarkan media saja yang melakukan tugasnya untuk mengupdate berita tentang virus Corona.Kita masyarakat cuma perlu menikmati hasilnya saja

Jangan juga mudah terjebak dengan berita hoax.Pastikan anda membaca berita dari media terpercaya  seperti Liputan6,Kompas,CNN dll

Mungkin itu saja postnya intinya jangan panik dan tetap tenang dalam kondisi ini.Tetap lakukan Social Distancing dan berdoa semoga bisa segera ditemukan titik terang terkait wabah ini dan kita semua bisa segera beraktifitas dengan normal lagi.









Kekurangan Mobile Legends yang Bikin Malas Main


Mobile Legends merupakan salah satu game moba mobile terlaris saat ini,game yang rilis sejak 2016 lalu kini telah mendapatkan sekitar 500 juta player di berbagai belahan dunia.Karena ini game mobile dan gameplay dan hero yang tidak terlalu susah untuk dimainkan, mobile legends menjadi pilihan banyak orang untuk bermain game moba di dalam smartphone yang mereka miliki

Yah,meskipun game ini laris di pasaran game ini ternyata memiliki beberapa kekurangan yang bikin kita malas untuk memainkannya.Kekurangan-kekurangan inilah yang menurut saya bikin mobile legends masih jauh dari kata bagus untuk player-playernya

Nah,langsung saja kita bahas ya poin minus dari game ciptaan Moonton ini..

1.Hero Tidak Balance

Jujur saja saya rindu ml 3.jaman dulu saat heronya masih sedikit dan pemainnya belum serame sekarang.Dulu itu enak hampir semua hero kepake dan tidak ada hero yang kelewatan op gitu.Di situlah game tersebut bisa disebut balance

Coba bandingkan dengan sekarang,banyak hero op yang berkeliaran dan juga meta cuma itu-itu saja karena memang itu meta paling op.Sebagai contoh S13 metanya Fighter,S14 meta mage midlaner ,S15 meta mm bot lane dan sepertinya S16 atau season sekarang akan menjadi meta support + hypercarry

Pernahkah anda lihat hero-hero lama seperti Alucard,Balmond,Zilong,Miya,dkk di ranked ? Gak ada yang make kan ? Kalaupun ada yang make itu tujuannya untuk troll.Ya,mungkin Moonton harus lebih memperhatikan nasib hero-hero lama di mobile legends

2.Masalah Matchmaking

 Matchmaking di mobile legends khususnya di ranked memang agak bermasalah.Epic bisa berjumpa Mythic,Legend semua bisa bertemu Mythic.Tentu saja ini akan sangat merugikan terutama bagi solo player karena perbedaan skill yang begitu besar antara tim kita dan tim lawan alias menjadikan satu pihak terbantai.
P
Saya harap sih Moonton bisa segera menyeimbangkan matchmaking nya.

3.Masalah Lag

Masalah lag jadi masalah yang lumrah sih bagi game online kaya mobile legends gini.Tapi,entah kenapa lag malah makin kerasa dari patch ke patch.Gak peduli mau sekencang apapun internet anda,kalau server nya masih bermasalah anda tidak akan pernah lepas dari masalah lag ini.Terutama pada jam 8 malam ke atas saya akui maen mobile legends itu ngelag banget,ping tiba-tiba down,FPS drop menjadi hal yang tidak aneh lagi di game ini

4.Sistem Hukuman

Tiap hari ada saja player yang afk,player yang ngetroll,player yang toxic nya kelewatan dll.Ya,sistem hukuman di mobile legends masih belum bisa dibilang berat untuk player-player yang berperilaku buruk di in-game.Terutama untuk masalah cheat masih banyak cheat yang berkeliaran contoh nya drone map, map hack dll.

Saya rasa ini sih wajar bagi moonton memperlakukan hukuman yang tidak terlalu berat mengingat moontoh masih belum mau kehilangan player game nya yang sudah sangat banyak ini

Saya harap Moonton bisa lebih tegas dalam menindak player-player di atas supaya tercipta lingkungan game yang menyenangkan bagi para player

5.Moonton Terlalu Sering Update Skin,Hero,dll

Ini adalah poin terakhir yang bikin mobile legends itu masih jauh dari kata bagus untuk sebuah game moba.

Developernya terlalu sering mengupdate hero,skin-skin terbaru.Karena terlalu sering rilis hero baru,maka meta pun sering berubah-ubah dan hero-hero lama menjadi semakin terlupakan.

Moonton juga tidak perlu mengupdate skin baru terlalu sering karena tidak semua player memiliki penghasilan sendiri (banyak juga player yang masih anak-anak jadi mereka tidak bisa membeli skin di game)

Para player tidak begitu menginginkan hero ataupun skin baru.Yang mereka inginkan hanyalah sebuah game moba yang nyaman bagi mereka contohnya matchmaking balance, main gak ngelag, keberadaan player-player negatif berkurang dll.

Menurut saya meskipun suatu game moba lama tidak update hero ataupun skin baru,asalkan game itu enak buat dimainin saya rasa game itu akan tetap laris di pasaran.

Mungkin itu saja unek-uneknya tentang kekurangan game mobile legends kalau masih ada poin lagi silahkan menambahkan di kolom komentar





Dictionary dan Operasinya di Python


Dictionary artinya adalah kamus.Tau kan kamus isinya apa ? Yup,isinya adalah kata(key) dan terjemahannya (value).Mengambil prinsip dari situ,Dictionary di Python merupakan tipe data yang isinya adalah key bersama pasangannya (value).Jadi, di sini key memetakan suatu value.Karena masing-masing key memetakan satu value,maka key di sini tidak boleh duplikat.

Kalau implementasinya di dunia nyata,satu kunci pintu tidak bisa digunakan untuk membuka banyak pintu sekaligus.Setiap kunci punya pasangan pintu nya masing-masing.

Key di dictionary bersifat immutable sedangkan value bersifat mutable

Membuat Dictionary

Langkah-langkah membuat dictionary :
  • Buat kurung keriting dulu { }
  • Masukkan key dan value(pasangan) ke dalamnya dengan titik dua sebagai pemisah antara key dan value Contoh : {"Nama" : "Messi"}
  • Gunakan koma sebagai pemisah dengan pasangan yang lain Contoh : {"Nama" :"Messi","Usia":28}

Mengakses Value Dictionary

Di dalam list dan tuple,data bisa diakses dengan indeks.Nah,kalau di dictionary kita bisa mengakses value menggunakan key nya.Kalau di contoh tadi,kita bisa mengakses "Messi" menggunakan "Nama" dan kita bisa mengakses 28 menggunakan "Usia".Value bisa diakses dengan format

namadict[key]

Update Value Dictionary

Value dictionary bersifat mutable jadi kita bisa mengganti nya sesuka hati kita.Cara menggantinya dengan format berikut

namadict[key] = valuebaru

Menghapus Item dari Dictionary

untuk menghapus item (key dan value) dari dictionary,kita memakai keyword del 


Iterasi Key Dictionary

Contoh :
dict = {"Nama":"Messi","Usia":28,"Tinggi":170}
for i in dict:
    print(i)
Output :
Nama
Usia
Tinggi

 Iterasi Value Dictionary

Contoh :
dict = {"Nama":"Messi","Usia":28,"Tinggi":170}
for i in dict:
    print(dict[i])
Output :
Messi
28
170
Iterasi Item (Key dan Value) Dictionary

Kita bisa memakai method items() sebagai perantara untuk iterasi for

Contoh :
dict = {"Nama":"Messi","Usia":28,"Tinggi":170}
for i in dict.items():
    print(i)
Output :
('Nama', 'Messi')
('Usia', 28)
('Tinggi', 170)

Panjang Dictionary

sama seperti collection yang lain,function len bisa dipakai untuk mengetahui panjang dictionary

Contoh :

dict = {"Nama":"Messi","Usia":28,"Tinggi":170}
print("Panjang dictionary adalah %d" %len(dict))
Output :
Panjang dictionary adalah 3 

Mengubah Dictionary Jadi String

function str yang akan kita pakai kalau kita ingin merubah dictionary jadi string
Contoh :
dict = {"Nama":"Messi","Usia":28,"Tinggi":170}
data = str(dict)
print(type(data))
print(data)
Output :
<class 'str'>
{'Nama': 'Messi', 'Usia': 28, 'Tinggi': 170}

Menggunakan Set di Python


Set adalah collection tak terurut yang ditutup dengan kurung keriting.Elemen di dalam set tidak boleh duplikat (ada yang sama).Elemen dari set juga bersifat immutable.Kalau ada yang duplikat,maka hanya satu yang dianggap.Jadi,set ini sangat bagus untuk menghilangkan duplikat data

Cara membuat set

A = {2,5,8,11}
B = {"Barcelona","Real Madrid","Valencia"}


Set ini merupakan collection yang tidak terurut jadi kalau kita print elemennya tidak akan seperti urutan semula


Tuh,lihat kan nggak urut elemennya kan ?


Tidak seperti collection yang lain,set ini tidak terikat oleh indeks.Jadi,kita tidak bisa mengakses setiap elemen secara langsung.Tapi kita tetap bisa print mereka dengan looping melalui set

Menambah Elemen ke Dalam Set

Python menyediakan method add() untuk menambahkan elemen ke dalam set

Contoh kode :

B = {"Barcelona","Real Madrid","Valencia"}
print("Sebelum add :")
print(B)
B.add("Atletico Madrid")
B.add("Villarreal")
print("Setelah add :")
print(B)
print("Iterasi melalui set :")
for i in B:
    print(i)

Output :
Sebelum add :
{'Valencia', 'Real Madrid', 'Barcelona'}
Setelah add :
{'Barcelona', 'Valencia', 'Real Madrid', 'Villarreal', 'Atletico Madrid'}
Iterasi melalui set :
Barcelona
Valencia
Real Madrid
Villarreal
Atletico Madrid

Sementara itu,kalau kita ingin menambahkan lebih dari satu elemen maka method update() yang digunakan.Berikut contoh cara menggunakannya

Contoh kode :

B = {"Barcelona","Real Madrid","Valencia"}
print("Sebelum update :")
print(B)
B.update(["Atletico Madrid","Villarreal"])#silahkan kasih kurung bebas
print("Setelah update :")
print(B)
print("Iterasi melalui set :")
for i in B:
    print(i)

Output :

Sebelum update :
{'Real Madrid', 'Valencia', 'Barcelona'}
Setelah update :
{'Atletico Madrid', 'Villarreal', 'Real Madrid', 'Valencia', 'Barcelona'}
Iterasi melalui set :
Atletico Madrid
Villarreal
Real Madrid
Valencia
Barcelona

Menghapus Elemen dari Set

Ada 2 method yang bisa digunakan di sini yaitu discard() dan remove()

Contoh penggunaan discard :

B = {"Barcelona","Real Madrid","Valencia","Bilbao"}
print("\nSebelum discard :")#\n untuk baris baru
print(B)
B.discard("Real Madrid")
print("\nSetelah discard :")
print(B)
print("\nIterasi melalui set :")
for i in B:
    print(i)
Output :


Contoh penggunaan remove

B = {"Barcelona","Real Madrid","Valencia","Bilbao"}
print("\nSebelum remove :")#\n untuk baris baru
print(B)
B.remove("Barcelona")
print("\nSetelah remove :")
print(B)
print("\nIterasi melalui set :")
for i in B:
    print(i)
Output :



Perbedaan discard dan remove ?

Kalau item yang ingin kita hapus tidak ada di dalam set,discard() tidak akan memberikan error sedangkan remove() akan memberikan error


Tuh,kan kalau kita pake discard() kode kita tetap jalan meskipun item yang mau kita hapus nggak ada di dalam set.Nah,sekarang bandingkan dengan remove()


Terjadi error di situ karena item yang mau kita hapus nggak ada di dalam set

Oh,ya kita juga bisa menghapus semua elemen dari suatu set dengan method clear()

Contoh :
B = {"Barcelona","Real Madrid","Valencia","Bilbao"}
print("\nSebelum dimodifikasi :")#\n untuk baris baru
print(B)
B.clear()
print("\nSetelah dimodifikasi :")
print(B)
 Output:
 

Menggabungkan 2 Set

menggabungkan 2 set bisa menggunakan method union() kalau di himpunan ini adalah A∪B 

Contoh :
A = {"Anjing","Kucing"}
B = {"Ayam","Itik"}
print(A.union(B))
Output :
{'Kucing', 'Anjing', 'Itik', 'Ayam'}

Irisan 2 Set

Irisan merupakan item dari set pertama yang juga ada di set kedua.Untuk mendapatkan irisan bisa memakai method intersection().Kalau di himpunan,ini adalah A∩B


Contoh :
A = {"Anjing","Kucing","Dara","Kelinci"}
B = {"Ayam","Itik","Dara","Kelinci"}
print(A.intersection(B))
Output :
{'Dara', 'Kelinci'}
method intersection_update() tidak hanya mengiris 2 set tapi juga memodifikasi set awal

Contoh :
A = {"Anjing","Kucing","Dara","Kelinci"}
B = {"Ayam","Itik","Dara","Kelinci"}
A.intersection(B)
print(A)
Output :
{'Anjing', 'Dara', 'Kucing', 'Kelinci'}
Kalau kita pake intersection() set awal (di sini A) tidak akan berubah

Contoh :
A = {"Anjing","Kucing","Dara","Kelinci"}
B = {"Ayam","Itik","Dara","Kelinci"}
A.intersection_update(B)
print(A)
Output :
{'Kelinci', 'Dara'}

Perbedaan 2 Set

Untuk mengetahui item dari set pertama yang tidak ada di set yang kedua kita bisa memakai 2 cara yaitu operator - dan method difference()
Contoh operator - :
A = {"Anjing","Kucing","Dara","Kelinci"}
B = {"Ayam","Itik","Dara","Kelinci"}
print(A-B)
Output :
{'Kucing', 'Anjing'}
Contoh method difference():
A = {"Anjing","Kucing","Dara","Kelinci"}
B = {"Ayam","Itik","Dara","Kelinci"}
print(A.difference(B))
Output :
{'Kucing', 'Anjing'}

Membandingkan 2 Set

Python mengizinkan kita menggunakan operator perbandingan (<.>,<=,>=,==) di dalam set untuk mengecek apakah suatu set menjadi subset, superset atau ekuivalen dengan set yang lain.Kembalian true dan false bergantung pada item yang ada pada kedua set

Contoh :
A = {"Merah","Biru","Kuning","Hitam","Putih"}B = {"Biru","Merah","Hitam"}C = {"Biru","Hitam","Merah"}print(A>B)#True karena A superset dari Bprint(A<B)#False karena B bukan superset dari Aprint(B==C)#True karena item B dan C sama 
Output :
True
False
True

Method Lain Untuk Set di Python

 

copy() menyalin set
difference_update(...) mengubah set awal dengan menghapus semua elemen yang juga ada di set yang ditentukan
Isdisjoint(...) mengembalikan True jika dua set tidak ada irisannya
Issubset(...) mengecek apakah suatu set adalah subset dari set yang ditentukan
Issuperset(...) mengecek apakah suatu set adalah superset dari set yang ditentukan
pop() mengembalikan dan menghapus elemen terakhir set
symmetric_difference() mengembalikan irisan suatu set dengan set yang lain
symmetric_difference_update() mengubah elemen set awal dengan elemen set lain yang tidak ada di set awal
Download Python untuk berbagai macam sistem operasi di SINI
IDE online untuk Python bisa ke SINI untuk mengetes kode tanpa install python di komputer

 




 


Menggunakan Tuple di Python


Kalau tadi kita bahas List di Python maka kali ini kita akan membahas mengenai Tuple.Tuple ini hampir sama dengan List hanya saja Tuple bersifat immutable, artinya nilai dari elemen Tuple tidak bisa diubah

Tuple bisa dibuat dengan menggunakan kurung biasa lalu untuk item-itemnya dipisahkan dengan tanda koma(,)

membuat tuple di python
Tuple yang kosong bisa dituliskan dengan () sedangkan tuple dengan satu elemen juga tetap harus memakai koma seperti contoh di atas.Kalau tidak,dia akan dianggap sebagai tipe data yang lain

membuat tuple di python 2


Lihat,kan ? C langsung berubah menjadi string karena saya gak pake koma

Untuk indexing dan splitting di Tuple sama persis seperti di List silahkan baca di SINI saja untuk lengkapnya

Operasi yang berlaku di Tuple sangat terbatas kita tidak bisa menambah elemen,menghapus elemen,ataupun mengganti nilai elemen

Function Built-in Tuple di Python

len(tuple) panjang tuple
max(tuple) elemen maksimum tuple
min(tuple) elemen minimum tuple
tuple(seq) mengubah sequence jadi tuple

menggunakan function built-in di tuple

Tuple di Dalam List dan Sebaliknya

Kita bisa menggunakan tuple di dalam list maupun sebaliknya contohnya sebagai berikut

A =[("Merah","Red"),("Biru","Blue"),("Kuning","Yellow"),("Putih","White")]
print("list sebelum modifikasi")
for i in A:
    print(i)
A[3] = ("Hitam","Black")
print("list sesudah modifikasi")
for i in A:
    print(i)

Output :

list sebelum modifikasi
('Merah', 'Red')
('Biru', 'Blue')
('Kuning', 'Yellow')
('Putih', 'White')
list sesudah modifikasi
('Merah', 'Red')
('Biru', 'Blue')
('Kuning', 'Yellow')
('Hitam', 'Black')


membuat tuple di dalam list python


Menggunakan List di Python


List  merupakan salah satu cara untuk menyimpan urutan macam-macam tipe data.Python memiliki berbagai macam tipe data untuk menyimpan urutan data namun yang paling umum digunakan adalah list

List bisa digunakan sebagai collection untuk nilai/item yang memiliki tipe berbeda.Setiap item dipisahkan dengan koma(,) dan ditutup dengan []

contoh cara membuat list :

membuat list di python

Indeks dan Split List

Kurang lebih sama dengan indexing dan splitting di string.Elemen list bisa di akses dengan operator slice [].Tidak hanya indeks positif,kita juga bisa memakai indeks negatif di list ini.Indeks positif (dimulai dari 0) untuk mengindeks list dari kiri ke kanan sedangkan indeks negatif (dimulai dari -1) untuk mengindeks list dari kanan ke kiri

B = [1,2,3,4]


B[0]=1 B[-1]=4
B[1]=2 B[-2]=3
B[2]=3 B[-3]=2
B[3]=4 B[-4]=1
Untuk cara mengakses sebagian elemen dari list menggunakan (:) bisa lihat di SINI karena sama saja caranya dengan yang splitting di string 

Mengupdate Value List

List merupakan struktur data yang paling fleksibel di python karena kita bisa mengupdate value elemen,menambah elemen,menghapus elemen dll

Untuk mengupdate value di list kita bisa memakai operator slice dan assignment

A = ["Apa",1,"Kenapa"]
B = [1,2,3,4]
A[0] = "Di mana"
B[0:3] = [3,5,9]
print(A)
print(B)

Output :

['Di mana', 1, 'Kenapa']
[3, 5, 9, 4]

mengupdate value di list

Menambah Elemen di List

Python menyediakan method append() untuk menambahkan elemen ke dalam List.Namun function append() hanya bisa menambahkan satu elemen saja ke akhir list 
menambahkan elemen ke dalam list python
Kalau kita ingin menambahkan elemen ke indeks tertentu, maka method insert() yang akan digunakan
menambah elemen di list dengan indeks tertentu python

Menghapus Elemen di List

Menghapus elemen bisa dengan 2 cara yaitu dengan function del dan method remove.Kalau menggunakan del kita harus mendefinisikan indeks berapa yang ingin kita hapus.Sementara itu,remove digunakan untuk menghapus elemen dengan value tertentu

menghapus elemen dari list python
menggunakan delete
menghapus elemen dari list python 2
menggunakan remove

Operator di dalam List

+ menggabungkan list
* mengulangi list sebanyak yang diinginkan
in termasuk anggota
for..in iterasi melalui list



operator di dalam list











Function Built-in List di Python


len(list) panjang list
max(list) elemen maksimum list
min(list) elemen minimum list
list(seq) mengubah sequence jadi list



Method Built-in List di Python


list.append(obj) menambahkan elemen ke dalam list
list.clear() menghapus semua elemen list
list.copy() menyalin list
list.count(obj) menghitung berapa banyak obj muncul di list
list.extend(obj) menambahkan semua elemen dari list,tuple lain
list.insert(index, obj) menambahkan elemen ke indeks tertentu
list.pop(obj) mengembalikan dan menghapus elemen yang dimaksud
list.reserve() membalik urutan list
list.sort() mengurutkan elemen list dari kecil ke besar

List Comprehension

Bagaimana kalau kita ingin membuat list yang anggotanya memiliki syarat tertentu misalnya bilangan kuadrat, bilangan kelipatan 3 dll ? Kita bisa menggunakan list comprehension di sini.List comprehension maksudnya yaitu dengan menerapkan fungsi tertentu terhadap list lain untuk membuat list baru 

syntax dari list comprehension yaitu sebagai berikut

expression for element in iterable

atau kita bisa menambahkan if (opsional) kalau ingin anda kondisi tertentu untuk list yang akan dibuat

expression for element in iterable if condition

Contoh :

list = [x*3 for x in (range(10))]
print(list)//[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

Di bawah ini saya pakai if x >0 untuk menghilangkan 0 di x nya jadi hasilnya begini


Kita juga bisa pake else hanya saja kalau pake else kita harus menaruh if sebelum for kalau tidak kode akan error

 Di bawah ini saya memakai else untuk menambah x dengan 1 jika x tidak lebih dari 2





Mungkin itu saja postingan mengenai list di python untuk methodnya silahkan coba sendiri karena akan terlalu banyak gambar kalau saya coba satu-satu di sini.Sekian dan terima kasih..

Menggunakan String di Python


String merupakan tipe data untuk memuat tulisan seperti huruf atau angka secara bersamaan.Tidak seperti di Java,yang kalau mau membuat String harus pakai petik dua, di Python kita boleh memakai petik satu,dua maupun tiga hasilnya akan sama saja

contoh membuat String

str = "Halo Dunia"
Untuk mengecek tipe datanya kita bisa memakai print(type(str)) maka akan menghasilkan <class 'str'>

Di Python, ini tidak mendukung tipe data single character misalnya kalau kita menulis 'p' maka itu akan dianggap string dengan length 1 sebagai bukti lihat di bawah

mengecek tipe data

Tuh,lihat kan tipe data tetap string meskipun kita memakai petik satu di sana

Mengindeks dan Memecah String

Misal kita punya string "Halo Dunia" maka masing-masing karakter bisa kita indeks sebagai berikut

str = "Halo Dunia"

str[0] = 'H'
str[1] = 'a'
str[2] = 'l'
str[3] = 'o'
str[4] = ' '(spasi)
str[5] = 'D'
str[6] = 'u'
str[7] = 'n'
str[8] = 'i'
str[9] = 'a'

titik dua (:) bisa kita gunakan kalau kita ingin mengakses sub-string dari string yang dimaksud 

[:indeksangka] kalau mengakses bagian depan  sebanyak indeks angka yang dimaksud
[indeksangka:] kalau kita ingin mengakses semua bagian setelah indeks angka yang dimaskud
[indeksawal:indeksakhir] kalau kita ingin mengakses bagian yang dimulai dari angka indeks awal dan berakhir sebelum angka indeks akhir (indeksakhir-1 adalah yang terakhir)

Supaya lebih jelas bisa lihat contohnya di bawah

str = "Halo Dunia"

str[:2] = "Ha"
str[2:] = "lo Dunia"
str[2:7] ="lo Du"

Mengganti String

Kalau kita ingin mengganti nilai suatu variabel string maka kita tinggal membuat variabel dengan nama yang sama tapi dengan nilai yang baru

str = "Halo Dunia"
str = "Apa"

mengganti nilai string

sub-string bersifat immutable,kita tidak bisa merubah nilai dari sub-string contohnya sebagai berikut

str = "Halo Dunia"
str[0] = 'C'
print(str[0])

kalau di run akan menghasilkan error berikut

mengganti string

Operator Pada String

+ menggabungkan string
* mengulangi string sebanyak yang diinginkan
[] mengakses sub-string
[:] mengakses sub-string dengan range yang ditentukan
in termasuk anggota
not in tidak termasuk anggota
% menformat string

Contoh Penggunaan


str = "Halo Dunia"
str2 = "ku"
print(str+str2)
print(str2*4)
print(str[2])
print(str[1:6])
print('a' in str)
print('lo' not in str)
print("String adalah : %s"%(str2))

Output :
Halo Duniaku
kukukuku
l
alo D
True
False
String adalah : ku

operator pada string

Menformat String

Sebenarnya hampir sama dengan printf yang ada di java hanya saja setelah menformat kita butuh % lalu sebutkan variabel apa saja yang diformat (harus urut)

usia = 17
nama = "Heru"
tinggi = 176.2
print("%s berusia %d tahun dan memiliki tinggi %f cm"%(nama,usia,tinggi))

Output :

Heru berusia 17 tahun dan memiliki tinggi 176.200000 cm

menformat string python


Mungkin itu saja dulu mengenai pemakaian String di Python kalau ada lagi yang penting mungkin akan ditambahin..terima kasih


Membaca Data di File Dengan FileInputStream



Sebelumnya kita sudah belajar menuliskan data ke dalam file menggunakan FileOutputStream.Nah,sekarang kita akan melakukan operasi sebaliknya yaitu membaca data di file pada pemrograman java.Kita akan menggunakan FileInputStream (java.io.FileInputStream) untuk melakukannya

Membaca Single Karakter

Untuk membaca single karakter, kita bisa memakai method read() .Secara default,yang terbaca adalah karakter pertama.Kalau kita ingin mengubahnya kita bisa memakai method skip(long n) n adalah banyaknya byte yang akan kita skip.Kalau ingin membaca karakter ketiga,maka kita harus skip 2 byte jadi nulisnya skip(2)







Karena ada 2 byte yang di skip,maka jumlah byte yang awalnya 25 menjadi hanya 23

Membaca Semua Karakter 

Di sini kita perlu membuat variabel int (misalnya i) yang bernilai 0.Lalu menggunakan while di mana selama kembalian method read() tidak sama dengan -1 maka terus print char yang ada.Untuk lebih jelasnya lihat gambar di bawah



Membaca Sebagian Karakter

Misalnya di test.txt saya hanya ingin membaca string "datang" maka yang perlu saya lakukan adalahs sebagai berikut :

  • Skip bagian awal karakter saya sudah menghitungnya dan saya harus skip 8 byte untuk sampai ke "d"
  • Membuat byte array dengan jumlah karakter yang ingin saya tampilkan."datang" memiliki 6 byte jadi saya harus menulis byte[] b = new byte[6];
  • Method read dengan parameter (b,0,6) di simpan pada variabel int int i = file.read(b,0,6);
  • Menggunakan for untuk membaca karakter yang dimaksud