Wednesday, February 13, 2013

TMD02 - [12] Rekursif & Sort

Fungsi rekursif dapat digunakan pada beberapa kasus, termasuk sortir.
Sortir yang dilakukan dapat dilakukan dari yang lebih kecil ke yang lebih besar, ataupun sebaliknya, dari yang lebih besar ke yang lebih kecil.
Berikut adalah contoh kode programnya.

 /*  
      Nama     : Tulus Pardamean Simanjuntak  
      NIM      : 49012086  
      Jurusan  : Teknik Media Digital  
      File     : 4_mengurutkan.c  
 */  
 #include <stdio.h>  
 #include <stdlib.h>  
 void mengurutkan (int *tIntA, int *tIntB);   
 int main()   
 {  
      int tListAngka[20];   
      int tSwap;   
      int tUrutan;   
      int i;  
      int pil;  
      printf ("\n\t - Program Pengurutan (Sortir) -\n");  
      printf ("=================================================\n\n");  
      printf ("Masukkan jumlah elemen> \n");  
      scanf ("%d", &i);  
      printf ("\nMasukkan %d angka integer\n", i);  
      for (tUrutan = 0; tUrutan < i; tUrutan++)  
           scanf ("%d", &tListAngka[tUrutan]);  
      do   
      {  
           tSwap = 0;   
           for (tUrutan = 0; tUrutan < i; tUrutan++)  
           {   
                if (tListAngka[tUrutan] < tListAngka[tUrutan+1])   
                {   
                     mengurutkan (&tListAngka[tUrutan], &tListAngka[tUrutan+1]);   
                     tSwap = 1;   
                }   
           }   
      } while (tSwap == 1);   
      printf ("\nIngin diurut bagaimana?\n");  
      printf ("1: Kecil ke Besar\n");  
      printf ("2: Besar ke Kecil\n\n");  
      printf ("pilihan Anda? >>> ");  
      scanf ("%d", &pil);  
      if (pil == 1)  
      {  
           printf ("\n\nSetelah di urut dari Kecil ke Besar:\n");  
           for (tUrutan = i-1; tUrutan >= 0; tUrutan--)   
           {   
                printf ("%d\n", tListAngka[tUrutan]);   
           }   
      }  
      else  
      {  
           printf ("\n\nSetelah di urut dari Besar ke Kecil:\n");  
           for (tUrutan = 0; tUrutan < i; tUrutan++)   
           {  
                printf ("Urutan [%d] = %d\n", tUrutan+1, tListAngka[tUrutan]);   
           }  
      }  
      printf ("\n");  
      system ("pause");  
      return 0;  
 }   
 void mengurutkan (int *tIntA, int *tIntB)   
 {   
      int tInt = *tIntA;   
      *tIntA = *tIntB;   
      *tIntB = tInt;   
 }  
Semoga bermanfaat. :)

No comments:

Post a Comment