Minggu, 17 Juli 2011

Web Server untuk Java

Apache bukan barang asing di Linux, hampir semua distro menyertakannya. Namun, Anda perlu menambah program agar mendukung halaman berisi kode Java (JSP/servlet). Salah satu alternatif web server, yang 100% Java adalah Jetty. Tiga besar layanan Internet saat ini adalah Word Wide Web (WWW), E-mail dan Chatting. Menurut data statistik yang dikumpulkan Netcraft, pada awal tahun 2003 ada lebih dari 35 juta web server. Dari jumlah itu, lebih dari 60% menggunakan Apache, dan nyaris 30% adalah combo Linux + Apache + MySQL + PHP (LAMP). Sementara itu untuk e-mail, 80% pangsa server dulu dikuasai Sendmail, namun kini mulai digantikan Postfix atau Qmail. Tren terbaru juga menunjukkan bahwa email berbasis web makin diminati, di mana Combo yang populer adalah Linux + Apache + {Postfix/Qmail} + IMAP + {IMP/SquirrelMail/Postman}.

Membuat CGI dengan Pascal

Ada yang mengatakan bahwa para programmer Pascal mungkin tidak pernah bermimpi dapat membuat aplikasi berbasis web. Memang untuk saat ini tidak ada tool/library khusus yang dapat digunakan oleh programmer Pascal untuk membuat aplikasi berbasis web, kecuali mungkin framework .NET-nya Microsoft. Tapi dengan sedikit mengutak-atik, para programmer Pascal sebetulnya bisa ambil bagian dalam dunia yang satu ini.
Artikel ini saya tulis untuk berbagi pengalaman membuat program CGI dengan Pascal. Awalnya saya penasaran dengan pernyataan bahwa CGI dapat dibuat dengan sembarang bahasa pemrograman1. Jika demikian, tentunya CGI juga dapat dibuat dengan menggunakan Pascal. Maka iseng-iseng saya coba kutak-katik webserver Apache di komputer saya, dan jadilah tulisan ini. Spesifikasi sistem yang saya gunakan adalah Pascal untuk platform DOS dan webserver Apache 1.3.22. Sebagai catatan, saya belum mencoba cara ini pada web server selain Apache, dan tidak berhasil pada web server IIS.

Kumpulan Program Pascal

Kumpulan program pascal ini merupakan kumpulan latihan saat penulis belajar bahasa pemrograman pascal. Penulis menggunakan Turbo Pascal for Windows (TPW) Versi 1.5 sebagai kompilernya. Mungkin ada kekurangan disana sini, tapi mudah-mudahan kumpulan program ini bermanfaat bagi pembaca yang berminat dan baru mempelajari bahasa pemrograman pascal.

Prosedur dan Fungsi di Turbo Pascal

Prosedur dan Fungsi di Turbo Pascal
A. Konsep pemrograman prosedural
Ketika program yang dibuat sudah terlalu panjang ratusan bahkan puluhan ribu baris, sehingga kita mengalami kesulitan untuk memahami jalannya program secara keseluruhan, maka ada baiknya bila program tersebut dipecah menjadi beberapa bagian yang biasanya disebut modul, subprogram atau subrutin. Konsep semacam ini biasa disebut dengan pemrograman prosedural. Dalam tulisan ini selanjutnya akan digunakan kata modul supaya lebih ringkas. Turbo Pascal yang digunakan pada percobaan ini adalah versi 7.1, bila anda menggunakan Turbo Pascal 7.0 maka prosesnya tidak jauh berbeda.
Memecah program menjadi modul-modul tentunya akan lebih memudahkan dalam mencari kesalahan, memperbaiki serta membuat dokumentasinya. Pembuatan modul di Turbo Pascal dibagi dua jenis yaitu : Prosedur dan Fungsi. Prosedur atau Fungsi adalah suatu modul program yang terpisah dari program utama, diletakan dalam blok tersendiri yang berfungsi sebagai bagian dari program. Setiap prosedur diawali dengan kata cadangan (reserver word) Procedure, sedangkan Fungsi diawali dengan kata cadangan Function.
Prosedur atau Fungsi banyak digunakan pada program terstruktur, karena :
1. Merupakan penerapan konsep modular, yaitu memecah program menjadi modul-modul atau subprogram-subprogam yang lebih sederhana.
2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.

2011 Pemrograman Pascal

Pascal adalah sebuah bahasa pemograman tempo dulu. Mungkin itu saja yang dapat saya definiskan, karena saya yakin pembaca lebih tahu mengenai definisi lengkap dari Pascal. Saya ingin berbagi ilmu walaupun cuma sedikit tentang pemograman dengan Pascal. Melalui tulisan ini, saya mencoba untuk mengulas program, prosedur dan fungsi menarik yang bisa Anda coba dan terapkan dalam pemograman Pascal. Beberapa yang dapat saya sampaikan, diantaranya:
  1. Fungsi-fungsi String
  2. Fungsi-fungsi Date
  3. Fungsi-fungsi Konversi
  4. Program Permainan
Semoga bahasan ini menjadi menarik dan bermanfaat untuk Anda semua.

Using Pascal's Triangle

Using Pascal's Triangle

Heads and Tails

