. .

KUISIONER: PERTANYAAN DAN JAWABAN - Control In Java Programming - Kontrol Dalam Pemrograman Java

Posted by CHRISTIANTO D,WIBOWO | D3MI-2016 STMIK BUMI GORA On Selasa, Januari 24, 2017 No comments

KUISIONER: PERTANYAAN DAN JAWABAN - Control In Java Programming - Kontrol Dalam Pemrograman Java, kita sudah banyak mendapat pembelajaran dan mengetahui bahwa dasar dalam blok membangun sebuah java program adalah : variabel/variables, ekspresi/expressions, pernyataan penugasan/assignment statements, panggilan pernyataan subroutine/subroutine call statements, Dan kita melihat bagaimana blok bangunan ini dapat disatukan untuk membangun program yang kompleks dengan perilaku yang lebih menarik dengan sebuah atau beberapa kontrol dalam ᴶᵃ˅ᵃ program kita.

Karena kita masih bekerja pada tingkat "pemrogramandengan skala kecil", kita tertarik pada jenis kompleksitas yang dapat terjadi dalam subrutin tunggal - single subroutine. Pada tingkat ini, kompleksitas disediakan oleh struktur kontrol - control structures. Kedua jenis struktur kontrol, loop dan percabangan - loops and branches, dapat digunakan untuk mengulang urutan pernyataan berulang atau untuk memilih di antara dua atau lebih program yang mungkin tindakan. ᵃ˅ᵃ mencakup beberapa struktur kontrol dari setiap jenis, dan kita sudah sebagian besar mempelajarinya, dan saat ini kita akan mengevaluasi resapan pembelajaran yang telah kita dapatkan.

 Apa itu algoritma ?
Sebuah algoritma adalah ambigu, langkah-demi-langkah prosedur untuk melakukan tugas tertentu, yang dijamin untuk menyelesaikan setelah jumlah terbatas langkah. Algoritma tidak sama dengan program, tetapi bisa menjadi ide di balik sebuah program.
ambigu/am·bi·gu/ a bermakna lebih dari satu (sehingga kadang-kadang menimbulkan keraguan, kekaburan, ketidakjelasan, dan sebagainya); bermakna ganda; taksa
 Jelaskan secara singkat apa yang dimaksud dengan "pseudocode" dan bagaimana penggunaanya dalam pengembangan algoritma;
Pseudo mengacu deskripsi informal algoritma, yang ditulis dalam bahasa yang meniru struktur bahasa pemrograman, tapi tanpa sintaks yang ketat. Pseudocode dapat digunakan dalam proses mengembangkan algoritma dengan perbaikan bertahap. Kita bisa mulai dengan penjelasan pseudocode singkat algoritma dan kemudian menambahkan rincian untuk deskripsi melalui serangkaian perbaikan sampai kita memiliki sesuatu yang dapat diterjemahkan dengan mudah ke dalam program yang ditulis dalam bahasa pemrograman yang sebenarnya.
pseudo (dari ψευδής Yunani, pseudes , "berbohong, false") digunakan untuk menandai sesuatu yang dangkal tampaknya (atau berperilaku seperti) satu hal, tetapi sebenarnya adalah hal lain. Tunduk konteks, semu mungkin mengandung arti kebetulan, imitasi, penipuan yang disengaja, atau kombinasi keduanya.
 Apa block statement ? dan bagaimana block statement digunakan dalam program Java ?
Sebuah block statement hanya urutan pernyataan Java tertutup antara tanda kurung kurawal, {and}. Tubuh dari subrutin adalah block statement. block statement sering digunakan dalam struktur kontrol. Sebuah block statement umumnya digunakan untuk beberapa kelompok pernyataan bersama sehingga mereka  hanya dapat digunakan dalam situasi panggilan untuk pernyataan tunggal. Misalnya, sintaks dari while loop panggilan untuk pernyataan tunggal: "while (kondisi) do pernyataan". Namun, pernyataan itu bisa menjadi block statement, memberikan struktur: "while (kondisi) {pernyataan; pernyataan; ...}".
 Apa perbedaan utama antara while loop dan do..while loop?
