Meruvian Software Development Life Cycle
SDLC atau yang lebih dikenal dengan sebutan Software Development Life Cycle merupakan sebuah metodologi pengembangan sistem yang mengacu pada step-step atau roadmap pengembangan sistem.
Setiap perusahaan tentunya mempunyai konsep yang berbeda-beda. dan mempunyai ciri khas tersendiri. yang saya posting disini merupakan SDLC ala Meruvian.
Phase SDLC diatas punya style tersendiri. dan this is our own business. saya jelaskan fase-fase yang ada pada SDLC pada perusahaan kita.
1. Business Process Mapping
Pada Fase ini Business Analyst akan melaksanakan tugasnya yaitu mapping Business Process. setelah negosiasi, deal project dan scoping telah dilaksanakan, business analyst akan mapping seluruh proses requirement user dalam bentuk Standard Operating Procedure(SOP).
2. Information Architecture
Seorang IA atau Designer Flow akan menggambarkan implementasi dari seorang BA(Business Analyst). Setelah BA menggambarkan detail Standard Operating Procedure maka sang IA akan berkomunikasi dengan sang BA dan akan membuat designer form dari flow yang dibuat BA. Sang IA dapat memberikan gambaran untuk System Design, dan menjadi penengah antara BA(Business Analyst) dan SA(System Analyst).
Information Architecture merupakan salah satu blueprint atau merupakan sebuah pattern yang menjadi acuan pada saat Quality Assurance dilaksanakan.
3. System Design
System Design tidak hanya menggambarkan Relasi dari Database yang akan digunakan, akan tetapi dia akan mapping System yang akan berjalan dan teknologi yang digunakan untuk kasus Business Process yang telah di mapping oleh seorang Business Analyst, yang kemudian akan dapat langsung di mengerti oleh developer. jadi, System Design ini dilakukan oleh seorang System Analyst dimana kerjanya mapping System yang akan dibuat oleh programmer/developer.
4. Development
nah, pada fase ini developer sudah menerima flow dari sang BA, sudah menerima mockup dari sang IA, dan menerima design database dan system dari sang SA. lengkap bukan?
disini si developer hanya tinggal menjahit saja, karena emang bahan, arsitektur telah di design dan di mapping sebelumnya oleh para eksekutor..
so, fungsi developer hanya membuat coding nya saja, sehingga proses development akan dinilai lebih cepat dan efisien.
5. Deployment
Setelah Aplikasi selesai di develop/dikembangkan, maka langkah selanjutnya sang Integrator dapat menginstall aplikasi pada server. baik server yang disediakan oleh client maupun server yang kita sediakan untuk client. tentunya jika aplikasi di running di server kita, itu masih bersifat demo dan tentunya jika aplikasi itu web based, maka bisa diakses oleh client diluar sana.
nah, urusan install menginstall kita serahkan pada Integrator saja. tentunya diinstall ketika sudah fix tidak ada lagi bug fixing atau masa Quality Assurance.
6. Support
Fase ini merupakan fase support dimana setelah aplikasi berjalan dengan sempurna kita bisa memberikan support service online tergantung dari NDA(non-disclosure Agreement) yang ditandatangani pada saat negosiasi.
Mungkin bagi anda yang tertarik untuk mempelajarinya lebih lanjut bisa menghubungi kita.
-Mila Yuliani-
Ux as user experience
Dari dulu,sy ingin menjadi seorang penulis. karena pekerjaan ini dinilai mudah tetapi juga cukup ribet.
Mudahnya karena setiap org mempunyai kesempatan yg sama untuk menjadi seorang penulis. tetapi memang perlu sy akui membuat bahasa yang baik dan berkualitas itu sangat sulit.
Alah bisa karena biasa. begitu kata pribahasa.
ga ada di dunia ini manusia yg bisa segalanya. nah disini lah pentingnya sebuah pengalaman. pengalaman manusia itu berbeda-beda karena disitulah letak "unique" seorang manusia.
saya senang membuat pengalaman. karena dengan pengalaman kita menjadi tahu. pengalaman baik yang berkesan tentunya yah..
nah, daripada jelasin terus pengalaman yang ga ada henti-hentinya. lebih baik kita simak bacaan saya kali ini tentang UX atau user experience.
Banyak yang bertanya mungkin yah. apa itu UX?
UX atau User Experience yang dikemukakan oleh iceberg yaitu sebuah metode yang digunakan untuk dapat merealisasikan kebutuhan client terhadap visual design yang diinginkannya.
Klo dilihat dari asal katanya User dan Experience yaitu sebuah mekanisme yang menjadi penghubung didalam pengembangan suatu aplikasi(versi sy dari segi teknis).
dari pengertian secara general, UX itu bisa diartikan orang yang mempunyai pengalaman yang baik atau paham didalam sebuah pengembangan project. misalnya didalam Analisa suatu bisnis, system, serta mekanisme SDLC (Software Development Life Cycle).
dibawah ini saya tampilkan urutan menjadi UX :

Bisa kita lihat dari gambar diatas, level yang paling bawah itu terletak pada user specification needs didalam sebuah pengembangan project. low level yang merupakan kebutuhan dari user/client. semakin naik level keatasnya itu sudah termasuk tugasnya Analyst. baik Business Analyst, System Analyst, maupun Architecture Analyst.
Semakin banyak pengalaman yang dimiliki oleh user maka dia akan terus naik level dari UX nya. so keep your experience.. carilah sebuah pengalaman karena itu yang akan meningkatkan posisi anda.
then, dimana posisi anda??
-Mila Yuliani-
[Yama] SpringMVC Chapter 1
A.OVERVIEW
Spring MVC merupakan sebuah Single Controller utama yang mengimplementasikan filter dispatcher patern yang terdapat pada arsitektur Pemrograman J2EE. Spring MVC dikenal sebagai Dependency Injection yang dapat didefinisikan sebagai injection controller didalam sebuah pemrograman web. Spring MVC
Filter Dispatcher Servlet yang terdapat pada Spring MVC berfungsi sebagai pengolahan alur controller pada web tier yang bisa menangani masalah logika-logika dan navigasi.
Konfigurasi web-tier pada Spring MVC yaitu terdapat pada ApplicationContext yang akan me-load data tier dan konfigurasi untuk web-tier. Web-tier merupakan komponen-komponen framework yang diintegrasikan dan dijalankan dengan kolaborasi yang dapat menciptakan fungsi-fungsi yang dapat dipergunakan. Seperti Hibernate untuk solusi Model, Spring MVC untuk solusi controller dan solusi dynamic web application, dan sebagainya.
Nah, sekarang kita membahas tentang fitur-fitur yang ada pada SpringMVC 3.0 yaitu sebagai berikut :
1.Inversion of Control (IoC) atau Dependency Injection (DI)
Spring menawarkan loosly coupling dengan adanya fitur yang bernama IoC yang dapat digunakan untuk mengkoordinir setiap object di system. Baik menggunakan method mutator dan accessor maupun menggunakan konstuktor sebagai media IoC.
Pada Dependency Injection (DI) container akan membuat semua object yang didefinisikan kemudian me-wire semua object tadi dengan cara mensetting property-property yang dibutuhkan, dan memanggilnya saat method bean dipanggil.
2.Aspect Oriented Programming (AOP)
Merupakan salah satu paradigma pemrograman dengan tujuan untuk meningkatkan modularisasi dengan memfokuskan pada pemisahan-pemisahan modul untuk mencapai suatu tujuan khusus. Biasanya Aspect Oriented Programming ini digunakan untuk AspectJ dimana mengimplementasikan suatu strategi yang digunakan untuk crosscutting didalam pemrograman java menggunakan metode AspectJ.
3.Container
Spring berfungsi juga sebagai Container yang berfungsi untuk mengatur dan mengkonfigurasi object yang ada di Spring. Bagaimana sebuah object dapat berfungsi dengan baik, dapat dikonfigurasikan serta dapat berasosiasi dengan object yang lainnya.
4.Lightweight Container
Tanpa mekanisme Lightweight Container, kita dituntut untuk dapat mengerti dan memahami alur atau aturan dari sebuah Framework tertentu. Misalnya seperti EJB kita dituntut untuk mengerti spesifikasi dan cara kerja dari EJB tersebut. Sedangkan dengan mekanisme Lightweight Container semuanya tidak perlu lagi, karena kita hanya mengimplementasikan class POJO yang bisa digunakan di framework2 lainnya. Tanpa kita harus membuat service bean yang terdapat di EJB-Container.
Ciri-ciri Lightweight Container :
POJO
Life-cycle management
Dependency Injection
Consistent Configuration
Service Attachment
5.Framework
Spring telah berfungsi sebagai sebuah framework yang dapat dikolaborasikan dengan framework-framework lainnya yang dapat diintegrasikan dengan Spring. Karena konfigurasi dan setting container di Spring terdapat di file xml.
Integration Struts-REST and Spring
REST merupakan salah satu alternatif teknologi baru-baru ini yang bisa dijadikan sebagai pengganti ESB(Enterprise Service Bus) disamping SOAP yang selama ini dikenal sebagai ESB.
Sekedar sharing dari apa yang telah saya dapatkan akhir-akhir ini, yaitu tentang RESTful yang merupakan yang belakangan ini telah di implementasikan dengan Struts2. ini merupakan versi terbaru dari Struts2 yang mempunyai suatu plugins convention yang mana ini merupakan suatu teknologi terbaru yang mengimplementasikan action hanya dengan bentuk @action saja.
Dulu dan bahkan mungkin sampai sekarang masih banyak yang menggunakan Struts2 sebagai Controller pada konsep MVC yang notabene menyimpan action dan result nya pada sebuah xml. dan mungkin ini berbeda dengan konsep Struts2.1.8 keatas yang sudah mendukung JSON dan XML sebagai salah satu alternatif untuk dapat dilihat di berbagai media device yang mendukung. seperti halnya untuk Android Programming, mungkin yang akan di jadikan response setelah mengakses halaman tersebut adalah JSON nya, disamping itu, mungkin untuk beberapa Aplikasi menggunakan XML khususnya untuk pemrograman web. karena XML dinilai lebih mudah untuk diakses dan di implementasikan.
konsep berikut adalah bagaimana cara untuk meng-integrasikan Spring dengan Struts-Rest sebagai Controller nya. sedangkan untuk modeling dengan database kita masih menggunakan Hibernate.
well, kita harus mempersiapkan library seperti berikut :
- commons-beanutils-1.8.0.jar
- commons-chain-1.2.jar
- commons-collections-3.2.jar
- commons-digester-2.0.jar
- commons-fileupload-1.2.1.jar
- commons-io-1.3.2.jar
- commons-lang-2.3.jar
- commons-logging-1.0.4.jar
- commons-logging-api-1.1.jar
- commons-validator-1.3.1.jar
- dom4j-1.6.1.jar
- ehcache-1.2.3.jar
- ejb3-persistence.jar
- ezmorph-1.0.3.jar
- freemarker-2.3.16.jar
- hibernate3.jar
- hibernate-annotations.jar
- hibernate-commons-annotations.jar
- hibernate-entitymanager.jar
- hibernate-tools.jar
- hsqldb.jar
- javassist-3.9.0.GA.jar
- json-lib-2.3-jdk15.jar
- jta-1.1.jar
- slf4j-api-1.5.8.jar
- slf4j-log4j12-1.4.2.jar
- struts2-convention-plugin-2.2.1.jar
- struts2-core-2.2.1.jar
- struts2-embeddedjsp-plugin-2.2.1.jar
- struts2-jquery-grid-plugin-2.2.0.jar
- struts2-jquery-plugin-2.2.2.jar
- struts2-json-plugin-2.2.1.jar
- struts2-junit-plugin-2.2.1.jar
- struts2-rest-plugin-2.2.1.jar
- struts2-spring-plugin-2.2.1.jar
- velocity-1.6.3.jar
- velocity-tools-1.3.jar
- xstream-1.2.2.jar
- xwork-core-2.2.1.jar
Setelah itu setting untuk struts.xml nya seperti ini :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Overwrite Convention -->
<bean type="com.opensymphony.xwork2.ActionProxyFactory" name="cimande" class="org.blueoxygen.rest.CimandeRestActionProxyFactory" />
<bean type="org.blueoxygen.rest.manager.ContentHandlerManager" class="org.blueoxygen.rest.manager.DefaultContentHandlerManager" />
<bean type="org.blueoxygen.rest.handler.ContentHandler" name="jsonHandler" class="org.blueoxygen.rest.handler.JsonContentHandler" />
<bean type="org.blueoxygen.rest.handler.ContentHandler" name="xmlHandler" class="org.blueoxygen.rest.handler.XmlContentHandler" />
<constant name="cimande.rest.extension.prefix" value="service" />
<constant name="cimande.rest.idParameterPrefix" value="pub/" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="struts-default" />
<constant name="struts.convention.package.locators" value="actions"/>
<package name="default" extends="struts-default">
<action name="view"
class="org.blueoxygen.rest.profile.actions.ViewPersonalProfileDetail">
<result name="success" type="velocity">
/vie]w/profile/formProfileDetail.vm
</result>
</action>
<action name="in"
class="org.blueoxygen.rest.profile.actions.PersonalProfileDetail">
<result name="success" type="velocity">
/view/profile/formProfileDetail.vm
</result>
</action>
</package>
</struts>
Java Class Controller :
@Results({ @Result(name = ActionSupport.SUCCESS, type = "velocity", location = "/view/profile/formProfile.vm" ) })
public class PersonalProfileController extends CimandeAction implements HibernateSessionFactoryAware{
protected String id;
protected String nick_name;
protected @Autowired SessionFactory sf;@Action("/profile/" )
public String execute() throws Exception{//code here
}
//setter getter here
Hibernate Configuration untuk ORM Database :
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="Cimande"><mapping class="org.blueoxygen.papaje.entity.LevelingMember"/> //mapping entity class
</session-factory>
</hibernate-configuration>
ApplicationContext.xml untuk membuat datasource :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns: xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<context:property-placeholder location="classpath:cimande.properties" />
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="com.mysql.jdbc.Driver" p:username="root"
p:password="xxxx" p:url="jdbc:mysql://localhost:3306/mervpolis" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
p:dataSource-ref="dataSource" p:configLocation="classpath:hibernate.cfg.xml"
p:hibernateProperties="classpath:hibernate.properties">
<property name="eventListeners">
<map>
<entry key="merge">
<bean
class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" />
</entry>
</map>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory" />
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>
nah, sekarang kita buat satu class yang digunakan untuk menyimpan list, dll. dan ngambil koneksi database menggunakan datasource yang diinstate di ApplicationContext.xml
public class ViewPersonalProfileDetail extends PersonalProfileController{
private String sql;
public String execute(){
sess = sf.openSession();
sess.getTransaction().begin();
if(getId() != null && !"".equalsIgnoreCase(getId())){
sql = "select a from "+Employee.class.getName()+" a where id='"+getId()+"' order by logInformation.createDate asc";
employeeLists = sess.createQuery(sql).list();
for(Employee employee : employeeLists){System.out.println("education "+employee.getEducation().getUniversity());
}
}
return SUCCESS;
}}
nah, kita membuat view nya untuk itu. saya menggunakan velocity untuk menampilkan list tadi.
#foreach($!eL in $!employeeLists)
$!eL.education.university
#end
Pengalaman Surabaya
Yup. ini merupakan kali pertama saya pergi ke Surabaya. tepatnya ITS Nopember Surabaya. banyak hal yang menarik disini. mulai dari tinggal di Wisma Penginapan, mobilisasi ke kampus(maklum kampus dengan Wisma sangat berjauhan), mengikuti perlombaan, dll.
tepatnya, ini merupakan kali kedua saya mengikuti perlombaan untuk perwakilan. yeah! berat memang. sangat berat.
Disini saya mendapat banyak pelajaran. khususnya softskill yang ada dan menuntut untuk bisa. actually, saya mendapatkan pelajaran untuk ini. banyak malah. ternyata hidup itu tidak seperti yang kita bayangkan.
ok, kita lanjutkan pembicaraan kita tentang pengalaman saya ke Surabaya. well, saya dan SATU orang teman saya pergi ke Surabaya menggunakan Pesawat. yeah, pesawat. ini merupakan kali pertama saya naik pesawat. pemberangkatan kita tepatnya pukul 05.45. saya dan teman saya sudah berangkat dari rumah sekitar jam 2.00 dini hari. soalnya peraturan yang berlaku pada Airport yaitu harus sudah berada di sana 1.45 menit. nah, daripada kita telat, yasudah kita memutuskan untuk pergi lebih awal, lebih baik tunggu disana.
setelah itu, kita sampai di Airport Soekarno-Hatta jakarta. dan nunggu + 2.30 jam karena ternyata kita cuman membutuhkan waktu 45 menit dari rumah ke airport. ok well, saatnya sudah tiba. saya mendapatkan seat di no.8B. kemudian saya menukarkan tempat duduk saya dengan teman saya. karena yang deket dengan jendela itu adalah seat no.8A...:D
ketika pesawatnya hendak landing, hatiku sangat terenyuh melihat lingkungan sekitar yang beda dengan apa yang biasanya dilihat..huffhh! perasaan kagum bercampur terharu. karena allah telah membuat dunia ini menjadi indah. sangat indah!! layaknya seperti sedang melihat google map yang asli. semakin tinggi pesawat, semakin terlihat seperti tanah, yang mempunyai banyak kelokan2 yang sangat indah. BEST VIEW GOD!!
indah! sesuatu yang indah dan akan selalu indah!!
setelah itu, semakin tinggi pesawat. orang2 yang ngomong itu sudah tidak terdengar oleh telinga. bahkan telingaku mendengung begitu keras nya. sampai2 operator passengers pun sudah tidak jelas dia ngomong apa. huffh. ternyata saya berada di atas awan yang hampa udara!!
saya sudah tidak berkata apa2 lagi waktu itu. perasaan terharu bercampur kagum akan kebesaran tuhan melandaku. sesampainya kita di Juanda Airport, kita langsung menuju lokasi ITS Nopember itu sendiri.
kami langsung menuju kampus ITS menggunakan travel. kebetulan dari Airport ke kampus itu ternyata sangat lama.. mungkin memakan waktu 1 jam. *kirain deket gitu*.
sesampainya disana kita dikasih tau panitia geMasTIK harus pergi ke Wisma STIESIA yang letaknya lumayan jauh dari sana untuk melakukan checkin ke wisma tersebut. penginapan yang cukup sederhana juga. satu kamar bisa menampung 3 orang peserta finalis. kebetulan yang waktu itu pada saat saya datang, saya belum mendapat teman sekamar.
then, ada orang yang mulai ketuk pintu kamar saya, dan itu adalah teman sekamar saya. namanya amelia dari UBL. dan dia adalah seorang finalis dari game development.
acara demi acara telah saya lewati mulai dari babak penyisihan, presentasi didepan juri, lomba pameran, berkenalan dengan mahasiswa lainnya, dll. yang lebih menarik itu adalah moment-moment ketika mobilisasi dari wisma STIESIA ke ITS yang jaraknya lumayan jauh. tapi dari sana kita bisa melihat surabaya yang begitu panas dengan berbagai aktifitas dari orang-orang disana. sungguh! saya senang bisa menjadi wakil dari kampus ku. yang sebenernya hanya bisa mengirimkan satu kelompok saja hanya untuk Lomba Aplikasi. klo dilihat dari universitas lain mereka hampir mengirimkan seluruh kategori lomba.
sekali lagi saya katakan "Pengalaman adalah guru yang sangat berharga". saya suka mencari pengalaman, karena itu akan menjadikan kita bisa hidup bersosialisasi dengan yang lainnya. mungkin saya harus memberikan pertanggungjawaban kepada kampus saya tercinta Universitas Gunadarma, agar suatu saat nanti kita bisa menjadi orang yang bisa dibanggakan.
thanks to Meruvian yang sudah membuat mental saya menjadi lebih kuat. insya allah. tanpa Meruvian saya bukan siapa2.
Setting Development Environment in WAS#2
Mengarah pada postingan sebelumnya, untuk setting development pada WAS(WebSphere Application Server), pada postingan kali ini saya akan mencoba untuk mendeklarasikan bagaimana men-setting development pada WAS untuk hal setting datasource untuk mengkoneksikan ke Database.
Ada 2 Cara yang dapat dilakukan oleh kita jika kita ingin membuat koneksi database dengan Application Server kita.
1. Setting Datasource di Application Server
2. Configuration Setting Datasource pada Application(hibernate,dll)
nah, sekarang saya akan membicarakan tentang Setting Datasource pada Application Server. karena untuk Application yang kita gunakan saat ini adalah WebSphere Application Server.
Berikut step yang kita bisa ikuti untuk Setting Datasource pada WebSphere Application Server :
1. Settelah WebSphere Running pada IDE kita, langkah selanjutnya adalah dengan men-setting Administration Console pada WebSphere

2. Kemudian pilih Secure administration, applications, and infrastructure. kemudian akan muncul tampilan sbb :

3. Pilih J2C authentication data. kemudian akan tampil sbb :

4. Click Ok, setelah itu kita harus membuat Datasource yang terhubung dengan
Profile WAS yang telah di konfigurasikan.


5. Pilih Scope as "Node=aiu01". tergantung dari profile yang telah dibuat Kemudian click New.
nah, untuk men-test setting Datasource tadi kita coba click test connection yang ada pada WAS kita.
hopefully the best..
Upload File from Struts2 then Put into a Folder
Actually, sometime if we want to upload file using Java Programming and Struts2 for the specific you used, you can follow my step to try it.....
After you upload that file, the file will put into .metadata folder from our project location be. likes a tmp file. it can read by us manually, but we must read it with read copy file of tmp file which can accessed by us. then it will make our easy to get the file which we needed.
in this blog, i want to write about how to step and may be it will handled if we want to put the file into a folder in our application web based.
Step to 'how to upload file use Struts2 and put into a folder' :
1. From our view(JSP, Velocity, HTML, etc) :
< form action="saveUpload.action" method="post" enctype="multipart/form-data" >
< table>
< tr>
< td> Upload File : < /td>
< td>< input type= " file " name=" upload ">< /td>
< /tr>
< /table>< /form>
2. Java Class will save into database for save uploadFileName and UploadContentType
public class SaveUpload extends ActionSupport{
protected File upload; // name of variable from view form
protected String docUploadFileName;
protected String docUploadContentType;
public String execute(){
if(docUpload != null) {
try {
//-------------- to put file into folder
File file1 = docUpload;
File file2 = new File(outPath+"/images/photo/"+docUploadFileName);
String outPath = MyIO.getBaseFolder().getPath();
InputStream in = new FileInputStream(file1);
//For Append the file.
//OutputStream out = new FileOutputStream(file2,true);
//For Overwrite the file.
OutputStream out = new FileOutputStream(file2);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0){
out.write(buf, 0, len);
}
in.close();
out.close();
//--------------this is to put data upload into database using hibernate
employee.setDocUploadName(docUploadFileName);
manager.save(employee);
} catch (IOException e) {
e.printStackTrace();
}
return SUCCESS;
}
}
3. Class MyIO for putting path File Upload into /WebContent of our Application
public class MyIO {
public static File getBaseFolder() throws IOException {
ProtectionDomain domain = MyIO.class.getProtectionDomain();
CodeSource source = domain.getCodeSource();
URL url = source.getLocation();
if (!"file".equals(url.getProtocol())){
throw new IOException("Code source location not a file:" + url);
}
String path = url.getPath().replaceAll("", " " );
return (new File(path.substring(0, path.lastIndexOf("/WEB-INF/" ))));
}
}
then for displaying that image which we had putted into /WebContent we can access it easily.
4. View for Displaying the image
< table>
< tr>
< td colspan=2 align=right style="padding-top=10px">
<img src="#surl("value=/images/photo/$!{employee.docUploadName}" )" border="1" height="150" width="130">
</td>
</tr>
<tr>
<td>Name</td>
<td>: $!employee.name</td>
</tr>
< / table>
then we can result of our code :

ok. it's so simple right?
thanks to: Home153179
Setting Development Environment in WAS#1
WAS adalah singkatan dari WebSphere Application Server. Merupakan salah satu Application Server yang sering digunakan oleh para Developer J2EE atau pun Developer yang menggunakan Application Server WebSphere.
Nah, disini saya mencoba untuk membagi sedikit ilmu bagaimana men-setting Development Environment di WAS. berikut step-step yang harus dijalankan :
1. Install WebSphere Application Server (versi berapapun baik yang berbayar maupun yang versi Community)
2. Install Database(disini saya mencoba menggunakan DB2 sebagai Database)
3. Install IDE(Integrated Development Environment) untuk Development(bisa menggunakan Eclipse, Netbeans, AST, RAD, dll)
Ok, disini saya tidak akan mendeskripsikan step-step instalasi baik itu dari WAS sendiri maupun dari IDE yang digunakan. karena ini dianggap sangat mudah..
Setelah meng-install WAS dan IDE yang digunakan maka kita harus membuat profiles di IDE tersebut untuk men-setting Aplikasi kita dalam hal ini saya menggunakan Application Server Toolkit sebagai IDE.
step-step nya sebagai berikut :
1. Pada AST klik Window -> Preferences -> Server -> WebSphere -> Create
2. Setelah ini akan muncul tampilan sbb :
3. Kemudian Pilih Next dan akan muncul tampilan sbb :
4. Kemudian pilih Next akan tampil sbb :
5. Pilih Advanced Profile creation dan klik Next untuk melanjutkan dan akan muncul tampilan sbb :
6. Pilih Deploy the Administrative console(Recommended), dan akan muncul tampilan sbb:
7. Kemudian klik Next untuk melanjutkan dan akan tampil sbb:
8. Masukkan Node dan Host kita dimana Node itu adalah nama dari Profile Computer Name kita. kemudian klik Next untuk melanjutkan, dan akan muncul tampilan sbb:
9. Masukkan user name dan password pada saat kita meng-installasi WAS. kemudian klik Next dan akan muncul tampilan sbb :
10. Berikut keterangan dari port yang digunakan untuk mengakses Application maupun Administrative Console dari WAS. klik next dan Create
Ok segitu dulu deh, udah di uber-uber waktu nih. next blog yaitu bagaimana kita meng-configure Database dengan Administrative Console di WebSphere menggunakan Datasource...
Hopefully the best
Exclude List for JSP Reload
Cukup simple juga, ketika sebuah aplikasi running dan kita mendapatkan perubahan pada View khususnya JSP maupun view yang lainnya, kita diharuskan untuk me-restart aplikasi server kita. supaya perubahan dapat ditampilkan di browser(khusus untuk Web Application). nah agar kita tidak selalu me-restart aplikasi server kita, disini saya membuat sebuah konfigurasi kecil yang mengambil dari fungsi DOS xcopy, untuk kali ini saya menggunakan windows sebagai Operating System. dan berfungsi untuk me-reload sebuah view tanpa kita harus me-restart aplikasi server di setiap perubahan pada jsp, velocity,dll.
Langkah-langkah nya yaitu :
1. Pada IDE(Eclipse) Klik Run -> External Tools -> External Tools kemudian akan tampil sbb:
2. Klik New pada Program kemudian ketikkan Nama di 'Name'
3. Untuk Location masukkan URL Path untuk program DOS xcopy.exe
C:\WINDOWS\system32\xcopy.exe
4. Working Directory : diisi workspace directory yang akan kita copy
${workspace_loc:/bnkweb-bb/WebContent/WEB-INF}
5. Arguments : berisi perintah untuk xcopy dari Workspace ke InstalledApps atau metadata file yang di deploy oleh Aplikasi Server.
D:\dev\S137R1\environment\product\j2ee\ear\modules\bnkweb-bb\WebContent\WEB-INF\*.*
D:\dev\ws\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\bnkweb-bb\WEB-INF /E/C /H /R /Y /Z /EXCLUDE:D:\dev\excludeList.txt
Context Syntax : <Workspace Directory> <metadata Directory> /EXCLUDE: <File Exclude List>
adapun isi dari Exclude List file berupa :
\.svn\
.jpg
.gif
.png
.css
\.js\
.swf
HTML5
HTML singkatan dari Hyper Text Markup Language. HTML versi terbaru yaitu HTML5 yang banyak digunakan pada Pemrograman Mobile sekarang ini.
Apa yang baru dari HTML5?
<header></header>, <section></section>,<label for=""></label>, <footer></footer>, dll.
Apa fitur yang tersedia di HTML5?
1. Drag and Drop
2. Edit Content
3. Storage Offline, dll
Berikut saya buat sample dari HTML5 dan Compare dari HTML4 yang sangat familiar dengan kehidupan kita sehari-hari..
HTML5
<header><h1>Sample Form</h1></header>
<form><label for=""contact_name"">Name:</label>
<input id=""contact_name"" placeholder=""Enter" your="" name"="" autofocus="" />
<label for=""contact_email"">E-mail:</label>
<input id=""contact_email"" placeholder=""Enter" your="" email="" address"="" type=""email"" />
<label for=""contact_phone"">Phone:</label>
<input id=""contact_phone"" placeholder=""Enter" your="" phone="" number"="" type=""tel"" />
<input value=""Submit"" type=""submit"" />
</form>
hasilnya akan nampak seperti berikut ini :
Sample Form
Sample Form
| Name | : |
| : | |
| Phone | : |
Kita dapat melihat perbedaannya, dimana pada HTML5 dengan menggunakan <input type=""namavar"" /> akan membuat sebuah textfield dibandingkan dengan jika kita membuat textfield pada HTML4 yang harus mendefinisikan <input name=""namavar"" type=""text"" />..so? keep easy with the new other.
Hopefully the best,
MY
OOP#5 Looping Control
Looping Control i think same with Structure Control which one of Basic Programming in every Programming Language. yeah let us remembering about it.
1. While
Context Syntax to loop use While :
int a = 0;
while(a<=10){
System.out.print(a);
a++;
}
output of that code:
012345678910
2. Do-While
Like with While syntax, do-while is used for looping too. but different context with other syntax. and it will do first statement in branch of do before while.
int a = 0;
do{
System.out.print(a);
a++;
}while(a<=10);
3. For
Mostly every one always using "for" for looping. cause it's so simple to make it.
int a;
for(a=0; a<=10; a++){
System.out.print(a);
}

Count & Count IF on Formula
sometimes people will count all of that their countable condition likes all amount student in their school who passed an exam, or may be just countable some agree choice in their office who attend in a meeting to get a voice voting. yeah just like that..

ok lets see the sample one :
| Person Attend | Agree | Not Agree |
| ABCD | V | |
| FGH | V | |
| IJKL | V | |
| MNO | V | |
| PQR | V | |
| STU | V | |
| VWX | V | |
| YZ | V | |
| Total Voter | 8 | |
| Agree | 6 | |
| Not Agree | 2 | |
yeah, with the Formula Excel Sheet we can see :
1. Total Voter : =counta(B2:C9)
2. Agree : =countif(B2:B9;"V"

3. Not Agree : =countif(C2:C9;"V"

it is will come if we just one sheet condition. so, how to make a sample like that but we just take all of sheet in a workbook like a summary. yeah. we just put link to point to all sheet in a workbook. lets see :
| Agree | 6 |
| Not Agree | 2 |
if we put sample above in a Sheet2 and we want to put some summary in Sheet1 so, we put in Sheet1 "Agree" likes : =Sheet2!C$11 and "Not Agree" likes : =Sheet2!C$12.
hopefully the best..
OOP#4 Structure Control
1. If-Else
If-Else commonly is used for making a condition statement control in Java Programming. and mostly every Programmer know about it. right?
this is the context syntax which can give you a reason "why must use if-else?".hehehe..

if(statement){
statement1;
}else {
statement2;
}
2. Switch-Case
Switch-Case is alternative for making a condition statement control in every programming language. mostly another programming language have it. but different context syntax with Java Programming and other. this is the context syntax from Java Programming :
switch(switchexpression){
case selector1:
statement1;
break;
default :
statement2;
}
OOP#3 Operator
1. Aritmatic
Aritmatic Operator is one way for doing some mathematic operation.like : +,-,/,x.
2. Increment & Decrement
Increment & Decrement Operator is used for increment or decrement some variable integer or else. like : ++,--.
3. Relation
Relation Operator is used for increment & decrement statement like "more than equals" or another. like : <=,>=,<,>,==,!=.
4. Logic
Logic Operator is used for make a condition correct of boolean type. i think last time in my blog have a Algorithm Boolean and give some statement for get a correct answer and probably will hapen. like : True, False.
5. Condition Statement
Condition Operator i think it same with conditional statement in java programming. like : conditionStatement?true:false;
let's see the sample below :
int nilai = 70;6. Precedence
String status = (nilai>=60)?"Passed":"Failed";
Precedence Operator is a therminology think for do the first and last operation will do by computer. hehehe.. last time, my friends who internship in my office got the examination of internship. and then i put some precedence operator there. but no one can answer right: let's see :
if i have a sample precedence operator like this:3*10*2/15-2+4^2^2
what is in your mind?
in my mind is 6 why? see the syntax here : computer will do the operation first with /,x,+,-. right?
so, this answer is : (((3*10*2)/15)-2+(4^2^2)) = 60/15-2+4. this is simple when we do divide first

then what the answer for : 6%3*5+4/2+88-10?
OOP#2 System.out.println() is different

let's see the sample code below :
public static void main(String[]args){
System.out.println("Hello");
System.out.println("World!\n");
System.out.print("Hello");
System.out.print("World");
}
this is the output :
Hello
World!
HelloWorld

