Bermain Logika di Javascript

Assalamualaikum saya mau bertanya algoritma dari kode seseorang , karena saya masih bingung sekali dengan cara kerja kode ini, pengulangan bersarang

 var tampilan='';
for (var i = 1; i <=10; i++) {
  if (i%2==0) {
   for (var j = 1; j <= 10; j++) {
    if (j%2==0) {
     tampilan+='#';
    }else tampilan+=' ';
   }
   tampilan+='\n';
  }else{
   for (var j = 1; j <= 10; j++) {
    if (j%2==0) {
     tampilan+=' ';
    }else tampilan+='#';
   }
   tampilan+='\n';
  }
}
console.log(tampilan);

minta tolong bisa dijelaskan cara kerja nya atau logikanya , terimakasih wassalamualaikum

avatar ErwinPrasetyo
@ErwinPrasetyo

36 Kontribusi 4 Poin

Diperbarui 6 tahun yang lalu

8 Jawaban:

<script type="text/javascript">
  var tampilan='';

  // pelajari dari pola output nya dulu

  /* 10x menurun (setiap 1x menurun 10x kesamping)

    # # # # #
     # # # # #
    # # # # #
     # # # # #
    # # # # #
     # # # # #
    # # # # #
     # # # # #
    # # # # #
     # # # # #

     KET #1 = step 1. lihat referensi , #2 = step 2 dst...
  */

  // #1. lakukan perulangan  dari 1 sampai <= 10 dg syarat(i++) artinya dlm 1 kali putaran
  //     variable i akan bertambah 1 artinya perulangan dilakukan 10 kali (lihat ouputnya = 10 baris)
  //     perulangan KEBAWAH

  for (var i = 1; i <=10; i++) { // #1.

    //# 2. cek kondisi jika i % 2 => i mod 2 (pembagian bersisa) = 0 ,, artinya
      if (i%2==0) { // #2

        // 3#. lakkukan perulangan  (VAR j) disetiap (var i) sebanyak 10 kali
        for (var j = 1; j <= 10; j++) { // #3

        //# 4. jika nilai i = angka2 genap (2,4 dst) maka output = "#" ,
        //     sebaliknya jika ganjil ouput = " "
        //     => diulang  sebanyak 10 kali KESAMPING (perulangan var j)
        // output:
        //     1 2 3 4 5 6 7 8 9 10
        //       #   #   #   #   #

        if (j%2==0) { // #4
          tampilan+='#';
        }else tampilan+= ' ';
        }

       // #5.  setiap selesai melakukan 10 kali perulangan (var j) output + \n => pindah baris
       tampilan+='\n';  //#5

      // #6. nilai salah dari if(i % 2 == 0) sama artinya dg if(i % 2 != 0) jika nilai var i = Ganjil maka
    }else{  //#6

        //  #7. Lakukan perulangan 10. kali (KESAMPING) var j
      for (var j = 1; j <= 10; j++) { //#7

        // #8. hampir sama dg #4 (kebalikannya) genap = " " , ganjil = "#"
        // output:
        //     1 2 3 4 5 6 7 8 9 10
        //     #   #   #   #   #

        if (j%2==0) { //#8
          tampilan+=' ';
        }else tampilan+='#';
        }
        // #9 = sama dengan #5
        tampilan+='\n';
    }
  }

  console.log(tampilan);
</script>

Semoga Bermanfaat & Membantu (^_^)

avatar ciloxz
@ciloxz

284 Kontribusi 139 Poin

Dipost 6 tahun yang lalu

Jawaban Terpilih

Wa'alaikumsallam

 var tampilan=''; //membuat variable tampilan dengan nilai string kosong
for (var i = 1; i <=10; i++) { //melakukan looping 1 s.d 10
  if (i%2==0) { // jika nilai i mod 2(mirip seperti pembagian,hanya saja nilai yg diambil nilai sisanya) adalah 0
   for (var j = 1; j <= 10; j++) { //maka jalankan looping yang ini
    if (j%2==0) { //jika nilai j mod 2 adalah 0
     tampilan+='#'; // maka set isi  nilai variable tampilan menjadi '#'
    }else tampilan+=' '; //sebaliknya jika bukan 0 maka set nilai tampilan menjadi 1 space
   }
   tampilan+='\n'; // kemudian set prefix variable tampilan dengan pagaragrap baru
  }else{ //sebaliknya jika nilai i mod 2 bukan sama dengan 0
   for (var j = 1; j <= 10; j++) { //maka jalankan looping yang ini
    if (j%2==0) { // ini sama seperti penjelasan diatas
     tampilan+=' ';
    }else tampilan+='#';
   }
   tampilan+='\n';
  }
}
console.log(tampilan);

Semoga Mengerti ya

avatar kayum
@kayum

5 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

terimakasih jawabannya nggeh , semoga manfaat ilmunya

avatar ErwinPrasetyo
@ErwinPrasetyo

36 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

sebenarnya masih agak bingung antara variabel i dan j , menggunakan tabel penulusuran juga masih bingung

avatar ErwinPrasetyo
@ErwinPrasetyo

36 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

masih bingung apakah variabel i atau j yang melakukan pengulangan ke samping dan ke bawah

avatar ErwinPrasetyo
@ErwinPrasetyo

36 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

agan kurang teliti bacanya .. coba dibaca berulang2 samil dipahami...

itu ada keterangannya KEBAWAH...


// #1. lakukan perulangan  dari 1 sampai <= 10 dg syarat(i++) artinya dlm 1 kali putaran
  //     variable i akan bertambah 1 artinya perulangan dilakukan 10 kali (lihat ouputnya = 10 baris)
  //     perulangan KEBAWAH

  for (var i = 1; i <=10; i++) { // #1.

KESAMPING ?? ini bro

for (var j = 1; j <= 10; j++) { // #3

        //# 4. jika nilai i = angka2 genap (2,4 dst) maka output = "#" ,
        //     sebaliknya jika ganjil ouput = " "
        //     => diulang  sebanyak 10 kali KESAMPING (perulangan var j)
        // output:
        //     1 2 3 4 5 6 7 8 9 10
        //       #   #   #   #   #

Kesimpulan


  1.  perulangan i (1-10) menurun (KE BAWAH)

      OUTPUT :
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

  2.  perulangan (j) (1-10) menyamping (KE KANAN) dilakukan setiap 1x perulangan (i)
      artinya dalam 1x perulangan i ( terdapat 10x perulangan j )

      1 2 3 4 5 6 7 8 9 10 (perulangan j (1<=10))

      OUTPUT :
      1 2 3 4 5 6 7 8 9 0
      #   #   #   #   #    (perulangan j => jika (i) ganjil
        #   #   #   #   #  (perulangan j => jika (i) genap

      dst => 10 kali

Semoga Paham...hehe

avatar ciloxz
@ciloxz

284 Kontribusi 139 Poin

Dipost 6 tahun yang lalu

sip sip makasih gan hehe, maaf merepotkan

avatar ErwinPrasetyo
@ErwinPrasetyo

36 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

welcome... dilatih lagi logika nya lebih 2 perulangan (iterasi) / looping..

selamat belajar...

avatar ciloxz
@ciloxz

284 Kontribusi 139 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban