INFO: Source Code dalam bahasa C terdapat di bagian paling bawah pos ini ^_^

Yak, ini postingan pertama saya mengenai program untuk mencari akar-akar persamaan kuadrat. Secara umum, persamaan kuadrat berbentuk ax+ bx + c. Persamaan kuadrat memiliki 3 jenis akar, yaitu akar imajiner, real kembar, dan real berbeda. Akar yang saya maksudkan di sini adalah (x + a)(x + b), di mana akar pertama (x1) sama dengan a dan akar kedua (x2) sama dengan b. Nah, inilah bekal awal saya dalam membuat program ini pada Pascal.

By the way, Pascal itu bagi yang pertama kali mendengarnya (red: membacanya), merupakan bahasa pemrograman tingkat tinggi di samping bahasa C/C++, Java, dll. Berbeda dari bahasa pemrograman lainnya, bahasa Pascal tergolong mudah untuk dipahami karena tidak menggunakan simbol-simbol yang 'ribet' namun memang jadi tidak efisien. Walaupun demikian, bagi pemula saya lebih merekomendasikan pelajari Pascal terlebih dahulu untuk lanjut ke tingkat yang lebih sulit.

Yak, agak ngawur dari topik, daripada kebanyakan tulisan lebih baik saya berikan source code dari program yang saya buat. So check it out bro!

Program Akar2PersKuadar;

uses
 crt;

var
 a, b, c: integer;
        D, x1, x2: real;

begin
 writeln('PROGRAM MENCARI AKAR DARI PERSAMAAN KUADRAT'); 
 writeln('Bentuk umum persamaan kuadrat ax^2 + bx + c');
 writeln(' ');
 write('Masukkan konstanta untuk variabel a: ');
 readln(a);
 write('Masukkan konstanta untuk variabel b: ');
 readln(b);
 write('Masukkan konstanta c: ');
 readln(c);

 If a = 1 Then
 begin
  writeln(' ');
  writeln('Bentuk persamaan: x^2 + ', b ,'x + ', c);
  writeln(' ');
 end Else
 begin
  writeln(' ');
  writeln('Bentuk persamaan: ', a, 'x^2 + ', b ,'x + ', c);
  writeln(' ');
 end;

 D := b*b - 4*a*c;
 While D<0 do
 begin
  writeln(' '); 
  writeln('ERROR: Persamaan yang Anda input menghasilkan akar imajiner');
  writeln('Silakan ulangi (tekan enter)');
  readln;
  write('Masukkan konstanta untuk variabel a: ');
  readln(a);
  write('Masukkan konstanta untuk variabel b: ');
  readln(b);
  write('Masukkan konstanta c: ');
  readln(c);
  D := b*b - 4*a*c;
 end;

        If D = 0 Then
 begin
  x1 := b/2*a;
  write('Akar dari persamaan yang Anda minta adalah: ');
  write('Real Kembar bernilai ', x1:0:2);
 end
 Else begin
  x1 := (b - sqrt(D))/2*a;
  x2 := (b + sqrt(D))/2*a;
  write('Akar dari persamaan yang Anda minta adalah: ');
  write('Real berbeda bernilai ', x1:0:2, ' dan ', x2:0:2);
                end;
                readln;
end.

Setelah di-compile, maka inilah hasilnya:

Yak, mungkin masih ada kekurangan dari program yang saya tulis, namun setidaknya berjalan sebagaimana mestinya. Terima kasih sudah membaca posting-an saya, semoga bermanfaat bagi teman-teman sekalian. Masih banyak lagi program-program yang telah saya buat yang belum sempat di-post, ditunggu sajalah. ^_^

UPDATE!
Secara iseng mengisi waktu liburan, saya tidak sengaja membuat versi bahasa C-nya. Secara tampilan tidak ada yang berubah kecuali bahasanya saja. Versi bahasa C ini hanya digunakan sebagai pembanding saja antara bahasa pemrograman yang satu dengan yang lain. So check it out bro!

#include 
#include 

int main()
{
    int a; int b; int c;
    float d; float x1; float x2;

    printf("PROGRAM MENCARI AKAR DARI PERSAMAAN KUADRAT \n");
    printf("Bentuk umum persamaan kuadrat ax^2 + bx + c \n");
    printf("\n");
    printf("Masukkan konstanta untuk variabel a: ");
    scanf("%d", &a);
    printf("Masukkan konstanta untuk variabel b: ");
    scanf("%d", &b);
    printf("Masukkan konstanta c: ");
    scanf("%d", &c);
    d = b*b - 4*a*c;
    printf("\n");

    while (d<0){
        printf("ERROR: Akar Imajiner, silakan ulangi \n");
        printf("Masukkan konstanta untuk variabel a: ");
        scanf("%d", &a);
        printf("Masukkan konstanta untuk variabel b: ");
        scanf("%d", &b);
        printf("Masukkan konstanta c: ");
        scanf("%d", &c);
        d = b*b - 4*a*c;
        printf("\n");
    }
    if (d==0){
        x1= b/2*a;
        printf("Akar dari persamaan yang Anda minta adalah ");
        printf("real kembar yang bernilai %5.2f \n", x1);
    }
    else {
        x1 = (b-sqrt(d))/2*a;
        x2 = (b+sqrt(d))/2*a;
        printf("Akar dari persamaan yang Anda minta adalah ");
        printf("real berbeda bernilai %5.2f dan %5.2f \n", x1, x2);
    }
    return 0;
}

Kembali lagi, kali ini saya akan membahas mengenai submatriks lagi. Tidak seperti program sebelumnya, program kali ini dibuat untuk mencari apakah suatu matriks B yang di-input oleh pengguna merupakan submatriks dari matriks A yang juga di-input oleh pengguna. Idenya adalah bagaimana cara membuat program memeriksa semua elemen matriks A dan matriks B dengan mencari nilai-nilai yang sama, namun sesuai dengan urutan tiap-tiap elemen. Contohnya saat di-input-kan dua buah matriks seperti di bawah ini,
maka program akan memeriksa kesamaan elemen aij dengan bkl apakah terdapat empat elemen yang sama yang berurutan. Jika iya, program akan menampilkan bahwa matriks B adalah submatriks dari matriks A.

Berikut ini source code program yang saya modifikasi berdasarkan program yang ditulis dalam bahasa Java yang saya dapatkan di Stackoverflow, program ini dibuat dengan array konstan, atau tidak meminta input dari pengguna, jika ingin diubah bisa saja.:

Program cekSubMat;

uses crt;

const
     ROWA = 3;
     COLA = 3;
     ROWB = 2;
     COLB = 1;
     A: Array[0..ROWA, 0..COLA] of Integer = ((2, 3, 5, 7), (5, 8, 3, 2), (7, 6, 2, 7), (3, 8, 5, 3));
     B: Array[0..ROWB, 0..COLB] of Integer = ((3, 5), (8, 3), (6, 2));
var
     i, j, k, l, counter, bar, kol: integer;
     submatrix, nemu: Boolean;

begin
    writeln('TAMPILAN MATRIKS YANG DIINPUT');
    for i := 0 To ROWA do begin
        for j := 0 to COLA do begin
             write(A[i, j], ' ');
        end;
        writeln(' ');
    end;
    writeln(' ');
    writeln('CONTOH SUBMATRIKS');
    for i := 0 To ROWB do begin
        for j := 0 to COLB do begin
            write(B[i, j], ' ');
        end;
        writeln(' ');
    end;
    writeln(' ');
    for i := 0 to ROWA-ROWB do begin           //Pengurangan (ROWA-ROWB) dan (COLA-COLB)dilakukan
        for j := 0 to COLA-COLB do begin       //agar tidak terjadi "out of bound" error
            counter := 0;
            for k := 0 to ROWB do begin
                for l := 0 to COLB do begin
                    if (A[i+k, j+l] = B[k, l]) then begin  // Memulai pencarian submatriks
                        counter := counter + 1;            // jika ditemukan counter bertambah 1
                    end else begin
                        counter := 0;                      // jika setelahnya tidak ditemukan kesamaan
                    end;                                   // counter kembali 0
                end;
            end;
            if (counter = (ROWB+1)*(COLB+1)) then begin    // Jika ditemukan sesuai
                nemu := TRUE;                              // dengan kondisi maka
                bar := i;                                  // submatriks ditemukan
                kol := j;
            end;
        end;
    end;
    writeln(' ');
    writeln('HASIL');
    if (nemu) then
        writeln('Submatriks ditemukan pada elemen (a',bar+1,kol+1,') sampai (a',bar+k+1,kol+l+1,').')
    else
        writeln('Sayangnya, submatriks yang Anda input-kan tidak ditemukan.');
     readln;
end.
Hasilnya akan seperti:


Jika masih bingung, silakan ditanyakan atau dicoba pahami terlebih dahulu ^_^. Ciao
Dalam matematika, bilangan prima adalah bilangan asli yang lebih besar dari angka 1, yang faktor pembaginya adalah 1 dan bilangan itu sendiri. 2 dan 3 adalah bilangan prima. 4 bukan bilangan prima karena 4 bisa dibagi 2. Sepuluh bilangan prima yang pertama adalah 2, 3, 5, 7, 11, 13, 17, 19, 23 dan 29.

Jika suatu bilangan yang lebih besar dari satu bukan bilangan prima, maka bilangan itu disebut bilangan komposit. Cara paling sederhana untuk menentukan bilangan prima yang lebih kecil dari bilangan tertentu adalah dengan menggunakan saringan Eratosthenes. [Wikipedia]

Nah, saya akan berikan source code program untuk mencari bilangan prima dari rentang 1...n bilangan bulat. Source code ini saya dapatkan dari sini dan saya konversi menjadi Pascal dengan sedikit perubahan. Berikut ini kodenya:

program bilPrima;

uses crt;

var
    n, i, j, pemicu: integer;

begin
    writeln('Program menentukan bilangan prima');
    write('Masukkan hingga rentang yang diinginkan: ');
    readln(n);

    for i := 1 to n do begin
        pemicu := 0;
        for j := 1 to i do begin
            if (i mod j = 0) then
                pemicu := pemicu + 1;
        end;
        if (pemicu = 2) then
            write(i, ' ');
    end;

    readln;
end.

Saat dijalankan, seperti inilah kira-kira hasilnya:
Program menampilkan bilangan prima dari rentang bilangan bulat 1 s.d. 20

Nah, kali ini saya ingin menunjukkan situs gratis yang sangat berguna bagi kalian yang ingin mempelajari berbagai metode ngoding dengan interkatif yang sangat mudah untuk dipahami.

Codeacademy.com

codeacademy.com
Pertama, Codeacademy.com merupakan situs gratis yang menyediakan pembelajaran HTML/CSS, JavaScript, Phyton, PHP, Ruby, dan jQuery dari dasar hingga ke tingkat sulit.

Saya sendiri sudah mencoba belajar mengenai HTML/CSS dan benar saja sangat mudah untuk dipahami karena terdapat instruksi-instruksi yang memandu user dalam menuliskan code-nya.

Berbagai macam bahasa Web yang dapat dipelajari
Berbagai macam bahasa Web yang dapat dipelajari
Berikut ini metode yang diajarkan pada menu HTML/CSS

Menu HTML & CSS
Menu HTML & CSS
Lalu, saya pilih dari HTML Basics dan berikut ini tampilan media pembelajarannya:

Tampilan pembelajaran. DIlengkapi dengan instruksi di sidebar kirinya.
Tampilan pembelajaran. DIlengkapi dengan instruksi di sidebar kirinya.
Tinggal ikuti saja instruksi-instruksi yang diberikan, jika sudah klik Save & Submit Code untuk melanjutkan ke langkah berikutnya.

Studio.code.org

studio.code.org
Kedua, Studio.code.org merupakan situs gratis yang menyediakan layanan untuk belajar mengenai programming. Situs ini dapat diakses oleh berbagai kalangan baik anak-anak, remaja, maupun dewasa. Situs ini tidak memusatkan pada "bagaimana cara kita untuk menulis suatu program", namun lebih ke "bagaimana cara kita agar program dapat dijalankan dengan benar". Jadi, user butuh kemampuan logika dan algoritme yang cukup kuat agar bisa menyelesaikan tantangan tersebut.


Setiap tantangan dikemas layaknya suatu permainan. Ada berbagai macam tipe, di antaranya The Hour of Code (segala usia), 20 Jam Kursus untuk Pemula (segala usia), dan lainnya. Sebagai gambaran, saya akan mencoba Flappy Code. Dalam Flappy Code menantang user  untuk membuat sebuah permainan layaknya Flappy Bird dengan berbagai macam instruksi yang harus user input-kan.

Tampilan Awal
Tampilan Awal
Nah, kalian harus men-drag instruksi yang terdapat di tabel blok lalu menaruhnya di area input. Perhatikan bahwa input instruksi yang diberikan harus benar sesuai dengan permainan aslinya. Jika merasa sudah benar, klik tombol Jalankan, kalau berhasil maka lanjut ke level berikutnya dan kalau gagal ulangi lagi.
Dalam matematika, matriks adalah kumpulan bilangan, simbol, atau ekspresi, berbentuk persegi panjang yang disusun menurut baris dan kolom. Bilangan-bilangan yang terdapat di suatu matriks disebut dengan elemen atau anggota matriks (Wikipedia). Matriks biasa digunakan dalam solusi menentukan sistem persamaan linear. Yak tidak usah banyak basa basi biar enggak tl;dr, kali ini saya membuat sebuah program dengan menggunakan bantuan bahasa Pascal yang dapat menghitung perkalian dua buah matriks. Berikut inilah hasilnya:


program perkalian2Matriks;

uses
    crt;

const
     size = 10;

var
   matA: Array[1..size, 1..size] of Integer;
   matB: Array[1..size, 1..size] of Integer;
   matC: Array[1..size, 1..size] of Integer;
   i,j,k,n1,m1,n2,m2,temp: integer;

begin
   repeat
   writeln('BANYAK KOLOM MATRIKS A HARUS SAMA DENGAN BANYAK BARIS MATRIKS B');
   writeln(' ');
   write('Banyaknya baris matriks A: ');
   readln(n1);
   write('Banyaknya kolom matriks A: ');
   readln(m1);
   writeln(' ');
   write('Banyaknya baris matriks B: ');
   readln(n2);
   write('Banyaknya kolom matriks B: ');
   readln(m2);
   writeln(' ');
   until (m1 = n2);

   {menginisiasi elemen matriks A}

   writeln('Masukkan elemen matriks A: ');
   For i := 1 To n1 do begin
       For j := 1 To m1 do begin
            write('A[',i,',',j,'] = ');
            readln(matA[i, j]);
       end;
   end;
   writeln(' ');

   {menginisiasi elemen matriks B}

   writeln('Masukkan elemen matriks B: ');
   For i := 1 To n2 do begin
       For j := 1 To m2 do begin
            write('B[',i,',',j,'] = ');
            readln(matB[i, j]);
       end;
   end;

   {menghitung perkalian}
   For i := 1 To n1 do begin
       For j := 1 To m2 do begin
           temp := 0  ;
           For k := 1 To n2 do begin
               matC[i, j] := temp + matA[i, k]*matB[k, j];
               temp := matC[i, j];
           end;
       end;
   end;

   {menampilkan hasil}
   writeln(' ');
   writeln('HASILNYA: ');
   For i := 1 To n1 do begin
       For j := 1 To m2 do begin
            write(matC[i, j], ' ');
       end;
       writeln(' ');
   end;
   readln;
end.

Berikut hasil saat kita menjalankan programnya:

Welcome to My Blog

Labels

Popular Post

- Copyright © Dunia [masih] bersinar -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -