Minggu, 19 Juni 2011

Bahan Belajar Untuk Konsep Bahasa Permrograman

SOAL PILIHAN
01. Passing parameter yang implementasinya dilakukan dengan copying
      adalah
      a. pass by value                                         b. pass by reference
      c. pass by result                                         d. pass by value-result

02. Pilih yang benar
      a. task dan subprogram keduanya implicitly started
      b. task dan subprogram keduanya explicitly started
      c. task implicitly started sedangkan subprogram explicitly started
      d. task explicitly started sedangkan subprogram implicitly started

03. Konstruksi enkapsulasi di Ada disebut
      a. ADT                  b. package                  c. class                         d. storage

04. Penggalan kode berikut
            {
             int temp;
             temp = list[upper];
             list[upper] = list[lower];
             list[lower] = temp;
            }
      disebut
      a. kelompok statement                              b. sequence statement
      c. compound statement                             d. block structure statement

05. Bahasa yang mempunyai dua pre-test logical loops yaitu while dan until tetapi tidak  
      mempunyai post-test logical loop adalah
      a. C++                   b. Ada                         c. Perl                         d. Java

06. Contoh dari bahasa OOP murni (pure OOP language) adalah
      a.Smalltalk           b. C++                         c. CLOS                      d. Eiffel

07. Format atau layout dari non-code part suatu subprogram disebut
      a. dynamic link      b. run time stack          c. return address          d. activation record

08. Yang dimaksud dengan parameter profile atau signature adalah
      a. banyak dan urutan parameter                b. urutan dan tipe parameter
      c. tipe dan banyak parameter                    d. banyak, urutan dan tipe parameter

09.  Bahasa yang mempunyai labeled break, break dengan nomor statement, adalah
       a. Java dan JavaScript                              b. JavaScript dan C#
       c. C# dan Java                                        d. Java, JavaScript dan C#

10. Komunikasi antar-task dilakukan melalui
      a. shared non-local dan parameters
      b. parameters dan message passing
      c. message passing dan shared non-local
      d. shared non local, parameters dan message passing

11. Scope of handler di
      a. C++ dan Ada di spesifikasi dengan try construct
      b. C++ dan Ada di spesifikasi dengan block atau program unit
      c. C++ di spesifikasi dengan try construct sedangkan di Ada dengan block
      d. C++ di spesifikasi dengan block sedangkan di Ada dengan try construct

12. Konsep multiple inheritance didukung oleh bahasa
      a. Smalltalk           b. C++                                    c. Java                         d. Ada

13. Local offset suatu variable local ditentukan saat
      a. run time             b. compile time           c. link time                  d. load time

14. Default parameter di C++ berada di
      a. first position      b. any position     c. last position                    d. centre position

15. Exception handling awalnya didesain di bahasa
      a. Algol                 b. FORTRAN             c. PL/I                         d. BASIC

16  Opsi-opsi berikut merupakan karakteristik dari variable local kecuali
      a. direct access                              b. no run time overhead.
      c. history sensitive                         d. support recursion

17. Offset dari variable local adalah jarak dari variable tersebut ke
      a. main program    b. awal ARI               c. akhir ARI                d. awal ARI pertama

18. The finally clause yang muncul sesudah try construct di desain di bahasa
       a. C++                  b. Java                                    d. JavaScript   d. Ada

19. Object based language adalah sebutan untuk
      a. procedure oriented programming          b. data oriented programming
      c. module oriented programming          d. structured oriented programming

20. Solusi masalah semaphore dilakukan melalui
      a. ADT                 b. class                         c. inheritance               d. polymorphism







  1. a. selectable segments is not encapsulated maksudnya adalah sang pemakai bahasa FORTRAN dapat menyebabkan control flow dimana sang pemakai dapat pergi melalui baris ke berapapun dari selectable segment. Pada FORTRAN pemakai dapat menggunakan GO TO untuk dapat berpindah ke selectable segment manapun. Hal ini dapat berakibat buruk jika GO TO tersebut menuju keluar daripada cabang-cabang selection yang ada.

b.  mutually exclusive dan not be exhausted  artinya adalah pada konstanta multiple selection pada Pascal harus memiliki tipe yang sama untuk list yang ada bagi konstanta tersebut. Karena konstanta tidak dapat muncul lebih dari satu constant list. Akan tetapi dalam list tersebut tidak harus mendefinisikan semua nilai daripada range dari tipe ekspresi harus didefinisikan dalam list.
Cth :
Case index of
Case 1,3 : begin
odd := odd+1;
sumodd := sumodd+index;
                        end;
case 2,4 : begin
                        even :=event+1;
                        sumeven := sumeven + index;
            end
else writeln(‘ Error in case, index =’, index);

c. Bentuk multiple-way selection di C/C++ dan Java dipandang sebagai relatively primitive design  karena bentuk umum mereka dimana baik ekspresi constanta maupun ekspresi control bertipe integer.
Bentuk umum mereka :
Switch ( expression){
Case constant_expression_1 : statement_1;

Case constant_expression_n : statement_n;
[default : statemen_n+1]


}
           
  1. a. has a unique protocol pada overloaded subprogram berarti bahwa subprogram tersebut harus memiliki protocol yang unik atau berbeda dalam pengiriman parameter baik itu nama, tipe, maupun urutan daripada parameter atau dari return type nya. Hal ini mencegah kebingungan karena overloaded subprogram adalah subprogram yg memiliki nama yang sama dengan subprogram lainnya. Lalu overloaded subprogram dapat disebut sebagai ad Hoc polymorphism karena overloaded membutuhkan tipe yang spesifik dan terbatas tidak seperti generic yang merupakan parametric polymorphism yang tipe parameternya dapat apa saja.

b. generic subprogram adalah subprogram yang dapat memiliki parameter berbeda antara called dan caller subprogramnya. versi daripada subprogramnya semua memiliki nama yang sama ini menimbulkan ilusi bahwa singel subprogram dapat memproses tipe yang berbeda dari pemanggilan yang berbeda ,tetapi karena  unit-unit program dari urutan ini merupakan generic maka mereka disebut generic units. Pada bahasa C++ menggunakan template sebagai generic nya.
Ia kerap disebut parametric subprogram karena generic subprogram menyediakan  tipe data yang tidak spesifik untuk parameternya dan dapat menggunakan berbagai macam tipe untuk pelemparan parameter nya.


c.         coroutine adalah jenis khusus dari subprogram. Lebih daripada hubungan antara tuan – budak antara called dan caller subprogram yang ada pada subprogram sederhana, caller dan called subprogram lebih kkepada basis yang sama. Coroutine juga memiliki karakteristik multiple entry points, yang dikontrol oleh coroutines itu sendiri.  
Apa alasanya mengapa ia juga dikenal dengan nama symmetric control?
Ia disebut symmetric control karena mekanisme daripada coroutine yang menganggap bahwa derajat atau tingkatan antara called dan caller subprogram sama, dibandingkan called dan caller subprogram sederhana lainnya.
Apa puila yang dimaksud dengan quasi-concurrent execution?
Quasi concurrent execution adalah urutan eksekusi yang berbarengan yang berelasi dengan kerja dari sistem operasi multiprosesor walaupun mungkin hanya terdiri dari satu prosesor tetapi semua eksekusi tampil berjalan berbarengan selama berbagi prosesor.

  1. a. Pernah.
Abstract data type merupakan sebuah bungkusan yang terdiri dari hanya representasi data dari satu spesifik tipe data dan subprogram yang menyediakan operasi bagi subprogram tsb.
Instance pada ADT disebut juga object.
Keunggulan dari ADT adalah kemampuannya yang dapat melakukan hidden object sehingga akses untuk objek tersebut terbatas kepada class2 tertentu saja.
 Contohnya adalah class pada Java, struct dan class pada C++.

b. constructor adalah fungsi pada class yang berfungsi sebagai insialisasi bagi data members dari objek yang baru terbentuk tersebut.Dan minimal harus ada di dalam kelas untuk menentukan insialisasi.
Destructor adlaah fungsi pada class yang berfungsi untuk mendealokasikan objek2 yang telah dialokasikan ke heap dynamic serta scara implisit dipanggil pada lifetime dari sebuah instance dari akhir class.


c. lightweight class adalah class pada bahasa pemrograman C# yang memiliki constructor , properti, method, dan data fields, serta dapa mengimplementasikan interfaces, tetapi tidak  mendukung inheritance. Pendeklarasian dengan menggunakan struct sehingga default access bagi data members dari class adalah public.


  1. a. inheritance dianggap sebagai the central theme in OOP  karena inheritance merupakan nyawa OOP language. Inheritance sangat duiperlukan dalam pembuatan software terutama dalam melakukan reuse program. Serta inheritance juga menurunkan sifat-sifat daripada parent class nya ke derived class. Inheritance juga menyediakan solusi bagi masalah reuse dari ADT yaitu fitur-fitur dan kapabilitas dari tipetipe yang sudah ada tidak benar-benar cocok bagi penggunaan yang baru. Serta juga menyediakan solusi untuk melakukan organisasi program dimana suatu program dapat memiliki tingkatan apakah dia merupakan subclass,ataukah superclass, maupun siblings. Tanpa inheritance juga polymorphism tidak dapat berjalan.


b. interdependencies among class artinya suatu class menjadi sangat tergantung dengan class lainnya yang bertolak belakang dengan keuntungan daripada ADT yaitu dependence.

c. (5 poin) Apa karakteristik utama dari JavaScript? Bisakah JavaScript disebut sebagai OOP? Uraikan jawabanmu.
Karakteristik utama dari JavaScript adalah
-          JavaScript tidak memiliki class tetapi janya object dan model of object.
-          Objects dalam Javascript memiliki tampilan seperti Perl Hashes yang keduanya internally dan externally.

-          Setiap functions dan method merupakan object.
-          Constructor pada javascript tidak seperti kebanyak bahasa pemrograman lain karena dapat menciptakan object sekaligus menginisialisasi object.
-          Variabel dari javascript bisa tidak memiliki deklarasi tipe dan variable dapat berubah kapan saja.
-          Memiliki predefined reference variable this yang merupakan referensi bagi objek yang baru saja dibentuk.

dapat disebut sebagai OOP karena javascript menggunakan object model yang berdasarkan pada objects di C++ dan Java dan javascript merupakan dynamically typed OOP.
tetapi tidak memiliki kemampuan encapsulation serta kemampuan utama OOP yaitu inheritance sehingga untuk reuse akan menjadi sulit. Maka untuk pengembangan OOP tidaklah tepat.



2 komentar: