Programming Language Concept Session 6

Programming Language Concept Session 6


  • Control structure merupakan suatu pernyataan mengontrol (control statement) dan pernyataan yang eksekusinya dikendalikan

Selection Statement


  • Selection statement menyediakan cara untuk memilih antara dua atau lebih jalan eksekusi
  • Dua kategori umum:
    Two-way selector
    – Multiple-way selector

Two-way selection statement


  • Bentuk umum

if control_expression

then clause

else clause

  • Control Expression
    – Jika reserved word then atau penanda sintaktik lain tidak digunakan untuk memperkenalkan klausa then, maka control expression diletakkan didalam kurung (parentheses)
    – Di C89, C99, Python, dan C++, control expression dapat berupa aritmatika
    – Di kebanyakan bahasa lain, control expression harus berupa Boolean
  • Bentuk klausa
    – Di banyak bahasa kontemporer, klausa then dan else dapat berupa satu pernyataan atau compound statement
    – Di Perl, semua klausa harus dibatasi dengan kurung kotak (brace), artinya harus berupa compound
    – Di Fortran 95, Ada, Python, dan Ruby, klausanya berupa rentetan pernyataan
  • Nesting Selector
    – Disebut nesting karena ada selector didalam selector
    – Contoh:if (sum == 0)if (count == 0)result = 0;else result = 1;- Contoh diatas dapat dikatan ambigu karena klausa else bergantung pada aturan semantic dari bahasa tersebut. Misal di Java, else diatas akan dipasangkan dengan if sebelumnya yang paling dekat
    – Untuk solusi nested selector yang ambigu, di bahasa C, C++, dan C# menggunakan compound statement, seperti:

if (sum == 0) {

if (count == 0)

result = 0;

}

else result = 1;

Multiple-Way Selection Statement


  • Multiple-selection memperbolehkan satu selection dengan pernyataan berapapun
  • Beberapa bahasa dapat menggunakan switch-case, contoh di C, C++, Java:

    switch (index) {

    case 1:

    case 3: odd += 1;

    sumodd += index;

    break;

    case 2:

    case 4: even += 1;

    sumeven += index;

    break;

    default: printf(“Error in switch, index = %d\n”, index);

    }

    Control expression hanya dapat bertipe integer

    – Segmen yang dapat dipilih dapat berupa rentetan pernyataan, block, atau compound statement

    – Segmen angka berapapun dapat dieksekusi di satu eksekusi construct

    – Klausa default digunakan untuk nilai yang tidak disajikan

  • Berbeda dengan C, di C#:
    – Tidak memperbolehkan eksekusi implisit lebih dari satu segmen
    – Tiap segmen harus diakhiri dengan unconditional branch (goto atau break)
    Control expression dan case constant dapat berupa string
  • Multiple selector dapat muncul sebagai ekstensi langsung dari two-way selector, menggunakan klausa else-if, contoh di Python:

if count < 10 :

bag1 = True

elif count < 100 :

bag2 = True

elif count < 1000 :

bag3 = True

Iterative Statement


  • Iterative statement merupakan pernyataan yang menyebabkan suatu pernyataan atau kumpulan pernyataan dieksekusi nol, satum atau lebih kali
  • Iterative statement juga dikenal sebagai loop
  • Ada dua macam iterative statement, counter-controlled loop dan logically controlled loop
  • Counting iterative statement (seperti for) memiliki suatu variable loop, dan suatu alat untuk menjelaskan nilai awal (initial) dan terminal, dan stepsize
  • Contoh counter controller loop di Ada:

Count : Float := 1.35;

for Count in 1..10 loop

Sum := Sum + Count;

end loop;

  • Counter controlled loop di bahasa berbasis C:
    – Bentuk umum:
    for ([expr_1] ; [expr_2] ; [expr_3]) statement
    – Nilai dari suatu ekspresi multiple-statement merupakan nilai dari pernyataan terakhir di ekspresi tersebut
    – Jika ekspresi kedua tidak ada, maka akan terjadi infinite loop
    – C++ berbeda dengan C dalam dua hal, control expression dapat berupa Boolean, ekspresi awal dapat memasukkan definisi variable
    Control expression di Java dan C# harus berupa Boolean
  • Logically controlled loop didasarkan dari ekspresi Boolean, bukan suatu penambahan (counter)
  • C dan C++ memiliki bentuk pretest (di cek dulu) dan posttest(jalankan baru dicek), sehingga control expressionnya dapat berupa aritmatika:

Pretest:

while (control_expression)

loop body

Postest:

do

loop body

while (control_expression);

  • Java mirip dengan C dan C++, namun control expressionnya harus berupa Boolean
  • Terkadang lebih mudah ketika programmer dapat memilih lokasi untuk loop control, mekanisme ini dinamakan user-located loop control (misal break), contoh:

while (sum < 1000) {

getnext(value);

if (value < 0) break;

sum += value;

}


Sumber:

  • Concept of Programming Languages 10th. Ed  / Robert W. Sebesta (Chapter 8)
  • Control Structure Statement / Binus Powerpoint Presentation

This entry was posted in Computer Science, Programming Language Concept and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *