Wednesday, December 5, 2007

XML - HTML, XSD and (XSLT <> CSS)

XML singkatan dari eXtensible Markup Language, menjadi bagian penting bagi programmer yang akan mengembangkan web services. XML dibangun dengan kemampuan melakukan transfer data antarplatform.
XML juga memiliki kemampuan integrasi data selain pertukaran data antar platform. Untuk web statis yang sederhana, programmer seringkali hanya menggunakan HTML. Sedangkan jika web kompleks atau membutuhkan konten yang dinamis, bahasa HTML akan dikombinasikan dengan bahasa pemrograman internet server-side seperti PHP, ASP. Namun setelah diparser oleh web server, program akan diubah menjadi HTML untuk dikirim ke browser client.
Bahasa XML tidak sama dengan HTML. HTML didesain untuk menampilkan data dan berfokus bagaimana data tersebut ditampilkan, sedangkan XML didesain untuk membawa data, mendeskripsikan data dan berfokus pada apakah data itu. Dengan kata lain XML yang mendefinisikan data dan HTML yang menampilkan data. Kedua bahasa tersebut sama-sama menggunakan tag.Tag yang digunakan pada dokumen XML sifatnya not predefined (ditentukan sediri). XML dapat menggunakan DTD atau XSD untuk mendefinisikan data supaya menjadi XML Valid sedangkan XML yang hanya berdasarkan sintaks yang benar saja tanpa memperhatikan isi data disebut XML Well Formed. Untuk mengatur tampilan isi data pada XML, digunakan suatu bahasa stylesheet yaitu XSL yang akan mendeskripsikan bagaimana XML tersebut ditampilkan atau menghasilkan data dalam format HTML atau text dan sebagainya.

SQL

Under Construction...

.Net

< configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
< connectionstrings><add name="DataSource" connectionstring="Database=Wiki;Server=PATRIC;User ID=wiki;Password=wiki;" providername="System.Data.SqlClient">
< add name="DataSource" connectionstring="Data Source=.\sqlexpress;Initial Catalog=Wiki;Persist Security Info=True;User ID=wiki;Password=wiki" providername="System.Data.SqlClient">

Web.config


< configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
< connectionstrings>
< add name="DataSource" connectionstring="Database=Wiki;Server=PATRIC;User ID=wiki;Password=wiki;" providername="System.Data.SqlClient"> //2000

< add name="DataSource" connectionstring="Data Source=.\sqlexpress;Initial Catalog=Wiki;Persist Security Info=True;User ID=wiki;Password=wiki" providername="System.Data.SqlClient"> //2005
< /add>
< system.web>
< compilation debug="true">
< /compilation>
< appsettings> </appsettings>
< /system.web>
< /add></connectionstrings>
< /configuration>


Koneksi in ASP.Net

using System.Data.SqlClient;

public class DBCon
{
SqlConnection conn;
string connStr;
public DBCon()
{
conn = null;
connStr = string.Empty;
}

public SqlConnection connect()
{
connStr=WebConfigurationManager.ConnectionStrings["DataSource"].ConnectionString;
conn = new SqlConnection(connStr);
return conn;
}
}

Validasi Login

public string validasiLogin(DataUser du)
{
string acc=string.Empty,pass=string.Empty;
try
{
conn.Open();
string sql = "select nama_user,account_user, password, role from data_user where account_user = @acc and password = @pass and status='Active' ";
command = new SqlCommand(sql, conn);
command.Parameters.AddWithValue("@acc", du.Account_user);
command.Parameters.AddWithValue("@pass", du.Password);
reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
du.Nama_user = reader.GetValue(0).ToString().Trim();
acc = reader.GetValue(1).ToString().Trim();
pass = reader.GetValue(2).ToString().Trim();
du.Role = reader.GetValue(3).ToString().Trim();
}
if ( acc.Equals(du.Account_user) && pass.Equals(du.Password))
{
return du.Role;
}
else
{
du.Role = "Invalid";
}

}
else
{
du.Role = "Invalid";
}
}
catch (SqlException sqe)
{
du.Role = "Invalid";
}
catch(Exception)
{
du.Role = "Invalid";
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
return du.Role;
}

Building xml+xsl

using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Text;
using System.Xml.Schema;