Pascal's Triangle can show you how many ways heads and tails can combine. This can then show you "the odds" (or probability) of any combination.
For example, if you toss a coin three times, there is only one combination that will give you three heads (HHH), but there are three that will give two heads and one tail (HHT, HTH, THH), also three that give one head and two tails (HTT, THT, TTH) and one for all Tails (TTT). This is the pattern "1,3,3,1" in Pascal's Triangle.
Tosses Possible Results (Grouped) Pascal's Triangle
1 H
T
1, 1
2 HH
HT TH
TT
1, 2, 1
3 HHH
HHT, HTH, THH
HTT, THT, TTH
TTT
1, 3, 3, 1
4 HHHH
HHHT, HHTH, HTHH, THHH
HHTT, HTHT, HTTH, THHT, THTH, TTHH
HTTT, THTT, TTHT, TTTH
TTTT
1, 4, 6, 4, 1
  ... etc ...  

Example: What is the probability of getting exactly two heads with 4 coin tosses?

There are 1+4+6+4+1 = 16 (or 24=16) possible results, and 6 of them give exactly two heads. So the probability is 6/16, or 37.5%

Combinations

The triangle also shows you how many Combinations of objects are possible.

Example: You have 16 pool balls. How many different ways could you choose just 3 of them (ignoring the order that you select them)?

Answer: go down to row 16 (the top row is 0), and then along 3 places and the value there is your answer, 560.
Here is an extract at row 16:
1    14    91    364  ...
1    15    105   455   1365  ...
1    16   120   560   1820  4368  ...

 

A Formula for Any Entry in The Triangle

In fact there is a formula from Combinations for working out the value at any place in Pascal's triangle:
It is commonly called "n choose k" and written like this:

 
Notation: "n choose k" can also be written C(n,k), nCk or even nCk.
Factorial Symbol The "!" is "factorial" and means to multiply a series of descending natural numbers. Examples:
  • 4! = 4 × 3 × 2 × 1 = 24
  • 7! = 7 × 6 × 5 × 4 × 3 × 2 × 1 = 5040
  • 1! = 1

So Pascal's Triangle could also be
an "n choose k" triangle like this:
(Note that the top row is row zero)
Pascals Triangle Combinations

Example: Row 4, term 2 in Pascal's Triangle is "6" ...

... let's see if the formula works:
Yes, it works! Try another value for yourself.
This can be very useful ... you can now work out any value in Pascal's Triangle directly (without calculating the whole triangle above it).

Polynomials

Pascal's Triangle can also show you the coefficients in binomial expansion:
Power Binomial Expansion Pascal's Triangle
2 (x + 1)2 = 1x2 + 2x + 1 1, 2, 1
3 (x + 1)3 = 1x3 + 3x2 + 3x + 1 1, 3, 3, 1
4 (x + 1)4 = 1x4 + 4x3 + 6x2 + 4x + 1 1, 4, 6, 4, 1
  ... etc ...  

The First 15 Lines

For reference, I have included row 0 to 14 of Pascal's Triangle
1
                                        1     1
                                     1     2     1
                                  1     3     3     1
                               1     4     6     4     1
                            1     5     10    10    5     1
                         1     6     15    20    15    6     1
                      1     7     21    35    35    21    7     1
                   1     8     28    56    70    56    28    8     1
                1     9     36    84    126   126   84    36    9     1
             1     10    45    120   210   252   210   120   45    10    1
          1     11    55    165   330   462   462   330   165   55    11    1
       1     12    66    220   495   792   924   792   495   220   66    12    1
    1     13    78    286   715   1287  1716  1716  1287  715   286   78    13    1
 1    14     91   364   1001  2002  3003  3432  3003  2002  1001   364   91    14    1

The Chinese Knew About It

This drawing is entitled "The Old Method Chart of the Seven Multiplying Squares". View Full Image
It is from the front of Chu Shi-Chieh's book "Ssu Yuan YĆ¼ Chien" (Precious Mirror of the Four Elements), written in AD 1303 (over 700 years ago, and more than 300 years before Pascal!), and in the book it says the triangle was known about more than two centuries before that.

The Quincunx

An amazing little machine created by Sir Francis Galton is a Pascal's Triangle made out of pegs. It is called The Quincunx.

Balls are dropped onto the first peg and then bounce down to the bottom of the triangle where they collect in little bins.
At first it looks completely random (and it is), but then you find the balls pile up in a nice pattern: the Normal Distribution.

Patterns Within the Triangle


 

Diagonals

The first diagonal is, of course, just "1"s, and the next diagonal has the Counting Numbers (1,2,3, etc).
The third diagonal has the triangular numbers
(The fourth diagonal, not highlighted, has the tetrahedral numbers.)

Odds and Evens

If you color the Odd and Even numbers, you end up with a pattern the same as the Sierpinski Triangle
 
 

Horizontal Sums

What do you notice about the horizontal sums?
Is there a pattern? Isn't it amazing! It doubles each time (powers of 2).

 

Exponents of 11 ⇒ Pascal's Triangle

But what happens with 115 ? Simple! The digits just overlap, like this:
The same thing happens with 116 and so on.
 
 

Fibonacci Sequence

Try this: make a pattern by going up and then along, then add up the squares (as illustrated) ... you will get the Fibonacci Sequence.

(The Fibonacci Sequence starts "1, 1" and then continues by adding the two previous numbers, for example 3+5=8, then 5+8=13, etc)

Pascal's Triangle Symmetry  

Symmetrical

And the triangle is also symmetrical. The numbers on the left side have identical matching numbers on the right side, like a mirror image.