Kedua jenis loop ini mengulangi suatu blok statements sampai beberapa kondisi menjadi palsu/false. Perbedaan utama-nya adalah bahwa dalam while loop, kondisi ini diuji pada awal loop dalam satu lingkaran dan  do..while loop kondisi ini diuji pada akhir loop. Ada kemungkinan bahwa didalam while loop mungkin tidak dijalankan sama sekali. Namun, didalam do..while loop PASTI dijalankan setidaknya sekali karena kondisi untuk mengakhiri loop tidak akan diuji sampai didalam loop telah dieksekusi minimal sekali.
 Apa artinya prime a loop/loop utama ?
Kondisi dimana awal while loop harus masuk akal untuk pertama kali diuji, sebelum di dalam loop dijalankan. Untuk loop utama adalah untuk mengatur hal-hal sebelum loop dimulai sehingga tes masuk akal (yaitu, variabel-variabel yang dikandung memiliki nilai wajar). Misalnya, jika tes dalam loop adalah "sementara respon pengguna/user adalah ya," maka kita loop utama harus mendapatkan respon dari pengguna (atau membuat satu kali/minimal) sebelum loop. 
⓺ Jelaskan apa yang dimaksud dengan animasi dan bagaimana komputer menampilkan animasi.
Animasi terdiri dari serangkaian "frame." Setiap frame berisi gambar diam, tetapi ada sedikit perbedaan dari satu frame ke frame yang berikutnya. Ketika gambar ditampilkan dengan cepat satu frame demi satu, mata merasakan gerak. Sebuah komputer menampilkan animasi dengan menunjukkan satu gambar pada layar, kemudian menggantinya dengan gambar berikutnya, kemudian berikutnya, dan seterusnya.
⓻ Tulislah Java program for..loop yang akan mencetak semua kelipatan 3 dari 3 sampai 36, yaitu: 6 9 12 3 15 18 21 24 27 30 33 36.
Berikut adalah dua kemungkinan jawaban. Asumsikan bahwa N telah dinyatakan sebagai variabel bertipe int:
for ( N = 3;  N <= 36;  N = N + 3 ) {
            System.out.println( N );
        }

atau

for ( N = 3;  N <= 36;  N++ ) {
            if ( N % 3 == 0 )
                System.out.println( N );
        }

⓼ Isilah main() routine berikut sehingga akan meminta pengguna/user untuk memasukkan integer, membaca respon pengguna/user, dan memberitahu pengguna apakah nomor yang dimasukkan adalah genap atau ganjil. Kita dapat menggunakan TextIO.getInt () untuk membaca integer. Ingat bahwa integer " n is even if n % 2 == 0  ".
public static void main(String[] args) {

         // Isi dalam body subroutine ini !

}
Permasalahnya sudah memberikan garis besar program. Langkah terakhir, mengatakan pengguna apakah jumlahnya genap atau ganjil, yang kita butuhkan adalah sebuah if statement yang memutuskan antara dua kemungkinan.
public static void main (String[] args) {

   int n;  // angka yang dibaca dari pengguna/user

   TextIO.put("Type an integer: ");  // kondisi menanyakan untuk memasukkan nilai integer

   n = TextIO.getInt();   // membaca dari respon pengguna/user

   if (n % 2 == 0)        // memberitahu pengguna apakah jumlahnya genap atau ganjil
      System.out.println("That's an even number.");
   else
      System.out.println("That's an odd number.");
}

⓽ Tulis segmen kode yang akan mencetak dua bilangan bulat acak yang berbeda dipilih dari rentang 1 sampai 10. Semua output mungkin harus memiliki probabilitas yang sama.
Petunjuk: Kita dapat dengan mudah memilih dua nomor acak, tapi kita harus memperhitungkan fakta bahwa dua nomor yang kita pilih mungkin sama.
Kode untuk memilih dua bilangan bulat acak harus dibungkus dalam satu lingkaran - wrapped in a loop yang akan berakhir hanya jika dua nomor yang dipilih berbeda. Hal ini dapat dilakukan dengan mudah dengan do..while loop. Sebuah while loop juga dapat digunakan, tetapi harus "prima/utama" dalam beberapa cara. Perhatikan bahwa dengan menggunakan loop untuk memilih nomor, kita dapat benar-benar yakin bahwa setelah loop berakhir, akan menghasilkan dua nomor yang berbeda. Berikut adalah tiga solusinya :

 int x,y; // Two random integers.
        do {
            x = (int)(10*Math.random() + 1);
            y = (int)(10*Math.random() + 1);
        } while (x == y);  // continue if x and y are the same number.
        System.out.println(x + " " + y);
 int x,y;  // Two random integers.
        x = y = 0;  // Give them junk value to "prime" the loop to make sure it runs.
        while (x == y) {
            x = (int)(10*Math.random() + 1);
            y = (int)(10*Math.random() + 1);
        }
        System.out.println(x + " " + y);

int x,y; // Two random integers.
        x = (int)(10*Math.random() + 1);  // Pick x, and keep its value.
        do { // The loop finds a y with a different value from x.
            y = (int)(10*Math.random() + 1);
        } while (x == y);
        System.out.println(x + " " + y);

Misalkan s1 dan s2 adalah variabel bertipe String, nilai-nilai yang diharapkan menjadi representasi string nilai tipe int. Tulis segmen kode yang akan menghitung dan mencetak jumlah integer nilai-nilai, atau akan mencetak pesan kesalahan jika nilai-nilai tidak dapat berhasil dikonversi menjadi bilangan bulat. (Gunakan pernyataan try..catch.)
Fungsi  Integer.parseInt  dapat digunakan untuk mengkonversi string menjadi bilangan bulat. Fungsi ini akan melemparkan/throw pengecualian/Exception bertipe NumberFormatException jika konversi gagal. Sebuah pernyataan try..catch dapat menangkap pengecualian ini dan mencetak pesan kesalahan. Jadi, segmen kode dapat ditulis sebagai berikut :
try {
   int n1, n2;  // The values of s1 and s2 as integers.
   int sum;     // The sum of n1 and n2.
   n1 = Integer.parseInt(s1);
   n2 = Integer.parseInt(s2);
   sum = n1 + n2;   // (If an exception occurs, we don't get to this point.)
   System.out.println("The sum is " + sum);
}
catch ( NumberFormatException e ) {
    System.out.println("Error!  Unable to convert strings to integers.);
}

⓫ Tampilkan output yang tepat yang akan dihasilkan oleh main() routine berikut :
public static void main(String[] args) {
    int N;
    N = 1;
    while (N <= 32) {
       N = 2 * N;
       System.out.println(N);
    }
}
Bagian yang sulit untuk mendapatkan right/true adalah 64 di akhir. Nilai N ganda setiap kali melalui loop. Untuk mengeksekusi akhir dari loop, N dimulai dengan nilai 32, namun N dua kali lipat menjadi 64 sebelum dicetak. Maka Output yang tepat dicetak oleh program ini adalah :
2
4
8
16
32
64
2 ; dimana N=1 dan N<=32, maka 2*N, artinya N=1 ⇒ 2*1 = 2 akan dicetak;
4 : dimana loop kedua dari N=1 adalah N=2 (hasil cetak loop pertama) dan N<=32, artinya N=2 ⇒ 2*2 = 4 akan dicetak;
dst....
64 ; dimana kondisi N<=32 (kondisi akhir) berarti N=2*32 = 64 akan dicetak dan akhir dari loop.
⓬ Tampilkan output yang tepat yang akan dihasilkan oleh main() routine berikut :
public static void main(String[] args) {
   int x,y;
   x = 5;
   y = 1;
   while (x > 0) {
      x = x - 1;
      y = y * x;
      System.out.println(y);
   }
}
Cara untuk menjawab pertanyaan ini adalah untuk melacak program apakah ini, langkah-demi-langkah. output ditampilkan di bawah sebelah kanan. Di sebelah kiri adalah tabel yang menunjukkan nilai-nilai variabel x dan y sebagai program yang sedang dijalankan. Maka Ouputnya adalah :
value of x   |   value of y              OUTPUT
-------------|--------------          -------------
      5      |     1  [ before loop]
      4      |     4  [ = 1*4 ]            4
      3      |    12  [ = 4*3 ]            12
      2      |    24  [ = 12*2 ]           24
      1      |    24  [ = 24*1 ]           24
      0      |     0  [ = 24*0 ]           0

⓭ Tampilkan output yang tepat yang akan dihasilkan oleh segmen Program berikut? Mengapa? Ingat bahwa  name.charAt(i) adalah karakter ke-i dalam  string,name  :
String name;
int i;
boolean startWord;

name = "Richard M. Nixon";
startWord = true;
for (i = 0; i < name.length(); i++) {
   if (startWord)
      System.out.println(name.charAt(i));
   if (name.charAt(i) == ' ')
      startWord = true;
   else
      startWord = false;
}
Seperti untuk loop di segmen kode ini dijalankan, name.charAt (i) mewakili masing-masing karakter dalam string "Richard M. Nixon" dalam suksesi. Pernyataan System.out.println (name.charAt (i)) output karakter name.charAt tunggal (i) pada barisnya sendiri. Namun, pernyataan output ini terjadi dalam sebuah if statement, sehingga hanya beberapa karakter saja yang menjadi output-nya. Karakter adalah output jika startWord adalah true/benar. Variabel ini diinisialisasi ke true/benar, jadi ketika i = 0, startWord true, dan karakter pertama dalam string, 'R', adalah output. Kemudian, karena 'R' tidak sama 0, startWorld menjadi false, sehingga tidak ada lagi karakter keluaran sampai startWord menjadi true lagi. Hal ini terjadi ketika name.charAt (i) adalah SPASI, yaitu, sebelum 'M' diproses dan lagi sebelum 'N' diproses. Bahkan apapun nilai nama, ini untuk pernyataan akan mencetak karakter pertama di nama dan dari setiap karakter dalam nama yang mengikuti spasi. Maka OUTPUTnya adalah :
R
M
N

⓮ Misalkan angka-angka berada dalam sebuah array tipe int [ ]. Tulis segmen kode yang akan menghitung dan berapa kali output angka 42 terjadi dalam array.
Kita akan gunakan untuk loop untuk memproses melalui array dan menguji setiap elemen array. Jika nilai/angka 42 ditemukan, maka akan ditambahkan 1 ke counter :
int count42;  // The number of 42s in the array
count42 = 0;
int i;  // loop control variable
for ( i = 0; i < numbers.length; i++ ) {
    if ( numbers[i] == 42 ) {
        count42++;
    }
}
System.out.println("There were " + count42 + " 42s in the array.")

⓯ Menentukan rentang array angka menjadi nilai maksimum dalam array dikurangi nilai minimum. Misalkan raceTimes adalah array dari tipe double []. Tulis segmen kode yang akan mencari dan mencetak berbagai raceTimes.
Kita membutuhkan kedua variabel nilai minimum dan nilai maksimum dalam array. Kita bisa menghitung dengan menggunakan satu untuk loop.
double max;    // maximum value from the array
double min;    // minimum value from the array
double range;  // the range of the array, max - min
int i;         // for-loop variable
max = min = raceTimes[0];  // start with both equal to the first element
for ( i = 1; i < raceTimes.length; i++ ) {
    if ( raceTimes[i] > max )
        max = raceTimes[i];
    if ( raceTimes[i] < min )
        min = raceTimes[i];
}
range = max - min;
System.out.println("The range is " + range);

Sekian Evaluasi kuisioner kita kali ini, setiap pembelajaran membutuhkan evaluasi dan kuisioner sederhana ini meremind kita, bahwa kita memahami pembelajaran yang sudah kita pelajari sebelumnya.

0 komentar:

Posting Komentar