• Tidak ada hasil yang ditemukan

BAB 6 JSP Lanjutan - JENI-Web Programming-Bab 6-JSP Lanjutan

N/A
N/A
Protected

Academic year: 2018

Membagikan "BAB 6 JSP Lanjutan - JENI-Web Programming-Bab 6-JSP Lanjutan"

Copied!
10
0
0

Teks penuh

(1)

BAB 6

JSP La n j u t a n

6 .1 Pe n da h u lu a n

Dalam pem bahasan JSP sebelum nya, Kit a t elah m em pelaj ari synt ax dasar : bagaim ana cara m enggunakan script let s, expressions, JavaBeans, dan JSP act ion yang sudah dikenal unt uk m enyediakan dat a dinam is besert a cont ent yang st at is; bagaim ana m enggunakan direct ive unt uk m enam pilkan perint ah pengolahan halam an yang spesifik kepada cont ainer. Kit a j uga t elah m enguraikan peran JSP di dalam suat u aplikasi web unt uk bert indak sebagai layer present asi dan lain- lain.

Pokok pem bahasan lainnya yang dij elaskan pada bab sebelum nya adalah kem am puan JSP unt uk m enghasilkan cont ent yang dinam is selam a penyim panan elem en pem rogram an dibuat m enj adi m inim alis. Hal ini unt uk m em enuhi kepada personil layer present asi yang dipersem bahkan kepada siapapun yang m em iliki sedik it pengalam an dalam pem rogram an dengan Java at au bahasa pem rogram an lainnya. Perubahan ke bent uk berbasis t ext sangat banyak m engurangi baris dari perancang kode dibandingkan dengan servlet : kem udian cont ent file JSP m enj adi sangat m irip dengan st andard HTML yang digunakan unt uk handling. Proses refact or logika dari JSP ke dalam servlet dan m enunj ukkan hasil sebagai JavaBeans yang selanj ut nya m engurangi j um lah t ersebut . Meskipun dem ikian dalam posisi ini, kode Java ( m elalui script let ) m erupakan elem en yang t idak dapat dihindari unt uk JSP. Ada kem am puan yang sederhana yang t idak dapat dit unj ukkan oleh elem en JSP yang dibahas sej auh ini, sepert i it erasi list dan logika bersarang( pernyat aan if- else) .

Pada bab ini, Kit a akan m em bahas dua elem en JSP yang akan m engurangi pem akaian script let dan expression dalam JSP m enj adi nol. Mereka m em berikan sebuah m et hod alt ernat if dalam m enunj ukkan kem am puan dim ana sebelum nya diserahkan kepada script let dan expression dalam sebuah bent uk yang lebih m udah dan lebih m udah dit erim a unt uk personil dengan lat ar belakang pem rogram an yang m asih pem ula.

6 .2

Ex pr e ssion da la m JSP

Sat u dari dua elem en JSP yang akan Kit a pelaj ari dalam bab ini adalah JSP Expression Language( EL) .Expression Language ini diperk enalkan dengan spesifikasi JSP 2.0 dan disediakan sebuah synt ax sederhana dan j elas unt uk m enulis expression yang m elakukan logika sederhana at au m engakses lingkup nilai.

(2)

<% String name = user.getLastName(); %>

at au

<jsp:getProperty name="user" property="lastname"/>

Menggunakan m et hod yang pert am a, pengem bang diarahkan ke konsep pem rogram an Java : unt uk m engakses propert i dari sebuah bean, pengem bang diharapkan t elah m em buat m et hod get t er dari sebuah bean. Pengem bang j uga perlu m em aham i propert y dari t ipe Java. Met hod yang kedua lebih cenderung ke pem rogram an yang net ral : akses ke propert y sebuah bean dikerj akan oleh t ag- t ag yang secara konsep ham pir sam a dengan t ag- t ag HTML. Bagaim anapun j uga, m et hod m engakses propert y bean ini panj ang dan susah. Dan j uga, m et hod ini hanya dapat digunakan unt uk out put langsung kepada user.

