Sabtu, 03 Mei 2014

Bahasa Indonesia 2 : Tulisan 7

Mengirim Mengirim email dengan PHP, mulai dari email biasa, email HTML sampai email dengan attachment

email dengan PHP bukan merupakan hal yang sulit, PHP telah menyediakan fungsi mail() untuk mengirim email dengan PHP. Anda dapat mengirim email teks biasa, email HTML bahkan email dengan attachment dengan mudah.

Fungsi mail()

Pertama-tama kita pelajari dulu fungsi mail(). Sintaksnya seperti ini:
mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])
Fungsi mail() memiliki 3 parameter wajib dan satu parameter opsional. Ke 3 parameter tersebut adalah email tujuan, judul email dan isi email, serta 1 parameter opsional yaitu header email.

Upload file ke server dengan menggunakan PHP

Kali ini saya akan membahas tentang upload file menggunakan PHP. Tentu menyenangkan jika pengguna website anda dapat melakukan upload gambar, dokumen atau video kedalam website anda. Artikel ini akan menerangkan cara mengupload file keserver anda dengan PHP.
PHP membuat semuanya menjadi lebih mudah dalam menangani upload file. Untuk membuat form upload pastikan kita menyertakan atribut enctype="multipart/form-data" dan pastikan methodnya adlaha post. Oke langsung saja kita lihat kode HTML berikut ini:
<form method=”post” action=”<?=$PHP_SELF?>” enctype=”multipart/form-data”>
<input type=”file” name=”myfile”>
<input type=”submit” name=”Submit” value=”Submit”>
</form>
Seperti yang kita lihat, kita me,mberi nama pada field upload kita “myfile”. Nama ini sangat penting, karena ketika file telah diupload maka file tersebut otomatis diberi nama yang unik dan disimpan di temporary direktori. Tentu saja url path ke filenya bisa diakses, karena otomatis akan muncul variabel global yang memiliki nama yang sama dengan field upload kita, dalam hal ini myfile. Akan ada 4 variabel baru yang semuanya diawali dengan myfile dan diikuti dengan garis bawah (underscore), yaitu:
  • $myfile. Variabel ini berisi informasi lokasi file di server.
  • $myfile_name. Nama file asli ketika masih dikomputer klien.
  • $myfile_size. Ukuran dari file (dalam satuan bytes).
  • $myfile_type. Tipe file.

Upload sederhana

Langsung saja kita coba contoh upload berikut ini, simpan dengan nama upload.php:
<html>
<head>
<title>Upload file</title>
</head>
<body>
<?
if ( isset( $upload ) ) {
echo “Lokasi File: $myfile<br>”;
echo “Nama File: $myfile_name<br>”;
echo “Ukuran: $myfile_size bytes<br>”;
echo “Tipe File: $myfile_type<br>”;
copy ( $myfile, “$myfile_name”) or die (“Gagal mengupload”);
}
?>
<form enctype=”multipart/form-data” action=”<?=$PHP_SELF?>” method=”post”>
<input type=”file” name=”myfile”><br>
<input type=”submit” value=”upload” name=”upload”>
</form>
</body>
</html>
Ketika tombol upload ditekan, maka url path file tersebut akan disimpan di variabel $myfile dan kita tampilkan dibrowser. Kita juga menampilkan nama file yang tersimpan pada variabel $myfile_name, ukuran file di variabel $myfile_size dan tipe file di variabel $myfile_type.
Kita menggunakan fungsi copy() untuk memindahkan file dari komputer kita direktori sementara di server kita. Fungsi copy() membutuhkan dua argumen yaitu lokasi awal file dan lokasi baru diserver. Jika kita ingin mengupload nya ke suatu folder diserver (katakanlah kita simpan difolder images) maka kita perlu mengubahnya menjadi: copy ( $myfile, "images/$myfile_name")

Upload yang lebih kompleks

Sekarang mari kita coba membuat fungsi upload yang jauh lebih rumit. Misalkan kita ingin membuat fungsi upload dimana file yang diupload harus file jpg, dan ukurannya tidak boleh lebih besar dari 100Kb serta panjang dan lebar gambar tidak boleh lebih dari 100 piksel. Kelihatannya rumit kan? Mari kita coba kode berikut dan simpan dengan nama upload2.php:
<html>
<head>
<title>Upload file</title>
</head>
<body>
<?
if ( isset( $upload ) ) {
echo “Lokasi File: $myfile<br>”;
echo “Nama File: $myfile_name<br>”;
echo “Ukuran: $myfile_size bytes<br>”;
echo “Tipe File: $myfile_type<br>”;
if ( $myfile_type == “image/pjpeg” ) {
if ($myfile_size <= 102400 ) {
list($width, $height) = @getimagesize(“$myfile”);
if ( $width <= 100 && $height <= 100 ) {
copy ( $myfile, “$myfile_name”) or die (“Couldn’t copy”);
echo “File anda telah sukses diupload”;
} else {
echo “Ukuran panjang dan lebar gambar terlalu besar”;
}
} else {
echo “Ukuran file tidak boleh lebih dari 100Kb”;
}
} else {
echo “File harus JPG!!”;
}
}
?>
<form enctype=”multipart/form-data” action=”<?=$PHP_SELF?>” method=”post”>
<input type=”file” name=”myfile”><br>
<input type=”submit” value=”upload” name=”upload”>
</form>
</body>
</html>
PHP tidak memiliki kemampuan untuk membuat progress bar ketika file diupload. Karena PHP tidak dapat mengetahui berapa bagian yang telah diupload dan berapa yang belum. Kita perlu menggunakan CGI. Tetapi entah dengan PHP terbaru, siapa tau sudah memiliki class atau fungsi untuk membuat progress bar.
Pertama-tama yang kita lakukan adalah mengecek apakah file kita jpg dengan cara mengecek $myfile_type. Jika hasil dari variabel $myfile_type adalah “image/pjpeg”, maka bisa dipastikan bahwa file kita adalah jpg. Berikutnya kita melakukan pengecekan apakah ukuran filenya tidak lebih besar dari 100Kb dengan mengecek variabel $myfile_size. Ingat bahwa 100Kb = 102400Bytes(Rumusnya 1Kb=1024Bytes). Kemudian kita menggunakan fungsi getimagesize() untuk menemukan panjang dan lebar dari gambar yang kita simpan dengan array menggunakan fungsi list(). Kemudian kita cek panjang dan lebar dari gambar apakah tidak lebih dari 100 piksel. Jika semuanya terpenuhi maka filenya tinggal kita copy. Cukup mudah kan? gampang… anda pasti bisa.

Bahasa Indonesia 2 : Tulisan 6

Etika Programmer



KODE ETIK PROGRAMMER
  1. Seorang programmer tidak boleh membuat atau mendistribusikan Malware.
  2. seorang programmer tidak boleh menulis kode yang sulit diikuti dengan sengaja.
  3. seorang programmer tidak boleh dokumentasi yang  dengan sengaja untuk membingungkan atau tidak akurat.
  4. seorang programmer tidak boleh menggunakan ulang kode hak cipta telah membeli atau telah meminta izin.
  5. tidak boleh mencari keuntungan dari proyek yang telah didanai oleh pihak kedua tanpa izin.
  6. tidak boleh mencuri softwere khususnya development tools.
  7. tidak boleh menerima dana tambahan dari berbagai pihak eksternal dalam suatu proyek secara bersamaan kecuali mendapatkan izin.
  8. tidak boleh menulis kode yang dengan sengaja menjatuhkan kode programmer lain untuk mengambil keuntungan dalam kenaikan status.
  9. tidak boleh membeberkan dana-dana penting karyawan dalam perusahaan.
  10. tidak boleh memberitahu masalah keuangan pada pekerja dalam pengembangan suatu proyek.
  11. tidak pernah mengambil keuntungan dari pekerjaan orang lain.
  12. tidak boleh mempermalukan profesinya.
  13. tidak boleh secara asal-asalan menyangkal adanya bug dalam aplikasinya.
  14. tidak boleh mengenalkan bug  yang ada dalam software yang nantinya programmer  akan mendapatkan keuntungan dalam membetulkan bug.
  15. terus mengikuti  perkembangan ilmu komputer. pada umumnya programmer harus mematuhi “Golden ruler”: memperlakukan orang sebagaimana kamu ingin diperlakukan. jika semua programmer mematuhi semua peraturan ini, maka tidak akan ada masalah dalam komunitas.
KETERAMPILAN YANG HARUS DIMILIKI SEORANG PROGAMMER
  1. memahami kode sumber sebuah program, dari yang sederhana hingga relatif kompleks, adalah keterampilan yang harus dimilki seorang programmer.
  2. implementasi sebuah algoritma yang memodifikasi menjadi sebauah struktur data dalam sebuah program dapat kita adaptasikan dalam program yang kita buat sendiri dengan konteks dan struktur data yang sama sekali berbeda.
  3. melanjutkan pengelolaan, menyesuaian, mengembangkan dan (bila perlu) merombaknya untuk menyesuaikan  program dengan kebutuhan pengguna tanpa mengorbankan  kemudahan perawatan dimasa akan datang
  4. memiliki kemampuan sebagaimana dijelaskan dalam point 1 dan 2 untuk program yang ditulis dan didokumentasikan oleh programmer lain.
  5. membaca program untuk memperkaya perkakas yang dimiliki seorang programmer untuk memecahkan masalah.
KEWAJIBAN PROGRAMMER
  1. memahami konsep dasar sistem operasi. Kebanyakan dari programmer Indonesia biasanya membuat aplikasi di atas sistem operasi, sehingga banyak yang berpendapat bahwa tidak perlu memahami cara kerja sistem operasi.
  2. memahami konsep dasar sistem jaringan.  Sebuah aplikasi tidak dapat berjalan sendiri. Aplikasi tersebut pasti harus berhubungan dengan internet, melayani banyak pengguna
  3. memahami sistem dasar relational database. Setiap aplikasi pasti memiliki sebuah database dalam penyimpanan datanya untuk itu programmer khususnya Database Programmer ditekankan menguasai relational database.
  4. karena sekarang jaman internet, maka  wajib memahami protokol HTTP, FTP, POP3, SMTP, SSH.  Protokol HTTP sekarang adalah protokol yang paling banyak digunakan di internet.
  5.  karena sekarang jamanya globalisasi, maka wajib memahami unicode. Unicode itu penting supaya aplikasi kita tetap bisa diinstal di komputer mana saja.
  6. lebih dari satu bahasa pemrograman. Pemahaman lebih dari satu bahasa itu penting agar wawasan programmer lebih terbuka. Bahwa tidak ada bahasa yang one-fit-all.
  7. cara menggunakan version kontrol.  project opensource Dalam dunia kerja, penggunaan version control adalah wajib. Ini standar (de facto) internasional. Jika mempunyai, baik di Sourceforge, Apache, Codehaus, dan semua hosting project opensource, pasti programmer akan diberikan version control. 

Bahasa Indonesia 2 : Tulisan 5

Artikel Tentang Mysql

8 Hal Yang Harus Diketahui Seorang  Programmer Tentang Mysql
Php+Mysql. Siapa yang tidak tahu bahwa duosejoli ini adalah pasangan terpopuler didunia open soure, bahkan diseluruh internet. Php telah menggeser Perl sebagai bahasa dalam membuat aplikasi Web, terutama pemula. Bahkan sebeltulnya Mysql juga banyak memiliki kekurangan dalam ahal fitur SQL. Sehingga programmer Php tidakbisa memahami dan memanfaatkan kekuatan penuh database relasional+ SQL. Buat Anda para programmer pemula yang memang masih awam dengan Mysql dan konsep database pada umumnya, tidak perlu minder atau khawatir. Ketika mulai belajar Mysql saya hanya mempunyai skill atau mengetahui  tentang SQL hanya  Select, Update, Create Table, dan Drop Table. Apa itu join bagaimana mengubah skema tabel, bagaimanamendesain database yang baik dan ternormalisasi, semuanya masih blank. Dan semuanya harus dipelajari sambil jalan, tapi toh akhirnya semua baik-baik saja.
Lewat artikel ini kita kan membahas tentang hal-hal apa yang perlu diketahui agar bisa memakai Mysql dengan efektif dan efisien.
1.     Tabel MYSQL Bukanlah Array
Programmer PHP atau perl tentu saja familiar dengan array dan hash, yang biasnya dipakai untuk menyimpan sekumpulan data terkait. Sebagian dari mereka yanng tidak familiar dengan MYSQL akan cenderung menganalogikan tabel database dengan array/hash (tepatnya, array of array atau array 2 dimensi ). Tabel dipandang sama seperti sebuah array, hanya saja bisa berukuran besar sekali dan parsisten (disimpan di disk). Cara pandang mereka yang seperti ini tidak sepenuhnya salah,  karena toh dalam record  dari tabel biasanya ditampung kedalam array/ hash. Hanya saja biasanya seorang programmer PHP  cara pandangnya berbeda dan melakukakan sesuatu seperti :
$res = mysql_query("SELECT * FROM t1");
$rows = array();
while ($row = mysql_fetch_row($res)) $rows[] = $row;
echo "Jumlah record di tabel t1 = ", count($rows);
atau membuat tabel seperti:
CREATE TABLE t2 (
  f0 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  f1 INT UNSIGNED,
  f2 VARCHAR(5),
  f3 VARCHAR(200),
  f4 VARCHAR(200),
  f5 BLOB
);
Kode  programmer diatas bertujuan mencari jumlah record dalam sebuah tabel. Si programmer yang terobsesi menganggap tabel Mysql sebagai sebuah array, mencoba membangun dulu arraynya dan mengisi satu persatu elemen dari hasul query  agar nantinya bisa menggunakan fungsi array count ( ), selesai dicount ( ) variabel $rows langsung dibuang lagi, ini adalah cara yang lebih efisien :
Select Count (* ) From t1
Lalu apa yang salah dengan  kode SQL  kedua, si programmer perl, dalam hal ini ingin mengambil tia[a record ditabel dengan fungsi DBI $sth->fetchrow_array()
@row = $sth->fetchrow_array();
print $row[0]; # f0
print $row[1]; # f1
print $row[2]; # f2
# …
Enak bukan? Elemen elemen ke-0 berisi nilai field f0, elemen ke-1 f1,dst.
Masalahanya kemudahan ini mengorbankan nama field yang menjadi sangat tidak deskriptif.
2.     Bahasa SqL dan Fungsi Fungsi Mysql
MYSQL adalah database Sql. Sebadai programmer kita harus rajin mempelajari database MysqL  dengan efektif, dan tidak boleh malah mempelajari bahasa keduanya yaitu SQL. Jika tidak belajar SQL maka ada kemungkinan anda akan melakukan kesalahan seperti dibawah ini :
 
$res = mysql_query("SELECT * FROM bigtable");
while ($row = mysql_fetch_assoc($res)) {
    if ($row['age'] >= 40) {
        echo "Ditemukan kustomer yang berusia lebih dari 40 tahun!\n";
        break;
    }
}
Salah atau benarkah program diatas???
Programmer diatas hanya ingi mencoba mensimulasikan klausa WHERE Sql dengan melakukan pengujian kondisi dikode php. Padahal yang seharusnya dilakukan adalah:
SELECT * FROM bigtable WHERE age >= 40
 
Ingattttttt......!!!!!!!!!
Tidak semua record harus dikirim dari MYSQL keprogram PHP anda.
Sql sudah menyediakan cara untuk menyortir data, menformat tampilan, mengelompokan dan memfilter record, dsb. Mysql juga terkenal banyak menyediakan fungsi-fungsi , mulai dari manipulasi tanggal, angka string , dsb.
Ini adalah contoh lain Programmer PHP yangmemanfaatkan fasillitasdari MYSQL :
$res = mysql_query("SELECT * FROM customers");
while ($row = mysql_fetch_assoc($res)) {
    # format semula yyyy-mm-dd...
    preg_match("/(\d\d\d\d)-(\d\d?)-(\d\d?)/", $row[date], $matches); 
    # ... dan ingin dijadikan dd/mm/yyyy
    $tanggal = "$matches[3]/$matches[2]/$matches[1]"; 
    echo "Nama=$row[name], Tanggal lahir=$tanggal<br>\n";
}
Padahal Mysql sudah menyadiakan fungsi pemformatan dan manipulasi tanggal :
$res = mysql_query("SELECT name, DATE_FORMAT(date,'%d-%m-%Y') as tanggal ".
                   "FROM customers");
while ($row = mysql_fetch_assoc($res)) {
    # tidak perlu capek-capek manipulasi string lagi...
    echo "Nama=$row[name], Tanggal lahir=$row[tanggal]<br>\n";
}
3.     Limit, Limit, Limit
Salah satu alasan mengapa MYSQL sangat cocok untuk aplikasi Web adalah karena mendukung klausa LIMIT. Karena untuk membatasi  jumlah record hasil yang diinginkan dalam satu perintah SQL. Juga didukung oleh database lain seperti PostgreSQL, Firebird dan funsional LIMIT.
4.     Tipe Data
Seorang programmer PHP yang tidak kenal dengan MYSQL kadang- kadang cenderung memilih jenis data yang salah ( umumnya : memilih VARCHAR () padahal ada tipe data yang lebih tepat) dikarenakan tidak mengenal jenis data yang tersedia.
Berikut ini beberapa contoh kurang tepatnya pemilihan tipe data :
  1. Memilih Char(8), atau Varchar(10) dan bukanya Date untuk menyimpan tanggal; kerugianya, lebih boros tempat dan tidak bisa memanfaatkan fungsi- fungsi khusus tanggal.
  2. Memili Char(3), atau Char (6) ketimbang Tyinyint Unsigned untuk menyimpan data boolean (“Yes “ dan “No”; atau “True” dan “False “; padahal jauh lebih dinyatakan dengan 1 dan 0 yang hanya menempai 1 byte)
  3. Memilih Float dan Double dan  bukanya Decimal untuk menyimpan jumlah uang;  kerugiannya, Float dan Double adalah berbasis biner dan seringkali tidak eksak dalam menyimpan pecahan Desimal.
5.     Normalisasi dan Pemodelan
Normalisasi , skema , entiti-atribut , primary key (PK) dan foreign key (FK), tabel entiti, tabel relasi, OLTP & OLAP  semuanya adalah istilah- istilah yang umumnya dijumpai dalam pemodelan fisik database.
                                I.            Langkah pertama
  • Dalam pemodelan adalah menemukan entiti-entiti. Enetiti bisa dibilang “objek” yang akan kita geluti. Misalnya, costumer, produk, dan transaksi. Seriap entiti biasanya ditaruh dalam satu tabel, tabel ini disebut tabel entiti.
  • Mencari atribut-atribut entiti tersebut. Misalnya tabel costumer memiliki atribut sapaan , nama, alamat( jalan, kota , kodepos, propinsi,& negara), tanggal record ini ditambahkan, dsb.
  • Mencari relasi diantara entiti-entiti. Umumnya relasi adalah satu dari 1-1, 1- many, many-many. Misalnya, relasi antara transaksi dan produk adalah many-many, artinya sebuahnya transaksi pembelian dapat berisi produk dan sebuah produk tentu saja dapat dibeli dalam lebih dari satu transaksi. Setiap relasi juga ditepkan pada tabel yaitu tabel relasi.
                             II.            Langkah kedua
  • Dalam permodelan tidak ada yang benar dan salah . yang ada adalah model yang tepat dan tidak tepat untuk keperluan tertentu. Misalnya untuk aplikasi sederhana modelnya sederhana. Semakin komplek aplikasi, model pun semakin rumit (jumlah entiti, relasi, dan atribut akan bertambah ).
  • Tabel customet memiliki atribut alamat. Jika kita ingin mendukung banyak alamat untuk satu customers,maka alamat akan menjadi entiti dan menempati tabel sendiri. Lalu kita membuat tabel relasi customers alamat.
6.     Indeks
Indeks adalah sesuatu yang berkaitan erat dengan implementasi, bukan modeling.
Tapi intinya indeks adalah setiap kolom yang:
  1. Memiliki rentang nilai cukup banyak
  2. Terletak pada tebl yang berisi banyak record;
  3. c.       Sering kali disebutkan diklausa  Where dan /atau Order By dan/atau Group By;  perlu diberi indeks. Ini dikarenakan indeks membantu mencari secara cepat sebuah nilai dari banyak nilai yang ada.
Beberapa contonhya:
  • Setiap primary key umumnya otomatis diberi oleh database server, meskipun tabelnya masih berisi sedikit record atau bahkan kosong. Dikarenakan database harus sealalu mengecek keberadaan sebuah nilai field manakala ada sebuah record yang ditambahkan ( ingat, PK artinya tak boleh ada dua record yang mengandung nilai field ini yang sama). Tampa indexing, pengecekan akan memakan waktu yang lama.
  • Field tanggal lahir dalam tabel customers kemungkinan besar harus diindeks. Bahkan dayofyear()field ini juga mungkin perlu diindeks. Mengapa? Karena 1. Rentang nilai cukup besar (365 hari dalam setahun * + - 60 jumlah tahun) 2. Tabel customer potensial ukuranya besar. 3. Sering disebutkan di klausa Where (misalnya mencari customers yang ultah hari ini).
  • Field jenis kelamin mungkin tidak perlu diindeks, kecualai perbandingan pri:wanita amat drastis bedanya. Mengapa? Sebab 1. Rentang nilai yang ada hanyalah dua:L ( Lelaki) dan P (Perempuan). Meskipun ada indeks tetap tidak mempengaruhi kenerja.
7.     Konkurensi, Locking, dan Transaksi
Programmer  kadang tidak menyadari bahwa program/ skrip yang dinuatnya tidaklah seperti program dekstop yang dijalankan oleh satu user. Melaikan, dalam satu waktu bisa saja ada 10 atau 100 user yang “menembak” skrip anda diWeb. Kerena itu, isu locking dan konkurensi penting sekali. Contohnya :

$res = mysql_query("SELECT value FROM counters WHERE name='counter1'");
list ($value) = mysql_fetch_row($res);
$value++;
// do something else first...
$res = mysql_query("UPDATE counter SET value=$value WHERE name='counter1'");

Untuk kasus diatas pemecahannya adalah
// tidak perlu ambil nilai counter dulu...      
// do something else first...
$res = mysql_query("UPDATE counter SET value=value+1 WHERE name='counter1'");

Tapi dalam kasus ini kadang-kadang harus melakukan locking terhadap tabel record untuk menjamin bahwa selama ini kita // do something else…
Klien 2, klien3, dan klien4 tidak bisa seenaknya menaikkan counter:
mysql_query("LOCK TABLES cuonters");
$res = mysql_query("SELECT value FROM counters WHERE name='counter1'");
list ($value) = mysql_fetch_row($res);
// do something else first... increase value or something...
$res = mysql_query("UPDATE counter SET value=$value WHERE name='counter1'");
mysql_query("UNLOCK TABLES");

atau lebih karena kita tidak [erlu melock keseluruhan tabel
mysql_query("SELECT GET_LOCK('lock1')");
$res = mysql_query("SELECT value FROM counters WHERE name='counter1'");
list ($value) = mysql_fetch_row($res);
// do something else first... increase value or something...
$res = mysql_query("UPDATE counter SET value=$value WHERE name='counter1'");
mysql_query("SELECT RELEASE_LOCK('lock1')");

ingat,locking dapat berakibat samping yaitu deadlock.
Transaksi. Transaksi pun sesuatu yang dipergunakan secara meluas didunia database, hampir tidak pernah kita jumpai dibahasa pemrograman ( karena data bahasa pemrograman ditaruh dalam variabel dimemori semua; tidak ada isu disk yang crash /lambat/ rusak / harus disinkronkan dengan data dimemori ). Karena itu anda perlu memahami konsep ini dari buku-buku tentang database.
8.     Jenis Tabel
Di Mysql dikenal istilah tabel handler dan jenis tabel. Sekarang ada 3 jenis tabnel yang bisa dipakai di Mysql: MyiSam (default), BekeleyDB, dan InnoDB.
Yang perlu diketahui ada 3 hal yaitu:
  1. a.       Tidak semua tabel mendukung transaksi ( MyISAM tidak mendukung transaksi, jadi COMMIT dan RoolBack tidak melakukan sesuatu yang semestinya jika anda menerapkkan pada tabel MyIsAM)
  2. b.      Tidak semua tabel punya karakteristik performace yang sama(BerkeleyDB misalnya, lambat jika ukuran tabel besar) dan disimpan dengan cara yang sama ( tabel MyISAM  misalnya, disimpan dalam 3 file: MYI, MYD, frm sementara tabel-tabel dan database-database InnoDB disimpan bersama dalam daerah disk yang disebut tabelspace;
  3. c.       Distribusi Mysql yang bukan – Max tidak kompile dengan dukungan terhadap BerkeleyDB dan InnoDB.

Nomer 3 atau C perlu anda ketahui karena jika kita ingin mengitruksikan Mysql untuk database dengan jenis tertentu :
CREATE TABLE (...) TYPE=BDB;

Dan Mysql tidak kompilr untuk mendukung BerkeleyDB, maka Mysql tidak akan protes dengan error, melainkan membuatkan tabel yang tersebut untuk kita tapi dengan tipe default yaitu MyIsAm. Jadi anda perlu mengecek dulu dengan menggunakan SHOW TABLE STATUS:
mysql>create table t4 (i int) type=innodb;
Query OK, 0 rows affected (0.00 sec)

mysql>show table status from mydb like 't4';
+------+--------+-...
| Name | Type   | ...
+------+--------+-...
| t4   | MyISAM | ...
+------+--------+-...
Ternyata MyISAM!

Bahasa Indonesia 2 : Tulisan 4

5 Alasan Memilih Sistem Operasi Android

Alasan Memilih Sistem Operasi Android – Smartphone saat ini yaitu hp yang mempunyai banyak pengagum serta juga pemakai yang menyebar di semua dunia. Smartphone sendiri mempunyai banyak type dilihat dari system operasinya. Sekarang ini, smartphone mempunyai banyak type system operasi. Seperti BlackBerry, Android, iOS, Mozilla OS, Windows Phone, dan masih banyak sistem operasi lain.
Tetapi, saat ini smartphone yang mempunyai market share terbesar serta juga popular yaitu android. Android sendiri, keluar di tahun 2007 yang lalu serta sekarang ini android telah sampai pada versi ke 4.2. Android sendiri saat ini telah jauh mengungguli Windows Phone, Blackberry, juga iOS. Oleh karenanya, banyak vendor yang meningkatkan sistem operasi ini.

Tetapi pastinya bukan hanya tanpa argumen bila android jadi benar-benar popular. Pastinya terdapat banyak argumen yang melatarbelakangi kepopuleran sistem operasi android ini. Nah, saat ini saya bakal berikan beberapa info tentang alasan memilih sistem operasi android untuk smartphone anda.

5 Alasan Memilih Sistem Operasi Android

1. Keseriusan Developer dan Google
Google sebagai pengembang sistem operasi android, benar-benar serius untuk menggarap OS ini. Ini dapat dibuktikan dengan versi-versi android serta perbaikan yang dikerjakan Google. Selain itu juga, mempunyai fitur-fitur paling baru pada sistem operasinya. Bukan sekedar itu, Developer juga kerap melakukan pengembangan serta pembaruan pada aplikasinya. Ini juga sebagai keunggulan Android daripada sistem operasi lain.
2. Harga Murah dan Berkualitas
Telah tak bisa dipungkiri bila ponsel android memiliki harga yang murah. Cobalah bandingkan dengan smartphone dengan sistem operasi lain. Kemungkinan kecil bila smartphone lain mempunyai harga di bawah 1 juta. Selain itu juga, android memiliki banyak varian yang dapat anda pilih.
3. Integrasi Google
Tak bisa disangkal bila Google saat ini adalah salah satu perusahaan internet paling besar. Google sendiri, sebagai pengembang android pastinya mempermudah penggunanya untuk terhubung ke akun google mereka. Oleh sebab itu, Google memberikan integrasi yang mudah dengan hanya sekali click pada aplikasi yang ada.
4. Aplikasi yang Berkualitas
Aplikasi yang open source, pastinya bikin pengembang makin antusias untuk meningkatkan aplikasi mereka. Beberapa developer sendiri dapat dengan mudah mempromosikan aplikasi mereka ke Google play (toko aplikasi android) dengan mudah. Aplikasi mereka dapat juga didistribusikan dengan label open source, freeware, shareware, atau juga komersil.
5. Open Source
Open Source atau yang artinya dapat anda oprek sendiri, bikin hp ini berkembang dengan cepat. Juga, beberapa vendor bikin modifikasi dari OS ini untuk memberikan keunikan serta perbedaan dari ponsel yang lain. Ini juga salah satu alasan kenapa android berkembang cepat dengan aplikasi-aplikasinya.

Jumat, 02 Mei 2014

Bahasa Indonesia 2 : Tulisan 3

Manfaat Cloud Computing Secara Umum 


Manfaat utama layanan ini adalah meningkatkan produktivitas perusahaan anda melalui Kolaborasi antar staf dan manajemen sesuai kebutuhan, dengan tetap mengedepankan pengendalian biaya IT dan komunikasi perusahaan Anda.
• Tidak membutuhkan Investasi, tetapi penggunaan IT dikompensasi dalam biaya rutin.
• Aman karena sistem ditempatkan di datacenter dengan tingkat keamanan yang tinggi.
• Menghemat biaya (tidak membutuhkan unit pengelolaan khusus).
• Tidak membutuhkan pembayaran lisensi terhadap software yang dipergunakan.
• Menggunakan hardware, software sesuai dengan kebutuhan.
• Mempercepat proses peningkatan kapasitas sistem.
• Mengintegrasikan aplikasi-aplikasi e-commerce, email, instant messaging, dan share document kedalam satu portal.
• Instalasi cepat.
• Jaringan dan Data Center menyatu.
• Website menggunakan secured connection https.
• Kemampuan melakukan Kirim Terima Email yg terintegrasi dengan Sistem Callender
• Kemampuan sharing PC to PC audio & video
• Kemampuan Editing Document sharing & Collaboration editing
• Kemampuan PC to PC File transfer
• Kemampuan Integrasi dengan MS Office
• Kemampuan Remote Access over IP
• Kemampuan melakukan Voice & Video Conference Call
• Kemampuan melakukan messenger
• Kemampuan Presence dari pemilik account
• Kemampuan Share Point & assigment
• Kemampuan handling informasi bisnis selama 24 jam.
• Kemampuan mendukung mailbox sebesar 2 GB per account

Manfaat lain yang mungkin disediakan oleh penyedia layanan komputer awan :
• Dibayar bulanan sesuai kebutuhan.
• Maintenance sistem sangat minimal.
• Proses upgrade sistem murah dan gratis.

Bahasa Indonesia 2 : Tulisan 2

Microsoft telah merilis himbauannya tentang lubang keamanan dalam IE pada Rabu (30/4/2014). Namun, hingga saat ini, Microsoft belum mengeluarkan lubang tambalan keamanan (patch) untuk celah yang ditemukan dalam perambannya, Internet Explorer (zero-day exploit).

Sampai menunggu update untuk menutupi lubang tersebut, Microsoft telah membuat panduan tentang bagaimana cara menggunakan browser IE secara lebih aman. Dalam Microsoft Security Advisory 2963983, Microsoft memberikan panduan bagaimana meningkatkan keamanan dalam browser-nya tersebut.
Cara yang bisa dilakukan adalah dengan menggunakan fitur Enhanced Protected Mode (EPM) yang pertama kali diperkenalkan dalam versi IE 10. Mode ini menambah lapisan perlindungan lebih yang bisa menangkal serangan malware dari sistem yang telah terinfeksi.

blogs.msdn.com
Setting Enhanced Protected Mode di Internet Explorer
Microsoft telah memberikan panduan bagaimana cara mengaktifkan EPM di blog resminya. Langkah-langkah tersebut secara singkat adalah sebagai berikut:
1. Buka Internet Explorer, kemudian klik menu Tools lalu pilih opsi Internet.
2. Dalam jendela Internet Options, klik tab Advance.
3. Scroll ke bawah hingga terdapat menu Security.
4. Lihat opsi Enable Enhanced Protected Mode lalu aktifkan dengan memberikan tanda centang.
5. Jika Anda menggunakan veris IE 11 versi 64-bit, maka Anda juga harus mengaktifkan tanda centang di bagian Enable 64-bit processes.
6. Restart IE agar setting yang baru bisa diaplikasikan.
Namun, fitur EPM hanya terdapat dalam IE versi 10 dan 11 di sistem operasi Windows 64-bit. Beberapa situs web dan add-on juga tidak semua kompatibel jika fitur EPM tersebut diaktifkan.
Bagi penggguna IE versi lama, atau jika situs web yang sering dikunjungi tidak mendukung EPM, maka mereka bisa mengakalinya dengan menghapus registry file DLL yang berkaitan dengan IE, file itu bernama VGX.DLL (Vector Graphic Rendering/VML).
Untuk menghapus registry tersebut, Microsoft telah membuat panduannya. Anda bisa membacanya langsung dari website Microsoft dengan mengunjugi tautan berikut ini.
Perlu diingat, panduan ini hanya bersifat sementara hingga Microsoft merilis kode sebagai lubang tambalan untuk IE. Jika ingin merasa lebih aman dalam ber-internet, maka Anda bisa menggunakan browser lain, seperti Mozilla Firefox atau Google Chrome.



Sumber : http://tekno.kompas.com/read/2014/05/02/1040499/Microsoft.Bagikan.Cara.Hindari.Bug.Internet.Explorer



Rizky Fachlevy / 18111600
3KA28

Bahasa Indonesia 2 : Tulisan 1

Menyusul ditemukannya sebuah celah keamanan bernama "heartbleed", para pengguna layanan internet diimbau mengganti password yang digunakan untuk masing-masing penyedia jasa.

Sebagaimana dilaporkan oleh Mashable, Rabu (9/4/2014), sejumlah layanan populer, antara lain Yahoo, Gmail, dan Facebook, ikut terdampak.

Gara-gara bug ini, informasi sensitif seperti password dan nomor kartu kredit yang digunakan pengguna selama dua tahun terakhir bisa diperoleh orang tak bertanggung jawab.

Belum jelas, situs internet mana saja yang terkena imbas heartbleed. Namun, sejumlah nama besar di dunia layanan online, termasuk Google, Yahoo, dan Dropbox, turut terpengaruh. Bahkan, situs forum komunitas terbesar di Indonesia, Kaskus pun terdampak celah ini.

Sebagian nama layanan yang terkena dampak heartbleed bisa dilihat dalam sebuah daftar yang dibuat pada 8 April. Semenjak daftar tersebut dipublikasikan, beberapa penyedia layanan telah menyalurkan patch untuk menambal celah sekuriti yang ada.

Tak jelas apabila bug yang ada dan tidak terdeteksi selama dua tahun ini pernah digunakan peretas (hacker) untuk mencuri data. Namun, pengguna diimbau untuk segera mengganti password di seluruh layanan internet yang dimiliki.

Heartbleed
Heartbleed
ramai disebut sebagai salah satu celah keamanan terbesar dan tercanggih yang pernah ditemukan sepanjang sejarah internet.

Bug ini ditemukan pada OpenSSL, sebuah protokol sekuriti open-source yang digunakan untuk enkripsi informasi sensitif melalui fungsi SSL (secure sockets layer) di banyak layanan berbasis internet.

Dengan mengeksploitasi celah heartbleed pada OpenSSL, peretasbisa mencuri informasi, meskipun sebuah situs atau penyedia layanan sudah melakukan enkripsi (ditandai dengan gambar "gembok" dan prefiks "https:" pada URL).

Heartbleed berimbas pada semua situs dan layanan yang menjalankan OpenSSL versi 1.0.1 hingga 1.01f. Versi-versi OpenSSL yang rawan tersebut sudah banyak dipakai pada Mei 2012.

Artinya, selama dua tahun, bug ini telah beredar tanpa terdeteksi di semua penyedia layanan yang menggunakan enkripsi OpenSSL terkait, mulai dari aplikasi, situs internet, hingga institusi perbankan.

Masalahnya menjadi besar karena OpenSSL digunakan oleh 66 persen dari semua bagian web internet untuk meng-enkripsi data sehingga celah keamanan tersebar luas.

Dari sisi pengguna, tak ada yang bisa dilakukan untuk mengatasi bug ini kecuali menunggu penyedia layanan bersangkutan menambal celah heartbleed, lalu mengganti password untuk berjaga-jaga apabila kata kunci yang lama telah bocor.




Sumber : http://tekno.kompas.com/read/2014/04/10/1601488/Pakai.Facebook.dan.Yahoo.Cepat.Ganti.Password.




Rizky Fachlevy / 18111600

3KA28