Bagaiamana agar Program dapat melakukan perulangan kembali ?

Saya membuat sebuah program sederhana dan mengingikan setelah program selesai mengeluarkan output dapat muncul pertanyaan seperti "TRY AGAIN (Y/T)" jika pilih Y maka program akan dijalankan kembali dan T akan break selesai.

Code :#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
    int p,x;
    char nm[100],no[100]; /* [100] artinya karakter maksimal berjumlah 100*/
    float hk,gk,k,tg;
    /*
    variabel
    p   = posisi,
    nm  = nama,
    no  = nomor identitas pegawai,
    hk  = hari kerja,
    gk  = gaji kotor,
    k   = asuransi kesehatan,
    tg  = total gaji yang diterima
    */

    printf("\t\t =================================================== \n\n");
    printf("\t\t\t Program Perhitungan Gaji Karyawan \n\n");
    printf("\t\t\t\t Sabhila e-Sports \n\n");
    printf("\t\t =================================================== \n\n");
    printf("\t\t Masukan Nama Pegawai            : ");gets(nm); /*gets digunakan agar bisa membaca spasi dalam kalimat*/
    printf("\t\t Masukan Nomor Identitas Pegawai : ");gets(no);
    printf("\n\t\t Posisi Kerja Bapak/Ibu/Saudara/i %s sebagai : ",nm); /* tanda %s memanggil dan meletakan nama(nm)*/
    printf("\n\t\t   1. Team Manager");
    printf("\n\t\t   2. Marketing");
    printf("\n\t\t   3. Creative");
    printf("\n\t\t   4. Player");
    printf("\n\n\t\t Masukan Pilihan Jabatan Anda di Sabhila e-Sports = ");scanf("%d",&p);

    /*
    switch = untuk membaca nomer pilihan jabatan yang dimasukan
    case   = untuk menampilkan sesuai data switch
    break  = sebagai akhiran dari tiap case
    */

    printf("\n\t\t Nama Pegawai            : %s\n",nm);
    printf("\n\t\t Nomer Identitas Pegawai : %s",no);
    switch(p){

    case 1:
    printf("\n\t\t Jabatan                 : Team Manager\n\n");
    printf("\n\t\t Upah harian anda adalah : Rp    500000");
    printf("\n\t\t Asuransi Kesehatan      : Rp   5000000");
    break;

    case 2:
    printf("\n\t\t Jabatan                 : Marketing\n\n");
    printf("\n\t\t Upah harian anda adalah : Rp    350000");
    printf("\n\t\t Asuransi Kesehatan      : Rp   3500000");
    break;

    case 3:
    printf("\n\t\t Jabatan                 : Creative\n\n");
    printf("\n\t\t Upah harian anda adalah : Rp    183000");
    printf("\n\t\t Asuransi Kesehatan      : Rp   1830000");
    break;

    case 4:
    printf("\n\t\t Jabatan                 : Player\n\n");
    printf("\n\t\t Upah harian anda adalah : Rp    283000");
    printf("\n\t\t Asuransi Kesehatan      : Rp   2830000");
    break;
    default:

    /*
    default = jika case posisi pegawai selain angka 1 - 4 akan muncul dibawah ini
    */
        printf ("\n\n\t\t IDENTITAS KAMU TAK DIKENALI !! ");
    };

    if (p<6)/*IF (j<6)digunakan jika Jabatan yg dipilih adalah 1-5 maka muncul perintah dibawahnya */
    {
        printf("\n\n\n\t\t Lama hari kerja pada bulan ini : ");scanf("%f",&hk);}
    if (hk>31)
    {
            printf("\n\t\t Maaf data yang masukkan melewati batas jumlah hari dalam sebulan. \n\n\n",nm);}
    if (hk<=31)
    {
    switch(p)
    {

    case 1:
    gk=hk*500000; /* Rumus ini menyesuaikan gaji harian berdasarkan posisi kerja team manager */
    k=5000000;
    tg=(gk+k);
    printf("\n\n\t\t Upah bulanan anda                               : Rp %.0f",gk);
    printf("\n\t\t Asuransi Kesehatan                              : Rp 5000000");
    printf("\n\t\t                                                   ------------+");
    printf ("\n\t\t Total gaji yang anda terima sejumlah            : Rp %.0f",tg);
    break;

    case 2:
    gk=hk*350000; /* Rumus ini menyesuaikan gaji harian berdasarkan posisi kerja marketing */
    k=3500000;
    tg=(gk+k);
    printf("\n\n\t\t Upah bulanan anda                               : Rp %.0f",gk);
    printf("\n\t\t Asuransi Kesehatan                              : Rp 3500000");
    printf("\n\t\t                                                   ------------+");
    printf ("\n\t\t Total gaji yang anda terima sejumlah            : Rp %.0f",tg);
    break;

    case 3:
    gk=hk*183000; /* Rumus ini menyesuaikan gaji harian berdasarkan posisi kerja creative */
    k=1830000;
    tg=(gk+k);
    printf("\n\n\t\t Upah bulanan anda                               : Rp %.0f",gk);
    printf("\n\t\t Asuransi Kesehatan                              : Rp 1830000");
    printf("\n\t\t                                                   ------------+");
    printf ("\n\t\t Total gaji yang anda terima sejumlah            : Rp %.0f",tg);
    break;

    case 4:
    gk=hk*283000; /* Rumus ini menyesuaikan gaji harian berdasarkan posisi kerja player */
    k=2830000;
    tg=(gk+k);
    printf("\n\n\t\t Upah bulanan anda                               : Rp %.0f",gk);
    printf("\n\t\t Asuransi Kesehatan                              : Rp 2830000");
    printf("\n\t\t                                                   ------------+");
    printf ("\n\t\t Total gaji yang anda terima sejumlah            : Rp %.0f",tg);
    break;

    default:
    printf ("\n\n\n\t\t SILAHKAN ULANGI KEMBALI. \n\n\n");

    }}
    if (p<6)
    if (hk<=31){
    printf("\n\n\t\t =================================================================== \n");
    printf("\t\t\t SILAHKAN BAWA PRINT OUT KE BAGIAN ADMINISTRASI");
    printf("\n\t\t =================================================================== \n\n");
    printf("\n                                                     created by : Group 6 from 2IA03");
    printf(" ");scanf("%d",x);}
    return 0;
}