Menggunakan EL, propert y bean dapat diakses sebagai :

${user.lastName}

Konsep diat as adalah pem rogram an net ral : pengem bang t idak harus m enget ahui j enis Java at au synt ax. Konsep t ersebut j uga pendek dan langsung ke t it ik perm asalahan : konsep hanya berisi variabel yang t erj angkau dan propert y unt uk diakses, dengan penam bahan sedikit charact er. Dan j uga, dapat digunakan bersam a unt uk m enam pilkan out put langsung ke user, at au unt uk m em bongkar nilai unt uk t ag yang sesuai unt uk diproses.

6 .2 .1 Syn t a x

EL

Lit e r a ls

EL didesain unt uk bersifat sederhana dalam synt axnya. Pada dasarnya, konsep EL bisa m erupakan lit eral at au expression yang dit ulis diant ara ${ dan } .

EL m endukung lit eral sepert i berik ut :

• Boolean

• Long

• Float

• St ring

• Null

Lit eral EL diperlakukan secara sam a sebagaim ana di dalam Java. Sebagai cont oh, nilai boolean dapat bernilai t rue at au false, nilai St ring m em but uhkan pem bat as di dalam t anda double pet ik ( " " ) at au t anda pet ik ( '') , null m enggam barkan nilai yang kosong.

(3)

EL j uga m enggam barkan kat a- kat a kunci yang m enyerupai fungsi dari beberapa operat or-operat or : and ( &&) , eq ( = = ) , gt ( > ) , ge( > = ) , or ( | | ) , ne ( ! = ) , le ( < = ) , lt ( < ) , div ( / ) , and m od ( % ) . Dan j uga m enggam barkan kat a- kat a kunci lainnya :

• True – berhubungan dengan nilai lit eral boolean

• false – berhubungan dengan nilai lit eral boolean

• inst anceof - serupa dengan kat a kunci Java. Menent ukan apakah sebuah obj ek adalah anak dari obj ek yang diberikan j enisnya.

• Null – serupa dengan kat a kunci Java. Menent ukan sebuah nilai null

• em pt y – dapat digunakan dalam berbagai cara. Ket ika dit erapkan pada lit eral array at au inst ans sebuah obj ek Collect ion, m enent ukan apakah berisi sebuah nilai at au t idak.

Berikut adalah cont oh expression EL, diberikan apa yang t elah Kam i kerj akan selam a ini :

${ 'JEDI '} - m enghasilkan St ring 'JEDI ' ${ 5 + 37} - m enghasilkan 42

${ ( 10 % 5) = = 2} - m enghasilkan t rue ${ em pt y ''} - m enghasilkan t rue

6 .2 .2

M e n ga k se s va r ia be l Scope da n Pr ope r t ie s

Selam a m am pu unt uk m engevaluasi expression lit eral sederhana sangat lah berguna, EL m enunj ukkan banyak kegunaannya ket ika m engakses dan m engolah variabel da propert ies dalam scope yang berbeda.

Mengakses variabel begit u sederhana dengan EL : m ereka hanyalah m engacu pada nam a, propert ies Bean, m et hod, dan array. Sem ua dapat diakses dari penam aan variabel m enggunakan not asi " ." . Hal ini digam barkan oleh cont oh pert am a Kam i :

${ user.last Nam e}

Hal ini m engakses sebuah JavaBean dim ana dapat disesuaikan dengan nam a user dan m enerim a nilai propert y last Nam e. Dengan cat at an bahwa scope dari bean t idak berart i. EL m elakukan pencarian unt uk Kit a, m engecek di dalam halam an, perm int aan, session dan scope aplikasi ( dengan perint ah) unt uk sebuah bean dengan nam a yang spesifik. Jika EL disediakan nam a bean yang t idak ada di dalam scope m anapun, m aka nilai null akan dikem balikan.

6 .2 .3

Obj e ct I m plisit EL

Sem ent ara it u pencarian ot om at is scope m em buat hal t ersebut lebih m udah unt uk pengem bang dalam m enulis kode, m enet apkan scope variabel dengan t egas m em perm udah unt uk m em elihara oleh pengem bang yang akan dat ang. EL m enyediakan unt uk kit a dengan beberapa obj ect im plicit yang m ewakili sebuah Map obj ect didalam scope yang berbeda

• pageScope

• request Scope

(4)

• applicat ionScope

Sebagai cont oh, j ika obj ect user kit a sebelum nya dilet akkan didalam scope session :

${ sessionScope.user.last Nam e}

Terkecuali di at as, EL j uga m enggam barkan obj ect im plicit berikut :

• Param – m ewakili sebagai sebuah perm int aan nam a dan nilai param et er Map.Sebagai cont oh m eng- invoke ${ param .loginNam e} sam a sepert i unt uk m em anggil request .get Param et er( “ loginNam e” ) . Nilai yang disim pan disini adalah nilai St ring single.

• Param Values – obj ect im plicit ini adalah sebuah Map dim ana nam a param et er Map yang bert ipe array St ring perwakilan nilai unt uk sebuah nam a. Meng- invoke ${ param Values.choices} adalah sam a dengan m em anggil request .get Param et erValues( “ choices” ) .

• Header – sebuah Map m ewakili header yang t erdapat dari sebuah perm int aan yang diberikan. Cont ent nya serupa dengan yang dit erim a pada saat m em anggil m et hod get Header dari sebuah obj ect Servlet Request .

• HeaderValues – sebuah Map m ewakili header yang t erdapat dari sebuah perm int aan. Cont ent nya serupa dengan yang dit erim a pada saat m em anggil m et hod get Header dari sebuah obj ect Servlet Request .

• Cookies – Map dari single cookies t erdapat di dalam sebuah perm int aan. Serupa dengan m eng- invoke m et hod get Cookies dari sebuah obj ect Ht t pServlet Request .

6 .2 .4 N ot a si

[ ]

Selain not asi “ .” , EL j uga m enyediakan not asi “ [ ] ” dalam m engakses variabel anggot a, m et hod, dan array. Dalam banyak hal, kedua not asi adalah sam a : ${ user.last Nam e} sam a sepert i ${ user[ last Nam e] } .

6 .2 .5 JSTL

(5)

6 .2 .6 Ta g- Ta g

cu st om

Salah sat u poin t erkuat dari spesifikasi JSP adalah karena m em pert im bangkan seberapa besar proses penyesuaian dan st abilit as m elalui penggunaan t ag- t ag cust om . Telah ada t ag- t ag khusus yang digam barkan dalam spesifikasi yang m elaksanakan t ugas- t ugas khusus : st andard JSP act ion < j sp: useBean> , < j sp: get Propert y> , dan < j sp: set Propert y> adalah sebuah cont oh yang sem purna. Tag m enyediakan sebuah cara unt uk m engungkapkan kem am puan “ dit ulis ulang” di dalam halam an JSP m enggunakan sebuah t am pilan yang sangat sederhana ket ika m enyem bunyikan im plem ent asi yang int ernal. Pengem bang dapat m em buat t ag- t ag Mereka sendiri selam a hal ini dirasa sangat m engunt ungkan diri Mereka.

Dengan j enis kem am puan “ dit ulis ulang” ini ( t ag- t ag cust om dapat digunakan di banyak aplikasi web dengan ket ent uan bahwa im plem ent asi JAR dan deskript or t elah dipaket kan dengan aplikasi web t ersebut ) , hal t ersebut akan m enj adi biasa bahwa sat u set t ag cust om akan dikem bangkan oleh program m er dan digunakan unt uk berbagai j anis arsit ekt ur fram ework at au cont ainer JSP yang sesuai. Ada sej um lah library t ag yang t ersedia, dan t ak t erelakkan bagi m ereka unt uk m em iliki beberapa m acam overlap di dalam fungsi yang m ereka sediakan.

Java t elah m engenal akan hal ini dan dalam kerj a sam a dengan kom unit as pem rogram an t elah m enyediakan sebuah t ag library st andard yang m em ilih bidang- bidang overlap yang disebut Java St andard Tag Library at au JSTL

6 .2 .7

M e m a su k k a n JSTL da la m a plik a si Kit a

Unt uk m em asukkan fungsi JSTL dalam aplikasi Kit a, unpack file zip yang didapat dari dow nload, dan copy- kan file st andard.j ar dan j st l.j ar yang t erdapat pada direkt ori / lib ke dalam direkt ori / lib dari aplikasi Kit a.

Ada beberapa set t ag library yang dipaket kan dengan JSTL. Berikut , Kit a akan m em bahas dua : Core t ag library dan SQL t ag library.

6 .2 .8 Cor e

set t ag Core m enyediakan fungsi yang sangat berguna unt uk set iap proyek web. Set Core dapat dibagi m enj adi sub kat egori sebagai berikut :

• General purpose t ags

• I t erat ion

• Condit ionals

(6)

CATATAN : unt uk set iap halam an JSP yang akan m enggunakan fungsi yang t erdapat dalam Core t ag library, harus m enam bahkan direct ive pada halam an t ersebut :

<

%@taglib

uri="

http:java.sun.com/jsp/jstl/core

" prefix="c" %>

I ni m enunj ukkan bahwa t ag- t ag didalam core library m enggunakan prefix c

6 .2 .9 Ge n e r a l

Pu r pose

Ta gs

General purpose t ag di dalam set Core m engerj akan pekerj aan yang sederhana, m eskipun salah sat u dari m ereka t idak relevan sej ak dikeluarkannya spesifikasi JSP 2.0. Tag- t ag yang t erdapat dalam set general purpose adalah : out , set , rem ove, dan cat ch.

< c: out >

Tag < c: out > m enerim a sebuah EL expression, m engevaluasi hasilnya dan kem udian m enam pilkan hasil secara langsung kepada obyek Writ er yang sesuai dengan halam an out put . Tag ini berfungsi sepert i st andard act ion < j sp: get Propert y> , dengan perkecualian bahwa sebuah JavaBean t idak dibut uhkan unt uk m engakses fungsi. Bagaim anapun j uga, dengan dikeluarkan spesifikasi JSP 2.0, t ag ini m enj adi agak basi : EL expression dapat dievaluasi langsung m enj adi st ream out put dalam set iap bagian halam an JSP t anpa m enggunakan t ag- t ag dengan JSP 2.0

< c: set >

Tag ini bekerj a sepert i fungsi act ion < j sp: set Propert y> dim ana dapat m engat ur nilai di dalam t arget JavaBean. Dan j uga dapat m engat ur variabel di dalam scope t ert ent u sehingga dapat digunakan set elahnya oleh JSP at au disuat u t em pat di dalam aplikasi.

Act ion ini m em iliki at ribut :

• Value – nilai yang akan diat ur kedalam t arget bean.

• Var – nam a dari sebuah variabel yang akan diat ur didalam scope t ert ent u

• scope – m enj elaskan variabel scope yang dij elaskan oleh at ribut var. Nilainya bisa j adi sepert i berikut ini : page, request , session, dan aplikasi.

• Target – nam a dari JavaBEan dim ana propert y akan diat ur

• propert y – nam dari propert y dalam JavaBean yang akan m enerim a nilai.

Sepert i yang dij elaskan sebelum nya, ada dua penggunaan ut am a unt uk t ag ini. Unt uk m engat ur nilai dalam sebuah t arget JavaBean, t ag hanya m enggunakan at ribut value, t arget , dan propert y

