Jumat, 12 September 2008

JSP Alternatif soal

1. Apakah ResultSets bersifat updateable?

*****Ya, tetapi hanya jika anda mengindikasikan sebuah concurrency strategy ketika mengeksekusi statement, dan jika driver dan database mendukung opsi tersebut.


Ya, tetapi hanya jika anda memanggil method openCursor() pada ResultSet dan jika driver dan database mendukung opsi tersebut.


Ya, tetapi hanya jika ResultSet merupakan sebuah object dari class UpdateableResultSet dan jika driver dan database mendukung opsi tersebut.


Tidak, ResultSet tidak pernah bersifat updateable. Secara explisit, anda harus mengeksekusi statement DML (insert, delete dan update) untuk mengubah data di dalam database bersangkutan.






2. Manakah diantara pilihan di bawah ini yang tepat bagi jangkauan attribut dari tag useBean?

*****session

******page

******request

config

*****application






3. Apakah arti dari ResultSet.TYPE_SCROLL_INSENSITIVE

*****ResultSet tidak sensitive terhadap scrolling

ResultSet sensitive terhadap scrolling, tetapi tidak sensitive terhadap update, misalnya not updatable

ResultSet sensitive terhadap scrolling, tetapi tidak sensitive terhadap perubahan yang dibuat oleh yang lain.

Tergantung pada tipe dari data source, serta tipe dan versi dari driver yang anda gunakan bersama data source tersebut.






4. Manakah pernyataan yang benar mengenai update posisi (misal : update cursor) di dalam ResultSet?

*****Statement insert tidak mendukung jika menggunakan cursor

Hanya ResultSet yang bersifat scrollable dan updatable yang dapat menggunakannya untuk mengubah data dalam baris ResultSet.

Menggunakan teknik cursor merupakan satu-satunya cara yang mungkin untuk mengubah data pada baris (current row) dari ResultSet.

Nama cursor ditentukan oleh method setCursorName(String name) dari object Statement.






5. Manakah diantara pernyataan tentang JDBC di bawah ini yang benar?

*****JDBC merupakan sebuah API untuk mengkoneksikan data source relational, object, dan XML.

JDBC singkatan dari Java DataBase Connectivity.

JDBC merupakan sebuah API untuk mengakses relational database, spreadsheet, dan flat file.

JDBC merupakan sebuah API untuk menjembatani ketidaksesuaian relational object antara program-program berorientasi object dan relational database.






6. Apa yang akan terjadi ketika anda mencoba untuk meng-compile dan menjalankan index.jsp (asumsikan bahwa menu.jsp telah ada)?



*****compile berhasil dan outputnya Good Morning Good Morning.

compile berhasil dan outputnya Good Morning Good.

compile berhasil dan outputnya Good Good Morning.

compile time error, parameter @include berupa page, bukan file.

compile berhasil, tetapi mengalami runtime error.






7. CheckboxGroup juga dapat disebut sebagai sebuah Component.

benar


*****salah






8. Anda memiliki sebuah JSP dengan tag sebagai berikut:


Class com.examulator.Person memiliki sebuah field private yaitu firstname dilengkapi dengan method getter and setter yang sesuai. Page tersebut dipanggil melalui string query url seperti dibawah ini



Manakah diantara tag di bawah ini, jika disisipkan pada baris setelah comment akan menghasilkan keluaran string JENI?

Jawaban : 1 & 2









9. Manakah yang benar tentang statement DDL (create, grant,dll)?

*****Untuk mengeksekusi statement DDL, maka harus diinstall file pendukung lainnya

Statement DDL tidak dapat dieksekusi dengan menggunakan JDBC, harus digunakan tool database khusus untuk melakukannya.

Statement DDL disediakan sebagai statement sql normal dan dieksekusi dengan memanggil method execute() pada sebuah object Statement (atau sebuah sub interface yang ada)

Dukungan untuk statement DDL akan menjadi fitur baru pada JDBC pada rilis berikutnya.






10. Pada kondisi seperti apakah, block finally dapat dihentikan atau dapat di-deactivated?

*****Thread yang ada pada block finally akan dihentikan, sebagai hasil dari pengaktifan method stop dari thread tersebut.

*****Sebuah exception akan dilempar, selama proses eksekusi block finally.

*****Method exit pada class System akan diaktifkan.

Jika sebuah exception ditangkap oleh statement catch, ynag ditempatkan sebelum block finally, maka block finally tidak akan berjalan.






11. Apa yang terjadi jika method close() dipanggil pada sebuah object ResultSet?

Resource database dan JDBC dapat dilepas.