protected void btnPreview_Click(object sender, EventArgs e)
{
Literal1.Text = "";
MemoryStream strm = new MemoryStream();
try
{
//MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm);
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.LoadXml("" + txtEdit.Value.Trim() + "");
myXmlDoc.WriteTo(writer);
writer.Flush();
writer.Close();
myXmlDoc = cekXML(strm);
//TextBox1.Text = myXmlDoc.OuterXml;
if (lblPesan.Text.Trim().Equals(""))
{
String strXslFile = Server.MapPath("XSLfile.xsl");
XslCompiledTransform myXslDoc = new XslCompiledTransform();
myXslDoc.Load(strXslFile);

StringBuilder myStringBuilder = new StringBuilder();
StringWriter myStringWriter = new StringWriter(myStringBuilder);

myXslDoc.Transform(myXmlDoc, null, myStringWriter);
//Label1.Visible = true;
//Label1.Text = myStringBuilder.ToString();
Literal1.Text = myStringBuilder.ToString();
}
}
catch (Exception ex)
{
//throw new ApplicationException(ex.Message);
lblPesan.Visible = true;
lblPesan.Text = ex.Message;
}
finally
{
strm.Close();
}}

Using memory stream,transaction&commit and command parameter

using System.IO;

public bool saveIsiBuku(string text, string id,string acc)
{
try
{
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm);
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml("" + text + "");
xdoc.WriteTo(writer);
writer.Flush();
writer.Close();

long idUsr = idUSer(acc);
command = new SqlCommand();
command.Connection = conn;
conn.Open();
trans = conn.BeginTransaction();
command.CommandType = CommandType.Text;

//conn.Open();
sql = "insert into versi(id_sub_bab,isiversi,id_user) values (@id,@isi,@idU)";
//command = new SqlCommand(sql, conn);
command.CommandText = sql;
command.Transaction = trans;
command.Parameters.AddWithValue("@isi", strm.GetBuffer());
command.Parameters.AddWithValue("@id", id);
command.Parameters.AddWithValue("@idU", idUsr);
command.ExecuteNonQuery();

long idV = idVersi();

sql = "update sub_bab_buku set idversi=@idv where id_sub_bab=@id2";
//command = new SqlCommand(sql, conn);
command.CommandText = sql;
command.Transaction = trans;
command.Parameters.AddWithValue("@idv", idV);
command.Parameters.AddWithValue("@id2", id);
command.ExecuteNonQuery();

long stp = step(id);

sql = "insert into history(idversi,id_sub_bab,step) values (@idv2,@id3,@ste)";
//command = new SqlCommand(sql, conn);
command.CommandText = sql;
command.Transaction = trans;
command.Parameters.AddWithValue("@idv2", idV);
command.Parameters.AddWithValue("@id3", id);
command.Parameters.AddWithValue("@ste", stp);
command.ExecuteNonQuery();

trans.Commit();
status = true;
strm.Close();
}
catch (SqlException sqe)
{
trans.Rollback();
status = false;
}
catch (Exception ez)
{
trans.Rollback();
status = false;
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
return status;
}

Send email

using System.Data.SqlClient;
using System.Net.Mail;

public bool Request(string account)
{
try
{
conn.Open();
sql = "select email_user,account_user,password,status from data_user where account_user = @acc ";
command = new SqlCommand(sql, conn);
command.Parameters.AddWithValue("@acc", account);
reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
to = reader.GetValue(0).ToString().Trim();
if (reader.GetValue(3).ToString().Trim().Equals("Active"))
body = "Account Anda : " + reader.GetValue(1).ToString().Trim() + "\n Password Anda : " + reader.GetValue(2).ToString().Trim() + "\n\n\t find, read and create book http://localhost/WikiSakura/Administrator/LoginUI.aspx";
else
body = "Account Anda diblok, silahkan hubungi Admin untuk dapat mengaktifkan Account Anda. \n\n\t find, read and create books http://localhost/WikiSakura/Administrator/LoginUI.aspx";
}
status = true;
}
if (status)
{
status = false;
MailMessage mm = new MailMessage(from, to, subject, body);
mm.Priority = MailPriority.High;
SmtpClient sc = new SmtpClient("127.0.0.1");
//SmtpMail.SmtpServer = "127.0.0.1";
sc.Send(mm);
status = true;
}
}
catch (HttpException he)
{
status = false;
}
catch (Exception ex)
{
status = false;
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
return status;
}

Java

Java merupakan bahasa pemrograman berorientasi objek yang dibuat oleh sun Microsystem tahun 1991. Java didesain untuk menjadi suatu bahasa yang portable terhadap berbagai platform. Pertimbangan mengapa Java banyak digunakan karena Java tidak hanya sekedar bahasa pemrograman, tetapi merupakan platform. Banyak bahasa pemrograman yang tidak memiliki fitur seperti multi-threading, GUI-Building, dan kemampuan dalam networking. Anda harus menggunakan hardware atau operating-system dependent API (Application Program Interface) yang akan mengikat (binding) program. Java platform merupakan teknologi pertama yang berintegrasi penuh untuk dapat menggunakan thread, socket, GUI component dan banyak lagi.
Teknologi Java yang telah banyak dikenal melalui applet Java merupakan teknologi yang terus berkembang dan telah merambah ke teknologi web, yaitu JSP dan Servlet yang merupakan bagian dari teknologi Java untuk aplikasi enterprise (J2EE). Komponen-komponen J2EE sebagai berikut :
· Aplikasi klien dan applet ialah komponen yang berjalan di sisi klien.
· Komponen teknologi Java Servlet dan JSP ialah komponen Web yang berjalan di server.
· Komponen Enterprise JavaBean (EJB) ialah komponen bisnis yang berjalan di server.