<c:set target="user" property="name" value="JEDI"/>

Unt uk m engat ur sebuah variabel kedalam sebuah scope t ert ent u unt uk penggunaan yang akan dat ang, t ag < c: set > hanya m enggunakan at ribut value, var, dan scope, m eskipun dem ikian at ribut scope adalah t am bahan saj a. Ket ika at ribut scope dihilangkan, ot om at is default nya m enggunakan scope halam an.

(7)

Dalam t uj uan t ent ang pem bat asan JSP unt uk pada present asi, m eskipun dem ikian kit a seharusnya m em bat asi penggunaan t ag ini. Mengat ur propert ies bean at au m engat ur variabel ke dalam scope yang berbeda m em bukt ikan bahwa fungsi dapat di refact or disuat u t em pat dan t idak baik dengan dom ain lapisan present asi.

< c: rem ove>

t ag ini m enyediakan cara unt uk m enghapus variabel dari scope t ert ent u. Tag ini m em iliki dua at ribut :

• Scope – scope variabel yang akan dihapus

• var – nam a variabel yang akan dihapus dari scope t ert ent u

Sepert i t ag < c: set > , m enggunakan t ag ini seharusnya dibat asi. Mem bebaskan variabel dari scope yang beragam adalah bukan wilayah obj ek didalam lapisan present asi; j enis fungsi ini dapat dij abarkan disuat u t em pat di dalam aplikasi.

< c: cat ch>

Tag < c: cat ch> m enyediakan kem am puan penanganan error di dalam sebuah area dalam JSP. Tag ini m udah digunakan : let akkan isi JSP yang m em ungkinkan m elem par error dalam t ubuh t ag < c: cat ch> .

Tag ini hanya m em iliki sat u at ribut :

• Var – m enj elaskan nam a yang akan digunakan unt uk m enggam barkan t hrown except ion.

6 .2 .1 0 I t e r a si

Tag it erasi JSTL m enyediakan alt ernat if unt uk m enem pelkan do- while, while dan for didalam halam an JSP Kit a sebagai script let . JSTL m enyediakan dua t ag : < forEach> dan < forTokens> .

< c: forEach>

Ternyat a sem akin banyak digunakan it erasi t ag saat ini. Tag ini m engij inkan it erasi m elaui array prim it if, inst ans dari j ava.ut il.collect ion, j ava.ut il.it erat or, j ava.ut il.m ap, dan j ava.ut il.enum erat ion. Bekerj a dengan m elalui set iap elem en dalam t arget dan m enggam barkan nilai yang ada dari it erasi ke kode JSP yang berisi di dalam body t ag.

Tag ini m em ilik i at ribut :

• Var – m enj elaskan nam a variabel yang akan digunakan unt uk m enggam barkan nilai yang ada dari it erasi ke body t ag. Jenisnya t ergant ung pada pada collect ion yang m enj adi it erasi diat as. Nilai dari t ag ini t idak bisa sat u expression dim ana akan dievaluasi pada saat runt im e.

(8)

• VarSt at us – ( t am bahan) . Menj elaskan nam a variabel yang akan diakses oleh body loop unt uk m endapat kan inform asi pada st at us loop t erbaru. Nilai ini t idak dapat dievaluasi pada saat runt im e.

• Begin – ( t am bahan) . Sebuah nilai int eger yang m enj elaskan indeks yang akan digunakan sebagai t it ik awal it erasi. Jika nilai ini t idak disediakan, indeks it erasi akan dim ulai pada nilai 0, sebagai perm ulaan collect ion. Bisa m erupakan suat u expression runt im e.

• End – ( t am bahan) . Sebuah nilai int eger yang m enj elaskan indeks unt uk m enent ukan t it ik akhir dari it erasi. Jika t idak dit et apkan nilainya, it erasi akan berlanj ut hingga elem en t erakhir t ercapai.

