<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-20019988</id><updated>2008-10-09T14:43:40.919+07:00</updated><title type='text'>Budi's Blog</title><subtitle type='html'>Pernak-pernik seputar pemrograman, internet, blog, bisnis, dan trend saat ini.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/posts/default?start-index=26&amp;max-results=25'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20019988.post-2816610217507050620</id><published>2008-01-06T10:33:00.000+07:00</published><updated>2008-01-06T10:41:33.719+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi/Pascal'/><title type='text'>Encrypt dan Decrypt String di Delphi</title><content type='html'>Proses penyandian terhadap string adalah masalah yang kerap kali kita butuhkan dalam suatu aplikasi, terutama untuk menyimpan data-data yang bersifat rahasia. Selain itu, kita juga perlu untuk dapat mengembalikan teks yang telah disandikan tersebut ke keadaan semula. Banyak cara yang dilakukan oleh para programer Delphi untuk menangani permasalahan-permasalahan semacam ini, salah satunya adalah dengan menggunakan unit yang ditulis oleh Steve Schafer berikut ini.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size:100%;"&gt;unit uEncrypt;&lt;br /&gt;&lt;br /&gt;interface&lt;br /&gt;&lt;br /&gt;function Decrypt(const S: AnsiString; Key: Word): AnsiString;&lt;br /&gt;function Encrypt(const S: AnsiString; Key: Word): AnsiString;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;&lt;br /&gt;const&lt;br /&gt;C1 = 52845;&lt;br /&gt;C2 = 22719;&lt;br /&gt;&lt;br /&gt;function Decode(const S: AnsiString): AnsiString;&lt;br /&gt;const&lt;br /&gt;Map: array[Char] of Byte = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, 52, 53,&lt;br /&gt; 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,&lt;br /&gt; 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,&lt;br /&gt; 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30,&lt;br /&gt; 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,&lt;br /&gt; 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&lt;br /&gt; 0);&lt;br /&gt;var&lt;br /&gt;I: LongInt;&lt;br /&gt;begin&lt;br /&gt;case Length(S) of&lt;br /&gt; 2:&lt;br /&gt;   begin&lt;br /&gt;     I := Map[S[1]] + (Map[S[2]] shl 6);&lt;br /&gt;     SetLength(Result, 1);&lt;br /&gt;     Move(I, Result[1], Length(Result))&lt;br /&gt;   end;&lt;br /&gt; 3:&lt;br /&gt;   begin&lt;br /&gt;     I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12);&lt;br /&gt;     SetLength(Result, 2);&lt;br /&gt;     Move(I, Result[1], Length(Result))&lt;br /&gt;   end;&lt;br /&gt; 4:&lt;br /&gt;   begin&lt;br /&gt;     I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12) +&lt;br /&gt;       (Map[S[4]] shl 18);&lt;br /&gt;     SetLength(Result, 3);&lt;br /&gt;     Move(I, Result[1], Length(Result))&lt;br /&gt;   end&lt;br /&gt;end&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function PreProcess(const S: AnsiString): AnsiString;&lt;br /&gt;var&lt;br /&gt;SS: AnsiString;&lt;br /&gt;begin&lt;br /&gt;SS := S;&lt;br /&gt;Result := ‘’;&lt;br /&gt;while SS &lt;&gt; ‘’ do&lt;br /&gt;begin&lt;br /&gt; Result := Result + Decode(Copy(SS, 1, 4));&lt;br /&gt; Delete(SS, 1, 4)&lt;br /&gt;end&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function InternalDecrypt(const S: AnsiString; Key: Word): AnsiString;&lt;br /&gt;var&lt;br /&gt;I: Word;&lt;br /&gt;Seed: Word;&lt;br /&gt;begin&lt;br /&gt;Result := S;&lt;br /&gt;Seed := Key;&lt;br /&gt;for I := 1 to Length(Result) do&lt;br /&gt;begin&lt;br /&gt; Result[I] := Char(Byte(Result[I]) xor (Seed shr 8));&lt;br /&gt; Seed := (Byte(S[I]) + Seed) * Word(C1) + Word(C2)&lt;br /&gt;end&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function Decrypt(const S: AnsiString; Key: Word): AnsiString;&lt;br /&gt;begin&lt;br /&gt; Result := InternalDecrypt(PreProcess(S), Key)&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function Encode(const S: AnsiString): AnsiString;&lt;br /&gt;const&lt;br /&gt;Map: array[0..63] of Char = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’ +&lt;br /&gt; ‘abcdefghijklmnopqrstuvwxyz0123456789+/’;&lt;br /&gt;var&lt;br /&gt;I: LongInt;&lt;br /&gt;begin&lt;br /&gt;I := 0;&lt;br /&gt;Move(S[1], I, Length(S));&lt;br /&gt;case Length(S) of&lt;br /&gt; 1:&lt;br /&gt;   Result := Map[I mod 64] + Map[(I shr 6) mod 64];&lt;br /&gt; 2:&lt;br /&gt;   Result := Map[I mod 64] + Map[(I shr 6) mod 64] +&lt;br /&gt;     Map[(I shr 12) mod 64];&lt;br /&gt; 3:&lt;br /&gt;   Result := Map[I mod 64] + Map[(I shr 6) mod 64] +&lt;br /&gt;     Map[(I shr 12) mod 64] + Map[(I shr 18) mod 64]&lt;br /&gt;end&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function PostProcess(const S: AnsiString): AnsiString;&lt;br /&gt;var&lt;br /&gt; SS: AnsiString;&lt;br /&gt;begin&lt;br /&gt; SS := S;&lt;br /&gt; Result := ‘’;&lt;br /&gt; while SS &lt;&gt; ‘’ do&lt;br /&gt; begin&lt;br /&gt;   Result := Result + Encode(Copy(SS, 1, 3));&lt;br /&gt;   Delete(SS, 1, 3)&lt;br /&gt; end&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function InternalEncrypt(const S: AnsiString;&lt;br /&gt;Key: Word): AnsiString;&lt;br /&gt;var&lt;br /&gt; I: Word;&lt;br /&gt; Seed: Word;&lt;br /&gt; begin&lt;br /&gt; Result := S;&lt;br /&gt; Seed := Key;&lt;br /&gt; for I := 1 to Length(Result) do&lt;br /&gt; begin&lt;br /&gt;   Result[I] := Char(Byte(Result[I]) xor (Seed shr 8));&lt;br /&gt;   Seed := (Byte(Result[I]) + Seed) * Word(C1) + Word(C2)&lt;br /&gt; end&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function Encrypt(const S: AnsiString; Key: Word): AnsiString;&lt;br /&gt;begin&lt;br /&gt; Result := PostProcess(InternalEncrypt(S, Key))&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;end.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Contoh penggunaan:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;const&lt;br /&gt; key = 33189;&lt;br /&gt;var&lt;br /&gt; kode: string;&lt;br /&gt;begin&lt;br /&gt; kode := Encrypt(Memo1.Text, key);&lt;br /&gt; Memo2.Text := kode;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TForm1.Button2Click(Sender: TObject);&lt;br /&gt;const&lt;br /&gt; key = 33189;&lt;br /&gt;var&lt;br /&gt; str: string;&lt;br /&gt;begin&lt;br /&gt; str := Decrypt(Memo2.Text, key);&lt;br /&gt; Memo3.Text := str;&lt;br /&gt;end;&lt;/span&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/2816610217507050620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=2816610217507050620' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/2816610217507050620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/2816610217507050620'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2008/01/encrypt-dan-decrypt-string-di-delphi.html' title='Encrypt dan Decrypt String di Delphi'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-2251555276877506375</id><published>2008-01-05T09:41:00.000+07:00</published><updated>2008-01-05T09:43:11.095+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi/Pascal'/><title type='text'>Mengirim SMS dengan MIDletPascal</title><content type='html'>MIDletPascal dilengkapi tiga buah fungsi yang digunakan untuk proses pengiriman SMS, yaitu SmsStartSend, SmsIsSending, dan SmsWasSucessfull. Ketiga fungsi tersebut memiliki bentuk deklarasi seperti berikut:&lt;br /&gt;&lt;br /&gt;function SmsStartSend(destination: string;&lt;br /&gt;                      message:string): boolean;&lt;br /&gt;function SmsIsSending: boolean;&lt;br /&gt;function SmsWasSuccessfull: boolean;&lt;br /&gt;&lt;br /&gt;Fungsi SmsStartSend digunakan untuk mengirim SMS. Parameter destination menunjukkan nomor HP yang dijadikan tujuan pengiriman, sedangkan message adalah teks yang akan dikirimkan. Parameter destination harus ditulis dalam format ‘sms://&lt;nomorhp&gt;’. Nilai yang akan dikembalikan adalah true apabila SMS telah terkirim ke SMS Centre (SMSC), dan false apabila sebaliknya.&lt;br /&gt;&lt;br /&gt;Fungsi SmsIsSending digunakan untuk memeriksa apakah SMSC sedang sibuk untuk mengirimkan SMS atau tidak. Apabila ya, maka fungsi ini akan mengembalikan nilai true, dan false apabila sebaliknya.&lt;br /&gt;&lt;br /&gt;Fungsi SmsWasSuccessfull digunakan untuk mengetahui apakah SMS telah terkirim ke nomor tujuan atau belum. Apabila ya, maka fungsi ini akan mengembalikan nilai true, dan false apabila sebaliknya.&lt;br /&gt;&lt;br /&gt;Berikut ini contoh program yang menunjukkan hal tersebut.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// Send SMS using MIDletPascal - by Budi Raharjo&lt;br /&gt;&lt;br /&gt;program SMSMIDlet;&lt;br /&gt;&lt;br /&gt;var  &lt;br /&gt;  IDNoHP: integer;&lt;br /&gt;  cmdExit, cmdNext, cmdSend, clicked1, clicked2: command;&lt;br /&gt;  phoneNum, msg: string;&lt;br /&gt;&lt;br /&gt;procedure ShowMainForm;&lt;br /&gt;begin&lt;br /&gt;  ClearForm;&lt;br /&gt;  SetFormTitle('Mengirim SMS');&lt;br /&gt; &lt;br /&gt;  IDNoHP := FormAddTextField('No. HP Tujuan:', '',&lt;br /&gt;                             20, TF_PHONENUMBER); &lt;br /&gt;  ShowForm;&lt;br /&gt; &lt;br /&gt;  AddCommand(cmdExit);&lt;br /&gt;  AddCommand(cmdNext);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure SendSMS(destination, message: string);&lt;br /&gt;begin&lt;br /&gt;  if not SmsStartSend(destination, message) then Halt;&lt;br /&gt;&lt;br /&gt;  while SmsIsSending do begin&lt;br /&gt;    Delay(100);&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  if not SmsWasSuccessfull then Halt;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;  // membuat objek Command&lt;br /&gt;  cmdExit := CreateCommand('Keluar', CM_EXIT, 1);&lt;br /&gt;  cmdNext := CreateCommand('Lanjut', CM_OK, 2);&lt;br /&gt;  cmdSend := CreateCommand('Kirim', CM_OK, 1);&lt;br /&gt;&lt;br /&gt;  ShowMainForm;&lt;br /&gt;&lt;br /&gt;  repeat&lt;br /&gt;    clicked1 := GetClickedCommand;&lt;br /&gt;    if clicked1 = cmdNext then begin&lt;br /&gt;      // mendapatkan nomor HP&lt;br /&gt;      phoneNum := FormGetText(IDNoHP);&lt;br /&gt;      // membuka layar TextBox&lt;br /&gt;      ShowTextBox('Isi Pesan', '', 100, TF_ANY);&lt;br /&gt;      AddCommand(cmdSend);&lt;br /&gt;      repeat&lt;br /&gt;        clicked2 := GetClickedCommand;&lt;br /&gt;      until clicked2 &lt;&gt; EmptyCommand;&lt;br /&gt;      if clicked2 = cmdSend then begin&lt;br /&gt;        SendSMS('sms://' + phoneNum, GetTextBoxString);&lt;br /&gt;        ShowMainForm;&lt;br /&gt;      end;&lt;br /&gt;    end;&lt;br /&gt;  until clicked1 = cmdExit;&lt;br /&gt; &lt;br /&gt;  if clicked1 = cmdExit then halt; &lt;br /&gt;end.&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/2251555276877506375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=2251555276877506375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/2251555276877506375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/2251555276877506375'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2008/01/mengirim-sms-dengan-midletpascal.html' title='Mengirim SMS dengan MIDletPascal'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-1205962141460901460</id><published>2008-01-05T09:38:00.000+07:00</published><updated>2008-01-05T09:40:26.126+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi/Pascal'/><title type='text'>Membuat Mobile Application dengan MIDletPascal</title><content type='html'>Anda tahu? Selain menggunakan Java 2 Platform, Micro Edition (J2ME), pengembangan mobile application (aplikasi-aplikasi untuk handphone) juga dapat dilakukan dengan mudah menggunakan MIDletPascal, khususnya bagi Anda yang memiliki background Pascal/Delphi/Kylix. Melalui MIDletPascal, para programmer Pascal/Delphi/Kylix tidak perlu repot mempelajari Java dari awal terlebih dahulu hanya sekedar untuk mengembangkan aplikasi handphone. Cukup dengan menggunakan pengetahuan Pascal yang telah Anda miliki, Anda sudah dapat membuat beraneka macam aplikasi handphone, baik untuk keperluan pribadi maupun bisnis.&lt;br /&gt;&lt;br /&gt;MIDletPascal adalah bahasa pemrograman berbasis Pascal yang secara khusus ditujukan untuk mengembangkan aplikasi-aplikasi mobile (MIDlet). Kompilator (compiler) MIDletPascal secara otomatis akan menerjemahkan kode-kode Pascal yang ditulis menjadi file bytecode (kode objek dalam bahasa Java) sehingga file tersebut dapat langsung dieksekusi oleh sistem Java Runtime yang terdapat di dalam perangkat HP. Kode ditulis dalam bahasa Pascal, tapi hasilnya berupa file .JAR, itulah keunikan MIDletPascal. Software-nya bersifat FREE untuk personal use.&lt;br /&gt;&lt;br /&gt;Di tengah semaraknya pemrograman berorientasi objek (Object Oriented Programming - OOP) sekarang ini, MIDletPascal justru hadir dengan nuansa prosedural sehingga sintaknya mirip sekali dengan bahasa Pascal tradisional. MIDletPascal menawarkan berbagai kemudahan serta membungkus semua kerumitan yang ada dengan menyediakan fungsi-fungsi dan prosedur-prosedur siap pakai, yang akan menjadikan proses pengembangan aplikasi menjadi lebih cepat dan mudah.&lt;br /&gt;&lt;br /&gt;Karena saya pikir software ini cukup menarik, maka beberapa bulan lalu saya telah menyusun buku tentang MIDletPascal, dengan isi sebanyak 5 bab dan full dengan contoh-contoh programnya. Buku itu kemudian saya ajukan ke Penerbit Informatika Bandung. Tapi, sampai saat ini ternyata belum ada kabar beritanya, apakah mau diterbitkan atau tidak. Lagi-lagi, ini semua pasti kembali ke masalah bisnis. Saya sadar bahwa sebagus apa pun buku yang kita buat (diukur dari kacamata kita sendiri), jika buku tersebut kurang laku, belum dikenal atau kurang diminati pasar, pihak penerbit tetap saja akan maju-mundur dan berpikir berulang kali untuk menerbitkannya. Inilah salah satu kekurangan orang teknis, biasanya mereka lebih memandang sesuatu hal hanya dari kacamatanya sendiri, tanpa memikirkan lebih jauh respon pasar. Biasanya, ukuran mereka adalah diri sendiri.&lt;br /&gt;&lt;br /&gt;Bagi Anda yang ingin mencoba software ini, silahkan download di &lt;a href="http://www.midletpascal.com"&gt;http://www.midletpascal.com&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/1205962141460901460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=1205962141460901460' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/1205962141460901460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/1205962141460901460'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2008/01/membuat-mobile-application-dengan.html' title='Membuat Mobile Application dengan MIDletPascal'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-2056676035735053672</id><published>2007-12-17T11:34:00.000+07:00</published><updated>2008-01-04T13:43:36.386+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Dapatkan DVD Netbeans Gratis</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_gNo_HDH9ReU/R2X_doGdwnI/AAAAAAAAAA0/usyZwVfEGRs/s1600-h/netbeans.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_gNo_HDH9ReU/R2X_doGdwnI/AAAAAAAAAA0/usyZwVfEGRs/s400/netbeans.JPG" alt="" id="BLOGGER_PHOTO_ID_5144799033786483314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bagi Anda yang senang menggunakan Netbeans sebagai IDE untuk menulis kode-kode program Java yang Anda buat, Anda dapat memperoleh DVD Netbeans versi terbaru secara cuma-cuma alias GRATIS di &lt;a href="http://www.netbeans.org/"&gt;http://www.netbeans.org&lt;/a&gt;, tepatnya pada link &lt;a href="http://www.netbeans.org/about/media.html"&gt;Get Free DVD&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.netbeans.org/about/media.html"&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/2056676035735053672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=2056676035735053672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/2056676035735053672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/2056676035735053672'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2007/12/dapatkan-cd-netbeans-gratis.html' title='Dapatkan DVD Netbeans Gratis'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_gNo_HDH9ReU/R2X_doGdwnI/AAAAAAAAAA0/usyZwVfEGRs/s72-c/netbeans.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-6512756696720314284</id><published>2007-12-17T10:46:00.000+07:00</published><updated>2007-12-17T11:32:03.892+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Mengembalikan Result Set dalam Oracle Stored Procedure</title><content type='html'>Dalam pengembangan aplikasi database, khususnya di Oracle, seringkali kita membutuhkan sebuah stored procedure yang dapat mengembalikan result set (record set). Cara termudah untuk membuat prosedur semacam ini adalah dengan menggunakan tipe data SYS_REFCURSOR (yang baru dikenalkan pada versi 9i). Selanjutnya, result set yang dikembalikan ini dapat kita tangkap melalui sebuah cursor atau dari aplikasi yang kita buat (misalnya dengan menggunakan Delphi atau yang lainnya).&lt;br /&gt;&lt;br /&gt;Sebagai contoh, apabila kita ingin membuat stored procedure yang dapat mengembalikan semua customer yang berdomisili di kota Bandung, maka kita dapat menuliskan kode seperti berikut:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;create or replace procedure&lt;br /&gt;ShowBdgCustomers(vResultSet in out SYS_REFCURSOR) as&lt;br /&gt;begin&lt;br /&gt;open vResultSet for&lt;br /&gt;      select * from customers where upper(country) = 'BANDUNG';&lt;br /&gt;end;&lt;/pre&gt;&lt;br /&gt;Kode di atas hanya akan dikenali apabila Anda menggunakan versi 9i atau versi di atasnya. Apabila Anda menggunakan versi sebelumnya, maka Anda perlu membuat sebuah package dimana di dalam package tersebut Anda harus mendefinisikan tipe data baru menggunakan tipe REF CURSOR. Berikut ini contoh kodenya:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-- membuat package specification&lt;br /&gt;create or replace package test_package as&lt;br /&gt;type CUST is REF CURSOR return customers%ROWTYPE;&lt;br /&gt;procedure ShowBdgCustomers(vResultSet in out CUST);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;-- membuat package body&lt;br /&gt;create or replace package body test_package as&lt;br /&gt;procedure ShowBdgCustomers(vResultSet in out CUST) as&lt;br /&gt;begin&lt;br /&gt;  open vResultSet for&lt;br /&gt;    select * from customers where upper(country) = 'BANDUNG';&lt;br /&gt;end;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/6512756696720314284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=6512756696720314284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/6512756696720314284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/6512756696720314284'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2007/12/mengembalikan-result-set-dalam-oracle.html' title='Mengembalikan Result Set dalam Oracle Stored Procedure'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-6681812361949130578</id><published>2007-12-17T10:45:00.000+07:00</published><updated>2007-12-17T10:46:42.256+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Mengganti Nama Tabel di Oracle</title><content type='html'>Oracle mengizinkan kita untuk mengubah nama tabel, yaitu dengan menyediakan statemen RENAME. Berikut ini bentuk umum untuk menggunakan statemen tersebut.&lt;br /&gt;&lt;br /&gt;RENAME nama_tabel_lama TO nama_tabel_baru;&lt;br /&gt;&lt;br /&gt;Sebagai contoh, apabila kita ingin mengganti nama tabel dari SISWA menjadi MURID, maka kita perlu menuliskan kode seperti berikut:&lt;br /&gt;&lt;br /&gt;RENAME SISWA TO MURID;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/6681812361949130578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=6681812361949130578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/6681812361949130578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/6681812361949130578'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2007/12/mengganti-nama-tabel-di-oracle.html' title='Mengganti Nama Tabel di Oracle'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-5182990281454065782</id><published>2007-12-17T10:41:00.000+07:00</published><updated>2007-12-17T10:45:17.852+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java Compiler 1.5.0 Bermasalah dengan JDBC - ???</title><content type='html'>Pada saat saya ingin mengakses database Oracle versi 10g Release 1 maupun MySQL 4.23 dari program Java dengan menggunakan JDK 1.5.0, saya masih menemui masalah yang serupa, yaitu eksepsi UnsupportedClassVersionError.&lt;br /&gt;&lt;br /&gt;Kompilasi dapat berjalan mulus, tapi pada saat dijalankan, selalu muncul pesan seperti ini.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;C:\jdbctest&gt;javac SQLTest.java  &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;[OK]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;C:\jdbctest&gt;java SQLTest  &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;[BERMASALAH]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Exception in thread "main" java.lang.UnsupportedClassVersionError: SQLTest (Unsu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;pported major.minor version 49.0)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.lang.ClassLoader.defineClass0(Native Method)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.lang.ClassLoader.defineClass(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.security.SecureClassLoader.defineClass(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.net.URLClassLoader.defineClass(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.net.URLClassLoader.access$100(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.net.URLClassLoader$1.run(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.security.AccessController.doPrivileged(Native Method)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.net.URLClassLoader.findClass(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.lang.ClassLoader.loadClass(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.lang.ClassLoader.loadClass(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        at java.lang.ClassLoader.loadClassInternal(Unknown Source)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Akhirnya, solusi yang saya ambil adalah dengan melakukan kompilasi ulang menggunakan Java Compiler 1.4.2. Dan ini dapat berjalan sesuai dengan apa yang saya harapkan.</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/5182990281454065782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=5182990281454065782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/5182990281454065782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/5182990281454065782'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2007/12/java-compiler-150-bermasalah-dengan.html' title='Java Compiler 1.5.0 Bermasalah dengan JDBC - ???'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-6147078758654755432</id><published>2007-12-17T10:36:00.000+07:00</published><updated>2007-12-17T10:41:09.072+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Bermain List di dalam Java</title><content type='html'>Membuat List berisi String&lt;br /&gt;&lt;br /&gt;Bagi Anda yang berangkat dari dunia Delphi, tentu Anda sudah terbiasa menggunakan kelas TList, TStrings dan TStringList, yaitu kelas-kelas yang digunakan untuk menyimpan daftar pointer/objek dan string. Dalam Java, kita juga dapat melakukan hal tersebut dengan mudah, yaitu dengan menggunakan kelas List. Kelas List merupakan kelas abstrak sehingga kita perlu membuat instance dari kelas turunannya: ArrayList. Untuk melakukan navigasi terhadap isi dari daftar yang tersimpan dalam kelas ArrayList, kita harus menggunakan kelas Iterator. Kelas-kelas ini tersimpan dalam paket java.util. Berikut ini contoh kode program yang akan menunjukkan penggunaan kelas tersebut.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;public class StringList {&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;    List stringList = new ArrayList();&lt;br /&gt;    Iterator i = stringList.iterator();&lt;br /&gt;    stringList.add("satu");&lt;br /&gt;    stringList.add("dua");&lt;br /&gt;    stringList.add("tiga");&lt;br /&gt;    while (i.hasNext()) {&lt;br /&gt;      System.out.println((String) i.next());&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Pada kode di atas, kita membuat sebuah objek atau instance dari kelas ArrayList. Untuk menambahkan data atau item ke dalam daftar tersebut, gunakan method add().&lt;br /&gt;&lt;br /&gt;Membuat List berisi Angka&lt;br /&gt;&lt;br /&gt;Di atas, Anda telah melihat bagaimana mudahnya cara pembuatan daftar (List) berisi String di dalam Java. Sekarang, saya akan menunjukkan cara untuk membuat List yang isinya berupa data numerik/angka (baik bilangan bulat maupun riil). Caranya sederhana sekali, dan sama seperti pembuatan daftar String. Perbedaannya terletak pada saat penambahan dan pemanggilan datanya. Anda hanya perlu melakukan typecasting dari setiap item ke tipe Integer maupun Double. Jadi, kodenya kurang lebih akan menjadi seperti berikut:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;List numbers = new ArrayList();&lt;br /&gt;numbers.add(1);&lt;br /&gt;numbers.add(2);&lt;br /&gt;numbers.add(3);&lt;br /&gt;Iterator i = numbers.iterator();&lt;br /&gt;while (i.hasNext()) {&lt;br /&gt;  System.out.println(((Integer) i.hasNext()) * 100);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Kode di atas akan mencetak hasil seperti berikut:&lt;br /&gt;100&lt;br /&gt;200&lt;br /&gt;300&lt;br /&gt;&lt;br /&gt;Selain bilangan bulat (seperti contoh di atas), kita juga dapat memasukkan data yang berupa bilangan riil.&lt;br /&gt;&lt;br /&gt;numbers.add(1.2);&lt;br /&gt;numbers.add(2.3);&lt;br /&gt;numbers.add(4.5);&lt;br /&gt;&lt;br /&gt;Pada saat pemanggilan, Anda perlu mengganti tipe target dari proses typecasting yang dilakukan.&lt;br /&gt;&lt;br /&gt;(Double) i.hasNext()&lt;br /&gt; &lt;br /&gt;Membuat List berisi Objek&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;class MyClass {&lt;br /&gt;  private int x;&lt;br /&gt;  public MyClass(int x) {&lt;br /&gt;    this.x = x;&lt;br /&gt;  }&lt;br /&gt;  public int getX() {&lt;br /&gt;    return x;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class ObjectList {&lt;br /&gt;  public static void main(String[] args) {   &lt;br /&gt;    List objects = new ArrayList();&lt;br /&gt;    objects.add(new MyClass(1));&lt;br /&gt;    objects.add(new MyClass(2));&lt;br /&gt;    objects.add(new MyClass(3));&lt;br /&gt;    Iterator i = objects.iterator();&lt;br /&gt;    while (i.hasNext()) {&lt;br /&gt;      System.out.println(((MyClass) i.next()).getX() * 10);&lt;br /&gt;    }    &lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/6147078758654755432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=6147078758654755432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/6147078758654755432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/6147078758654755432'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2007/12/bermain-list-di-dalam-java.html' title='Bermain List di dalam Java'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-3707511696738106454</id><published>2007-08-12T10:00:00.000+07:00</published><updated>2008-01-05T10:14:49.820+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Buku BEST SELLER</title><content type='html'>Alhamdulillah, dari beberapa buah buku yang saya tulis, ada empat buku yang termasuk dalam kategori buku laris: Pemrograman C++, Teknik Pemrograman Pascal, Pemrograman JAVA untuk Handphone, dan Mudah Belajar JAVA.&lt;br /&gt;&lt;br /&gt;Untuk melihat daftar isi dan contoh bab yang terdapat dalam buku-buku tersebut, Anda dapat men-download dari link di bawah ini.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;Pemrograman C++: Mudah dan Cepat Menjadi MASTER C++&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_gNo_HDH9ReU/Rr56Yv0KVeI/AAAAAAAAAAM/hW2ZZyjeEUM/s1600-h/cpp.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_gNo_HDH9ReU/Rr56Yv0KVeI/AAAAAAAAAAM/hW2ZZyjeEUM/s320/cpp.jpg" alt="" id="BLOGGER_PHOTO_ID_5097646393800676834" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;[Cover Lama]&lt;/span&gt;&lt;br /&gt;Penulis: Budi Raharjo&lt;br /&gt;Penerbit: INFORMATIKA Bandung&lt;br /&gt;Daftar Isi: [&lt;a href="http://www.geocities.com/pemrograman/toc_cpp.pdf"&gt;Download&lt;/a&gt;]&lt;br /&gt;Contoh Isi: Bab 14 - Operator Overloading [&lt;a href="http://www.geocities.com/pemrograman/bab14_cpp.pdf"&gt;Download&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_gNo_HDH9ReU/Rr6H-P0KVhI/AAAAAAAAAAk/ez4HN0o5T4g/s1600-h/cpprev.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_gNo_HDH9ReU/Rr6H-P0KVhI/AAAAAAAAAAk/ez4HN0o5T4g/s320/cpprev.jpg" alt="" id="BLOGGER_PHOTO_ID_5097661331696932370" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;[Cover Baru]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sinopsis&lt;/span&gt;: C++ merupakan bahasa pemrograman yang sangat populer dan telah banyak digunakan untuk mengembangkan perangkat lunak di berbagai bidang, seperti: telekomunikasi, embedded-system, bisnis, dan hiburan.&lt;br /&gt;&lt;br /&gt;Salah satu keandalan dari C++ adalah karena bahasa ini mendukung sepenuhnya konsep pemrograman berorientasi objek, atau yang sering dikenal dengan  OOP (Object Oriented Programming). Karena sifatnya yang tidak tergantung pada platform manapun (cross-platform), C++ juga telah menjadi bagian hidup dari sebagian para pecinta Linux.&lt;br /&gt;&lt;br /&gt;C++ sendiri telah mengalami evolusi melalui proses standarisasi dari ANSI (American National Standards Institute) dan ISO (International Standards Organization), yaitu dengan memasukkan fitur-fitur baru ke dalamnya.&lt;br /&gt;&lt;br /&gt;Buku ini membahas semua komponen yang terkandung dalam C++ standar, dari pangkal sampai ke ujung; dari yang termudah sampai yang tersulit, sehingga dapat mengantarkan Anda untuk mempersiapkan diri menjadi seorang MASTER C++. Melalui bahasa penyampaian yang 'ringan' dan banyaknya contoh program yang ada, mudah-mudahan buku ini dapat menjadi referensi yang dapat membantu Anda dalam menguasai C++ secara mudah dan cepat.&lt;br /&gt;&lt;br /&gt;Untuk lebih memudahkan Anda dalam mempelajari semua materi, buku ini juga disertai CD yang berisi kode program (source code) beserta IDE (Integrated Development Environment) dan compiler C/C++ (MinGW Developer Studio) yang mendukung semua fitur dalam bahasa C++ standar, baik untuk sistem operasi Microsoft Windows maupun Linux.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;Tuntunan Pemrograman JAVA untuk HANDPHONE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_gNo_HDH9ReU/Rr56xv0KVfI/AAAAAAAAAAU/ZnLOtsxmstM/s1600-h/javame.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_gNo_HDH9ReU/Rr56xv0KVfI/AAAAAAAAAAU/ZnLOtsxmstM/s320/javame.jpg" alt="" id="BLOGGER_PHOTO_ID_5097646823297406450" border="0" /&gt;&lt;/a&gt;Penulis: Budi Raharjo, Imam Heryanto, Arif Haryono&lt;br /&gt;Penerbit: INFORMATIKA Bandung&lt;br /&gt;Daftar Isi: [&lt;a href="http://www.geocities.com/pemrograman/toc_javame.pdf"&gt;Download&lt;/a&gt;]&lt;br /&gt;Contoh Isi: Bab 2 - Command dan CommandListener [&lt;a href="http://www.geocities.com/pemrograman/bab2_javame.pdf"&gt;Download&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sinopsis&lt;/span&gt;: Java merupakan bahasa pemrograman populer yang dapat digunakan untuk mengembangkan beraneka ragam tipe aplikasi; mulai dari aplikasi-aplikasi desktop, applet, aplikasi web berskala enterprise, dan juga perangkat-perangkat kecil seperti: pager, telepon seluler, maupun PDA. Untuk memenuhi kebutuhan tersebut, Java dikategorikan ke dalam tiga buah edisi:&lt;br /&gt;- J2SE (Java 2 Standard Edition) -- untuk mengembangkan aplikasi-aplikasi desktop dan applet&lt;br /&gt;- J2EE (Java 2 Enterprise Edition) -- untuk mengembangkan aplikasi-aplikasi berbasis client/server berskala enterprise&lt;br /&gt;- J2ME (Java 2 Micro Edition) -- untuk mengembangkan aplikasi-aplikasi yang dapat dijalankan di dalam perangkat kecil&lt;br /&gt;&lt;br /&gt;Buku ini akan membahas secara khusus mengenai pemrograman J2ME. Di sini, Anda akan dituntun untuk memahami arsitektur, konsep, dan teknik-teknik pembuatan aplikasi yang dapat dijalankan di dalam handphone; mulai dari yang sederhana sampai ke tingkat yang lebih kompleks. Dengan demikian, Anda akan memperoleh pemahaman secara komprehensif.&lt;br /&gt;&lt;br /&gt;Dengan adanya kombinasi penyajian materi yang optimal antara teori dan praktek, buku ini sangat mudah dipelajari oleh siapa saja yang berminat menekuni dunia pemrograman J2ME. Selanjutnya, untuk mematangkan konsep dan memahami implementasi dari materi yang Anda pelajari, buku ini juga disertai dengan satu bab khusus yang berisi kumpulan studi kasus riil yang banyak dijumpai di lapangan kerja beserta penyelesaian dan penjelasannya; sehingga Anda dapat langsung mengimplementasikannya ke dalam permasalahan-permasalahan program yang Anda hadapi.&lt;br /&gt;&lt;br /&gt;Agar Anda lebih mudah dalam mempelajari materi-materi yang disampaikan, buku ini juga disertai CD yang berisi source code dari contoh-contoh aplikasi yang ada dan software yang dibutuhkan (J2SE SDK dan J2ME Wireless Toolkit), baik untuk sistem operasi Windows maupun Linux.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;Mudah Belajar JAVA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_gNo_HDH9ReU/Rr57Pf0KVgI/AAAAAAAAAAc/RGyWcXRVjNc/s1600-h/javase.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_gNo_HDH9ReU/Rr57Pf0KVgI/AAAAAAAAAAc/RGyWcXRVjNc/s320/javase.jpg" alt="" id="BLOGGER_PHOTO_ID_5097647334398514690" border="0" /&gt;&lt;/a&gt;Penulis: Budi Raharjo, Imam Heryanto, dan Arif Haryono&lt;br /&gt;Penerbit: INFORMATIKA Bandung&lt;br /&gt;Daftar Isi: [&lt;a href="http://www.geocities.com/pemrograman/toc_javase.pdf"&gt;Download&lt;/a&gt;]&lt;br /&gt;Contoh Isi: Bab 1 - Pengenalan Java [&lt;a href="http://www.geocities.com/pemrograman/bab1_javase.pdf"&gt;Download&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sinopsis&lt;/span&gt;: Java merupakan bahasa pemrograman yang saat ini sedang 'naik daun' dan banyak digunakan oleh para programmer dan software developer untuk mengembangkan berbagai tipe aplikasi, mulai dari aplikasi console, aplikasi desktop, applet (aplikasi yang berjalan di lingkungan web browser), sampai ke aplikasi-aplikasi yang berskala enterprise. Untuk memenuhi kebutuhan tipe aplikasi yang beragam tersebut, Java dikategorikan menjadi tiga edisi, yaitu: J2SE (Java 2 Platform, Standard Edition) -- untuk pembuatan aplikasi-aplikasi desktop dan applet, J2EE (Java 2 Platform, Enterprise Edition) -- untuk pembuatan aplikasi-aplikasi multitier berskala enterprise, J2ME (Java 2 Plaftorm, Micro Edition) -- untuk pembuatan aplikasi-aplikasi yang dapat dijalankan di lingkungan perangkat-perangkat mikro seperti handphone dan PDA.&lt;br /&gt;&lt;br /&gt;Buku ini akan membahas semua teknik pemrograman di dalam J2SE, yang merupakan 'core' atau inti dari pemrograman Java. Melalui buku ini, Anda akan diajak untuk mengenal, memahami, mempraktekkan, dan mampu mengimplementasikan konsep-konsep yang diperlukan dalam pemrograman Java. Pembahasan dari buku ini akan dimulai dari yang sederhana, yaitu dengan penguasaan elemen-elemen dasar program seperti: arsitektur program di dalam Java beserta dengan teknik pembuatan dan kompilasinya, tipe data, operator, struktur kontrol, dan sebagainya. Selanjutnya, Anda akan diajak untuk bereksplorasi tentang fitur-fitur yang mendukung konsep pemrograman berorientasi objek di dalam Java. Terakhir, Anda akan dikenalkan dengan teknik-teknik pemrograman tingkat lanjut, termasuk cara-cara pembuatan aplikasi visual (aplikasi berbasis GUI -- Graphical User Interface) di dalam Java.&lt;br /&gt;&lt;br /&gt;Buku ini cocok untuk siapa saja yang berminat mempelajari dan mengimplementasikan semua konsep pemrograman Java secara mudah dan cepat. Semua materi dalam buku ini disuguhkan dalam 'logat tutorial' dan langsung disertai dengan contoh program sehingga akan mudah untuk dipelajari. Tujuan akhir dari buku ini adalah mengantarkan, menuntun, dan memandu Anda untuk menjadi seorang programmer Java.&lt;br /&gt;&lt;br /&gt;Untuk memudahkan Anda dalam mempelajari semua materi yang disampaikan, buku ini juga disertai dengan CD pendukung yang berisi kode sumber (source code) dari contoh-contoh program yang ada dan software-software yang dibutuhkan sehingga Anda tidak perlu repot mencari maupun men-download-nya dari internet.&lt;br /&gt;&lt;br /&gt;Adapun isi CD pendukung yang terdapat di dalam buku ini adalah sebagai berikut:&lt;br /&gt;- kode sumber (source code)&lt;br /&gt;- software J2SE SDK, Standard Edition&lt;br /&gt;- software Java IDE (Integerated Development Environment)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JCreator&lt;/li&gt;&lt;li&gt;Eclipse&lt;/li&gt;&lt;li&gt;Netbeans&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/3707511696738106454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=3707511696738106454' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/3707511696738106454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/3707511696738106454'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2007/08/buku-best-seller.html' title='Buku BEST SELLER'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_gNo_HDH9ReU/Rr56Yv0KVeI/AAAAAAAAAAM/hW2ZZyjeEUM/s72-c/cpp.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-115095801823381995</id><published>2006-06-22T13:27:00.000+07:00</published><updated>2008-01-04T13:40:36.207+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Masih Canggung dengan Oracle SQL Developer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6113/1993/1600/sqldeveloper.0.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6113/1993/320/sqldeveloper.png" alt="" border="0" /&gt;&lt;/a&gt;Sejak beberapa waktu yang lalu saya mencoba untuk menggunakan software gratisan yang diproduksi oleh Oracle, yaitu &lt;span style="font-weight: bold;"&gt;Oracle SQL Developer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Tool ini merupakan salah satu tool yang saya anggap dapat membantu mempercepat pekerjaan-pekerjaan saya dalam menggunakan database Oracle. Sejauh ini, rilis Oracle SQL Developer sudah tersedia untuk MS Windows, Linux, dan Solaris; dan saya sendiri menggunakannya di atas Fedora Core 2. Lumayan membantu..., meskipun saya pribadi masih agak canggung dalam penggunaannya. Satu lagi, untuk menjalankan software tersebut sebelumnya kita perlu memasang JDK 1.5.0 di dalam komputer kita.&lt;br /&gt;&lt;br /&gt;Anda dapat men-download-nya melalui link berikut:&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/products/database/sql_developer/"&gt;http://www.oracle.com/technology/products/database/sql_developer/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Berikut ini contoh perintah untuk menjalankan Oracle SQL Developer (untuk Linux), dengan asumsi kita menempatkan software SQL Developer dan JDK di direktori /opt:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;$ export PATH=$PATH:/opt/jdk1.5.0_06/bin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;$ cd /opt/sqldeveloper&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;$ sh sqldeveloper&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Selamat mencoba..</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/115095801823381995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=115095801823381995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/115095801823381995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/115095801823381995'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/06/masih-canggung-dengan-oracle-sql.html' title='Masih Canggung dengan Oracle SQL Developer'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-114906120784496461</id><published>2006-05-31T14:13:00.000+07:00</published><updated>2008-01-05T10:01:22.867+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Membuat Objek "Database Link" di Oracle</title><content type='html'>Dalam Oracle, kita diizinkan untuk mengacu data yang berada di luar database lokal yang kita gunakan, yaitu dengan menghadirkan fitur (berupa objek database) yang dinamakan dengan database link. Sebagai contoh, database server yang sedang kita gunakan diidentifikasi dengan nama MYLOCALDB; kemudian kita ingin mengakses data-data yang terdapat pada server-server lain, misalnya OTHERDB1, OTHERDB2, dan seterusnya, tanpa harus menutup koneksi yang kita lakukan ke MYLOCALDB. Bagaimana caranya? Jawabnya sangat sederhana, yaitu dengan membuat objek database link di dalam database MYLOCALDB. Hal yang perlu diingat adalah: yakinkan Anda telah membuat service untuk masing-masing database yang akan kita akses (OTHERDB1, OTHERDB2, ...) pada file tnsnames.ora melalui SQL*Net atau Net8. Selanjutnya, kita hanya perlu mengeksekusi perintah seperti berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;create public database link MYLINK1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;connect to budidba identified by ab234cd&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;using 'OTHERDB1';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Untuk menggunakan/mengakses data dari database link tersebut, kita cukup menuliskan perintah berikut ini.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;select * from pegawai@MYLINK1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Atau bila Anda merasa tidak nyaman dengan gaya penulisan di atas, maka Anda dapat membuat objek synonym (nama lain), yaitu dengan perintah berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;create synonym pegawai for pegawai@MYLINK1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dengan demikian, kita sudah dapat melakukan query pada tabel pegawai yang terdapat pada database OTHERDB1 melalui database kita (MYLOCALDB) dengan menggunakan perintah di bawah ini.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;select * from pegawai;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sebagai tambahan, bila kita sudah tidak membutuhkan objek database link tersebut, maka kita dapat menghapusnya dengan menggunakan statemen &lt;span style="color: rgb(153, 0, 0);"&gt;DROP [public] DATABASE LINK  nama_link&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Selamat mencoba.</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/114906120784496461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=114906120784496461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114906120784496461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114906120784496461'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/05/membuat-objek-database-link-di-oracle.html' title='Membuat Objek &quot;Database Link&quot; di Oracle'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-114586404031593655</id><published>2006-04-24T14:19:00.000+07:00</published><updated>2006-04-24T14:34:00.593+07:00</updated><title type='text'>Bench Games II: Brainbench Gratis Lagi...</title><content type='html'>Terdapat kesempatan &lt;span style="color: rgb(255, 153, 0); font-weight: bold; font-style: italic;"&gt;emas&lt;/span&gt; bagi Anda yang ingin mengikuti ujian sertifikasi. Pasalnya, pada periode &lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;1-15 Mei 2006&lt;/span&gt; mendatang, Brainbench rencananya akan mengadakan kembali games "kompetisi intelektual" dengan meng-gratis-kan semua test-test yang ada (lebih dari 500 test), yang dinamakan dengan &lt;span style="font-weight: bold;"&gt;Bench Games II&lt;/span&gt;. Dalam keadaan normal (tidak gratis), Anda harus mengeluarkan $49.50 untuk setiap test yang Anda ikuti, tapi sekarang Anda dapat menguji kemampuan Anda sepuas-puasnya..&lt;br /&gt;&lt;br /&gt;Bagi Anda yang belum menjadi member, silahkan melakukan registrasi di &lt;a href="http://www.brainbench.com"&gt;www.brainbench.com&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/114586404031593655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=114586404031593655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114586404031593655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114586404031593655'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/04/bench-games-ii-brainbench-gratis-lagi.html' title='Bench Games II: Brainbench Gratis Lagi...'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-114533695490221620</id><published>2006-04-18T11:33:00.000+07:00</published><updated>2008-01-05T10:02:28.811+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi/Pascal'/><title type='text'>Style dalam CLX (C++Builder/Delphi/Kylix)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6113/1993/1600/contoh.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6113/1993/320/contoh.jpg" alt="" border="0" /&gt;&lt;/a&gt;Ketika kita bekerja dengan VCL (&lt;span style="font-style: italic;"&gt;Visual Component Library&lt;/span&gt;) di dalam Delphi maupun C++Builder, sistem operasi akan memegang kendali penuh terhadap tampilan kontrol yang terdapat pada setiap UI (&lt;span style="font-style: italic;"&gt;User-Interface&lt;/span&gt;) yang kita buat. Untuk mengubah tampilan sesuai dengan keinginan kita, maka kita pun harus melakukan modifikasi terhadap kontrol-kontrol tersebut melalui &lt;span style="font-style: italic;"&gt;Owner-Draw&lt;/span&gt;; ini tentu akan menjadi hal yang sangat merepotkan.&lt;br /&gt;&lt;br /&gt;Akan tetapi, bila kita menggunakan CLX (&lt;span style="font-style: italic;"&gt;Component Library for Cross-Platform&lt;/span&gt;) di dalam C++Builder/Delphi/Kylix, kita dapat menentukan sendiri gaya tampilan yang kita inginkan sesuai dengan nilai-nilai enumerasi yang disimpan di dalam tipe TDefaultStyle (berada dalam unit QStyle).&lt;br /&gt;Berikut ini deklarasi dari tipe tersebut.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Delphi:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;type TDefaultStyle = (dsWindows, dsMotif, dsMotifPlus, dsCDE, dsQtSGI, dsPlatinum, dsSystemDefault);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;C++Builder:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;enum TDefaultStyle {dsWindows, dsMotif, dsMotifPlus, dsCDE, dsQtSGI, dsPlatinum, dsSystemDefault};&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Kode yang dapat digunakan untuk mengubah gaya tampilan dengan nilai-nilai di atas adalah seperti berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Application.Style.DefaultStyle := TDefaultStyle (ListBox1.ItemIndex);   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;//Delphi&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Application-&gt;Style-&gt;DefaultStyle = (TDefaultStyle) ListBox1-&gt;ItemIndex;  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;//C++Builder&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/114533695490221620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=114533695490221620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114533695490221620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114533695490221620'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/04/style-dalam-clx-cbuilderdelphikylix.html' title='Style dalam CLX (C++Builder/Delphi/Kylix)'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-114223546361607030</id><published>2006-03-13T14:07:00.000+07:00</published><updated>2008-01-05T10:03:24.464+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Apa Arti Tanda "=&gt;" di dalam Oracle?</title><content type='html'>Bagi Anda para pengguna setia Oracle tentu telah terbiasa dengan pembuatan  &lt;span style="font-style: italic;"&gt;stored procedure/function&lt;/span&gt; yang di dalamnya memiliki satu (atau lebih) parameter. Lalu apa hubungannya dengan tanda "=&gt;"? Tanda tersebut dapat digunakan untuk memudahkan kita dalam mengisikan nilai parameter aktual pada saat pemanggilan prosedur atau fungsi bersangkutan. Dengan menggunakan tanda =&gt; maka parameter aktual tidak harus sama urutannya dengan parameter formal, asalkan nama parameternya disebutkan.&lt;br /&gt;&lt;br /&gt;Di sini saya akan menunjukkan bagaimana cara penggunaan tanda tersebut di dalam pemanggilan fungsi. Sebelumnya, saya telah memiliki sebuah contoh fungsi dengan nama &lt;span style="color: rgb(153, 0, 0);"&gt;TestFunc()&lt;/span&gt; yang memiliki dua buah parameter bertipe INTEGER, dengan kode pembuatan seperti berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;SQL&gt; create or replace function TestProc(a in integer, b in integer) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;2 return integer &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;3 as&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;4 begin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;5     return (a + b);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;6 end;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;7 /&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Untuk melakukan pemanggilan fungsi tersebut secara &lt;span style="font-style: italic;"&gt;normal&lt;/span&gt;, maka kita akan menuliskannya seperti berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;TestFunc(12, 13)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pada kode di atas, nilai &lt;span style="font-weight: bold;"&gt;12&lt;/span&gt; akan dimasukkan ke dalam parameter &lt;span style="color: rgb(153, 0, 0);"&gt;a&lt;/span&gt;, dan &lt;span style="font-weight: bold;"&gt;13&lt;/span&gt; ke dalam parameter &lt;span style="color: rgb(153, 0, 0);"&gt;b&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Namun bila kita menggunakan tanda =&gt;, maka kita diizinkan untuk mengubah urutan dari parameter tersebut, sehingga pemanggilannya dapat kita lakukan melalui perintah berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;TestFunc(a =&gt; 12, b =&gt; 13)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ataupun&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;TestFunc(b =&gt; 13, a =&gt; 12)&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/114223546361607030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=114223546361607030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114223546361607030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114223546361607030'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/03/apa-arti-tanda-di-dalam-oracle.html' title='Apa Arti Tanda &quot;=&gt;&quot; di dalam Oracle?'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-114118183897691982</id><published>2006-03-01T09:27:00.000+07:00</published><updated>2006-03-01T10:11:04.510+07:00</updated><title type='text'>Membuat "Autonumber Field" di Oracle</title><content type='html'>Tidak seperti Microsoft Access, Oracle tidak menyediakan fitur untuk pembuatan &lt;span style="font-style: italic;"&gt;autonumber field&lt;/span&gt; (field yang nilainya diisikan dengan nilai urut secara otomatis). Tapi, kita dapat mengakalinya dengan membuat objek &lt;span style="font-style: italic;"&gt;sequence&lt;/span&gt; dan memanggilnya dari sebuah &lt;span style="font-style: italic;"&gt;trigger&lt;/span&gt;. Dalam tulisan ini saya ingin menunjukkan bagaimana melakukan hal tersebut.&lt;br /&gt;&lt;br /&gt;Asumsikan kita memiliki sebuah tabel (misalnya dengan nama &lt;span style="font-weight: bold;"&gt;T1&lt;/span&gt;) yang mengandung dua buah field -- &lt;span style="color: rgb(153, 0, 0);"&gt;No_urut&lt;/span&gt; dan &lt;span style="color: rgb(153, 0, 0);"&gt;Keterangan&lt;/span&gt;. Berikut ini kode DDL-nya:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;SQL&gt; create table t1 (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  2    no_urut number not null,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  3    keterangan varchar2(50),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  4    constraint pk_t1 primary key(no_urut)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  5  );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nilai dari field no_urut di atas akan kita isikan secara otomatis dengan menggunakan trigger. Artinya, setiap kali kita memasukkan record/baris baru terhadap tabel tersebut maka nilai dari field no_urut akan diisikan sesuai dengan urutan nilai maksimal yang ada. Untuk melakukan hal ini, sebelumnya kita perlu untuk membuat terlebih dahulu objek sequence. Berikut ini contoh kode pembuatan objek sequence yang saya maksudkan:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;SQL&gt; create sequence seq_nourut&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  2  start with 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  3  minvalue 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  4  increment by 1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Selanjutnya, saya membuat trigger (untuk event BEFORE INSERT) pada tabel T1. Di sini, saya bermaksud untuk memasukkan nilai sequence seq_nourut ke dalam nilai yang diacu oleh reference &lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;:new&lt;/span&gt; (reference yang terdapat pada event BEFORE atau AFTER INSERT). Berikut ini kode trigger yang saya buat:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;SQL&gt; create trigger tr_autonumber&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  2  before insert on t1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  3  for each row&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  4  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  5    select seq_nourut.nextval into :new.no_urut from dual;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  6  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  7  /&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sampai di sini, saya mencoba untuk mengisikan record ke dalam tabel T1, dengan menggunakan kode DML berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;insert into T1(keterangan) values('Keterangan #1');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;insert into T1(keterangan) values('Keterangan #2');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;insert into T1(keterangan) values('Keterangan #3');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Setelah itu, saya melakukan query terhadap semua field yang terdapat pada tabel T1, dan hasilnya adalah sebagai berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 Keterangan #1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 Keterangan #2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 Keterangan #3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 255);font-size:100%;" &gt;Selamat mencoba dan mudah-mudahan bermanfaat...&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/114118183897691982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=114118183897691982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114118183897691982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114118183897691982'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/03/membuat-autonumber-field-di-oracle.html' title='Membuat &quot;Autonumber Field&quot; di Oracle'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-114111221139855740</id><published>2006-02-28T13:47:00.000+07:00</published><updated>2008-01-05T10:04:10.379+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi/Pascal'/><title type='text'>Perbedaan Method "Free" dan "Destroy" di Delphi</title><content type='html'>Beberapa waktu lalu ada seorang teman bertanya kepada saya mengenai perbedaan yang ada antara method "&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;Free&lt;/span&gt;" dan "&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;Destroy&lt;/span&gt;" yang terdapat di dalam Delphi dan kenapa penggunaan "Free" lebih direkomendasikan?&lt;br /&gt;&lt;br /&gt;Konsepnya sederhana, di dalam Delphi setiap objek akan mewarisi method &lt;span style="color: rgb(153, 0, 0);"&gt;Destroy&lt;/span&gt; (disebut juga dengan &lt;span style="font-style: italic;"&gt;destructor&lt;/span&gt;) -- yang sebenarnya telah didefinisikan di dalam kelas &lt;span style="font-weight: bold;"&gt;TObject&lt;/span&gt; (&lt;span style="font-style: italic;"&gt;induk dari semua objek di dalam hirarki kelas yang ada&lt;/span&gt;). Method ini digunakan untuk membebaskan memori yang telah dialokasikan. Perlu Anda ketahui bahwa pada saat kita melakukan instansiasi sebuah objek, sebenarnya kita juga mengalokasikan sebuah pointer yang nilainya menunjuk ke alamat tertentu.&lt;br /&gt;&lt;br /&gt;Dalam dokumentasi Delphi disebutkan bahwa kita sangat dianjurkan untuk menggunakan method &lt;span style="color: rgb(153, 0, 0);"&gt;Free&lt;/span&gt; daripada &lt;span style="color: rgb(153, 0, 0);"&gt;Destroy&lt;/span&gt; dalam mendealokasikan sebuah objek dari memori. Mengapa demikian? Pada dasarnya &lt;span style="font-weight: bold;"&gt;method &lt;span style="color: rgb(153, 0, 0);"&gt;Free&lt;/span&gt; juga akan memanggil method &lt;span style="color: rgb(153, 0, 0);"&gt;Destroy&lt;/span&gt;&lt;/span&gt;, akan tetapi dalam method Free terdapat sebuah pengecekan terlebih dahulu terhadap pointer/objek yang akan dibebaskan -- &lt;span style="font-weight: bold;"&gt;nil&lt;/span&gt; atau tidak? -- Bila pointer tidak sama dengan &lt;span style="font-weight: bold;"&gt;nil&lt;/span&gt;, maka method &lt;span style="color: rgb(153, 0, 0);"&gt;Free&lt;/span&gt; secara otomatis akan memanggil method &lt;span style="color: rgb(153, 0, 0);"&gt;Destroy&lt;/span&gt;. Akan tetapi, bila ternyata pointer tersebut bernilai &lt;span style="font-weight: bold;"&gt;nil&lt;/span&gt;, maka method &lt;span style="color: rgb(153, 0, 0);"&gt;Free&lt;/span&gt; tidak akan melakukan apa-apa.&lt;br /&gt;&lt;br /&gt;Untuk lebih jelasnya, coba Anda perhatikan implementasi dari method &lt;span style="color: rgb(153, 0, 0);"&gt;Free&lt;/span&gt; yang terdapat pada kelas &lt;span style="font-weight: bold;"&gt;TObject&lt;/span&gt; (&lt;span style="font-style: italic;"&gt;kodenya dapat Anda lihat pada unit System di dalam Delphi&lt;/span&gt;), seperti berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;procedure TObject.Free;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  if Self &amp;lt;&amp;gt; nil then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;    Destroy;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Berikut ini contoh kode yang akan menunjukkan perbedaan di antara kedua method tersebut.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;interface&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;uses Classes;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;type&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;TContoh = class&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;// daftar property dan method&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;implementation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;// menggunakan method Destroy&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;procedure Form1.Button1Click(Sender: TObject);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;var&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;x : TContoh;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;x := nil;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;    // mencoba untuk memaksa agar pointer x bernilai nil&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;x.Destroy;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;   // ERROR, menyebabkan "access violation"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;// menggunakan method Free&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;procedure Form1.Button1Click(Sender: TObject);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt; var&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt; x : TContoh;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt; begin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt; x := nil;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;// Tidak menyebabkan masalah karena method Destroy memang tidak pernah dipanggil&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;x.Free; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt; end;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/114111221139855740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=114111221139855740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114111221139855740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/114111221139855740'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/02/perbedaan-method-free-dan-destroy-di.html' title='Perbedaan Method &quot;Free&quot; dan &quot;Destroy&quot; di Delphi'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113989386045046545</id><published>2006-02-14T12:01:00.000+07:00</published><updated>2008-01-05T10:05:38.347+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Memahami Arsitektur Oracle</title><content type='html'>Sebagai seorang DBA Oracle, hal pertama yang seharusnya dimiliki adalah pemahaman tentang arsitektur database yang terdapat di dalamnya, apa saja komponen-komponen yang terlibat, serta fungsi dan mekanisme dari masing-masing komponen tersebut. Kali ini, saya mencoba untuk menuliskan lagi artikel yang membahas tentang hal tersebut. Artikel ini telah dipublikasikan di &lt;a href="http://www.dbapool.com/"&gt;www.dbapool.com&lt;/a&gt; (situs komunitas DBA Oracle yang bertempat di India). Anda dapat membacanya melalui link berikut.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dbapool.com/articlelist.asp?id=021306.asp"&gt;The Basics of Oracle Architecture&lt;/a&gt; -- &lt;span style="font-style: italic;"&gt;by Budi Raharjo&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113989386045046545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113989386045046545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113989386045046545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113989386045046545'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/02/memahami-arsitektur-oracle.html' title='Memahami Arsitektur Oracle'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113895533922488340</id><published>2006-02-03T14:58:00.000+07:00</published><updated>2008-01-05T10:06:53.828+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Mengintip Proses Backup-Restore Data di MySQL</title><content type='html'>Beberapa waktu yang lalu saya mencoba untuk melakukan backup dan restore di dalam MySQL. Ternyata, bila dibandingkan dengan Oracle, backup-restore di MySQL 'mungkin' dapat dikatakan jauh lebih sederhana. Sama seperti Oracle, MySQL juga menyediakan beberapa cara untuk menangani proses backup dan restore data; seperti perintah &lt;span style="font-weight: bold;"&gt;BACKUP&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;SELECT INTO&lt;/span&gt;,  &lt;span style="font-weight: bold;"&gt;RESTORE&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;LOAD DATA&lt;/span&gt;, serta dengan menggunakan program &lt;span style="font-weight: bold;"&gt;mysqldump&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;mysqlhotcopy &lt;/span&gt;(yang ditulis dengan Perl), dan beberapa metode lainnya.&lt;br /&gt;&lt;br /&gt;Proses backup dan restore merupakan pekerjaan yang pasti dilakukan oleh para DBA (Database Administrator) maupun oleh user yang ingin mengamankan data-data hasil pekerjaannya. Di sini, saya mencoba untuk menuliskan sedikit cara-cara yang diperlukan untuk melakukan pekerjaan tersebut. Namun karena isi dan pokok bahasannya cukup banyak, maka saya memilih untuk menyimpan dokumen ini ke dalam format PDF. Untuk melakukan download terhadap file tersebut, silahkan pilih link berikut:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geocities.com/bdraharjo/downloads/backup-restore-mysql.pdf"&gt;Mengintip Proses Backup-Restore Data di MySQL&lt;/a&gt; - &lt;span style="font-style: italic;"&gt;oleh: Budi Raharjo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mudah-mudahan bermanfaat...</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113895533922488340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113895533922488340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113895533922488340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113895533922488340'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/02/mengintip-proses-backup-restore-data.html' title='Mengintip Proses Backup-Restore Data di MySQL'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113860696245505123</id><published>2006-01-30T14:08:00.000+07:00</published><updated>2008-01-05T10:07:51.372+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>"Drop Datafile" dalam Oracle 10g Release 2</title><content type='html'>Salah satu fitur baru yang ditambahkan pada &lt;a href="http://www.oracle.com/technology/software/products/database/oracle10g/index.html"&gt;Oracle 10g Release 2&lt;/a&gt; adalah proses penghapusan (drop) datafile dari sebuah tablespace melalui cara yang sangat sederhana. Pada versi-versi sebelumnya, kita hanya diizinkan untuk melakukan penambahan datafile ke dalam tablespace -- kita tidak diizinkan untuk menghapusnya. Bila kita ingin menghapus datafile, berarti kita juga harus menghapus tablespace bersangkutan dengan menggunakan statemen &lt;span style="color: rgb(153, 0, 0);"&gt;DROP TABLESPACE INCLUDING CONTENTS AND DATAFILES&lt;/span&gt;. Dalam artikel lain (&lt;a href="http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:515222144417"&gt;How to 'Drop' a Datafile&lt;/a&gt;) juga disebutkan bahwa bila kita menuliskan statemen &lt;span style="color: rgb(153, 0, 0);"&gt;ALTER DATABASE DATAFILE &amp;lt;NamaDatafile&amp;gt; OFFLINE DROP&lt;/span&gt;, itu tidak berarti bahwa Oracle mengizinkan kita untuk menghapus datafile -- melainkan hanya untuk menjadikan datafile tersebut berada dalam keadaan OFFLINE. Berikut ini kutipan dari artikel tersebut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;&lt;span style="font-style: italic;"&gt;NOTE:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The ALTER DATABASE DATAFILE &amp;lt;datafile&amp;gt; OFFLINE DROP command, is not meant &lt;/span&gt;&lt;span style="font-style: italic;"&gt;to allow you to remove a datafile. What the command really means is that you are &lt;/span&gt;&lt;span style="font-style: italic;"&gt;offlining the datafile with the intention of dropping the tablespace.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Namun, dalam versi 10g Release 2, Oracle telah menyediakan klausa &lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;DROP DATAFILE&lt;/span&gt; sebagai opsi pada saat kita mengeksekusi statemen &lt;span style="color: rgb(153, 0, 0);"&gt;ALTER TABLESPACE&lt;/span&gt;. Sebagai contoh, apabila kita memiliki sebuah tablespace dengan nama &lt;span style="font-weight: bold;"&gt;MYTS&lt;/span&gt; yang berasosiasi dengan dua buah datafile (misalnya &lt;span style="font-weight: bold;"&gt;MYTS01.DBF&lt;/span&gt; dan &lt;span style="font-weight: bold;"&gt;MYTS02.DBF&lt;/span&gt;) yang terdapat pada direktori D:\ORADATA\LATIHDB, maka kita dapat menghapus datafile kedua (MYTS02.DBF) dengan menggunakan statemen berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;SQL&gt; alter tablespace myts&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;2 drop datafile 'd:\oradata\latihdb\myts02.dbf';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Meskipun diizinkan, namun terdapat pula beberapa batasan yang penting sekali untuk diperhatikan dalam proses penghapusan datafile. Untuk informasi lebih lengkap mengenai batasan-batasan tersebut, Anda dapat membaca dokumentasi &lt;a href="http://www.oracle.com/technology/software/products/database/oracle10g/index.html"&gt;Oracle 10g Release 2&lt;/a&gt; ("&lt;span style="font-weight: bold;"&gt;Administrator's Guide&lt;/span&gt;", bagian: "&lt;span style="font-style: italic;"&gt;Dropping Datafile&lt;/span&gt;") -- yang dapat Anda download melalui &lt;a href="http://www.oracle.com/technology/documentation/database10gr2.html"&gt;link ini&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Sebagai tambahan, bila sintak di atas kita tuliskan pada &lt;span style="font-weight: bold;"&gt;Oracle 10g Release 1&lt;/span&gt; dan/atau versi sebelumnya, maka kita akan mendapatkan pesan kesalahan (&lt;span style="font-style: italic;"&gt;error&lt;/span&gt;) seperti berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;ORA-02142: missing or invalid ALTER TABLESPACE option&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113860696245505123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113860696245505123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113860696245505123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113860696245505123'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/01/drop-datafile-dalam-oracle-10g-release.html' title='&quot;Drop Datafile&quot; dalam Oracle 10g Release 2'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113850525856401652</id><published>2006-01-29T10:11:00.000+07:00</published><updated>2008-01-05T10:08:40.526+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>"Dua Jempol" untuk Polisi EYD</title><content type='html'>&lt;p class="MsoNormal" style="text-align: justify;"&gt;Beberapa waktu lalu ketika saya mengunjungi blog milik &lt;a href="http://direktif.web.id/"&gt;Pak Amal&lt;/a&gt; (Bapak Debian), saya menemukan sebuah &lt;span style="font-style: italic;"&gt;link&lt;/span&gt; ke salah satu blog yang menguliti tulisan-tulisan berbahasa &lt;st1:country-region st="on"&gt;&lt;st1:place st="on"&gt;Indonesia&lt;/st1:place&gt;&lt;/st1:country-region&gt; yang tidak sesuai dengan kaidah EYD (Ejaan Yang Disempurnakan). Blog tersebut adalah milik &lt;a href="http://polisieyd.blogsome.com/"&gt;Polisi EYD&lt;/a&gt;. Terus terang saya baru tahu keberadaan blog tersebut dan salut sekali kepada &lt;a href="http://polisieyd.blogsome.com/"&gt;&lt;span style="text-decoration: underline;"&gt;pembuatnya&lt;/span&gt;&lt;/a&gt; yang telah sempat menyisakan waktunya untuk melakukan pekerjaan mulia tersebut. Saya dapat belajar banyak dari blog itu mengenai bagaimana cara menulis yang baik dan sesuai dengan aturan. Maklum, nilai mata kuliah Bahasa Indonesia saya hanya mentok di huruf B... :) Pada saat di bangku kimia saya lebih senang berkonsentrasi mengutak-atik atom C beserta empat kaki yang dimilikinya, meskipun pada kenyataannya sekarang saya jauh lebih mencintai "bahasa C" daripada "atom C"...:) Ampuuuunn.., mudah-mudahan tidak terbaca oleh para penunggu lab organik.&lt;br /&gt;&lt;/p&gt;     &lt;p class="MsoNormal" style="text-align: justify;"&gt;Pokoknya, saya benar-benar mengangkat "dua jempol" untuk &lt;a href="http://polisieyd.blogsome.com/"&gt;Polisi EYD&lt;/a&gt;. Maju terus !&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113850525856401652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113850525856401652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113850525856401652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113850525856401652'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/01/dua-jempol-untuk-polisi-eyd.html' title='&quot;Dua Jempol&quot; untuk Polisi EYD'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113824451370630173</id><published>2006-01-26T09:35:00.000+07:00</published><updated>2008-01-05T10:09:39.325+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Mengganti Metode Pengaturan Extent di dalam Tablespace</title><content type='html'>Pengaturan extent (&lt;span style="font-style: italic;"&gt;extent management&lt;/span&gt;) adalah suatu mekanisme yang menunjukkan bagaimana Oracle melakukan manajemen terhadap extent-extent yang terdapat di dalam sebuah tablespace. Sebelum versi 8i, pengaturan extent hanya dapat dilakukan secara dictionary, yaitu dengan menggunakan tabel-tabel di dalam &lt;span style="font-style: italic;"&gt;data dictionary&lt;/span&gt;: &lt;span style="color: rgb(153, 0, 0);"&gt;SYS.FET$&lt;/span&gt; (untuk mencatat extent-extent yang masih kosong dan bebas digunakan) dan &lt;span style="color: rgb(153, 0, 0);"&gt;SYS.UET$&lt;/span&gt; (untuk mencatat extent-extent yang telah digunakan). Pengaturan extent semacam ini disebut dengan &lt;span style="font-weight: bold;"&gt;DMT = Dictionary-Managed Tablespace&lt;/span&gt;. Namun, pada versi 8i (dan versi di atasnya), Oracle telah mengenalkan metode pengaturan extent baru yaitu pengaturan extent secara lokal (disebut dengan &lt;span style="font-weight: bold;"&gt;LMT = Locally-Managed Tablespace&lt;/span&gt;). Dalam LMT, extent akan diatur secara lokal di dalam tablespace bersangkutan.&lt;br /&gt;&lt;br /&gt;Di sini, saya hanya akan menunjukkan bagaimana melakukan konversi terhadap dua buah metode tersebut. Artinya, kita bisa saja mengganti metode pengaturan extent dari &lt;span style="font-weight: bold;"&gt;DICTIONARY&lt;/span&gt; ke &lt;span style="font-weight: bold;"&gt;LOCAL&lt;/span&gt; ataupun sebaliknya. Cara yang akan saya ambil di sini adalah dengan melakukan eksekusi terhadap prosedur &lt;span style="color: rgb(153, 0, 0);"&gt;TABLESPACE_MIGRATE_TO_LOCAL&lt;/span&gt; dan &lt;span style="color: rgb(153, 0, 0);"&gt;TABLESPACE_MIGRATE_FROM_LOCAL&lt;/span&gt;, dimana keduanya tersimpan dalam package &lt;span style="color: rgb(153, 0, 0);"&gt;DBMS_SPACE_ADMIN&lt;/span&gt;. Sebagai contoh, kita memiliki sebuah tablespace dengan nama &lt;span style="font-weight: bold;"&gt;LATIHTS&lt;/span&gt; dimana pengaturan extent-nya dilakukan dengan DMT. Sekarang kita ingin menggantinya dengan LMT, maka salah satu caranya adalah sebagai berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;SQL&gt; exec dbms_space_admin.tablespace_migrate_to_local('LATIHTS');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;PL/SQL procedure successfully completed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Untuk memeriksa apakah metode pengaturan extent dari tablespace tersebut sudah berubah atau belum, coba Anda lakukan query berikut:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;SQL&gt; select extent_management from dba_tablespaces&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;2  where tablespace_name = 'LATIHTS';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;EXTENT_MAN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;----------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;LOCAL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sebaliknya bila Anda ingin mengubahnya ke DMT kembali, maka gunakan prosedur &lt;span style="color: rgb(153, 0, 0);"&gt;TABLESPACE_MIGRATE_FROM_LOCAL&lt;/span&gt;.</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113824451370630173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113824451370630173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113824451370630173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113824451370630173'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/01/mengganti-metode-pengaturan-extent-di.html' title='Mengganti Metode Pengaturan Extent di dalam Tablespace'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113806879355024476</id><published>2006-01-24T09:11:00.000+07:00</published><updated>2008-01-05T10:10:26.827+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Bisakah IF-THEN-ELSE dalam Query?</title><content type='html'>Dalam Oracle, kita dapat melakukan suatu proses pemilihan statemen (sering juga disebut dengan istilah percabangan) dalam suatu query yang kita buat; yaitu dengan menggunakan fungsi &lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;decode()&lt;/span&gt;. Berikut ini contoh penggunaan dari fungsi tersebut.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;select decode(gender, 'P', 'Pria', 'W', 'Wanita') from pelanggan;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Namun, di dalam Oracle 9i, kita juga dapat melakukan hal yang sama melalui penggunaan kata kunci &lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;CASE&lt;/span&gt;, seperti yang tampak pada kode berikut ini.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;select&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;case (gender)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;when 'P' then 'Pria'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;when 'W' then 'Wanita'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;from pelanggan;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113806879355024476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113806879355024476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113806879355024476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113806879355024476'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/01/bisakah-if-then-else-dalam-query_23.html' title='Bisakah IF-THEN-ELSE dalam Query?'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113754971123099873</id><published>2006-01-18T08:44:00.000+07:00</published><updated>2008-01-05T10:15:50.851+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle Ketemu Java</title><content type='html'>Kemarin saya mencoba lagi menulis sebuah artikel tentang dasar-dasar yang diperlukan untuk melakukan koneksi antara database Oracle dan program Java; dan saya mengirimnya ke &lt;a href="http://www.dbapool.com"&gt;DBAPool.com&lt;/a&gt;, sebuah situs yang merupakan komunitas para DBA dan pengguna Oracle. Tadinya, saya sendiri agak sanksi karena artikel yang saya tulis lebih mengarah ke development program, bukan ke administrasi database. Artinya, artikel tersebut lebih berbau Java dibandingkan dengan penekanan ke Oracle-nya sendiri. Namun ternyata, masih bisa diterima dan di-publish juga.&lt;br /&gt;&lt;br /&gt;Dasar-dasar seperti ini tentu mutlak diperlukan oleh para programmer Java yang ingin melakukan pemrograman database; dengan menggunakan Oracle sebagai &lt;span style="font-style: italic;"&gt;back end&lt;/span&gt;-nya. Anda dapat membaca atau men-download artikel tersebut dengan melakukan klik pada link di bawah ini.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dbapool.com/articlelist.asp?id=011706.asp"&gt;http://www.dbapool.com/articlelist.asp?id=011706.asp&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113754971123099873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113754971123099873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113754971123099873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113754971123099873'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/01/oracle-ketemu-java.html' title='Oracle Ketemu Java'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113712437730165324</id><published>2006-01-13T10:06:00.000+07:00</published><updated>2008-01-05T10:12:38.549+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Menyentuh "Oracle Project Raptor"</title><content type='html'>Hari ini saya baru mencoba memasang &lt;span style="font-weight: bold;"&gt;Oracle Project Raptor&lt;/span&gt; di komputer &lt;a href="http://www.sddn.co.id"&gt;kantor&lt;/a&gt;, yaitu sebuah tool baru (berupa GUI) buatan Oracle yang memudahkan kita dalam bekerja dengan database Oracle, mulai dari penulisan statemen SQL, PL/SQL (seperti &lt;span style="font-style: italic;"&gt;stored procedure&lt;/span&gt; dan &lt;span style="font-style: italic;"&gt;trigger&lt;/span&gt;), dan untuk proses administrasi lainnya (seperti tuning, pengaturan keamanan, dan auditing) hanya dengan melakukan "klik". Dan ternyata...memang mudah, asyik, dan menyenangkan. Selain itu, sesuai harapan setiap penggunanya, tool ini bersifat gratis (&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;FREE&lt;/span&gt;). Untuk saat ini,  tool ini baru tersedia untuk sistem operasi Windows dan Linux.&lt;br /&gt;&lt;br /&gt;Oracle Project Raptor sendiri dikembangkan menggunakan Oracle JDeveloper IDE Framework, dimana koneksi default ke database dibuat dengan menggunakan driver JDBC (&lt;span style="font-style: italic;"&gt;Java DataBase Connectivity&lt;/span&gt;) Tipe Thin/Tipe 4 (yang tidak memerlukan adanya ORACLE_HOME). Meskipun demikian, tool ini juga masih mengizinkan kita untuk membuat koneksi dengan menggunakan driver JDBC Tipe 2, yaitu driver OCI (&lt;span style="font-style: italic;"&gt;Oracle Call Interface&lt;/span&gt;). Installasinya sangat mudah dilakukan, karena kita hanya perlu melakukan "unzip" terhadap file source hasil download.&lt;br /&gt;&lt;br /&gt;Untuk informasi lebih lanjut, tutorial, dan download terhadap software ini, silahkan kunjungi&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/products/database/project_raptor/index.html"&gt;http://www.oracle.com/technology/products/database/project_raptor/index.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113712437730165324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113712437730165324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113712437730165324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113712437730165324'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/01/menyentuh-oracle-project-raptor.html' title='Menyentuh &quot;Oracle Project Raptor&quot;'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-20019988.post-113704967870092287</id><published>2006-01-12T13:41:00.000+07:00</published><updated>2008-01-05T10:12:38.549+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Nikmati Kebebasan dengan Oracle Database XE</title><content type='html'>Sekarang Oracle telah menyediakan software gratis, yaitu &lt;span style="font-weight: bold;"&gt;Oracle Database 10g Express Edition &lt;/span&gt;(&lt;a href="http://www.oracle.com/technology/products/database/xe/index.html"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Oracle Database XE&lt;/span&gt;&lt;/a&gt;). Dengan demikian, software tersebut dapat kita gunakan untuk proses development dan deployment tanpa harus mengeluarkan biaya sedikitpun.&lt;br /&gt;&lt;br /&gt;Berikut ini contoh tampilan (&lt;span style="font-style: italic;"&gt;screenshot&lt;/span&gt;) dari Oracle XE, yang saat ini juga digunakan di &lt;a href="http://www.sddn.co.id"&gt;kantor &lt;/a&gt;tempat saya bekerja.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6113/1993/1600/xe.0.gif"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/6113/1993/400/xe.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Untuk informasi lebih lanjut mengenai Oracle XE serta melakukan download terhadap software tersebut (ukuran 150MB), silahkan kunjungi &lt;a href="http://www.oracle.com/technology/products/database/xe/index.html"&gt;http://www.oracle.com/technology/products/database/xe/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Selamat menikmati kebebasan dalam bekerja dengan Oracle...</content><link rel='replies' type='application/atom+xml' href='http://mbraharjo.blogspot.com/feeds/113704967870092287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20019988&amp;postID=113704967870092287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113704967870092287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20019988/posts/default/113704967870092287'/><link rel='alternate' type='text/html' href='http://mbraharjo.blogspot.com/2006/01/nikmati-kebebasan-dengan-oracle.html' title='Nikmati Kebebasan dengan Oracle Database XE'/><author><name>Budi Raharjo</name><uri>http://www.blogger.com/profile/01893627813757442876</uri><email>noreply@blogger.com</email></author></entry></feed>