Platform Java memiliki 2 komponen :
· Java Virtual Machine (Java VM)
· Java Application Programming Interface (Java API)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

Cara 1
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection ("jdbc:microsoft:sqlserver://PATRIC:1433;DatabaseName=coba",
"sa","");
con.close();
JOptionPane.showMessageDialog(null,"Koneksi sukses","Sukses",JOptionPane.WARNING_MESSAGE);
}
catch(ClassNotFoundException eclass)
{
JOptionPane.showMessageDialog(null,"Koneksi gagal","Gagal",JOptionPane.WARNING_MESSAGE);
}
catch(SQLException esql)
{
JOptionPane.showMessageDialog(null,esql,"Error",JOptionPane.WARNING_MESSAGE);
}

Cara 2
public void connect()
{
String s1="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String s2="jdbc:microsoft:sqlserver://JAVA:1433;
DatabaseName=BankPSOJ";
try
{
Class.forName(s1).newInstance();
con=DriverManager.getConnection(s2, "praktikan", "praktikan");
}
catch(Exception e)
{}
}
public void disconnect()
{
try
{
con.close();
}
catch(Exception e)
{}
}

Penggunaan store procedure
public java.lang.String BeliPulsa(String No_Rekening, String Jenis_Pulsa, String Jumlah_Pulsa) throws java.rmi.RemoteException
{
String status="";
connect();
try
{
stat=con.createStatement();
result=stat.executeQuery("select * from nasabah where no_rekening='"+No_Rekening+"'");
if(result.next())
{
CallableStatement CS = con.prepareCall(" {call BeliPulsa (?,?,?)}");
CS.setString(1,No_Rekening);
CS.setString(2,Jenis_Pulsa);
CS.setString(3,Jumlah_Pulsa);
CS.execute();
status="Pulsa segera dikirim";
}
else
status="Nomor Rekening Tidak Ditemukan...";
}
catch(Exception e)
{
disconnect();
status="Transaksi Gagal..."+e;
}
disconnect();
return status;
}

Penggunaan kasus Select
try
{
stat=con.createStatement();
result=stat.executeQuery("select * from nasabah where no_rekening='"+No_Rekening+"'");
while(result.next())
{
s1=result.getString(1);
s2=result.getString(2);
s3=result.getString(3);
s4=result.getString(4);
}
}
catch(Exception e)
{
disconnect();
System.out.println(e);
}
disconnect();
return (";"+s1+";"+s2+";"+s3+";"+s4);
}

Identifikasi tag-tag dalam JSP

Tag Nama Tag Digunakan Untuk
<%-- --%> Comments Tag => untuk mengabaikan code selama servlet dicompile.
<%@ %> Directives => Mengontrol struktur dari servlet dan bertindak sebagai pesan untuk mesin JSP yang menetapkan tindakan untuk halaman JSP tertentu .
<%! %> Declaration => Definisi methods dan variabel.
<% %> Scriplets => Menetapkan sebagai kode JSP
<%= %> Expressions => Suatu ekspresi JSP yang dijadikan sebagai keluaran pada halaman Web.
Actions =>Memasukkan suatu file, penggunaan kembali beans, atau forward script ke HTML yang lain.

Tuesday, December 4, 2007

First post

Akhirnya setelah sekian tahun sekolah dan kuliah untuk menuntut ilmu, sekarang uda punya gelar ST. Permulaan hidup baru akan segera dimulai, dimana saya akan memulai karier hidup saya. Ilmu yang saya dapat selama ini akan digunakan untuk dunia real. Disini kita lebih membutuhkan skill dalam praktek, ga bs cuma ngandalin teori aja yang slama ini diperoleh.

Saatnya memulai perjuangan yg lebih berat drpd sekolah dan kuliah. Dimana persaingan akan lebih kelihatan dan bisa saja terjadi persaingan yg tidak sehat... Yg penting jgn sampe ikut-ikutan ga sehat. Tetep inget ma yang sang Pencipta n berusaha terus.. so, don't worry..be ur self....lifes waiting to begin....