Jumat, 14 Desember 2007

Perkalian Matriks

Logika dan Algoritma

Menghitung Perkalian Matriks

Algoritma :

  1. Deklarasikan variable i untuk iterasi, j untuk iterasi, k untuk iterasi, bar_a untuk jumlah baris pada matriks A, kol_a untuk jumlah kolom pada matriks A, bar_b untuk jumlah baris pada matriks B, kol_b untuk jumlah kolom pada matriks B, mat_a dengan tipe array of integer untuk menampung nilai matriks A, mat_b dengan tipe array of integer untuk menampung nilai matriks B, mat_c dengan tipe array of integer untuk menampung hasil perkalian kedua matriks.

  2. Masukkan jumlah baris pada matriks A lalu nyatakan ke variable bar_a, jumlah kolom pada matriks A lalu nyatakan ke variable kol_a, jumlah baris pada matriks B lalu nyatakan ke variable bar_b, serta jumlah kolom pada matriks B lalu nyatakan ke variable kol_b.

  3. Bila nilai pada bar_a tidak sama dengan nilai pada kol_b atau nilai pada kol_a tidak sama dengan nilai pada bar_b maka cetak “Kolom A = Baris B & Baris A = Kolom B!!!dan kembali ke langkah 2, namun bila tidak maka lakukan langkah 4 s/d 41.

  4. Cetak “ Nilai matriks A ” untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks A, bukan nilai pada matriks B.

  5. Isi variable i dengan 0.

  6. Selama nilai pada i kurang dari jumlah baris pada matriks A lakukan langkah 7 s/d 11.

  7. Isi variable j dengan 0.

  8. Selama j kurang dari jumlah kolom pada matriks A lakukan langkah 9 s/d 10.

  9. Masukkan nilai matriks pada indeks ke-i ke-j dan nyatakan ke mat_a[i][j].

  10. Tambahkan nilai pada variable j dengan 1.

  11. Tambahkan nilai pada variabel i dengan 1.

  12. Cetak “ Nilai matriks B untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks B, bukan nilai pada matriks A.

  13. Isi variable j dengan 0.

  14. Selama nilai pada j kurang dari jumlah baris pada matriks B lakukan langkah 15 s/d 19.

  15. Isi variable k dengan 0.

  16. Selama k kurang dari jumlah kolom pada matriks B lakukan langkah 17 s/d 18.

  17. Masukkan nilai matriks pada indeks ke-j ke-k dan nyatakan ke mat_b[j][k].

  18. Tambahkan nilai pada variable k dengan 1.

  19. Tambahkan nilai pada variabel j dengan 1.

  20. Isi variabel i dengan 0.

  21. Selama i kurang dari jumlah baris pada matriks A lakukan langkah 22 s/d 30.

  22. Isi variabel k dengan 0.

  23. Selama nilai pada k kurang dari jumlah kolom pada matriks B lakukan langkah 24 s/d 29.

  24. Isi mat_c pada indeks ke-i ke-k dengan 0.

  25. Isi j dengan 0.

  26. Selama j kurang dari jumlah baris pada matriks B lakukan langkah 27 s/d 28.

  27. Tambahkan nilai pada matriks_c indeks ke-i ke-k dengan hasil kali dari nilai pada mat_a pada indeks ke-i ke-j dengan nilai pada mat_b pada indeks ke-j ke-k kemudian nyatakan ke mat_c pada indeks ke-j ke-k.

  28. Tambahkan nilai pada j dengan 1.

  29. Tambahkan nilai pada k dengan 1.

  30. Tambahkan nilai pada i dengan 1

  31. Isi i dengan 0.

  32. Selama nilai i kurang dari jumlah baris pada matriks A lakukan langkah 33 s/d 37.

  33. Isi k dengan 0.

  34. Selama nilai k kurang dari jumlah kolom pada matriks B lakukan langkah 35 s/d 36.

  35. Cetak nilai pada mat_c indeks ke-i ke-k.

  36. Tambahkan nilai pada variabel k dengan 1.

  37. Tambahkan nilai pada variabel i dengan 1.

  38. Tanya apakah user masih ingin mengalikan dua buah matriks.

  39. Bila jawabannya iya, maka kembali ke langkah ke-2.

  40. Bila jawabannya tidak, maka program dapat langsung diakhiri.

  41. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 38).

Flowchart :

Penjumlahan Matriks

Logika dan Algoritma

Menghitung Penambahan Matriks

Algoritma :

  1. Deklarasikan variable a untuk iterasi, b untuk iterasi, i untuk iterasi, j untuk iterasi, baris_a untuk jumlah baris pada matriks A, kolom_a untuk jumlah kolom pada matriks A, baris_b untuk jumlah baris pada matriks B, kolom_b untuk jumlah kolom pada matriks B, matrik_a dengan tipe array of integer untuk menampung nilai matriks A, matrik_b dengan tipe array of integer untuk menampung nilai matriks B.

  2. Masukkan jumlah baris pada matriks A lalu nyatakan ke variable baris_a, jumlah kolom pada matriks A lalu nyatakan ke variable kolom_a, jumlah baris pada matriks B lalu nyatakan ke variable baris_b, serta jumlah kolom pada matriks B lalu nyatakan ke variable kolom_b.

  3. Bila nilai pada baris_a tidak sama dengan nilai pada baris_b atau nilai pada kolom_a tidak sama dengan nilai pada kolom_b maka cetak “Ordo Harus Sama” kemudian kembali ke langkah 2, namun bila tidak , maka lakukan langkah 4 s/d 30.

  4. Cetak “ Nilai matriks A ” untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks A, bukan nilai pada matriks B.

  5. Isi variable a dengan 0.

  6. Selama nilai pada a kurang dari jumlah baris pada matriks A lakukan langkah 7 s/d 11.

  7. Isi variable b dengan 0.

  8. Selama b kurang dari jumlah kolom pada matriks A lakukan langkah 9 s/d 10.

  9. Masukkan nilai matriks pada indeks ke-a ke-b dan nyatakan ke matrik_a[a][b].

  10. Tambahkan nilai pada variable b dengan 1.

  11. Tambahkan nilai pada variabel a dengan 1.

  12. Cetak “ Nilai matriks B ” untuk membedakan nilai yang akan dimasukkan adalah nilai pada matriks B, bukan nilai pada matriks A.

  13. Isi variable i dengan 0.

  14. Selama nilai pada i kurang dari jumlah baris pada matriks B lakukan langkah 15 s/d 19.

  15. Isi variable j dengan 0.

  16. Selama j kurang dari jumlah kolom pada matriks B lakukan langkah 17 s/d 18.

  17. Masukkan nilai matriks pada indeks ke-i ke-j dan nyatakan ke matriks_b[i][j].

  18. Tambahkan nilai pada variable j dengan 1.

  19. Tambahkan nilai pada variabel i dengan 1.

  20. Isi variabel a dengan 0.

  21. Selama a kurang dari jumlah baris pada matriks A lakukan langkah 22 s/d 26.

  22. Isi variabel b dengan 0.

  23. Selama nilai pada b kurang dari jumlah kolom pada matriks A lakukan langkah 24 s/d 25.

  24. Tambahkan nilai pada matriks_a indeks ke-a ke-b dengan nilai pada matriks_b pada indeks ke-a ke-b kemudian cetak hasilnya.

  25. Tambahkan nilai pada b dengan 1.

  26. Tambahkan nilai pada variabel a dengan 1.

  27. Tanya apakah user masih ingin menambahkan dua buah matriks.

  28. Bila jawabannya iya, maka kembali ke langkah ke-2.

  29. Bila jawabannya tidak, maka program dapat langsung diakhiri.

  30. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 27).

Flowchart :

Menentukan Bilangan Prima

Logika dan Algoritma

Menentukan Suatu Bilangan Apakah Merupakan Bilangan Prima atau Bukan

Algoritma :

  1. Deklarasikan variable i untuk iterasi, variable bil untuk bilangan yang ingin ditentukan apakah bilangan prima atau bukan, dan variabel x.

  2. Masukkan bilangan yang ingin ditentukan apakah bilangan prima atau bukan dan nyatakan ke variabel bil.

  3. Apabila bilangan yang dimasukkan tadi kurang dari atau sama dengan 0 maka cetak ” Bukan Bilangan Prima”, namun bila bilangan tersebut lebih dari 0 maka lakukan langkah 4 s/d 8. Kemudian lanjutkan ke langkah 9.

  4. Isi variabel i dengan nilai 2.

  5. Selama nilai pada variabel i masih kurang dari nilai pada variabel bil, lakukan langkah 6 s/d 8.

  6. Hitung sisa hasil bagi nilai pada variabel bil dengan i dan nyatakan ke variabel x.

  7. Bila hasil bagi tersebut sama dengan 0, cetak ” Bukan Bilangan Prima” dan langsung ke langkah 10.

  8. Tambahkan nilai pada variabel i dengan 1.

  9. Cetak ” Bilangan Prima ”.

  10. Tanya apakah user masih ingin menentukan suatu bilangan apakah merupakan bilangan prima.

  11. Bila jawabannya iya, maka kembali ke langkah ke-2.

  12. Bila jawabannya tidak, maka program dapat langsung diakhiri.

  13. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 9).

Flowchart :

Mengkonversi Bilangan Desimal ke Bilangan Biner

Logika dan Algoritma

Mengkonversi Bilangan Desimal ke Bilangan Biner (Max 255)

Algoritma :

  1. Deklarasikan variable variable bil dengan tipe array of integer untuk menampung nilai biner, i untuk iterasi, dan variable j untuk iterasi. Inisialisasi nilai j dengan 0.

  2. Masukkan bilangan yang ingin dikonversi dan nyatakan ke variabel dec.

  3. Bila bilangan yang dimasukkan tadi kurang dari atau sama dengan 255, maka lakukan langkah 4 s/d 17, namun bila bilangan tersebut lebih dari 255 maka cetak ” Input Maksimal 255 ” dan kembali ke langkah 2.

  4. Isi nilai i dengan 0.

  5. Selama nilai pada variabel dec tidak sama denagn 0, maka lakukan langkah 6 s/d 9.

  6. Hitung sisa hasil bagi nilai pada variabel dec dengan 2 dan nyatakan ke dalam variabel bin pada index ke-i.

  7. Bagi nilai yang ada pada variabel dec dengan 2.

  8. Tambahkan nilai pada vaiabel j dengan 1.

  9. Tambahkan nilai pada vaiabel i dengan 1.

  10. Kurangkan nilai pada variabel j dengan 1 dan nyatakan ke variabel i.

  11. Selama i masih lebih dari atau sama dengan 0, maka lakukan langkah 12 s/d 13.

  12. Cetak nilai pada variabel bin pada indeks ke-i.

  13. Kurangkan nilai pada variabel i dengan 1.

  14. Tanya apakah user masih ingin mengkonversi bilangan desimal ke bilangan biner.

  15. Bila jawabannya iya, maka kembali ke langkah ke-2.

  16. Bila jawabannya tidak, maka program dapat langsung diakhiri.

  17. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 13).

Flowchart :

Mengkonversi Bilangan Biner ke Bilangan Desimal

Logika dan Algoritma

Mengkonversi Bilangan Biner ke Bilangan Desimal (Max 11111111)

Algoritma :

  1. Deklarasikan variabel bil untuk bilangan yang akan dikonversi, bin untuk menampung bilangan biner, hasil untuk hasil pengoperasian, i untuk pangkat dan stack untuk stack.

  2. Masukkan bilangan dan nyatakan ke bil.

  3. Bila bilangan kurang dari atau sama dengan 11111111 lakukan langkah 4 s/d 17, namun bila bilangan yang dimasukkan lebih dari 11111111 cetak ”Max 11111111” lalu kembali ke langkah 2.

  4. Hitung sisa hasil bagi antara nilai pada bil dengan 10 kemudian nyatakan ke bin.

  5. Bila hasil bagi tersebut sama dengan 0 atau sama dengan 1, maka lakukan langkah 6 s/d 17, namun bila tidak cetak ”Biner hanya 0 dan 1” kemudian kembali ke langkah 2.

  6. Bagi nilai pada bil dengan 10.

  7. Push nilai pada bin dan simpan di stack.

  8. Cek apakah nilai pada bil sama dengan 0. Bila nilai bil sama dengan 0 lakukan langkah 9 s/d 17, namun bila nilai bil tidak sama dengan 0 kembali ke langkah 4.

  9. Selama stack masih ada isinya atau belum kosong lakukan langkah 10 s/d 12.

  10. pop stack dan isi ke bin.

  11. Tambahkan nilai pada hasil dengan hasil kali antara nilai pada bin dengan 2 pangkat i.

  12. Tambahkan i dengan 1.

  13. Cetak hasil.

  14. Tanya apakah user masih ingin mengkonversi biner ke desimal.

  15. Bila jawabannya iya, maka kembali ke langkah ke-2.

  16. Bila jawabannya tidak, maka program dapat langsung diakhiri.

  17. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 14).

