Wednesday, December 10th, 2008 | Author: Riza

Pascal's Triangle (Segitiga Pascal)Pemrograman visual yang termasuk dalam keluarga RAD (Rapid Application Development) ternyata bagaikan pedang bermata dua. Satu sisi memang memberikan kemudahan dan waktu development yang jauh lebih singkat dibanding pemrograman konvensional (non visual). Namun pada sisi yang lain justru seperti mengebiri kemampuan mencari algoritma programmer untuk memecahkan suatu masalah.

Walaupun ini pendapat pribadi yang tentu saja sangat subyektif, namun bagi programmer yang awalnya atau pernah berkecimpung dengan pemrograman non visual pasti berpendapat sama. Atau bisa jadi bukan karena pemrograman visual-nya. Tapi lebih karena faktor programmer itu sendiri yang malas mengasah kemampuan mencari algoritmanya. Atau mungkin karena kurikulum di kampus sekarang yang sudah tidak lagi mengajarkan mata kuliah tentang algoritma dengan mendalam. Padahal algoritma adalah sesuatu yang sangat esensial dalam dunia pemrograman. Programmer yang bagus pasti memiliki kemampuan yang bagus pula dalam mencari algoritma untuk memecahkan suatu masalah.

Terlepas dari apapun yang menjadi penyebabnya, satu hal yang pasti adalah sangat sulit mencari seorang programmer yang memiliki kemampuan algoritma yang bagus sekarang ini. Parameternya adalah tes tertulis yang biasanya diadakan software house ketika akan merekrut karyawan untuk diposisikan sebagai programmer. Ada beberapa soal yang menjadi favorit kebanyakan software house ketika memberikan tes. Soal-soal tersebut sebenarnya sangat mudah. Tujuan jelas untuk menguji kemampuan algoritma peserta tes. Tapi anehnya, hampir 90% peserta tes gagal menjawab soal-soal tersebut.

Salah satunya adalah soal mengenai Segitiga Pascal (Pascal’s Triangle). Pada soal tersebut, peserta diminta untuk membuat program kecil untuk menampilkan deretan angka sebagai berikut, yang sebenarnya adalah deretan angka pembentuk segitiga pascal:

Segitiga Pascal (Pascal's Triangle)

Secara matematika, segitiga pascal dituliskan dengan aturan sebagai berikut:

dimana:

  • n adala bilangan integer yang lebih besar dari nol,
  • k adalah bilang integer antara 0 sampai n.

Untuk mengodekan aturan matematika di atas, perhatikan source code yang ditulis dalam bahasa C++ berikut:

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
#include <iostream>
 
#define MAX_LINE 10
typedef unsigned int UINT;
 
int main()
{
    int items[MAX_LINE][MAX_LINE];
    for (UINT n = 0; n < MAX_LINE; n++)
    {
        for (UINT k = 0; k < n; k++)
        {
            if (n == 0 || k == 0 || k == n-1)
            {
                items[n][k] = 1;
            }
            else
            {
                items[n][k] = items[n-1][k-1] + items[n-1][k];
            }
 
        }
    }
 
    for (UINT i = 0; i < MAX_LINE; i++)
    {
        for (UINT ii = 0; ii < i; ii++)
        {
            std::cout << items[i][ii] << "  ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}

Semoga bermanfaat. ***

Category: C++, Programming
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

9 Responses

  1. … dan ini masih bisa di-optimize lagi sehingga hanya membutuhkan 1/2+ jumlah kalkulasi (alias bisa hampir 2x lebih cepat) hehehehe

  2. jadi inget waktu aku gagal test tulis source code rekursif n! … !@#@#$!@#$%!%@!!!

  3. thanks bos segitiga pascalnya,,,,
    tp kliatanya kq sulit ya????
    g da yang lbh mudah lagi tah???

  4. #3
    Mas elitz becanda nih. :D

  5. mas riza minta yang versi bahasa pascalnya dong

  6. 6
    pujangga 
    Thursday, 7. May 2009

    gue butuh source code segitiga pascal. mana source code versi pascalnya……. dasar pembohong???
    masa’ C++ doang. gue udah nyari di google nggak ada…. sama sekali
    jangan bohong entar dosa lo?

  7. 7
    one-dana 
    Monday, 11. May 2009

    bisa tolong flowchartnya ga…?? sekalia tracingnya juga boleh.. hehehe…

  8. woww..sepertinya sulit yyahh.. hehe..

  9. Keren..

    Ini dia yg gw cari :P

Leave a Reply » Log in


Verification: