Senin, 15 Juni 2015

Kelebihan dan Kekurangan LaTex

Apa kelebihan LaTeX  (dibandingkan dengan MS Word)? Banyak, tapi proses mempelajarinya perlu kesabaran ekstra dan sedikit kegemaran melihat-lihat script/computer code. Perintah-perintahnya telanjang semua. Seperti membandingkan antara melihat antarmuka website http://www.detik.com dengan melakukan klik-kanan di website tersebut, dan pilih “View Page Source”. Interface detik dot com enak dilihat dan dibaca, tetapi begitu melihat “source” nya waduh jadi amburadul penuh skrip tidak jelas. Nah kira-kira mirip itu perbandingannya. Tapi itu agak ekstrim kayaknya.
Kelebihan LaTeX:
  • Hasil tampilan dokumennya profesional sekali! Mirip buku teks!
  • Ketika kita ngetik, kita tidak peduli tampilan dan layout. Layout nanti diatur oleh file utama (misal: main.tex).
  • LaTeX itu free of charge, alias gratis! Kalau MS Word kita harus beli softwarenya.
  • Rumus-rumus matematika dapat diatur dengan mudah, tetapi proses membuat rumus memang painstaking!
  • Cocok untuk programmer atau orang-orang yang suka program
  • Tidak pernah crash (adanya error karena salah memasukkan command atau karena software tidak updated)
  • File-nya relatif kecil
  • Font-nya indah!
  • Tutorial dan command untuk symbol banyak tersedia di internet
Kekurangan LaTeX:
  • Ya itu tadi: perlu kesabaran dan ketekunan karena memang tidak user-friendly seperti MS Word
  • Kalau dokumennya pendek, jangan memakai LaTeX. Itu artinya berlebihan. LaTeX cocok untuk menulis thesis, tugas akhir, buku yang penuh simbol matematika atau skrip perintah dan lainnya.
  • Mesti hafal command/perintah supaya cepat mengetiknya. Tapi dengan berjalannya waktu orang akan familiar dengan perintah-perintahnya.

Sejarah C++

Bahasa C++ diciptakan oleh Bjarne Stroustrup di AT&T Bell Laboratories awal tahun 1980-an berdasarkan C ANSI (American National Standard Institute). Pertama kali, prototype C++ muncul sebagai C yang dipercanggih dengan fasilitas kelas. Bahasa tersebut disebut C dengan kelas ( C wih class).
Selama tahun 1983-1984, C dengan kelas disempurnakan dengan menambahkan fasilitas pembebanlebihan operator dan fungsi yang kemudian melahirkan apa yang disebut C++. Symbol ++ merupakan operator C untuk operasi penaikan, muncul untuk menunjukkan bahwa bahasa baru ini merupakan versi yang lebih canggih dari C.

Borland International merilis compiler Borland C++ dan Turbo C++. Kedua compiler ini sama-sama dapat digunakan untuk mengkompilasi kode C++. Bedanya, Borland C++ selain dapat digunakan dibawah lingkungan DOS, juga dapat digunakan untuk pemrograman Windows. Selain Borland International, beberapa perusahaan lain juga merilis compiler C++, seperti Topspeed C++ dan Zortech C++.

Contoh Program C
:
# include
Main ( )
{
Char pesan [ ] = “Hai, C programmers !” ;
Printf (pesan) ;
Return 0 ;
}

Contoh Program C++ :
# include
Main ( )
{
Char pesan [ ] = “Hai, C programmers !” ;
Cout << pesan ;
Return 0 ;
}

TENTANG C++
C++ diciptakan untuk mendukung pemrograman berorientasi pada objek (Object Oriented Pragramming /OOP) yang tidak dimiliki C. sementara C merupakan bahasa pemrograman terbaik dilingkungannya, bahasa ini tidak memiliki kemampuan OOP. Reputasi C tidak diragukan lagi dalam menghasilkan program .EXE berukuran kecil, eksekusi yang cepat, antarmuka (interfacing) yang sederhana dengan bahasa lain dan fleksibilitas pemrograman. Apa yang membuat C tampak sukar dipelajari mungkin karena tiadanya pemeriksaan tipe. Sebagai contoh, dapat mencampur bilangan bulat dengan string untuk menghasilkan karakter. Namun, justru dsitu letak fleksibilitas C, dapat mengolah data C sebebas mengolah data dalam bahasa assembly.

BORLAND C++
Dibandingkan compiler C++ yang lain, Borland C++ memiliki keunggulan terutama dalam hal kecepatan dan efisiensi kompilasi. Disamping itu, Borland C++ mendukung beberapa system operasi yaitu DOS, Windows
16bit (Window 3.0) dan windows 32 bit (Windows NT). Meskipun demikian compiler Borland C++ juga memiliki kelemahan bila dibandingkan compiler C++ yang lain, misalnya : pemrograman dengan Borland C++ terutama yang menyangkut tampilan jauh lebih sulit daripada pemrograman dengan Microsoft Visual C++.

Bahasa Pemrograman C++

Bahasa Pemrograman memang banyak. Salah satunya adalah C++ . Di bawah ini adalah asal muasal Bahasa C++ serta pengertiannya yang saya kutip dari wikipedia.org langsung aja simak :
C++ adalah bahasa pemrograman komputer yang di buat oleh (Bjarne Stroustrup) merupakan perkembangan dari bahasa C dikembangkan di Bell Labs (Dennis Ritchie) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu BCL, Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi ANSI (American National Standart Institute) Bahasa pemrograman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal 1980-an, Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level coding). Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti inheritance dan overloading. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented Programming).
Perbedaan Antara Bahasa pemrograman C dan C++ meskipun bahasa-bahasa tersebut menggunakan sintaks yang sama tetapi mereka memiliki perbedaan, C merupakan bahasa pemrograman prosedural, dimana penyelesaian suatu masalah dilakukan dengan membagi-bagi masalah tersebut kedalam su-submasalah yang lebih kecil, Selain itu, C++ merupakan bahasa pemrograman yang memiliki sifat Pemrograman berorientasi objek, Untuk menyelesaikan masalah, C++ melakukan langkah pertama dengan menjelaskan class-class yang merupakan anak class yang dibuat sebelumnya sebagai abstraksi dari object-object fisik, Class tersebut berisi keadaan object, anggota-anggotanya dan kemampuan dari objectnya, Setelah beberapa Class dibuat kemudian masalah dipecahkan dengan Class.
Bahasa C adalah sebuah bahasa dasar tingkat tinggi yang sifatnya kompleks dan membangun logika atau algoritma.
C++ merupakan bahasa pemrograman yang memiliki sifat Pemrograman berorientasi objek, Untuk menyelesaikan masalah, C++ melakukan langkah pertama dengan menjelaskan class-class yang merupakan anak class yang dibuat sebelumnya sebagai abstraksi dari object-object fisik, Class tersebut berisi keadaan object, anggota-anggotanya dan kemampuan dari objectnya, Setelah beberapa Class dibuat kemudian masalah dipecahkan dengan Class.
Bahasa C adalah bahasa pemrograman prosedural yang memungkinkan kita untuk membuat prosedur dalam menyelesaikan suatu masalah. Bahasa C++ adalah bahasa pemrograman yang berorientasi pada objek.
Bahasa tingkat tinggi merupakan bahasa yang mudah dipahami oleh manusia, C dan C++ merupakan contoh bahasa dari bahasa tingkat tinggi. Contoh lain dari bahasa tingkat tinggi adalah Pascal , Perl, Java, dan lain lain. Sedangkan bahasa tingkat rendah merupakan bahasa mesin atau bahasa asembly.
Secara sederhana sebuah komputer hanya dapat mengeksekusi program yang ditulis dalam bahasa mesin. Oleh karena itu , jika suatu program ditulis dalam bahasa tingkat tinggi, maka program tersebut harus diproses dahulu sebelum bisa dijalankan dengan komputer.
Proses untuk untuk mengubah dari bahasa tinkaat tinggi ke bahasa tingkat rendah dalam bahasa pemrograman ada 2 tipe yaitu intrepenter dan compiler.
Bahasa pemrograman seperti C dan C++ merupakan contoh dari tipe compiler. Namun ada bahasa yang menggabungkan 2 tipe ini salah satunya adalah bahasa Java.
Kelebihan dan kekurangan bahasa pemrograman C++:
C++ itu pada dasarnya bahasa C juga, nah kemampuan C yang utama itu adalah seperti :
– Kode bahasa C++ dengan portabilitas dan fleksibilitas yang tinggi untuk semua jenis komputer.
– bahasa Standard-nya ANSI bisa dipakai diberbagai platform.
– kecepatan program jika dibanding dengan program yang sama buatan bahasa lain, relatif lebih cepat.
– Bahasa C++ tersedia hampir di semua jenis komputer.
– Bahasa C++ hanya menyediakan sedikit kata-kata kunci (hanya terdapat 48 kata kunci).
– Dukungan pustaka fungsi dan kelas yang banyak sehingga memungkinkan pembuatan aplikasi makro.
– C++ adalah bahasa yang terstruktur, dengan demikian akan lebih mendukung OOP.
– Bahasa C++ termasuk bahasa tingkat menengah dan lebih dekat dengan bahasa mesin.
– Kode program bersifat reuseable, sehingga dapat digunakan kembali pada project lain dengan hanya menggunakan library dan  file header.
– C++ dapat membuat aplikasi graphic processor berkualitas tinggi.
Jika dibandingkan dengan VB atau Delphi C++ memang tidak se-RAD dua bahasa tersebut , dan cenderung lebih rumit. Namun
dari perbandingan tersebut, sudah jelas pasti ada trade-off, seperti kecepatan, efisiensi kode, pengstrukturan kode.
Tidak hanya kelebihan-kelebihan yang dimiliki oleh C++, tetapi juga memiki kekurangan seperti:
– C++ tidak murni OOP sehingga kurang cocok untuk mengajarkan Konsep OOP karena kaidah-kaidah OOP dapat dilanggar. Dan
di C++ ada konsep pointer yang sangat membingunkan, ini salah satu alasan mengapa C++ menjadi momok yg paling tidak
disukai.
– C++ walapun tidak terpengaruh oleh Sistem Operasi tetapi tool untuk developmentnya harus spesific pada salah satu
sistem operasi contoh Visual Studio hanya dapat berjalan di Windows. Alasan ini juga nantinya akan dapat menurunkan
minat terhadap sistem operasi yang lain contohnya Linux. Apabila dalam praktiknya menggunakan Visual Studio maka
otomatis akan menggunakannya juga dan pada akhirnya malas untuk mencoba sistem operasi yang lain.
– Implementasi C++ dalam teknologi IT pada saat sekarang sudah sangat sedikit sekali.
– “susah” untuk membuat sesuatu dengan C++ sehingga kepeminatannya dalam memperdalam Programming akhirnya harus kandas
kecuali dengan inisitif sendiri mempelajari bahasa/teknologi lain.