Flowchart :

Menampilkan Deret Fibonancci

Logika dan Algoritma

Menampilkan Deret Fibonancci

Algoritma :

  1. Deklarasikan variable fibo dengan tipe array of int, variabel i untuk iterasi, dan n untuk jumlah bilangan Fibonacci yang ingin ditampilkan.

  2. Masukkan jumlah bilangan fibonacci yang ingin ditampilkan dan nyatakan ke dalam variable n.

  3. Tetapkan nilai pada variable fibo pada indeks ke 0 dengan 0.

  4. Tetapkan nilai pada variable fibo pada indeks ke 1 dengan 1.

  5. Cetak nilai pada variable fibo pada indeks ke-0 dan ke-1.

  6. Isi nilai i dengan 2.

  7. Selama i masih kurang dari n, lakukan langkah 8 s/d 10.

  8. Tambahkan nilai pada variabel fibo di indeks ke-(i-1) dengan nilai pada variabel fibo di indeks ke-(i-2) kemudian nyatakan ke variabel fibo pada indeks ke-i.

  9. Cetak nilai dari variabel fibo pada indeks ke-i.

  10. Tambahkan nilai i dengan 1.

  11. Tanya apakah user masih ingin menampilkan deret fibonacci.

  12. Bila jawabannya iya, maka kembali ke langkah ke-2.

  13. Bila jawabannya tidak, maka program dapat langsung diakhiri.

  14. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 11).

Flowchart :


Rabu, 28 November 2007

Palindrom

Logika dan Algoritma

Menentukan Apakah Kalimat yang Diinputkan Adalah Sebuah Palindrom atau Bukan

Algoritma :

    1. Deklarasikan variabel jwb untuk pertanyaan balik, klmt1 untuk kalimat yang diinputkan user, klmt2 untuk copian dari klmt1, i untuk iterasi klmt 1, j untuk iterasi kalimat2 dan jum untuk menghitung jumlah karakter yang dituliskan user. Definisikan tipe char untuk variabel jwb, array of char untuk variabel klmt1 dan klmt2, serta integer untuk variabel i, j dan jum. Inisialisasi nilai jum dan i dengan 0.

    2. Masukkan kalimat yang ingin dibalik.

    3. Proses perulangan untuk i sama dengan 0 sampai dengan isi dari variabel klmt pada indeks ke-i adalah berupa karakter ’\0’ :

    1. Hitung jumlah karakter dengan menambahkan nilai pada variabel jum dengan 1, kemudian nyatakan ke variabel jum.

    2. Kembali ke langkah looping 1.

    1. Proses perulangan mulai dari i sama dengan 0 sampai dengan i sama dengan jumlah karakter :

    1. Copykan isi dari variabel klmt1 ke variabel klmt2.

    2. Kembali ke langkah looping 1.

    1. Kurangkan nilai pada variabel jum dengan 2, kemudian nyatakan ke variabel j untuk iterasi klmt2. Karena pada string secara otomatis akan menambahkan 2 memori dengan memori terakhir adalah NULL.

    2. Isi nilai i dengan 0.

    3. Proses looping sampai dengan j bernilai 0 :

    1. Cek apakah isi dari klmt1 pada indeks ke-i sama dengan isi dari klmt2 pada indeks ke-j.

    2. Bila isi dari klmt1 pada indeks ke-i tidak sama dengan isi dari klmt2 pada indeks ke-j, maka cetak ”BUKAN PALINDROM” dan langsung ke langkah 9.

    3. Namun apabila isi dari klmt1 pada indeks ke-i sama dengan isi dari klmt2 pada indeks ke-j maka lanjut ke langkah looping 4.

    4. Hitung nilai j dengan mengurangkan nilai j dengan 1.

    5. Hitung nilai i dengan menambahkan nilai i dengan 1.

    6. Kembali ke langkah looping 1.

    1. Cetak ”PALINDROM”.

    2. Tanya apakah user masih ingin menentukan sebuah kalimat merupakan palindrom atau bukan.

    3. Bila jawabannya iya, maka kembali ke langkah ke-2.

    4. Bila jawabannya tidak, maka program dapat langsung diakhiri.

    5. Namun jika bukan keduanya, tanyalah kembali (kembali ke langkah 9).

Flowchart :