*****method close() tidak ada untuk sebuah ResultSet. Hanya Connections yang dapat ditutup.

akan terjadi sebuah SQLException, karena hanya object Statement yang dapat menutup ResultSet

ResultSet, bersamaan dengan Statement yang membuatnya dan Connection dari Statement dimana Statement tersebut diperoleh, akan ditutup dan melepas semua resource database dan JDBC






12. Package manakah yang memuat class JDBC?

*****java.jdbc dan javax.jdbc

java.jdbc dan java.jdbc.sql

java.sql dan javax.sql

java.rdb dan javax.rdb






13. Manakah pernyataan yang benar tentang transaksi JDBC?

Sebuah transaksi selesai ketika commit() atau rollback() dipanggil pada object Connection.

Sebuah transaksi selesai ketika commit() atau rollback() dipanggil pada object Transaction.

*****Sebuah transaksi merupakan sekumpulan statement yang berhasil dieksekusi di dalam database.

Sebuah transaksi selesai ketika close() dipanggil pada object Connection.






14. Berikut ini manakah sintaks yang benar untuk menggunakan include directive?

Jawaban : 2






15. Dalam masalah JDBC, apakah yang dimaksud dengan DataSource?

*****Sebuah DataSource merupakan basic service untuk mengatur sekumpulan driver JDBC.

Sebuah DataSource merupakan representasi Java terhadap sebuah physical data source.

Sebuah DataSource merupakan sebuah registry point bagi JNDI-services..

Sebuah DataSource merupakan sebuah kumpulan koneksi ke physical data source






16. Bagaimana cara untuk mengeksekusi statement DML (seperti insert, delete, update ) di dalam database?

*****Dengan menggunakan class InsertStatement, DeleteStatement atau UpdateStatement

Dengan memanggil method execute(...) atau executeUpdate(...) dari sebuah object Statement atau object sub-interface yang ada.

Dengan memanggil method executeInsert(...), executeDelete(...) atau executeUpdate(...) dari object DataModificationStatement

Dengan menggunakan statement execute(...) dari object DataModificationStatement






17. Apa yang terjadi jika dipanggil deleteRow() pada sebuah object ResultSet?

Baris yang dipilih dihapus hanya dari ResultSet, bukan dari database.


baris yang dipilih dihapus dari ResultSet dan database.


Hasil tergantung pada apakah property synchonizeWithDataSource di-set true atau false


Akan terjadi error compile : the method does not exist because you can not delete rows from a ResultSet.






18. Bagaimanakah cara mendapatkan informasi dari sebuah ResultSet?

*****Dengan memanggil method get (..., String type) pada ResultSet, dimana variable type merupakan database type.

Dengan memanggil method get (..., Type type) pada ResultSet, dimana Type merupakan sebuah object yang mewakili sebuah database type.

Dengan memanggil method getValue(Â…), dan meng-casting hasilnya menjadi tipe data Java yang diinginkan.

Dengan memanggil method getter khusus pada ResultSet: getString (...), get Boolean (...), getClob (...),...






19. Manakah pernyataan yang benar mengenai batched insert dan update?

Untuk mengeksekusi sebuah batched update/insert, dipanggil method executeBatch() pada sebuah object Statement.

Untuk melakukan batched update/insert, dipanggil addBatch(String statament) pada object Statement untuk setiap statement yang akan dieksekusi dalam batch.

Batch insert dan update hanya dimungkinkan, ketika digunakannya query berparameter

*****Untuk membuat sebuah tumpukan (batch) dari statement insert dan update, harus dibuat sebuah object bertipe Batch, dan memanggil method addStatement(String statement) untuk setiap statement yang ingin dieksekusi dalam batch






20. Apakah Pernyataan dibawah ini benar atau salah?

"The beanName attribute of useBean is only used with serialized beans"

benar


*****salah






21. Manakah berikut ini kode yang valid di dalam JSP page?

Jawaban : 2 & 4



22. Apakah pernyataan dibawah ini benar?

"Nilai untuk attribut halaman dari jsp:include dapat di set pada runtime"

*****ya


tidak






23. Berikut ini adalah file index.jsp dengan content sebagai berikut:



Dan sebuah file menu.jsp yang memuat:



Apa yang akan terjadi apabila Anda mencoba menjalankan index.jsp?

Dapat di-compile dan menghasilkan keluaran morning good morning.

Dapat di-compile dan menghasilkan keluaran good morning.

Dapat di-compile dan menghasilkan keluaran good null.

*****Dapat di-compile, tetapi mengalami runtime error.




24. Berdasarkan kode dibawah ini, manakah pernyataan yang benar berikut ini?



