Catatanku Si Bendot.Tue

"Apapun yang kutahu kan kuberikan padamu, dan berharap membawa kebaikan"

Alur Kerja dan Struktur Data Dengan C/C++

with 4 comments

Berikut saya sedikit menyoba untuk menjelaskan Alur Kerja dan Struktur Data sebuah program dengan bahasa pemograman C/C++, cara menganalisa sebuah permasalahan if..else dengan mudah dan menyelesaikannya. Semoga apa yang saya share disini dapat bermanfaat bagi yang membutuhkanna,

Berikut penjelasannya seputar fungsi if()..else pada bahasa C/C++

Malas membaca di web?
Artikel ini dapat di unduh disini,  ini merupakan artikel buatan saya, bebas digunakan dan didistribusikan sesukanya asalkan tidak disalahgunakan dan di komersialisasikan. Terima Kasih sebelumnya,

Alur Kerja dan Struktur Data

Selesaikan potongan program berikut sehingga program dapat mencetak sebuah nilai yang terbesar (mencari nilai maksimal), dimana tidak ada nilai yang berjumlah sama.

#include<stdio.h>
void main()
{
int a,b,c;
scanf("%i %i %i",&a,&b,&c);
if(c>b)
{
if(b>a)
{
}
else
{
}
}
else
{
if(c<a)
{
}
else
{
}
}
}

Penyelesaian Soal

Ada begitu banyak cara dalam menyelesaikan permasalahan diatas, namun dalam permasalahan yang memiliki begitu banyak percabangan seperti ini, terlebih lagi dalam menyelesaikannya kita telah diberikan beberapa kondisi, perhatikan :

if(c>b)
{
if(b>a)
{
}
else
{
}
}
else
{
if(c<a)
{
}
else
{
}
}

Sehingga dengan adanya kondisi-kondisi berikut didalamnya, kita tidak dapat menyelesaikannya dengan sekehendak hati kita karena plot dan alur-alurnya telah disiapkan walaupun belum selesai.

Akan jauh lebih mudah apabila menyelesaikannya dengan sebuah Flowchart atau Bagan Alur. Karena dengan kita buat sebuah bagan alur untuk menyelesaikannya, kita dapat mengetahui bagaimana alur programnya sendiri.

Sekarang kita coba menganalisa alur program tersebut. Perhatikan potongan code berikut,

if(c>b)
{
if(b>a)
{
mencari ini
}
else
{
}
}

C>B dan B>A kita dapat dengan mudah simpulkan bahwa C merupakan bilangan terbesar, karena apabila dibaca keseluruhan C>B>A (C lebih besar dari B, dan B lebih besar dari A) maka yang merupakan bilangan terbesar adalah C.

Jadi kita masukkan perintah untuk mencetak ke dalam code, menjadi seperti ini,

if(c>b)
{
if(b>a)
{
printf("%i",c);
}
else
{
}
}

Sekarang kita bertemu code berikutnya (else), apa yang kita harus masukkan disana? Tentu kita harus melihat kembali alur programnya, bagian else disana akan berisi perintah-perintah yang akan dijalankan apabila kondisi if(b>a) menghasilkan nilai false atau salah. Apabila kondisi if(b>a) menghasilkan nilai true maka computer akan menjalankan perintah-perintah yang berada di antara 2 kurung kurawal di bawahnya, yaitu :

{
printf("%i",c);
}

Namun apabila kondisi if(b>a) menghasilkan nilai false maka computer akan menjalankan perintah-perintah berikutnya. Dan perintah-perintah berikutnya terdapat kondisi else (lainnya) maka computer akan menjalankan perintah-perintah yang berada di antara 2 kurung kurawal else, yaitu :

else
{
disini
}

Disana belum terdapat perintah apapun, oleh sebab itu kita diminta untuk menyelesaikan program tersebut. Pertama kita analisa program telah berjalan sejauh apa. Kondisi else akan dijalankan apabila kondisi if(b>a) menghasilkan nilai false, disini berarti B tidak lebih besar dari A jadi operasional matematikanya menjadi seperti ini,
B<A (B lebih kecil dari A), dan secara keseluruhan program akan ditemukan operasi C>B<A (C lebih besar dari B, dan B lebih kecil dari A).

