Bagian sebelumnya memperkenalkan 8 jenis tipe data primitif dan tipe data String. Perbedaan mendasar antara tipe primitif dan String adalah : nilai dari tipe String berupa objek. Objek akan dibahas pada bagian lain mengenai kelas (class). Di bagian ini kita akan belajar bagaimana String digunakan dan juga mempelajari konsep pemrograman penting yang lain, yaitu subrutin.
Subrutin adalah kumpulan instruksi program yang digabungkan sehingga memiliki fungsi tertentu. Dalam bahasa Java, setiap subrutin termasuk di dalam bagian suatu kelas atau objek. Java menyediakan kelas standar yang siap digunakan. Nilai tipe String adalah objek yang memiliki kumpulan subrutin yang dapat digunakan untuk memanipulasi String tersetbut. Kita bisa memanggil subrutin tersebut tanpa harus mengerti bagaimana subrutin tersebut bekerja. Sebenarnya ini adalah tujuan subrutin, yaitu sekumpulan perintah yang memiliki fungsi tertentu tanpa harus mengetahui secara detail apa yang terjadi di dalam.
Kelas terdiri dari variabel dan subrutin yang disimpan di dalamnya. Variabel dan subrutin ini disebut static member (anggota statis). Contohnya adalah pada program SelamatDatang, kelas SelamatDatang memiliki anggota main() yang merupakan anggota statis kelas itu. Anggota yang berupa static member diberi imbuhan static, seperti pada main().
Fungsi kelas yang lain adalah untuk mendeskripsikan suatu objek. Kelas di sini berfungsi seperti tipe data. Nilai yang disimpan dalam tipe data itu adalah objek. Misalnya String sebenarnya merupakan nama kelas yang disediakan bahasa Java. String juga berupa tipe data dan kalimat seperti "Selamat Datang!" adalah isi dari tipe data String.
Kegunaan kelas baik sebagai gabungan subrutin ataupun sebagai objek sering membingungkan. Misalnya kelas String juga menyimpan beberapa subrutin statik selain juga sebagai tipe data. Contoh kelas standar lainnya adalah Math yang berisi kumpulan subrutin statik untuk melakukan berbagai perhitungan matematis.
Kelas sebagai tipe data
Mari mulai dengan melihat kembali subrutin
System.out.print
. Subrutin ini digunakan untuk menampilkan pesan kepada user. Misalnya System.out.print("Selamat datang!")
menampilkan pesan Selamat datang! System
merupakan salah satu kelas standar Java. Salah satu anggotanya bernama out
. Karena variable ini berada di dalam kelas System
, kita harus memanggilnya dengan nama lengkapnya yaitu System.out
.Variabel
System.out
merupakan suatu objek, dan objek itu memiliki subrutin yang bernama print
. Pengenal campuran System.out.print
mengacu pada subrutin print
di dalam objek out
dalam kelas System
. (Untuk melihat dari sisi lain, sebetulnya System.out
merupakan objek dari kelas PrintStream
. PrintStream
adalah salah satu kelas standar Java. Objek dengan tipe PrintStream
adalah objek tempat informasi bisa dicetak. Setiap objek yang bertipe PrintStream
memiliki subrutin bernama print
yang bertugas untuk mencetak sesuatu ke medium tersebut. Dalam hal ini System.out
adalah tujuan tempat print
dilakukan. Objek lain yang bertipe PrintStream
bisa mengirim informasi ke tujuan lain, misalnya file atau network atau ke komputer lain.Ini adalah esensi dari pemrograman berorientasi objek, di mana beberapa hal yang memiliki kesamaan - dalam hal
PrintStream
sama-sama sebagai tempat tujuan print
- dapat digunakan dengan cara yang sama, yaitu memanggil subrutin print
.).Karena nama variabel, nama kelas, dan nama subrutin berbentuk hampir sama, ada baiknya untuk membedakannya sehingga di kemudian hari program dapat dibaca dengan jelas. Kelas standar Java menggunakan nama yang selalu dimulai dengan huruf besar, sedangkan nama variabel dimulai dengan huruf kecil. Ini bukan sintaks Java, tetapi lebih seperti konvensi. Setiap orang bebas menggunakan konvensinya masing-masing, tetapi apabila pemrograman dilakukan secara bersama-sama, seperti pada open source programming, konvensi yang sama akan sangat memudahkan orang lain membaca dan menguji program yang kita buat. Nama subrutin juga dimulai dengan huruf kecil, sama dengan nama variabel. Tetapi subrutin harus diikuti dengan tanda buka kurung sehingga masih mudah dibedakan dengan nama variabel.
Kelas sebagai kumpulan subrutin dan variabel statik
Selain sebagai tipe data, kelas
System
juga memiliki subrutin statik yang bernama exit
. Memanggil System.exit
akan menghentikan jalannya program, dan digunakan apabila karena suatu hal (misalnya program telah selesai atau adanya error) program harus dihentikan. Subrutin exit
menerima parameter bilangan bulat, misalnya System.exit(0)
atau System.exit(1)
, untuk memberitahu kepada sistem operasi alasan kenapa program dihentikan. Status 0 berarti program berhenti normal tanpa adanya error, sedangkan status lain berarti ada sesuatu yang salah yang terjadi di tengah eksekusi program tersebut.Setiap subrutin melakukan fungsi tertentu. Beberapa di antaranya melakukan perhitungan lalu melaporkan hasil perhitungannya.
Ada juga yang berfungsi untuk mengambil data dari tempat tertentu dan melaporkan data yang didapat. Subrutin jenis ini disebut function (fungsi). Fungsi adalah subrutin yang mengembalikan (return) suatu nilai. Nilai yang dikembalikan akan digunakan lebih lanjut dalam program.
Sebagai contoh adalah fungsi untuk menghitung akar kuadrat dari suatu bilangan. Java memiliki fungsi seperti itu yang disebut
Math.sqrt
. Fungsi ini merupakan anggota statik dari kelas yang bernama Math
. Jika x adalah suatu bilangan, makan Math.sqrt(x)
menghitung akar kuadrat dari x dan mengembalikan hasil perhitungannya. Karena Math.sqrt(x)
mengembalikan suatu bilangan, kita tidak bisa memanggil fungsi ini seperti :Math.sqrt(x); // Tidak masuk akal!
// Menampilkan akar kuadrat x di layar.
System.out.print( Math.sqrt(x) );
panjangDiagonal = Math.sqrt(x);
Kelas Math
Kelas
Math
memiliki banyak fungsi statik. Beberapa yang penting di antaranya : Math.abs(x)
, menghitung nilai mutlak (absolut) dari x. Nilai mutlak bilangan negatif adalah bilangan positif, dan bilangan positif tetap bilangan positif.- Fungsi trigonometri
Math.sin(x)
,Math.cos(x)
, andMath.tan(x)
. (Untuk semua fungsi trigonometri, sudut memiliki satuan radian, bukan derajat) - Fungsi trigonometri inverse, yang mencari sudut dari suatu nilai trigonometric, kebalikan dari fungsi trigonometri, seperti arcus sin, arcus cos, dan arcus tangen.
Math.asin(x)
,Math.acos(x)
, andMath.atan(x)
. Math.exp(x)
, menghitung pangkat dari bilangan natural e, atau ex. Dan logaritma natural loge x atau ln x bisa dihitung dengan menggunakan fungsiMath.log(x)
.Math.pow(x,y)
menghitung xy atau x pangkat yMath.floor(x)
menghitung pembulatan ke bawah dari suatu bilangan riil, misalnya 3.84 akan dibulatkan ke bawah menjadi 3.0Math.random()
memilih bilangan acak di antara 0.0 dan 1.0. Komputer memiliki algoritma perhitungan tertentu yang hasilnya bilangan acak (meskipun bulan bilangan yang betul-betul acak, tetapi cukup untuk kebanyakan fungsi)
Math.random() tidak memiliki parameter, tetapi tanda kurungnya harus tetap ditulis untuk membedakan fungsi dan variabel.
Contoh fungsi lain yang tidak memiliki parameter adalah
System.currentTimeMillis()
yang berguna untuk mengambil waktu saat ini dalam satuan milidetik, dihitung sejak 1 Januri 1970 waktu GMT. Satu milidetik sama dengan 1 per 1000 detik.Keluarannya bertipe long.
Untuk menghitung waktu yang diperlukan untuk menjalankan suatu perintah, jalankan fungsi
System.currentTimeMillis()
sebelum dan sesudah suatu instruksi dijalankan. Perbedaannya adalah waktu yang diperlukan untuk menjalankan suatu instruksi.Kelas String
Nilai suatu
String
adalah objek. Objek ini berisi rangkaian huruf yang membentuk string. Objek tersebut juga berisi subrutin. Misalnya length
adalah fungsi yang menghitung panjang suatu string, atau jumlah karakter dalam suatu string. Misalnya string str
yang dideklarasikan sebagai berikut :String str; str = "Hari ini cerah sekali!";
str
, panggil fungsi str.length()
yang keluarannya bertipe int
. Fungsi ini tidak membutuhkan parameter. Fungsi length
merupakan anggota kelas String
dan dapat digunakan oleh semua data yang bertipe String
.Dan juga bisa digunakan oleh literal string, misalnya program berikut menghitung jumlah karakter dalam string "Indonesia Raya" :
System.out.print("Jumlah karakter dalam \"Indonesia Raya\" adalah "); System.out.print("Indonesia Raya".length()); System.out.println(" karakter");
String
memiliki beberapa fungsi di antaranya :s1.equals(s2)
adalah fungsi yang mengembalikan nilai boolean (true
ataufalse
). Fungsi ini akan menghasilkantrue
jika s2 sama dengan s1, dan salah jika tidak. Kesamaan yang diuji adalah kesamaan persis baik kapitalnya maupun urutan huruf-hurufnya.s1.equalsIgnoreCase(s2)
juga menghasilkan nilai boolean yang menguji apakah string s2 sama dengan s1 dengan tidak membandingkan kapitalnya. "Kucing".equalsIgnoreCase("kucing") menghasilkantrue
.s1.length()
. Seperti diulas sebelumnya, fungsi ini menghitung jumlah karakter dalam string s1.s1.charAt(N)
. N adalah integer (bilangan bulat). Fungsi ini mengembalikan karakter ke-N dari string s1. Karakter pertama dihitung sebagai posisi ke-0.s1.charAt(0)
berarti mengambil karakter pertama, sedangkans1.charAt(1)
berarti mengambil karakter ke-2, dan seterusnya. Karakter terakhir memiliki indekss1.length() - 1
. Fungsi ini akan mengeluarkan pesan kesalahan apabila N bernilai negatif atau lebih besar daris1.length() - 1
.s1.substring(N,M)
, di mana N dan M bilangan bulat. Fungsi ini mengambil potongan string antara karakter ke-N hingga karakter M-1. Catatan bahwa karakter ke-M tidak ikut diambil. Misalnya, "jalan layang".substring(1,4)
menghasilkan "ala".s1.indexOf(s2)
mengembalikan nilai integer. Fungsi ini mencari string s2 di dalam string s1, dan apabila ditemukan mengembalikan posisi awal s2 di dalam s1. Jika tidak ditemukan, fungsi ini akan mengembalikan -1. Fungsi ini bisa juga digunakan untuk mencari string s2 dalam s1 setelah posisi ke-N dalam string s1. Misalnya,"kelapa muda".indexOf("a")
menghasilkan 3, sedangkan"kelapa muda".indexOf("a",6)
menghasilkan 10.s1.compareTo(s2)
membandingkan s2 dan s1. Jika s1 dan s2 sama, hasilnya 0. Jika s1 kurang dari s2, hasilnya bilangan negatif , dan jika s1 lebih besar dari s2, hasilnya bilangan positif. "Kurang dari" atau "lebih dari" mengacu pada urutannya dalam abjad jika keduanya huruf kecil atau keduanya huruf besar. Jika kapitalnya berbeda, perbandingannya bergantung pada nilai ASCII-nya.s1.toUpperCase()
adalah fungsi untuk mengubah seluruh huruf dalam s1 menjadi huruf besar.s1.toLowerCase()
berfungsi untuk mengubah huruf dalam s1 menjadi hurug kecil.s1.trim()
adalah berfungsi menghapus karakter yang tak bisa dicetak, misalnya spasi, baris baru, enter, yang ada sebelum atau sesudah suatu kalimat. Misalnya" selamat pagi bu ".trim()
menghasilkan "selamat pagi bu".
s1.toUpperCase()
, s1.toLowerCase()
, s1.trim()
nilai s1 tidak berubah. Fungsi ini melakukan perhitungan kemudian mengembalikan string baru hasil perhitungan tersebut.Kita bisa juga menggunakan tanda + menyambung 2 string. Misalnya "mata" + "hari" menjadi "matahari". Nilai yang dapat disambungkan bukan hanya string dan string, tetapi juga string dan angka, misalnya "jalan" + 2 menjadi "jalan2".
Sumber : http://java.lyracc.com/
Tidak ada komentar:
Posting Komentar