String & Rekursif : Menguji Program Tulisan Aneh

7 12 2009

7. Hasil keluaran dari masing-masing potongan program berikut ini.

a. Jika argumen Kalimat[] = “Hello Dunia, Sekarang Saya Praktikum

Pemrograman Terstruktur”.

        void Fungsiku(char Kalimat[], int index) {
         if(Kalimat[index] != '') {
            Fungsiku(Kalimat, index+1);
            printf("%c", Kalimat[index]);
          }
        }
  • Jika potongan program tersebut disusun dalam bentuk utuh menjadi :

Algoritma Program :

  1. Program menampilkan statemen ”Menguji program Kalimat”.
  2. Program menampilkan instruksi kepada user untuk memasukkan input nilai index.
  3. Program memanggil fungsi Fungsiku.
  4. Jika kalimat dengan index sesuai input tidak berisi karakter NULL ’’, fungsi Fungsiku akan melakukan rekursi dan menampilkan string ”Hello Dunia, Sekarang Saya Praktikum Pemrograman Terstruktur” secara terbalik tergantung dari input index dari user.

Source Code Program :

#include<stdio.h>
#include<conio.h>

void Fungsiku(char Kalimat[], int index);

void main()
{
     char Kal[]="Hello Dunia, Sekarang Saya Praktikum Pemrograman Terstruktur";
     int i;

     puts("Menguji program Kalimat");
     printf("Masukkan nilai index: ");
     scanf("%d", &i);
     Fungsiku(Kal, i);

     getch();
}

void Fungsiku(char Kalimat[], int index) {
     if(Kalimat[index] != '') {
            Fungsiku(Kalimat, index+1);
            printf("%c", Kalimat[index]);
            }
}

b. Jika fungsi main, memanggil fungsi TulisanAneh dengan argumen

Kalimat[] = “Selamat Datang Di Teknik Informatika ITS Surabaya”.

      void TulisanPertama(char Kalimat[], int index) {
         if(Kalimat[index] == '') return;
         else{
            printf("%c\n", Kalimat[index]);
            TulisanPertama(Kalimat, index+1);
         }
      }
      void TulisanKedua(char Kalimat[], int index) {
         if(index < 0) return;
         else{
            printf("%c\n", Kalimat[index]);
            TulisanKedua(Kalimat, index-1);
         }
      }
      void TulisanAneh(char Kalimat[]){
          printf("Tulisan Pertama = \n");
          TulisanPertama(Kalimat, 0);
          printf("Tulisan Kedua = \n");
          TulisanKedua(Kalimat, strlen(Kalimat));
      }

Jika potongan program tersebut disusun dalam bentuk utuh menjadi :
Algoritma Program :

  1. Program menampilkan statemen ”Menguji program Tulisan Aneh”.
  2. Program menampilkan instruksi kepada user untuk memasukkan input nilai index.
  3. Program memanggil fungsi TulisanPertama.
  4. Jika kalimat dengan index yang diinputkan user tidak berisi karakter NULL ’’, fungsi TulisanPertama akan menampilkan karakter sesuai index dan melakukan rekursi untuk menampilkan karakter selanjutnya dalam string ”Selamat Datang Di Teknik Informatika ITS Surabaya”.
  5. Program memanggil fungsi TulisanKedua.
  6. Jika index lebih dari 0, fungsi TulisanKedua akan menampilkan karakter sesuai dengan index dan melakukan rekursi untuk menampilkan karakter sebelumnya.
  7. Program memanggil fungsi TulisanAneh.
  8. Fungsi TulisanAneh akan menampilkan string ”Tulisan Pertama” dan memanggil fungsi TulisanPertama dengan memberi index 0.
  9. Fungsi TulisanAneh akan menampilkan string ”Tulisan Kedua” dan memanggil fungsi TulisanKedua dengan memberi index  sesuai dengan panjang string(variabel kalimat).

Source Code Program :

#include<stdio.h>

#include<string.h>

#include<conio.h>

void TulisanPertama(char Kalimat[], int index);

void TulisanKedua(char Kalimat[], int index);

void TulisanAneh(char Kalimat[]);

void main()

{

char Kal[]="Selamat Datang Di Teknik Informatika ITS Surabaya";

int i;

puts("Menguji program Tulisan Aneh");

printf("Masukkan nilai index: ");

scanf("%d", &i);

TulisanPertama(Kal, i);

TulisanKedua(Kal, i);

TulisanAneh(Kal);

getch();

}

void TulisanPertama(char Kalimat[], int index) {

if(Kalimat[index] == '') return;

else{

printf("%c\n", Kalimat[index]);

TulisanPertama(Kalimat, index+1);

}

}

void TulisanKedua(char Kalimat[], int index) {

if(index < 0) return;

else{

printf("%c\n", Kalimat[index]);

TulisanKedua(Kalimat, index-1);

}

}

void TulisanAneh(char Kalimat[]){

printf("Tulisan Pertama = \n");

TulisanPertama(Kalimat, 0);

printf("Tulisan Kedua = \n");

TulisanKedua(Kalimat, strlen(Kalimat));

}

Posted By : Evan Yofiyanto @ Evan’s Blog : Kuliah Informatika (kuliahinformatika.wordpress.com)

[FREAX]


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: