Belajar Java Mengontrol Loop Dengan Sentinel
Belajar Java Mengontrol Loop Dengan Sentinel
Belajar Java Mengontrol Loop Dengan Sentinel - Perulangan atau loop dalam program dapat dikontrol dengan menggunakan sentinel. Sentinel ini disebut juga dengan signal value atau dummy value atau flag value, dengan tujuan untuk memberitahu bahwa penggunaan sentinel tersebut adalah "akhir dari penginputan data".
Cara kerja sentinel ini adalah, user akan memasukkan data sesuai dengan kebutuhannya, dan setelah data tersebut semuanya diinput, kemudian user akan memasukkan nilai sentinel untuk mengindikasikan bahwa tidak ada lagi data yang dimasukkan.
Pengontrolan loop dengan sentinel disebut juga dengan loop yang tidak terhingga, karena jumlah perulangan tidak diketahui sebelum loop dieksekusi.
Tips Mengambil Nilai Yang Digunakan Sebagai Sentinel Pengontrol Loop
Untuk memilih nilai yang akan digunakan, ada dua hal yang harus diperhatikan :
- Menggunakan nilai yang bukan termasuk data normal, misalnya untuk memasukkan umur, kita dapat menggunakan nilai sentinel -1, karena tidak mungkin umur seseorang adalah -1.
- Akan lebih baik juga bila mengingatkan user dalam setiap perulangan, mengenai berapa nilai sentinel. Contoh : ("Masukkan tanggal lahir atau -1 untuk mengakhiri");
Banyak program memiliki 3 fase yaitu:
- Inisialisasi variabel
- Memproses data yang di input dan mengatur variabel-variabel program dengan tepat.
- Penghentian, yaitu perhitungan dan menampilkan hasil akhir.
Contoh di bawah ini adalah program untuk menghitung berat rata-rata siswa, dengan menggunakan loop dan juga digunakan sentinel, nilai sentinel adalah 0.
Pseudocode algoritmanya adalah :
Pseudocode algoritmanya adalah :
- Inisialisasi variabel total ke 0
- Inisialisasi variabel counter ke 0
- Membuat prompt untuk user menginput data berat badan
- Input berat badan pertama (mungkin juga nilai sentinel diinput)
- while user belum memasukkan nilai sentinel
- Tambahkan berat badan tersebut ke total
- Tambahkan 1 untuk counter
- Prompt user untuk memasukkan berat badan selanjutnya
- Input berat badan selanjutnya (mungkin jua nilai sentinel diinput)
- If counter tidak sama dengan 0
- Set nilai rata-rata adalah total dibagi dengan counter
- Tampilkan nilai rata-rata
- else
- tampilkan "Tidak ada berat badan yang dimasukkan!"
class BeratRataRataSiswa2
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | import java.util.Scanner; public class BeratRataRataSiswa2 { private String user; //konstruktor public BeratRataRataSiswa2(String nama){ user = nama; } //set method public void setUser( String nama ) { user = nama; // menyimpan nama user } //get method public String getUser() { return user;//mengembalikan nama user } // Menampilkan pesan selamat datang kepada user public void tampilkanPesan(){ //Pernyataan ini memanggil method getUser untuk //mendapatkan nama dari pemilik user. System.out.printf( "Selamat datang \n%s!\n", getUser()); } //Method untuk menetapkan rata-rata berat badan siswa public void menetapkanRataRataBerat(){ //Membuat objek Scanner untuk memperoleh input dari keyboard Scanner input = new Scanner( System.in ); int total;//jumlah total berat badan yang dimasukkan oleh user int counterBeratBadan;//counter untuk berat badan yang dimasukkan int beratBadan;//angka berat badan yang dimasukkan oleh user double rataRata;//rata-rata berat badan //inisialisasi total = 0;//inisialisasi total counterBeratBadan = 0;//Menginisialisasi loop counter // prompt untuk input berat badan System.out.print( "Masukkan berat badan atau masukkan 0 untuk berhenti: " ); beratBadan = input.nextInt(); //loop sampai user memasukkan sentinel, nilai entinel adalah 0 while(beratBadan != 0) { total = total + beratBadan;//menambahkan berat badan yang diinput ke total counterBeratBadan = counterBeratBadan + 1; //increment counter dengan 1 // prompt untuk menginput berat badan System.out.print( "Masukkan berat badan atau masukkan 0 untuk berhenti: " ); beratBadan = input.nextInt(); }//Akhir while loop //Bila user memasukkan minimal satu berat badan if(counterBeratBadan != 0){ //menghitung berat rata-rata dari pemilik Buku Angkatan //Dilakukan juga casting int ke double rataRata = (double)total / counterBeratBadan; System.out.printf("\nTotal dari %d berat badan siswa " + "adalah: %d Kg\n", counterBeratBadan,total); System.out.printf("Berat rata-rata adalah %.2f Kg\n", rataRata ); } else { System.out.print("Tidak ada berat badan yang dimasukkan!"); } } } |
class DemoBeratRataRataSiswa2
1 2 3 4 5 6 7 8 9 10 11 12 | public class DemoBeratRataRataSiswa2 { public static void main( String args[] ){ BeratRataRataSiswa2 rataRata = new BeratRataRataSiswa2("User"); rataRata.tampilkanPesan(); rataRata.menetapkanRataRataBerat(); } } |
Contoh Output 1 :
Selamat datang User! Masukkan berat badan atau masukkan 0 untuk berhenti: 67 Masukkan berat badan atau masukkan 0 untuk berhenti: 85 Masukkan berat badan atau masukkan 0 untuk berhenti: 69 Masukkan berat badan atau masukkan 0 untuk berhenti: 75 Masukkan berat badan atau masukkan 0 untuk berhenti: 74 Masukkan berat badan atau masukkan 0 untuk berhenti: 59 Masukkan berat badan atau masukkan 0 untuk berhenti: 60 Masukkan berat badan atau masukkan 0 untuk berhenti: 82 Masukkan berat badan atau masukkan 0 untuk berhenti: 77 Masukkan berat badan atau masukkan 0 untuk berhenti: 63 Masukkan berat badan atau masukkan 0 untuk berhenti: 65 Masukkan berat badan atau masukkan 0 untuk berhenti: 0 Total dari 11 berat badan siswa adalah: 776 Kg Berat rata-rata adalah 70.55 Kg
Contoh output 2, bila user langsung memasukkan 0 :
Selamat datang User! Masukkan berat badan atau masukkan 0 untuk berhenti: 0 Tidak ada berat badan yang dimasukkan!
Demikianlah pembahasan mengenai Belajar Java Mengontrol Loop Dengan Sentinel, diharapkan dapat memudahkan anda dalam mempelajari Java.
Mohon di share bila dirasa bermanfaat, thanks.
Post a Comment for "Belajar Java Mengontrol Loop Dengan Sentinel"