Sejarah MySQL

MySQL dikembangkan sekitar tahun 1994 oleh sebuah perusahaan pengembang software dan konsultan database bernama MYSQL AB yang berada di Swedia. Waktu itu perusahaan tersebut masih bernama TcX DataKonsult AB, dan tujuan awal dikembangkannya MySQL adalah untuk mengembangkan aplikasi berbasis web pada client. Awalnya Michael "Monty" Widenius, pengembang satu-satunya di TcX memiliki sebuah aplikasi UNIREG dan rutin ISAM buatannya sendiri dan sedang mencari antarmuka SQL yang cocok untuk diimplementasikan ke dalamnya. Mula-mula Monty memakai miniSQL (mSQL) pada eksperimennya itu, namun SQL dirasa kurang sesuai, karena terlalu lambat dalam pemrosesan query. Akhirnya Monty menghubungi David Hughes, pembuat mSQL yang sedang merilis versi kedua dari mSQL. Kemudian Monty mencoba membuat sendiri mesin SQL yang memiliki antarmuka mirip dengan SQL, tetapi dengan kemampuan yang lebih sesuai sehingga lahirlah MySQL. Tentang pengambilan nama MySQL, sampai saat ini masih belum jelas asal usulnya. Ada yang berpendapat nama My diambil dari huruf depan dan belakang Monty, tetapi versi lain mengatakan nama itu diambil dari putri Monty yang kebetulan juga bernama My.



II. Keistimewaan MySQL
Sebagai database server yang memiliki konsep database modern, MySQL memiliki banyak sekali keistimewaan. Berikut ini beberapa keistimewaan yang dimiliki oleh MySQL:
a. Portability
MySQL dapat berjalan stabil pada berbagai OS seperti Windows, Linux, Unix, Mac OS, Solaris, Unix, Amiga, HP-UX, Symbian.
b. Open Source "limited"
Dahulu MySQL didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga kita dapat menggunakannya secara cuma-cuma tanpa dipungut biaya. Namun, saat ini karena MySQL telah dibeli oleh SUN, maka kita tidak dapat lagi menikmati fitur-fitur baru yang ada di MySQL, karena SUN akan membatasi fitur-fitur baru ini hanya untuk user yang membeli lisensinya. Sehingga MySQL tidak lagi sebuah opensource yang benar-benar gratis lagi. MySQL sekarang hanya menyediakan fitur-fitur "dasar" saja yang saat ini sudah menggunakan versi 5.1. Untuk mendownloadnya silahkan download di sini dan dicari versi MySQL dengan OS kita.
c. Multiuser
MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami konflik. Hal ini memungkinkan sebuah database server MySQL dapat diakses klien secara bersamaan.
d. Performance Tuning
MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
e. Column Types
MySQL memiliki tipe kolom yang sangat kompleks, seperti signed/unsigned integer, float, double, char, varchar, text, blob, date, time, datetime, timestamp, year, set serta enum.
f. Command dan Functions
MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah SELECT dan WHERE dalam query.
g. Security
MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.
h. Scalability dan Limits
MySQL ammpu menangani database dalam skala besar dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris. Selain itu, batas index yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
i. Connectivity
MySQL dapat melakukan koneksi dengan klien menggunakan TCP/IP, Unix soket (Unix), atau Named Pipes (NT).
j. Localisation
MySQL dapat mendeteksi pesan kesalahan (error code) pada klien dengan menggunakan lebih dari dua puluh bahasa.
k. Interface
MySQL memiliki interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
l. Clients dan Tools
MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk online.
m. Struktur Tabel
MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE dibandingkan database lainnya.

III. Ketentuan Memberi Perintah dalam MySQL
Berikut adalah ketentuan-ketentuan member perintah pada MySQL:

* Setiap perintah harus diakhiri dengan tanda titik koma (;) atau dengan memberikan perintah \g atau \G. Namun, pada umumnya user menggunakan tanda titik koma untuk mengakhiri perintah pada MySQL.
* Setiap perintah akan disimpan dalam buffer (memori sementara) untuk menyimpan histori perintah-perintah yang pernah diberikan.
* Perintah dapat berupa perintah SQL atau perintah khusus MySQL.
* Perintah-perintah yang bukan SQL dapat dipendekkan dengan menggunakan \ dan huruf depan perintah.
* Perintah help atau \h digunakan untuk menampilkan daftar dan aturan memberikan perintah di lingkungan MySQL.
* Perintah-perintah dalam lingkungan MySQL tidak menerapkan aturan case sensitive, tetapi case insensitive yaitu perintah bisa dituliskan dalam huruf besar atau pun huruf kecil.
* Aturan case sensitive diterapkan pada penamaan objek-objek dalam database seperti nama database atau nama table, namun aturan ini hanya ada dalam lingkungan Unix dan Linux.
* Untuk melihat perintah-perintah yang sudah pernah kita ketikkan, tekan tombol tanda panah atas.

Link List



LINK LIST

PENDAHULUAN

q  Dalam suatu linier list kita dapat melakukan operasi penyisipan atau penghapusan atas elemen-elemennya pada sembarang posisi.
q  Misalkan ada 1500 item yang merupakan elemen dari  suatu linier list. Jika elemen ke-56 akan kita  keluarkan, maka elemen  ke-1 s/d elemen  ke-55 tidak akan berubah posisinya pada linier list tersebut. Tetapi elemen ke–57akan menjadi elemen ke-56, elemen ke-58 akan menjadi elemen ke-57 dst. Selanjutnya, jika kita sisipkan satu  elemen pada  posisi setelah elemen ke-41, maka elemen ke-42 s/d elemen ke-1500 akan berubah posisinya.

q  Untuk menyatakan keadaan diatas  diperlukan suatu konsep yang berbeda  dengan konsep sekuensial sebelumnya.
Linked list merupakan suatu cara non-sekuensial yang digunakan untuk merepresentasikan suatu  data.

DEFINISI



q  Linked list (one  way  list) adalah suatu  kumpulan elemen  data (yang  disebut sebagai node) dimana  urutannya ditentukan  oleh  suatu pointer.
q  Setiap elemen  (node) dari  suatu linked list terdiri atas dua bagian, yaitu:
Ø  INFO berisi informasi tentang elemne data yang bersangkutan.
Ø  NEXT (link field/next pointer field), berisi alamat dari elemen (node) selanjutnya     yang dituju.

OPERASI  DASAR PADA LINKED LIST


q  Ada beberapa  aturan yang didefinisikan pada operasi didalam linked list yaitu:
Ø Jika P adalah  suatu variabel pointer, maka nilainya  adalah alamat atau lokasi dari variabel lain yang  dituju.
Ø Operasi yang  didefinisikan  pada  suatu variabel pointer adalah:
1.            Test apakah  sama dengan NULL
2.            Test untuk kesamaan denganvariabel pointer lain
3.            Menetapkan  sama dengan NULL
4.            Menetapkan menuju ke node lain
q  Notasi yang didefinisikan sehubungan dengan operasi diatas  adalah
  1. NODE (P), artinya node yang  ditunjuk oleh pointer P
  2. INFO (P), artinya  nilai INFO dari node yang ditunjuk pointer  P
  3. NEXT (P), artinya  hubungan (link) selanjutnya dari node yang ditunjuk oleh pointer P

Antrian data pada pemrograman



Queue

Adalah suatu bentuk khusus dari linear list dengan operasi penyisipan (insertion) hanya pada salah satu sisi ( Rear/ belakang) dan operasi penghapusan (deletion) hanya diperbolehkan pada sisi lainnya (Front/ depan) dari list.

Antrean   Q  = [ Q1, Q2, Q3,……….., QT]
          Front(Q) = bagian depan dari antrean Q
          Rear(Q)  = bagian belakang dari antrean Q
          Noel(Q)  = Jumlah elemen di dalam antrean ( berharga integer)
          Jadi :  Front(Q) = QT
                    Rear(Q) = Q1
                    Noel(Q) = T

Antrean beroperasi secara FIFO ( First In First Out) yang pertama masuk, yang pertama keluar.

q  Operasi dasar pada Antrean :

1.   CREATE(Q)
Operator untuk membentuk suatu antrean hampa
Q = [,…….,]
NOEL(CREATE(Q)) = 0
FRONT(CREATE(Q)) = tidak didefinisikan
REAR(CREATE(Q)) = tidak didefinisikan

2.   ISEMPTY(Q)
Operator yang menentukan apakah antrean Q hampa atau tidak.
Operand dari operator ISEMPTY adalah antrean.
Hasilnya bertipe data Boolean
ISEMPTY(Q) =TRUE   jika Q adalah antrean hampa (NOEL(Q) = 0)
                        FALSE jika Q bukan antrean kosong (NOEL(Q) ¹ 0)

3.   INSERT(E,Q)
Operator yang menyisipkan elemen E ke dalam antrean Q
Catt :      Elemen Q ditempatkan pada bagian belakang antrean dan antrean menjadi lebih panjang
Q = [ A, B, C, D]
REAR(INSERT(E,Q)) = E
FRONT(Q) = A
NOEL(Q) = 5
ISEMPTY(INSERT(E,Q)) = FALSE
4.   REMOVE(Q)
Operator yang menghapus elemen bagian depan dari antrean Q dan antrean menjadi lebih pendek
Jika   NOEL(Q) = 0 maka
REMOVE(Q) = ERROR ( UNDERFLOW)