Pada kasus ini kita tidak dapat dengan begitu saja menentukan bahwa C merupakan bilangan terbsar, mengapa? Berikut penjelasannya,

  1. Kita tidak tahu dengan pasti apakah C lebih besar dari A atau A lebih besar dari C
  2. 1 Hal yang kita ketahui dengan pasti adalah bahwa B merupakan bilangan terkecil, karena C>B dan B<A (C lebih besar dari B, dan B lebih kecil dari A)

    Sehingga yang perlu kita lakukan adalah membuat sebuah kondisi untuk menjalankan perintah-perintah yang kita inginkan apabila kondisi tersebut menghasilkan true atau false dengan menggunakan if….else.

    Singkatnya kita dapat menyisipkan code berikut kedalam potongan code tadi,

    else
    {
    if(c>a)
    printf("%i",c); [1]
    else
    printf("%i",a); [2] 
    }

    Semoga sejauh ini teman-teman sudah dapat memahami mengapa kita harus menyisipkan code ini.

    Berikut penjelasan singkatnya,

    1. Akan tercetak nilai C apabila C lebih besar dari A (berarti nilai maksimalnya adalah C dan kondisi menghasilkan nilai true)
    2. Dan akan tercetak nilai A apabila C tidak lebih besar dari A (berarti nilai maksimalnya adalah A dan kondisi menghasilkan nilai false)

    Sehingga dapat kita lihat sendiri code akhir yang telah kita kerjakan menjadi,

    if(c>b)
    {
    if(b>a)
    {
    printf("%i",c);
    }
    else
    {
    if(c>a)
    printf("%i",c);
    else
    printf("%i",a);
    }
    }
    else
    {
    if(c<a)
    {
    }
    else
    {
    }
    }

    Selesailah tahap pertama program tersebut, kondisi C>B (C lebih besar dari B karena kondisi if(c>b) menghasilkan nilai true) telah selesai, sekarang kita akan menyelesaikan code dimana C<B (C tidak lebih besar dari B karena kondisi if(c>b) menghasilkan nilai false)

    Dalam menyelesaikan code berikutnya,

    else
    {
    if(c<a)
    {
    mencari ini
    }

    Ada beberapa hal penting yang kita telah tahu bahwa,

    1. C<B (C lebih kecil dari B)
    2. C<A (C lebih kecil dari A)

      Dan dalam menyelesaikan masalah pada code diatas ada beberapa hal juga yang tidak jelas bahwa,

      1. Kita tidak mengetahui dengan pasti apakah B lebih besar dari A atau A lebih besar dari B

        Dalam menyelesaikannya kita dapat menggunakan metode yang sama dengan yang telah saya bahas di atas,

        “Membuat sebuah kondisi untuk menjalankan perintah-perintah yang kita inginkan apabila kondisi tersebut menghasilkan true atau false dengan menggunakan if….else.”

        Daripada artikel penjelasan ini makin panjang dan berputar-putar saja, secara singkatnya kita dapat menghasilkan code berikut setelah menganalisa program tersebut,

        else
        {
        if(c<a)
        {
        if(b>a)
        printf("%i",b);
        else
        printf("%i",a);
        }
        }

        Dan sejauh ini program yang kita buat nampak seperti berikut,

        if(c>b)
        {
        if(b>a)
        {
        printf("%i",c);
        }
        else
        {
        if(c>a)
        printf("%i",c);
        else
        printf("%i",a);
        }
        }
        else
        {
        if(c<a)
        {
        if(b>a)
        printf("%i",b);
        else
        printf("%i",a);
        }
        else
        {
        }
        }

        Tinggal bagian terakhir untuk menyelesaikan soal pertama ini “Alur Kerja dan Struktur Data”. Dalam menyelesaikan program ini, sekali lagi kita pelajari alur program dan struktur datanya sejauh ini,

        Berikut yang telah kita ketahui dari penggalan program berikut,

        else
        {
        if(c<a)
        {
        if(b>a)
        printf("%i",b);
        else
        printf("%i",a);
        }
        else
        {
        }
        }

        Perhatikan potongan program yang akan kita kerjakan,

        else
        {
        Ini yang dimaksud
        }
        }
        1. Kita mengetahui bahwa C lebih besar dari A (karena kondisi if(c<a) menghasilkan nilai false)
        2. Dari semua yang kita kerjakan, kita telah mengetahui bahwa C<B dan C>A
          (C lebih kecil dari B, dan C lebih besar dari A) dengan kata lain A<C (A lebih kecil dari C). Sehingga apabila kita perhatikan, operasi Matematika nya menjadi seperti ini, A<C dan C<B atau bila digabungkan menjadi A<C<B. Dengan kata lain, operasi tersebut dapat kita Transform menjadi B>C>A (B lebih besar dari C, dan C lebih besar dari A). Kita simpulkan bahwa,

          1. B merupakan bilangan terbesar
          2. A merupakan bilangan terkecil

        Sehingga kita hanya tinggal menambahkan code untuk mencetak nilai B, karena B merupakan bilangan yang terbesar. Potongan code diatas akan nampak seperti ini,

        else
        {
        printf(“%i”,b);
        }
        }

        Selesailah program kita untuk soal pertama ini, hasil akhir dari semua yang telah kita kerjakan akan nampak seperti ini,

        #include<stdio.h>
        void main()
        {
        int a,b,c;
        scanf("%i %i %i",&a,&b,&c);
        if(c>b)
        {
        if(b>a)
        {
        printf("%i",c);
        }
        else
        {
        if(c>a)
        printf("%i",c);
        else
        printf("%i",a);
        }
        }
        else
        {
        if(c<a)
        {
        if(b>a)
        printf("%i",b);
        else
        printf("%i",a);
        }
        else
        {
        printf(“%i”,b);
        }
        }
        }

        Sekian artikel ini saya buat, semoga bisa menambah pemahamannya seputar “Alur Kerja dan Struktur Data” terutama dalam penggunaan dan cara memahami if….else. Mohon maaf apabila masih menimbulkan tanda tanya besar dalam kepala anda setelah membaca artikel ini, karena sesungguhnya saya belum berpengalaman dalam membuat artikel dan tutorial secara tertulis.

        Bila ada bagian yang masih kurang jelas dapat ditanyakan langsung kepada saya,

        E-Mail : bendot.tue@gmail.com

        Dengan segala hormat, bendot.tue :: Ferdinand Dimas

        Written by bendot.tue

        Februari 13, 2011 pada 3:11 pm

        4 Tanggapan

        Subscribe to comments with RSS.

        1. wew, artikel yg berbobot bro..🙂

          r4k4

          Februari 24, 2011 at 1:19 pm

          • eh ada mas r4k4, maaf sebelumnya gg ngenalin.. habis pakai ID ‘tempat kita’ bukannya r4k4 hhehe..

            thx udah berkunjung🙂

            |bendot.tue|

            Februari 26, 2011 at 12:20 am

        2. makasih ya.. ^_^

          Maaf blog aq belum ada isi nya,, isinya masih gak jelas. tq

          faiz

          Maret 22, 2012 at 9:56 pm

        3. bagai mana cara kita pahami soal tentang if dan else

          zhu maiy mard

          Desember 12, 2012 at 9:17 pm


        Tinggalkan Tanggapan

        Isikan data di bawah atau klik salah satu ikon untuk log in:

        Logo WordPress.com

        You are commenting using your WordPress.com account. Logout / Ubah )

        Gambar Twitter

        You are commenting using your Twitter account. Logout / Ubah )

        Foto Facebook

        You are commenting using your Facebook account. Logout / Ubah )

        Foto Google+

        You are commenting using your Google+ account. Logout / Ubah )

        Connecting to %s

        %d blogger menyukai ini: