Semua Mapel

Minggu, 27 November 2011

P.Dasprog



Tujuan
·        Mahasiswa dapat memahami dan mengimplementasikan tentang perulangan
·        Mahasiswa dapat membuat flowchart,algoritma,serta program sederhana

Dasar Teori

Perulangan merupakan Blok statement yang dieksekusi lebih dari satu kali. Untuk mengontrol jumlah perulangan maka digunakan kondisi untuk mengatur perulangan.
Berdasarkan kondisi inilah jenis perulangan pada bahasa C dibagi menjadi 3
1.     For looping
2.     While-do looping
3.     Do-while looping 
Melakukan perulangan eksekusi blok statement dengan jumlah perulangan telah diketahui sebelumnya. Dalam bahasa sehari-hari lakukan sebanyak n kali aksi-aksi
Sintaks C :
For (variabel_penghitung=nilai_awal; kondisi_aktif;modus_penghitungan)
{
aksi
}
Variabel_penghitungàvariabel penghitung jumlah perulangan yang terjadi Nilai_awalànilai awal dari variabel penghitung
Kondisi_aktifàkondisi perulangan sedang aktif, hubungan ke variabel penghitung Modus_penghitunganàmaju atau mundur(++ atau --)

Array merupakan struktur data/penyimpanan data pada memori yang mampu menyimpan sekumpulan data yang mempunyai tipe sama baik tipe dasar atau bentukan.
Format array pada bahasa C
type name [number of elements]
Contoh : int list_unik[10]
Artinya disiapkan variabel bernama list_unik untuk menyimpan elemen-elemen bertipe integer sebanyak 10 elemen
Pengisian array ketika dideklarasikan variabel array
Syntaks:
Type name[number of elements]={data1, data2,data n}
     Or
Type name[]={data1, data2,data n}
Contoh:
Int list_unik[4]={2,3,4,5}
Int list_unik[]={2,3,4,5}

a.       Langkah – langkah
1.     Buatlah program sederhana seperti di bawah ini :
a.     Simpan dengan nama P3a.c
b.     Compile dan eksekusi program di atas kemudian jelaskan hasilnya!
c.      Ubahlah baris ke-8 menjadi for(j=4;j>0;j--), kemudian compile dan eksekusi serta jelaskan perbedaan hasilnya!
2.     Buatlah algoritma, flowchart dan program sederhana dari :
a.     .Masalah 1 : Menentukan apakah sebuah bilangan prima atau bukan jika prima tampilkan tiga kali jika tidak tampilkan sebanyak hasil bilangan tersebut dimodulus 3.
b.    .Masalah 2 : Jika seorang anak mempunyai permen sebungkus, setiap bertemu dengan temannya dia akan memberikan sebuah permen untuk teman laki-laki dan dua buah permen untuk teman perempuannya. Tentukan berapa kali kemungkinan anak tersebut bertemu dengan teman-temannya untuk menghabiskan permen yang ada, jika tidak pernah bertemu teman perempuannya sebanyak dua kali berturut-turut dan selalu bertemu dengan teman laki-lakinya dua kali berturut-turut.
Input : Jumlah permen : x
Output : Anak tersebut bertemu teman perempuan m kali dan teman laki-laki n kali.

c.   Hasil

  1. syahril@syahril-laptop:~$ gedit p3a.c

#include<stdio.h>
main() 
{
            int A=0,i,j;
            //clrscr();
            for(i=0;i<4;i++)
            {
                        for(j=0;j<4;j++)
                        {
                        printf("#");
                        }
                        printf("\n");
            }
            //getch();
}

syahril@syahril-laptop:~$ gcc -c p3a.c
syahril@syahril-laptop:~$ gcc p3a.c -o hasil
syahril@syahril-laptop:~$ ./hasil
####
####
####
####
syahril@syahril-laptop:~$













syahril@syahril-laptop:~$ gedit p3a.c

#include<stdio.h>
main()
{
            int A=0,i,j;
            //clrscr();
            for(i=0;i<4;i++)
            {
                        for(j=0;j>0;j--)
                        {
                        printf("#");
                        }
                        printf("\n");
            }
            //getch();
}

syahril@syahril-laptop:~$ gcc -c p3a.c
syahril@syahril-laptop:~$ gcc p3a.c -o hasil
syahril@syahril-laptop:~$ ./hasil




syahril@syahril-laptop:~$
syahril@syahril-laptop:~$


Hasil penelitian yang di lakukan menghasilkan perubahan pada tampilan,dan pengurangan kolom. Baris tetap tidak ada perubahan.







  1.  













                                                                                                                                           









Programnya

syahril@syahril-laptop:~$ gedit jj.c

#include<stdio.h>
main()
{
  int p,x,j,r;
  int i;
  int q=0;
  printf(" masukkan bilangan :");
  scanf("%d", &p);
    for(i=1;i<=p;i++)
    {
      if(p%i==0)
       {
            q++;
       }
    }
            if(q==2)
            {
                        printf("bilangan prima : \n" );
                        for(j=0;j<3;j++)
                        {
                                    printf("%d\n", p);
                        }
            }
            else
            {
                        printf(" bukan bilangan prima : \n" );
                        r=p%3;
                        for (x=1;x<=r;x++)
                        printf("%d\n",p);
                        printf(" hasil modulusnya %d\n", r );
            }
 
}

syahril@syahril-laptop:~$ gcc -c jj.c
syahril@syahril-laptop:~$ gcc jj.c -o hasil
syahril@syahril-laptop:~$ ./hasil
 masukkan bilangan :1
 bukan bilangan prima :
1
 hasil modulusnya 1
syahril@syahril-laptop:~$ ./hasil
 masukkan bilangan :2
bilangan prima :
2
2
2
syahril@syahril-laptop:~$ ./hasil
 masukkan bilangan :3
bilangan prima :
3
3
3
syahril@syahril-laptop:~$ ./hasil
 masukkan bilangan :8
 bukan bilangan prima :
8
8
 hasil modulusnya 2
syahril@syahril-laptop:~$



P.Dasprog






Algoritma
  1. Masukan Bilangan Bulat dengan acak tetapi apabila di input bilangan 0 maka inputan akan terhenti.
  2. Kemudian angka-angka acak tersebut di urutan dari kecil kebesar dengan membandingkan angka pertama dan kedua jika angka pertam lebih besar dari angka kedua maka angka kedua tersebut pindah ke angka pertama atau yang kita kenal bubble sort.
  3. Dan kemudian kita tampilkan angka acak dan berapa kali angka tersebut di pindah untuk menghasil urutan yang benar.
Source Code
#include<stdio.h>
#include<conio.h>
main()
{
      int bil [100];
      int dataout [100];        
      int datasave [100];
      int value [100];
      int i,n,j,k,z,h;
      int tamp;
      int tukar;

      i=0;
     
      do
      {
                  scanf("%d",& bil [i]);
                  tamp =bil[i];
                  dataout[i]=bil[i];
                  datasave[i]=dataout[i];
                  value[i]=i+1;
                  if(bil[i]!=0) i++;
      }while (tamp!=0);
     
      n=i-1;
      for(i=0;i<n;i++)
                        {
                  for(j=i+1;j<=n;j++)
                              {
                              if(dataout[i] > dataout[j])
                                          {
                                          tukar = dataout[i];
                                          dataout[i] = dataout[j];
                                          dataout[j] = tukar;
                                          }
                              }
                  }
     
      for(z=0;z<=n;z++)
      {
                  for(k=0;k<=n;k++)
                  {
                              if(dataout[k]==datasave[z])
                              {
                                          value[k]= k-z;
                                          if(value[k]<0)
                                                      {
                                                      value[k]=(value[k])*-1;
                                                      }
                                    }
                              }
            }
      printf("outpout :\n");
      for(h=0;h<=n;h++)
      {
                        printf("%d \t %d\n", dataout[h],value[h]);
                        }
                        getch();
                        return 0;          
}