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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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();
}
#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(); }
#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