• St ep – Sebuah nilai int eger yang m enj elaskan ukuran langkah unt uk digunakan ket ika it erasi berj alan. Sebagai cont oh, m engat ur nilai ini dengan angka dua berart i t idak sem ua elem en akan diakses. Hal ini berart i pada elem en 3 akan diakses set elah set iap 2 elem en t erlebih dahulu.

Suat u penggunaan yang um um dari t ag ini adalah unt uk m engulang hasil di at as dit unj ukkan di suat u t em pat dalam sebuah aplikasi ( biasanya sebuah servlet ) . Mari kit a am bil sebuah cont oh dari skenario berikut : Kit a m em iliki sebuah m odul aplikasi yang m enerim a dari det ail dat abase user yang t erm asuk child dari kat egori pencarian. Um um nya, Kit a ingin m enam pilk an logika akses dat abase dari sebuah servlet dan m enyam paikan dat a kepada sebuah JSP unt uk present asi.

Dibawah ini adalah kode snippet dari sebuah servlet yang akan m enangani akses.

...

// me-load parameter ke dalam Map Map parameters = loadUserParameters();

UserDataService service = new UserDataService();

// Menampilkan pencarian database dan menyimpan hasilnya di dalam sebuah Collection Collection results = service.searchUsers(parameters);

// Menyimpan hasil untuk akses berikutnya request.setAttribute("searchResults", results);

// Melanjutkan permintaan ke JSP untuk ditampilkan

request.getRequestDispatcher("/results.jsp").forward(request, response); ...

Dan ini adalah sebuah halam an JSP yang sederhana yang bert anggung j awab unt uk m enam pilkan hasil. Mari Kit a asum sikan bahwa isi collect ion adalah inst ans dari obj ect User dim ana m em iliki nam a dan alam at yang diat ur sebagai propert ies St ring yang dapat diakses via publik m et hod get .

<

%@taglib

uri="

http://java.sun.com/jsp/jstl/core

" prefix="c" %>

<H1>The following users met your search criteria : </H1> <br/>

<c:forEach var="user" items="${requestScope.searchResults}"> <li> ${user.name} - ${user.address}

(9)

Dalam halam an JSP, Kit a m enggunakan t ag forEach unt uk m engulangi hasil pencarian diat as. Kit a dapat m elakukan ini dengan m enunj uk t ag forEach kepada inst ans Collect ion yang disim pan dalam scope perm int aan m enggunakan EL. Kem udian Kit a m enunj ukkan set iap elem en dalam Collect ion m enggunakan variabel user yang t elah Kit a definisikan di dalam at ribut var, dan m enggunakan EL unt uk m enam pilkan nilai.

Bandingkan kepada apa yang akan t erlihat sepert i t anpa JSTL :

<H1>The following users met your search criteria : </H1> <br/>

<%

Collection results = (Collection) request.getAttribute("searchResults"); Iterator iter = results.iterator();

while (iter.hasNext()) {

User user = (User) iter.next(); %>

<li> <%= user.getName() %> - <%= user.getAddress() %> <%

} %>

Jelas sekali bahwa versi JSTL j auh lebih dapat dim engert i, khususnya kepada desainer sit us t anpa penget ahuan Java.

< c: forTokens>

I t erasi t ag yang disediakan oleh JSTL adalah t ag < forTokens> . Tag ini berbent uk St ring dan m erubah m ereka m enj adi t oken berdasar pada delim it er yang diberikan. Sem ua at ribut t ag forEach dibagi bersam a oleh t ag ini.

Terkecuali m ereka, at ribut yang berikut dit am bahkan :

• Delim s – m enj elaskan delim it er unt uk digunakan ket ika m erubah t arget dari St ring m enj adi t okens.

At ribut it em sekarang t elah m em iliki sebuah t uj uan baru unt uk t ag ini. At ribut t ersebut m enggam barkan St ring yang akan di t okenized.

Sebuah cont oh diberikan dibawah ini :

<

%@taglib

uri="

http://java.sun.com/jsp/jstl/core

" prefix="c" %> ...

<c:forTokens items="item1,item2,item3,item4" delims="," var="item"> <li> ${item}

(10)

6 .2 .1 1 Kon disi

Sat u set t ag dibawah kat egori ini m eniru fungsi yang disediakan oleh st andard pernyat aan if, else-if,... yang dapat dit em ukan dalam st andard Java. Pem akaian dari t ag pernyat aan st andard Java diat as t ert uj u kepada kode pem bersih; dapat berpindah dari script ing server- side ke out put norm al HTML dan kem udian sesekali m em buat dim ungkinkan sebuah kondisi dengan script let yang susah unt uk dim engert i dan diat ur.

Ada dua set ut am a condit ionals : t ag < c: if> m eniru sebuah pernyat aan if Java sederehana; dan t ag < c: choose> berhubungan selalu deng t ag < c: when> dan < c: ot herwise> , dim ana kesem uanya m eniru pernyat aan fungsi swit ch.

< c: if>

Tag < c: if> m engij inkan eksekusi isi yang t erdapat di dalam body- nya j ika nilai expression yang dievaluasi dalam at ribut t est bernilai t rue. Jika expression dievaluasi m enj adi false, m aka body t idak akan pernah dieksekusi.

Cont oh :

<c:if test="${empty sessionScope.user}">

You are not currently logged in! Please correct before continuing any further. </c:if>

< c: choose> , < c: when> , < c: ot herwise>

Ket iga t ag bekerj a bersam a unt uk m enyediakan fungsi swit ch dalam aplikasi Kit a. Pada dasarnya, sat u at au lebih ket ika t ag dilet akkan dalam body dari t ag choose. Tag choose m engevaluasi set iap at ribut t est dari t ag when dan m engeksekusi body dari t ag when dim ana m engevaluasi m enj adi benar. Jika t idak ada t ag when yang berhasil cocok, choose m em anggil t ag ot herwise, j ika dim asukkan.

Cont oh :

<c:choose>

<c:when test="${userGrade >95}"> Outstanding!

</c:when>

<c:when test="${userGrade > 80}"> Good!

</c:when>

<c:when test="${userGrade < 60}"> Failed!

</c:when> <c:otherwise>

Congratulations ... </c:otherwise>

Referensi

Dokumen terkait

Menimbang : bahwa untuk melaksanakan ketentuan pasal 13 Peraturan Menteri Pendidikan dan Kebudayaan Nomor 6 Tahun 2016 tentang Pedoman Umum Penyaluran Bantuan Pemerintah

Sekolah/ m adrasah m engem bangkan perangkat pem belaj aran sesuai dengan t ingkat kom pet ensi dan ruang lingkup m at er i pem belaj aran pada set iap t ingkat kelas..

Klarifikasi Akta Pendirian / Perubahan Perusahaan, Surat Ijin Usaha Perdagangan dengan bidang / sub bidang Event Organizer, Tanda Daftar Perusahaan (TDP), Surat

Berdasarkan evaluasi yang dilakukan oleh Pejabat Pengadaan Dinas Pertanian dan Perkebunan Kab.. Manggarai Barat, maka hasil evaluasi administrasi, teknis dan biaya sebagai

Sodium bicarbonate (1.5 mM) neither affected hydraulic resistance nor transpiration rate, but positively influenced fresh weight change during vase life when combined with CuSO 4 and

AEON 1% Club - an organization made up of leading companies in AEON Group, will invite students from Indonesia and three other Asian countries to discusses environmental

[r]

Data D2 yang tidak masuk pada D3 Serdos Gelombang 201601 ini akan dicek kembali pada database di PDPT untuk penyusunan data D3 Serdos sel anjutnya.. PT dapat m engusulkan dosen