Output :

Paimon.PNG

avatar 2ia03_sigitprasetyo
@2ia03_sigitprasetyo

1 Kontribusi 2 Poin

Diperbarui 3 tahun yang lalu

2 Jawaban:

<div>Bisa pakai loop.<br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;sk_2ia03_sigitprasetyo__loop_until.png&quot;,&quot;filesize&quot;:99335,&quot;height&quot;:1086,&quot;url&quot;:&quot;https://i.ibb.co/3TdVQ6v/sk-2ia03-sigitprasetyo-loop-until.png&quot;,&quot;width&quot;:1382}" data-trix-content-type="image/png" data-trix-attributes="{&quot;caption&quot;:&quot;Loop until char 'n'&quot;,&quot;presentation&quot;:&quot;gallery&quot;}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/3TdVQ6v/sk-2ia03-sigitprasetyo-loop-until.png" width="1382" height="1086"><figcaption class="attachment__caption attachment__caption--edited">Loop until char 'n'</figcaption></figure></div>

avatar soeleman
@soeleman

120 Kontribusi 147 Poin

Dipost 3 tahun yang lalu

<div>Betul, kita bisa gunakan perulangan do-while, contohnya seperti ini :<br><br></div><pre>#include &lt;iostream&gt; #include &lt;stdlib.h&gt;

using namespace std; main() { int jp, jm; char replay;

do{
    cout&amp;lt;&amp;lt;&quot;Masukkan jumlah penumpang : &quot;;
    cin&amp;gt;&amp;gt;jp;

    if(jp % 7 == 0){
        jm = jp / 7;
    } else {
        jm = (jp / 7) + 1;
    }

    cout&amp;lt;&amp;lt;&quot;Jumlah mobil yang dibutuhkan : &quot;&amp;lt;&amp;lt;jm;
    cout&amp;lt;&amp;lt;&quot;\n&quot;;
    cout&amp;lt;&amp;lt;&quot;Ingin mengulang ? [Y/N] : &quot;;
    cin&amp;gt;&amp;gt;replay;
}while(replay == &#039;y&#039; || replay == &#039;Y&#039;);

}</pre><div><br>Hasil dari kode program di atas bisa di cek di&nbsp;<a href="https://onlinegdb.com/S1L6y7wRD">https://onlinegdb.com/S1L6y7wRD</a><br><br>Semoga membantu.</div>

avatar ahanafi
@ahanafi

815 Kontribusi 554 Poin

Dipost 3 tahun yang lalu

Login untuk ikut Jawaban