Tugas Pemrograman Terstruktur – Bab Looping / Perulangan dalam Bahasa C

Yaph, sesuai judulnya daripada tidak posting, mending hasil tugas dipost aja sekalian biar temen sekelas bisa langsung download, jadi aku gag perlu kirim 🙂 . Dan kemungkinan ada yang butuh juga …
Oke, untuk soal – soal dari tugas kuliahku kali ini adalah sebagai berikut :

  1. Gunakan loop for untuk menampilkan nilai 1 sampai dengan 20 dalam baris-baris yang terpisah.
  2. Hitunglah bilangan triangular dari masukan pengguna, yang dibaca dari keyboard dengan menggunakan scanf().
    Bilangan triangular adalah penjumlahan dari bilangan masukan dengan seluruh bilangan sebelumnya, sehingga bilangan triangular dari 7 adalah : 7 + 6 + 5 + 4 + 3 + 2 + 1
    input : Masukkan sebuah bilangan : 7
    output : Bilanan triangular 7 adalah 28
  3. Gunakan loop for untuk menampilkan seluruh karaker dari A sampai dengan Z dalam baris-baris yang terpisah.
  4. Gunakan loop for dengan kenaikan varibel negatif untuk menampilkan seluruh karaker dari Z sampai dengan A dalam baris-baris yang terpisah.
  5. Gunakan loop for untuk membuat program sebagai berikut:
    input  : n
    output : 1 3  5 7 … m ( m = bilangan ganjil ke n)
  6. Gunakan loop for untuk membuat program sebagai berikut:
    input  : n
    output : 1  -2  3  -4  5  -6  7  -8 … n
  7. Gunakan loop for untuk membuat program sebagai berikut:
    input  : n
    output : 1*2*3*4*5*… *n (faktorial)
  8. Gunakan loop while untuk membuat program yang dapat mencari total angka  yang dimasukkan dengan tampilan sebagai berikut :
    Masukkan bilangan ke-1 : 5
    Mau memasukkan data lagi [y/t] ? y
    Masukkan bilangan ke-2 : 3
    Mau memasukkan data lagi [y/t] ? t
    Total bilangan = 8
  9. Pada program no 8 tambahkan penghitungan rata-rata, maksimum dan minimum dari angka yang dimasukkan.
  10. Gunakan  while pada program yang digunakan untuk menghitung banyaknya karakter dari kalimat yang dimasukkan melalui keyboard (termasuk karakter spasi).  Untuk mengakhiri pemasukan kalimat, tombol ENTER (‘\n’) harus ditekan
    Input : Ketikkan sembarang kalimat, akhiri dengan enter
    Output : jumlah karakter = m
    jumlah spasi = n

Yaph, itulah soal yang saya dapat untuk Tugas Pemrograman Terstruktur dalam pembahasan Looping / Perulangan dalam Bahasa Pemrograman C. Untuk jawaban dari soal diatas, silahkan lihat source di bawah ini, atau Anda bisa juga download source code nya disini

#include <stdio.h>

int y;

utama(){
    // bersihkan layar
    system("cls");
    int z,x;
	printf("\t1.  Looping Nilai 1 - n\n");
	printf("\t2.  Triangular\n");
	printf("\t3.  Looping A - Z\n");
	printf("\t4.  Looping Z - A\n");
	printf("\t5.  Looping Bilangan Ganjil\n");
	printf("\t6.  Looping Ganjil Genap\n");
	printf("\t7.  Looping Faktorial\n");
	printf("\t8.  Total angka dengan while()\n");
	printf("\t9.  Nilai rata - rata, maksimum dan minimum dari No. 8\n");
	printf("\t10. Jumlah karakter dan spasi\n\n");
	printf("\tPilih program dengan input No. Urut program diatas : ");
	scanf("%d",&z);

    system("cls");
    switch(z){
        case 1 :
             printf("\tMasukkan angka maksimal untuk perulangan : ");
             scanf("%d",&x);
             printf("\n");
             looping(x);
             break;
        case 2 :
             printf("\tMasukkan angka maksimal untuk triangular : ");
             scanf("%d",&x);
             printf("\n");
             triangular(x);
             break;
        case 3 :
             alphabet(1);
             break;
        case 4 :
             alphabet(0);
             break;
        case 5 :
             printf("\tMasukkan angka maksimal untuk perulangan : ");
             scanf("%d",&x);
             printf("\n");
             ganjil(x);
             break;
        case 6 :
             printf("\tMasukkan angka maksimal untuk perulangan : ");
             scanf("%d",&x);
             printf("\n");
             ganjilGenap(x);
             break;
        case 7 :
             printf("\tMasukkan bilangan faktorial : ");
             scanf("%d",&x);
             printf("\n");
             faktorial(x);
             break;
        case 8 :
             loopWhile();
             break;
        case 9 :
             whileLoop();
             break;
        case 10 :
             jmlKarakter();
             break;
        default :
             printf("\tMaaf, No. Urut yang Anda masukkan salah");
             system("exit");
             break;
    }
}

// fungsi untuk menampilkan hasil looping hingga "n" looping
looping(int n){
	int i;
    for(i=1;i<=n;i++){
		printf("\t%d\n",i);
	}
	// konfirmasi apakah ingin kembali ke menu awal
	// jika 1 maka kembali ke menu awal
	// jika tidak maka keluar program
	printf("\n\tKembali [1/0] ? ");
	scanf("%d",&y);
	if(y) utama(); else system("exit");
}

// fungsi menampilkan total dari bilangan triangular
triangular(int n){
	int i,j = 0;
	for(i=n;i>=1;i--){
		j = j + i;
	}
	printf("\tBilangan triangular %d adalah %d",n,j);
	printf("\n\n\tKembali [1/0] ? ");
	scanf("%d",&y);
	if(y) utama(); else system("exit");
}

// fungsi untuk menampilkan sorting looping ascending / descending
alphabet(int b){
    // jika b = 1 maka eksekusi looping ascending,
    // jika tidak maka ekseskusi looping descending
	char a;
	if(b){
        // looping ascending A - Z
		for(a='A';a<='Z';a++){
			printf("\t%c\n",a);
		}
	}else{
        // looping descending Z - A
		for(a='Z';a>='A';a--){
			printf("\t%c\n",a);
		}
	}
	printf("\n\tKembali [1/0] ? ");
	scanf("%d",&y);
	if(y) utama(); else system("exit");
}

// fungsi untuk menampilkan bilangan ganjil
ganjil(int n){
	int i;
	printf("\t");
	for(i=1;i<=n;i+=2){
		printf("%d ",i);
	}
	printf("\n\n\tKembali [1/0] ? ");
	scanf("%d",&y);
	if(y) utama(); else system("exit");
}

// fungsi untuk menampilkan bilang dengan pola positif negatif
// ex : 1 -2 3 -4 5 -6 ... n
ganjilGenap(int n){
	int i = 1;
	printf("\t");
	for(i;i<=n;i++){
		if(i%2!=0){
			printf("%d ",i);
		}else{
			printf("-%d ",i);
		}
	}
	printf("\n\n\tKembali [1/0] ? ");
	scanf("%d",&y);
	if(y) utama(); else system("exit");
}

// menampilkan total dari bilangan "n" faktorial
faktorial(int n){
	int i, j = 1;
	for(i=n;i>=1;i--){
		j = j * i;
	}
	printf("\t%d faktorial = %d",n,j);
	printf("\n\n\tKembali [1/0] ? ");
	scanf("%d",&y);
	if(y) utama(); else system("exit");
}

// fungsi yang digunakan untuk menampilkan bilangan terbesar
// dari suatu kumpulan bilangan
int maksimal(int a[], int l){
    int b = a[0], c = 0;
    for(c;c<l;c++){
         // jika nilai awal lebih dari nilai baru
         if(a[c] > b){
               // nilai awal diisi dengan nilai baru
               // dan merupakan nilai terbesar
               b = a[c];
         }
    }
    return b;
}

// fungsi yang digunakan untuk menampilkan bilangan terkecil
// dari suatu kumpulan bilangan
int minimal(int a[], int l){
    int b = a[0], c = 0;
    for(c;c<l;c++){
         // jika nilai awal kurang dari nilai baru
         if(a[c] < b){
               // nilai awal diisi dengan nilai baru
               // dan merupakan nilai terkecil
               b = a[c];
         }
    }
    return b;
}

// fungsi menampilkan input bilangan secara berulang dalam suatu kondisi
// kemudian bilangan yang diinput tadi ditotal, di rata - rata
// dicari nilai max dan min
loopWhile(int z,int y){
    int a = 1, b = 0, c, d = 0, f[] = {}, g, h;
    float e;
    while(a){
         b++;
         // inputan bilangan ke - n
         printf("\n\tMasukkan bilangan ke-%d : ",b);
         scanf("%d",&c);
         // inisialisasi var f[n] = c
         f[(b-1)] = c;
         // total semua bilangan
         d = d + c;
         // konfirmasi apakah ingin input kembali
         // jika tidak, langsung break dari while
         // kemudian eksekusi perintah dibawah while
         printf("\n\tMau memasukkan data lagi [1/0] ? ");
         scanf("%d",&a);
    }

    // jika ingin menampilkan rata - rata, max dan min
    if(y){
         e = d / b;
         g = maksimal(f,b);
         h = minimal(f,b);
    }

    // jika hanya ingin menampilkan total
    if(!y){
         printf("\n\tTotal bilangan = %d",d);
    // jika ingin menampilkan rata - rata, max dan min
    }else{
         printf("\n\tRata - rata bilangan = %.2f",e);
         printf("\n\tNilai maksimal adalah = %d",g);
         printf("\n\tNilai minimal adalah = %d",h);
    }

	printf("\n\n\tKembali [1/0] ? ");
	scanf("%d",&y);
	if(y) utama(); else system("exit");
}

// funsgi yang digunakan untuk menghitung jumlah karakter yang diinput oleh user
// beserta menghitung jumlah spasi yang ada
jmlKarakter(){
	char kar,rak[];
	int jumkar = 0, jumspasi = 0;

	printf("\tMasukkan sebuah kalimat : ");
	scanf("%c",&rak);

	while((kar = getchar()) != '\n'){
        // jumlah karakter yang diinput tambah 1 hingga menemukan karakter enter
		jumkar++;
		// jika terdapat karakter spasi, var spasi ditambah 1
		if (kar == ' ') jumspasi++;
	}

	printf("\n\tJumlah karakter\t= %d", jumkar);
	printf("\n\tJumlah spasi\t= %d\n", jumspasi);
	printf("\n\tKembali [1/0] ? ");
	scanf("%d",&y);
	if(y) utama(); else system("exit");
}

main(){
    utama();
}

10 thoughts on “Tugas Pemrograman Terstruktur – Bab Looping / Perulangan dalam Bahasa C

Leave a Reply