kode tidak akan dicompile, attribute untuk include seharusnya berupa page, bukan file.

Page akan dicompile tetapi attribute dari user tidak akan berada di dalam menu.jsp.

*****Page akan dicompile dan memungkinkan untuk mengakses user di dalam menu.jsp tanpa code tambahan.

Page akan dicompile dan user tersedia di dalam menu.jsp jika tag useBean yang sama dideklarasikan.






25. Method wait and notify harus digunakan hanya di dalam synchronized context. Untuk mengatasi kebutuhan di dalam sinkronisasi, anda dapat menggunakan method suspend dan resume, tetapi ini tidak disarankan.

*****benar


salah






26. Bagaimana anda dapat mengetahui, di dalam program Java, SQL warning telah dihasilkan, sebagai keluaran dari proses executing sebuah statament SQL di dalam database?

*****Anda harus menangani (catch) checked SQLException yang dihasilkan oleh method yang mengeksekusi statement tersebut.

Anda harus menangani (catch) unchecked SQLWarningException yang dihasilkan oleh method yang mengeksekusi statement tersebut.

Anda harus memanggil method getWarnings() pada object Statement (atau sebuah sub interface yang ada)

Anda harus melakukan query terhadap object ResultSet, tentang warning yang mungkin dihasilkan oleh database






27. Sebuah JSP page mendeklarasikan useBean yang mereferensikan sebuah bean bernama Person. Class Person memiliki field private bernama firstname dan sebuah method getter (accessor) untuk mendapatkan nilai dari field tersebut.

Manakah diantara pilihan di bawah ini, yang merupakan sintaks tag getProperty yang tepat untuk mendapatkan value dari instance Person.

Jawaban : 1






28. Tipe driver manakah yang menyediakan akses JDBC melalui satu atau lebih driver ODBC?

*****Driver tipe 1.

Driver tipe 2.

Driver tipe 3.

Driver tipe 4.






29. Apa yang akan terjadi ketika anda mencoba untuk meng-compile dan menjalankan index.jsp (asumsikan bahwa menu.jsp telah ada)?



compile error, parameter pada jsp:include berupa file, bukan page.

compile error, jsp:param tidak ada.

compile berhasil, tetapi tidak ada outputnya, username dilewatkan sebagai attribute, bukan sebuah parameter.

compile berhasil, tetapi tidak ada output, karena jsp:include dijalankan pada saat runtime dan karena itu username menjadi tidak visible.

*****compile berhasil dan menghasilkan output marcus pada saat runtime.






30. Tipe Statement manakah yang dapat mengeksekusi query berparameter?

*****PreparedStatement.

ParameterizedStatement.

ParameterizedStatement dan CallableStatement.

Semua jenis Statements (contohnya yang mengimplementasi sebuah sub interface dari Statement).






31. Apa jangkauan default dari sebuah tag useBean, jika jangkauan tersebut tidak ada dalam deklarasi tag?

request

response

session

application

*****page






32. Apa yang akan terjadi ketika anda mencoba untuk meng-compile dan menjalankan index.jsp (asumsikan bahwa menu.jsp telah ada)?



Compile error, attribut seharusnya berupa file, bukan page.

dapat dicompile dan outputnya good morning saat di jalankan.

dapat dicompile dan outputnya only good saat dijalankan.

*****dapat dicompile, tetapi mengalami runtime error, karena g tidak visible dari menu.jsp.






33. Tipe driver apakah yang secara langsung mengkonversi perintah JDBC ke dalam protokol jaringan dengan database management system?

*****Driver tipe 1.

Driver tipe 2.

Driver tipe 3.

Driver tipe 4.






34. Jika object Statements mengeksekusi sebuag perintah SQL dengan menggunakan fungsi executeUpdate, maka hasil keluaran/ return value dari fungsi tersebut adalah

String input atau String success

Boolean false atau Boolean true

*****int 0 atau int 1

Object ResultSet






35. Manakah diantara sintaks penggunaan tag Bean yang benar di bawah ini?




Jawaban : 2 & 3









36. Dengan menggunakan method apakah JDBC memulai koneksi ke database?

initialContext dari class Context

getDataSource dari class DataSource

*****getConnection dari class Connection

getString dari class ResultSet






37. Sebuah dialog tidak mungkin diciptakan tanpa adanya Frame. Applet bukan turunan dari Frame. Tanpa menghiraukan fakta di atas, sebuah Dialog dapat diciptakan di dalam sebuah Applet.

*****benar


salah






38. Untuk mengeksekusi perintah SQL INSERT fungsi dalam aplikasi Java yang cocok adalah:

createStatements

executeUpdate

*****executeQuery

doExecute









Pengenalan Pemrograman Web

Pertanyaan 1

Diantara potongan kode dalam sebuah “deployment descriptor” berikut ini, manakah yang mengatur parameter inisialisasi?
a)
username
james

b)
username
james

c)
username
james

d)
username
james

Jawaban: d)

Pertanyaan 2

Diantara potongan kode dalam sebuah “deployment descriptor” berikut ini, manakah yang mengatur parameter inisialisasi bagi sebuah aplikasi web?

a)
databasetype
mysql

b)
databasetype
mysql

c)
databasetype
mysql

d)
databasetype
mysql


Jawaban: c)

Pertanyaan 3

Manakah diantara pernyataan dibawah ini yang benar?

a) Sebuah atribut request akan bersifat visible ke semua request berikutnya yang berasal dari client yang sama
b) Pada kondisi default, sebuah atribut session akan bersifat visible ke semua request berikutnya yang berasal dari client yang sama.
c) Atribut-atribut disimpan dengan tipe data Object
d) Atribut ServletContext hanya bersifat visible di dalam servlet yang sama

Jawaban: b) and c)

Pertanyaan 4

Manakah diantara berikut ini, yang memiliki kemampuan untuk menyimpan atribut-atribut data?

a) HttpServletResponse
b) HttpSession
c) HttpServlet
d) ServletContext
e) ServletConfig

Jawaban: b) and d)

Pertanyaan 5


Manakah diantara pernyataan berikut ini yang benar?

a) Setiap aplikasi web (yang tidak terdistribusi) hanya memiliki sebuah instance dari ServletContext..
b) Setiap instance dari HttpServlet hanya memiliki sebuah instance dari ServletContext.
c) Object ServletContext diperoleh melalui method getServletContext dari ServletConfig.
d) Object ServletConfig diperoleh melalui method getServletConfig dari ServletContext.

Jawaban: a) and c)








Pertanyaan 6

Manakah diantara pernyataan berikut yang benar?

a) HttpServletResponseWrapper mengambil sebuah parameter konstruktor dari tipe HttpServletResponse.
b) Filter dipanggil berdasarkan urutan kemunculan mereka di deployment descriptor.
c) Method-method dari class Wrapper tidak boleh di-override.
d) Filter merupakan sebuah contoh dari design pattern Intercepting Filter
e) Filter hanya dapat dipanggil pada saat request masuk, dan bukan pada dispatcher untuk proses forward atau include

Answer: a), b) and d)

Question 7

Manakah diantara pernyataan berikut ini yang benar?

a) Sebelum digunakan, sebuah filter harus dideklarasikan terlebih dahulu di dalam deployment descriptor.
b) Filter melakukan proses filter pada method doFilter
c) Filter melakukan proses filter pada method filter.
d) Setiap Filter memiliki akses ke sebuah object FilterConfig, dimana filter memperoleh parameter insialisasinya.
e) Setiap filter pasti memiliki sebuah method service.

Answer: a), b) and d)

Question 8

Manakah diantara pilihan berikut ini yang merupakan method-method dari ServletContextAttributeListener?

a) attributeRemoved(ServletContextAttributeEvent se).
b) attributeAdded(ServletContextAttributeEvent se).
c) attributeDeleted(ServletContextAttributeEvent se).
d) attributeRenew(ServletContextAttributeEvent se) .

Answer: a) and b)







Question 9

Dari potongan kode berikut ini, manakah yang mendeklarasikan sebuah filter dan memetakannya ke sebuah URL?

a)
Filter2
com.examulator.Filter


Filter2
/*

b)
Filter2
com.examulator.Filter

Filter2
/*


c)
Filter2
com.examulator.Filter


Filter2
/*

d)
Filter2
com.examulator.Filter


Filter2
/*

Answer: a)

Question 10

Manakah diantara pilihan berikut ini yang merupakan kelas Attribute Listener yang benar?

a) ServletContextAttributeListener.
b) ServletResponseAttributeListener.
c) HttpSessionAttributeListener.
d) ServletConfigAttributeListener.

Answer: a) and c)

Question 11

Apa yang akan terjadi jika kode berikut ini di-compile dan dijalankan (asumsikan bahwa file menu.jsp telah tersedia)
package com.examulator;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ReqD extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext sc = this.getServletContext();
RequestDispatcher dis = sc.getRequestDispatcher("menu.jsp");
if (dis != null){
dis.include(request, response);
}
PrintWriter out = response.getWriter();
out.print("Output after menu.jsp");
}
}
a) Proses compile error, object tidak ada di dalam method doGet.
b) Compile berhasil dan hasilnya merupakan content menu.jsp diikuti dengan “output after menu.jsp”
c) Compile berhasil dan hanya menghasilkan keluaran dari content menu.jsp
d) Compile berhasil, tetapi mengalami error pada saat dijalankan

Answer: d)
ServletRequest.getRequestDispatcher tidak dapat mengambil URL. ServletContext.getRequestDispatcher tidak bisa.

Question 12

Apa yang akan terjadi jika kode berikut ini di-compile dan dijalankan (asumsikan bahwa file menu.jsp telah tersedia)

package com.examulator;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ReqD extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext sc = this.getServletContext();
RequestDispatcher dis = sc.getRequestDispatcher("/menu.jsp");
if (dis != null){
dis.include(request, response);
}
PrintWriter out = response.getWriter();
out.print("Output after menu.jsp");
}
}
a) Compile berhasil dan hanya menghasilkan keluaran berupa content dari menu.jsp
b) Compile berhasil dan menghasilkan content dari menu.jsp diikuti dengan “Output after menu.jsp”
c) Compile error
d) Compile berhasil, tetapi mengalami error saat dijalankan, buffer telah dibersihkan

Answer: b)

Question 13

Manakah diantara potongan kode berikut ini, yang mengkonfigurasi sebuah kelas listener dengan benar?
a)
mypackage.SomeListener

b)
mypackage.SomeListener

c)
mypackage.SomeListener

d)
mypackage.SomeListener


Answer: b)








Question 14

Manakah diantara pernyataan berikut ini yang benar?

a) Kelas HttpSessionActivationListener digunakan untuk mendukung session di dalam sebuah distributed environment.
b) HttpSessionActivationListener tidak dapat digunakan dimana sebuah session adalah berdasarkan penulisan kembali sebuah URL
c) Konfigurasi HttpSessionActivationListener menggunakan tag
d) Konfigurasi HttpSessionActivationListener menggunakan tag

Answer: a)


Question 15

Pada kondisi default, manakah diantara directory berikut ini , yang akan bersifat visible ke sebuah web yang sedang dikunjungi oleh browser client. (tersedia webapp sebagai root directory dari aplikasi web)

a) webap\WEB-INF
b) webap\WEB-INF\classes
c) webap\jsp
d) webap\WEB-INF\html

Answer: c)


Question 16

Manakah diantara pernyataan berikut ini yang benar?

a) Sebuah deployment descriptor tidak dibutuhkan pada saat konfigurasi dan menjalankan sebuah servlet.
b) Sebuah deployment descriptor tidak dibutuhkan pada saat konfigurasi dan menjalankan sebuah page JSP.
c) Deployment descriptor memuat tag-tag XHTML
d) Deployment descriptor memuat tag-tag XML
e) Deployment descriptor harus bernama WEB.XML
f) Deployment descriptor harus bernama DEPLOY-XML

Answer: b), d) and e)







Question 17

Directory manakah yang tepat, untuk meletakkan file yang memuat sebuah servlet yang telah di-compile? (tersedia webapp sebagai root directory dari aplikasi web)

a) webapp\classes
b) webapp\servlets\
c) webapp\WEB-INF\
d) webapp\WEB-INF\classes\

Answer: d)

Question 18

Manakah diantara pernyataan berikut ini yang benar? (tersedia webapp sebagai root directory dari aplikasi web)

a) Deployment descriptor harus terletak di dalam directory webapp\
b) Deployment descriptor harus terletak di dalam directory webapp\deploy
c) Deployment descriptor harus terletak di dalam directory webapp\CONFIG
d) Deployment descriptor harus terletak di dalam directory webapp\WEB-INF\

Answer: d)

Question 19

Manakah diantara pernyataan berikut ini yang benar?

a) Supaya dapat diakses langsung, sebuah servlet harus memiliki penamaan yang sesuai dengan servlet-mapping.
b) Tag init-param boleh memuat code Java diantara kurung buka dan kurung tutup.
c) Tag welcome-file dapat menandai sebuah servlet sebagai item default yang dikembalikan dari sebuah URL.
d) Tag welcome-file harus menunjuk ke sebuah servlet yang bernama welcome.

Answer: a) and c)








Question 20

Manakah diantara sintaks di bawah ini, yang dengan tepat memetakan sebuah url servlet ke sebuah servlet name?

a)
welcomeservlet
/welcomeservlet

b)
welcomeservlet
/welcomeservlet

c)
welcomeservlet
/welcomeservlet

d)
welcomeservlet
/welcomeservlet


Answer: d)