Top Banner
Pemrograman Berorientasi Objek (JAVA) Oleh : Andi Farmadi
61

5 method

Dec 06, 2014

Download

Documents

Rahmatdi Black

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 5 method

Pemrograman Berorientasi Objek(JAVA)

Oleh : Andi Farmadi

Page 2: 5 method

Quis (7 menit)

1. Apa perbedaan antara Prosedur dan fungsi (2 menit)

2. Tulislah program java untuk mencari jumlah bilangan bulat yang masing-masing terdiri dari 1 sampai 10, dari 20 sampai 30, dan dari 35 sampai 45 dalam sebuah program. (5 menit)

Dikumpul (0.5 menit)

Page 3: 5 method

Prosedur dan fungsi• FungsiFungsi, merupakan program yag ditulis untuk

menugaskan proses tertentu yang berguna untuk meyederhanakan program, fungsi memiliki nilai balik jika dipanggil.

• ProsedurProsedur, kumpulan program yang berguna untuk menugaskan proses tertentu yang berguna untuk menyederhanakan program, pada prosedur tidak ada pengembalian nilai jika dipanggil.

Page 4: 5 method

Program Jumlahint sum = 0;

for (int i = 1; i <= 10; i++)

sum += i;

System.out.println(“Jumlah dari 1 sampai 10 adalah" + sum);

sum = 0;

for (int i = 20; i <= 30; i++)

sum += i;

System.out.println(“Jumlah dari 20 sampai 30 adalah" + sum);

sum = 0;

for (int i = 35; i <= 45; i++)

sum += i;

System.out.println(“Jumlah dari 35 sampai 45 is " + sum);

Page 5: 5 method

METHOD PADA JAVA

Page 6: 5 method

Prosedur/ Fungsi = Method• Fungsi dalam bahasa pemrograman java disebut method yang

mengembalikan nilai (memiliki nilai balik) • Dengan ciri memiliki tipe data tipe data dan returnreturn yang diikuti nilai kembali

– Prosedur dalam bahasa pemrograman java disebut method yang tidak mengembalikan nilai (tidak memiliki nilai balik)

– Dengan ciri memiliki voidvoid dan tidak memiliki return

typeData namaMethod( ){  //Statemen return Nilaikembali}

void namaMethod( ){   // Statemen}

Page 7: 5 method

Permasalahan pada solusiint sum = 0;

for (int i = 1; i <= 10; i++)

sum += i;

System.out.println(“Jumlah dari 1 sampai 10 adalah" + sum);

sum = 0;

for (int i = 20; i <= 30; i++)

sum += i;

System.out.println(“Jumlah dari 20 sampai 30 adalah" + sum);

sum = 0;

for (int i = 35; i <= 45; i++)

sum += i;

System.out.println(“Jumlah dari 35 sampai 45 is " + sum);

Page 8: 5 method

Solusi masalah dengan Methodpublic static int sum(int i1, int i2) { int sum = 0; for (int i = i1; i <= i2; i++) sum += i; return sum;}

public static void main(String[] args) { System.out.println(“Jumlah dari 1 sampai 10 adalah " + sum(1, 10)); System.out.println(“Jumlah dari 20 sampai 30 adalah " + sum(20, 30)); System.out.println(“Jumlah dari 35 sampai 45 adalah " + sum(35, 45));}

Page 9: 5 method

Memanggil Method

public static int max(int num1, int num2) {int result;if (num1 > num2) result = num1;else result = num2;return result;}

public static int max(int num1, int num2) {int result;if (num1 > num2) result = num1;else result = num2;return result;}

int z = maxmax(x, y); int z = maxmax(x, y);

Meminta methodDefinisi methodDefinisi method

Nama method

parameterformal

Tipe Return

Parameter Aktual

Nilai Return

parameterformal

Page 10: 5 method

10

Memanggil Method, cont.

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

Page 11: 5 method

11

Memanggil Method, cont.

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

Sekarang nilai i adalah 5

Page 12: 5 method

12

Memanggil Method, cont.

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

Sekarang nilai j adalah 2

Page 13: 5 method

13

Memanggil Method, cont..

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

Memanggil method max(i, j)

Page 14: 5 method

14

Memanggil Method, cont..

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

Memanggil method max(i, j)Mengirim nilai dari i ke num1Mengirim nilai dari j ke num2

Page 15: 5 method

15

Memanggil Method, cont.

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

Deklarasi variable result

Page 16: 5 method

16

Memanggil Method, cont.

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

(num1 > num2) adalah true karena num1 = 5 dan num2 = 2

Page 17: 5 method

17

Memanggil Method, cont.

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

result = 5

Page 18: 5 method

18

Memanggil Method, cont.

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

return result, adalah 5

Page 19: 5 method

19

Memanggil Method, cont.

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

return max(i, j) dan memasukkan nilai return pada k

Page 20: 5 method

20

Memanggil Method, cont..

public static void main(String[] args) {

int i = 5;

int j = 2;

int k = max(i, j);

System.out.println(“nilai maksimum antara " + i +

" dan " + j + " adalah " + k);

}

public static int max(int num1, int num2) {

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

}

Eksekusi statemen print

Page 21: 5 method

21

Stack dimemori

(a) main method dipangil.

Ruang dibutuhkan untk main method k: j: 2 i: 5

(b) method max dipanggil

Ruang dibutuhkan untk method max num2: 2 num1: 5

(d) method max selesai dan nilai return dikirim ke k.

(e) main method selesai digunakan

Stack kosong

Ruang dibutuhkan untk main method k: j: 2 i: 5

Ruang dibutuhkan untk main method k: 5 j: 2 i: 5

(c) method max dieksekusi.

Ruang dibutuhkan untk method max result: 5 num2: 2 num1: 5

Ruang dibutuhkan untk main method k: j: 2 i: 5

Page 22: 5 method

22

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

i adalah deklarasi dan inisialisasi

Memenggil main method

i: 5

Page 23: 5 method

23

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

j adalah deklarasi dan inisialisasi

Memenggil main method

j: 2 i: 5

Page 24: 5 method

24

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

Deklarasi k

Memenggil main method

Ruang yg dibutuhkan main method

k: j: 2 i: 5

Page 25: 5 method

25

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

Invoke max(i, j)

Memenggil main method

Ruang yg dibutuhkan main method

k: j: 2 i: 5

Page 26: 5 method

26

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

Mengirimkan nilai dari i dan j ke num1 and num2

Method max dipanggil.

num2: 2 num1: 5

Ruang dibutuhkan main method

k: j: 2 i: 5

Page 27: 5 method

27

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

pass the values of i and j to num1 and num2

Method max dipanggil.

result:

num2: 2 num1: 5

Ruang dibutuhkan utk main method

k: j: 2 i: 5

Page 28: 5 method

28

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

(num1 > num2) = true

Method max dipanggil.

result:

num2: 2 num1: 5

Ruang dibutuhkan untuk main method

k: j: 2 i: 5

Page 29: 5 method

29

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

Memasukkan nilai num1 ke result

Method max dipanggil

Ruang dibutuhkan untuk method max result: 5

num2: 2 num1: 5

Ruang dibutuhkan untuk main method

k: j: 2 i: 5

Page 30: 5 method

30

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

Return result dan memesukkanya ke k

method max dipanggil.

Ruang dibutuhkan untuk method max result: 5

num2: 2 num1: 5

Ruang dibutuhkan untuk main method k:5

j: 2 i: 5

Page 31: 5 method

31

Trace dengan Stack

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

Exekusi statement print

main method dipanggil

Ruang dibutuhkan untuk main method k:5

j: 2 i: 5

Page 32: 5 method

32

Kelas Math

• Kelas konstan:– PI– E

• Kelas method: – Method Trigonometric– Method Exponent– Method Rounding– Method min, max, abs, dan random

Page 33: 5 method

33

Method Trigonometric

• sin(double a)

• cos(double a)

• tan(double a)

• acos(double a)

• asin(double a)

• atan(double a)

Radians

toRadians(90)

Examples:

Math.sin(0) returns 0.0

Math.sin(Math.PI / 6) returns 0.5

Math.sin(Math.PI / 2) returns 1.0

Math.cos(0) returns 1.0

Math.cos(Math.PI / 6) returns 0.866

Math.cos(Math.PI / 2) returns 0

Page 34: 5 method

34

Method Exponent

• exp(double a)

Mengembalikan e berpangkat a.

• log(double a)

Mengembalikan logaritma dari a.

• log10(double a)

Mengembalikan logaritma basis 10 dari a.

• pow(double a, double b)

Mengembalikan a pangkat b.

• sqrt(double a)

Mengembalikan akar kuadrat dari a.

contoh:

Math.exp(1) returns 2.71

Math.log(2.71) returns 1.0

Math.pow(2, 3) returns 8.0

Math.pow(3, 2) returns 9.0

Math.pow(3.5, 2.5) returns 22.91765

Math.sqrt(4) returns 2.0

Math.sqrt(10.5) returns 3.24

Page 35: 5 method

35

Method Rounding

• double ceil(double x)x dibulatkan keatas pada nilai integer terdekat.

• double floor(double x)x dibulatkan kebawah pada nilai integer terdekat.

• double rint(double x)

x dibulatkan ke integer terdekatnya.

• int round(float x)Return (int)Math.floor(x+0.5).

• long round(double x)Return (long)Math.floor(x+0.5).

Page 36: 5 method

36

Contoh Method RoundingMath.ceil(2.1) Math.ceil(2.0) Math.ceil(-2.0) Math.ceil(-2.1) Math.floor(2.1) Math.floor(2.0) Math.floor(-2.0) Math.floor(-2.1) Math.rint(2.1) Math.rint(2.0) Math.rint(-2.0) Math.rint(-2.1) Math.rint(2.5) Math.rint(-2.5) Math.round(2.6f) Math.round(2.0) Math.round(-2.0f) Math.round(-2.6)

returns 3.0 returns 2.0 returns –2.0 returns -2.0 returns 2.0 returns 2.0 returns –2.0 returns -3.0 returns 2.0 returns 2.0 returns –2.0 returns -2.0 returns 2.0

returns -2.0 returns 3 returns 2 returns -2

returns -3

Page 37: 5 method

37

min, max, dan abs

• max(a, b)and min(a, b)

Mengembalikan maksimum atau minimum dari dua parameter.

• abs(a)

Mengembalikan nilai absolut dari parameter.

• random()Mengembalikan nilai random bertipe double dalam range [0.0, 1.0).

Examples:

Math.max(2, 3) returns 3

Math.max(2.5, 3) returns 3.0

Math.min(2.5, 3.6) returns 2.5

Math.abs(-2) returns 2

Math.abs(-2.1) returns 2.1

Page 38: 5 method

• Kelas StringMethod length()Method charAt(int x)Method concat(String str)Method replace(char lama, char baru)

•Kelas StringBuffer•Kelas Character

Kelas String

Page 39: 5 method

Class String

Class String dipakai untuk merepresentasikan data yang berbentuk string.

Contoh beberapa methods/metode yang terdapat pada class String adalah :length()charAt(int x)concat(String str)replace(char lama, char baru)

Page 40: 5 method

Contoh Penggunaan Methods Pada Class String

Length()

//nama file Length1.javapublic class Length1{

public static void main(String args[]){

String a = new String("Bahasa Java");int panjang;

panjang = a.length();System.out.println("Panjang String \""+a+"\" adalah “ +panjang);

}}

Page 41: 5 method

Catatan :

• Fungsi atau metode length() dipakai untuk menghitung panjang dari string.

• Return value (nilai kembalian) dari fungsi length() ini adalah integer.

Page 42: 5 method

//nama file : Length2.javaimport javax.swing.JOptionPane;public class Length2{

public static void main(String args[]){

String a;int panjang;

a = JOptionPane.showInputDialog("Masukkan Contoh Kalimat : ");

panjang = a.length();JOptionPane.showMessageDialog(null,"Panjang String \““ +a+"\" adalah "+panjang);System.exit(0);

}}

Page 43: 5 method

Contoh Penggunaan fungsi charAt(int x)

//nama file : CharAt1.javapublic class CharAt1 { public static void main(String args[])

{ String a = "Java";

//bisa diganti dengan//String a = new String(“Java”);

for (int i=0; i < a.length(); i++) System.out.println("Karakter " + i +

" adalah " + a.charAt(i)); }}

Page 44: 5 method

Catatan :• Fungsi atau metode charAt(int x) dipakai

untuk mendapatkan karakter pada posisi x dari suatu string.

• Posisi awal suatu string adalah 0, sama seperti index awal pada suatu array.

• Sehingga pada contoh di atas, huruf J (dari Java) berada pada posisi 0.

Page 45: 5 method

//Nama file Concat1.java

public class Concat1 {

public static void main(String args[]) {

String a = "Java "; String b = "Programming"; System.out.println("Penggabungan \"" + a +

"\" dan \"" + b+"\" adalah "+a.concat(b)); }}

Contoh Penggunaan Metode concat(String str)

Page 46: 5 method

Catatan :

• Fungsi atau metode concat(String x) dipakai untuk menggabungkan string x dengan suatu string.

• Contoh : “to”.concat(“get”).concat(“her”) akan menghasilkan “together”.

Page 47: 5 method

Contoh Penggunaan Metode replace(x, y)

//Nama file : Replace1.javapublic class Replace1{

public static void main(String args[]){

String a = "ada apa ya?";

System.out.println("Kalimat awal adalah : "+a);System.out.println("Setelah huruf a diganti huruf o");System.out.println("-------------------------------");System.out.println(a.replace("a","o"));

}}

Page 48: 5 method

Catatan :• Fungsi atau metode replace(char lama, char

baru) dipakai untuk mengubah huruf lama menjadi huruf baru.

• Contoh : replace(“a”,”i”) akan mengubah huruf a menjadi i.

• Replace(“ri”,”ya99”) akan mengubah kumpulan huruf ri menjadi ya99.

Page 49: 5 method

Contoh Penggunaan Metode substring(awal, akhir)

//Nama file Substring1.javapublic class Substring1{

public static void main(String args[]){

String b;String a = "Bahasa Pemrograman 2";

b = a.substring(1,5);System.out.println("String a adalah : "+a);System.out.println("Substring(1,5) dari a adalah");System.out.println("----------------------------");System.out.println(b);

}}

Page 50: 5 method

Catatan :• Fungsi atau metode substring(int awal, int

akhir) dipakai untuk mengambil sejumlah string dari posisi ‘awal’ sampai ‘akhir’.

• Tapi ‘akhir’ adalah akhir-1.• Contoh: “Bahasa”.substring(1,5) akan

mengambil string dari posisi 1 sebanyak 5-1. Hasilnya “ahas”

• Contoh: “Programming”.substring(3,6) akan menghasilkan “gra”.

• Posisi awal suatu string adalah 0.

Page 51: 5 method

Class StringBuffer

Contoh beberapa methods/metode yang terdapat pada class StringBuffer adalah :append()insert()delete()

Page 52: 5 method

Contoh Penggunaan Metode append()

//Nama file : append1.javapublic class append1{

public static void main(String args[]){StringBuffer c;c = new StringBuffer("Belajar Java ");

String b = "Programming";System.out.println("c : "+c);System.out.println("b : "+b);System.out.println("Setelah dikenai perintah c.append(b), c menjadi :");System.out.println(c.append(b));}

}

Page 53: 5 method

Contoh Penggunaan Metode insert(x,y)

//Nama file : Insert1.javapublic class Insert1{

public static void main(String args[]){StringBuffer c;c = new StringBuffer("Belajar Programming");System.out.println(c);System.out.println("Setelah dikenai insert(8,\"Java \"), menjadi :");System.out.println(c.insert(8,"Java "));}

}

Page 54: 5 method

Contoh Penggunaan Metode delete(awal, akhir)

//Nama file : Delete1.javapublic class Delete1{

public static void main(String args[]){

StringBuffer c;c = new StringBuffer("Belajar Programming");

System.out.println(c);System.out.println("Setelah dikenai delete(0,8), menjadi :");System.out.println(c.delete(0,8));

}}

Page 55: 5 method

Contoh Penggunaan Metode Capacity()

//Nama file : kapasitas.javapublic class kapasitas{

public static void main(String args[]){StringBuffer c = new StringBuffer("");

System.out.println("Isi c adalah : "+c);System.out.println("Kapasitas StringBuffer c : "+c.capacity());System.out.println("Setelah dikenai append(\"Halo\"), c menjadi :");System.out.println(c.append("Halo"));System.out.println("Kapasitas StringBuffer c : "+c.capacity());System.out.println("Panjang c adalah : "+c.length());System.out.println("c ditambah dg \", minggu depan libur\"");System.out.println("Isi c adalah : "+c.append(", minggu depan libur"));System.out.println("Kapasitas StringBuffer c : "+c.capacity());System.out.println("Panjang c adalah : "+c.length());

Page 56: 5 method

System.out.println("c ditambah dg \". Bener lho.\"");System.out.println("Isi c adalah : "+c.append(". Bener lho."));System.out.println("Kapasitas StringBuffer c : "+c.capacity());System.out.println("Panjang c adalah : "+c.length());

}}

Lanjutan dari program

Page 57: 5 method

Catatan :• Fungsi atau metode capacity() dipakai untuk

mengetahui berapa kapasitas dari suatu bufferstring.• Defaultnya adalah 16• Fungsi atau metode length() dipakai untuk

mengetahui panjang stringnya.• Jika panjang string lebih kecil dari kapasitasnya,

maka kapasitasnya akan tetap• Jika panjang string melebihi dari kapasitasnya, maka

secara otomatis kapasitas akan diperbesar dua kali lipat plus 2 dari kapasitas sebelumnya

Page 58: 5 method

Catatan :

• Fungsi atau metode setLength() dipakai untuk menentukan panjang dari string.

• Contoh, jika pada baris terakhir dari program di atas ditambahkan dengan perintah

c.setLength(10);

maka isi stringbuffer c adalah Halo, ming

• setLength() tidak mengubah kapasitas stringbuffer

Page 59: 5 method

Class Character

Contoh beberapa methods/metode yang terdapat pada class Character adalah :isLowerCase() apakah huruf kecilisUpperCase() apakah huruf besarisDigit() apakah angkaequals() apakah samatoLowerCase() ke huruf keciltoUpperCase()ke huruf besar

Page 60: 5 method

Contoh Programpublic class karakter1{

public static void main(String args[]){Character kar = 'a';System.out.println("Apakah "+kar+" itu Digit ? “+Character.isDigit(kar));System.out.println("Apakah "+kar+" itu Letter (Huruf) ? “+Character.isLetter(kar));System.out.println("Apakah "+kar+" itu LowerCase (Huruf Kecil) ? “+Character.isLowerCase(kar));System.out.println("Apakah "+kar+" itu UpperCase (Huruf Besar) ? “+Character.isUpperCase(kar));System.out.println("Apakah "+kar+" itu Whitespace ? “+Character.isWhitespace(kar));Character kar1=new Character('A');System.out.println("Apakah "+kar+" itu equals (sama) dg "+kar1+" ? “+kar.equals(kar1));}

}

Page 61: 5 method

Contoh Program Lain

public class karakter2{

public static void main(String args[]){

String str = "Bahasa";String output = "Ada di posisi ";int panjangStr = str.length();Character kar = ' ';int jumlah_a = 0;

for(int i=0; i<panjangStr; i++){ kar = Character.valueOf(str.charAt(i));

//Character.valueOfubah ke charif (kar=='a'){

jumlah_a = jumlah_a+1;output=output+i+" ";

}