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 :

Tidak ada komentar: