Blog information

  • Category: Kuliah

  • Posted By: AglaBridgeMedia

  • Post date: 12 Mar 2021

  • Keywords: input, output, assignment, operator perbandingan, dasar pemrograman, bahasa c

  • Views: 266

Input, Output, Assignment, dan Operator Perbandingan pada Bahasa C

Sering kita jumpai dalam pemrograman bahasa C terdapat kode atau sintaks printf() dan juga scanf(). Sudah kita ketahui bersama juga bahwa kedua sintaks tersebut berguna untuk menampilkan output untuk printf() dan menangkap nilai input untuk scanf(). Misalkan kita mempunyai kode program seperti berikut.

#include 

int main()
{
    // deklarasi variabel
    char nama[20], alamat[50], nim[10];
    int umur;
    float ipk;
    
    // menampilkan informasi untuk mengisi nama, alamat, nim, umur, ipk
    printf("Masukkan Nama Kamu: "); scanf("%s",nama);
    printf("Masukkan Alamat Kamu: "); scanf("%s", alamat);
    printf("Masukkan NIM Kamu: "); scanf("%s", nim);
    printf("Masukkan Umur Kamu: "); scanf("%d", &umur);
    printf("Masukkan IPK Kamu: "); scanf("%f", &ipk);
    
    // menampilkan hasil input
    printf("-------------------------------------------\n");
    printf("Nama Kamu: %s\n", nama);
    printf("Alamat Kamu: %s\n", alamat);
    printf("NIM Kamu: %s\n", nim);
    printf("Umur Kamu: %d\n", umur);
    printf("IPK Kamu: %0.2f\n", ipk);
}

Jika dijalankan akan menampilkan output seperti berikut.

Output yang dihasilkan akan sesuai atau sama seperti nilai inputnya. Sekarang yang jadi pertanyaan, bagaimana jika nilai input lebih dari satu kata. Apakah bisa tetap menggunakan fungsi scanf()? Jika kita coba isikan misalnya nama dengan dua buah kata, maka akan menghasilkan output seperti berikut ini.


Bisa dilihat bahwa output tidak sama dengan nilai input. Nama input "Son Goku" akan tertangkap hanya satu kata saja, yaitu "Son", sedangkan ketika kita seharusnya memasukkan alamat setelah memasukkan nama, tapi pilihannya tidak ada, dan nilai outputnya alamat menjadi "Goku", yang merupakan kata kedua dari inputan nama. Ini berarti bahwa ketika kita menggunakan fungsi scanf() untuk menangkap nilai input lebih dari satu kata, maka setiap ada white space atau spasi akan dianggap sebagai akhir suatu string.

Lalu bagaimana untuk mengatasi ini? Di dalam bahasa C sudah disediakan fungsi lainnya, yaitu gets(). Fungsi gets() akan tetap menangkap nilai inputan sampai pada pengguna menekan tombol enter yang menandakan akhir dari isian. Mari kita coba ganti menggunakan gets() untuk menggantikan scanf(). Perhatikan kode program berikut ini.

#include 

int main()
{
    // deklarasi variabel
    char nama[20], alamat[50], nim[10];
    int umur;
    float ipk;
    
    // menampilkan informasi untuk mengisi nama, alamat, nim, umur, ipk
    printf("Masukkan Nama Kamu: "); gets(nama);
    printf("Masukkan Alamat Kamu: "); gets(alamat);
    printf("Masukkan NIM Kamu: "); gets(nim);
    printf("Masukkan Umur Kamu: "); scanf("%d", &umur);
    printf("Masukkan IPK Kamu: "); scanf("%f", &ipk);
    
    // menampilkan hasil input
    printf("-------------------------------------------\n");
    printf("Nama Kamu: %s\n", nama);
    printf("Alamat Kamu: %s\n", alamat);
    printf("NIM Kamu: %s\n", nim);
    printf("Umur Kamu: %d\n", umur);
    printf("IPK Kamu: %0.2f\n", ipk);
}

Untuk penulisan gets() hanya seperti kode di atas, yaitu fungsi gets() dan diikuti variabel yang diletakkan pada tanda dalam kurungnya/sebagai parameternya. Sehigga ketika kita run kode tersebut akan menghasilkan output seperti berikut. Nilai input akan sama dengan nilai output walaupun terdapat spasi di sana.


Itulah perbedaan dari scanf() dan gets(). Mudah-mudahan penjelasan ini dapat dimengerti.

Selanjutnya akan saya bahas assignment dan juga operator perbandingan. Assignment merupakan perintah untuk memberikan suatu nilai pada suatu variabel. Sedangkan operator perbandingan adalah operator yang dipakai untuk membandingkan dua buah nilai atau dua buah variabel. Operator perbandingan biasanya terdiri dari 6 buah operator, yaitu kurang dari (<), kurang dari sama dengan (<=), lebih dari (>), lebih dari sama dengan (>=), tidak sama dengan (!=) dan sama dengan (==). Output dari operator perbandingan adalah boolean, yaitu nilai false atau true atau nilai 1 (untuk true) dan 0 (untuk false). Untuk memudahkan dalam memahaminya, akan saya berikan contoh sederhananya. Perhatikan kode program berikut.

#include 

int main()
{
    // deklarasi variabel
    int bil1, bil2;
    
    // operator perbandingan >, >=, <, <=, !=, ==
    bil1 = 7;
    bil2 = 4;
    printf("Bilangan pertama: %d\n", bil1);
    printf("Bilangan kedua: %d\n", bil2);
    printf("%d > %d --> %d\n",bil1, bil2, (bil1 > bil2));
    printf("%d >= %d --> %d\n",bil1, bil2, (bil1 >= bil2));
    printf("%d < %d --> %d\n",bil1, bil2, (bil1 < bil2));
    printf("%d <= %d --> %d\n",bil1, bil2, (bil1 <= bil2));
    printf("%d != %d --> %d\n",bil1, bil2, (bil1 != bil2));
    printf("%d == %d --> %d\n",bil1, bil2, (bil1 == bil2));
}

Pada kode di atas saya menggunakan nilai 7 untuk variabel bil1 dan nilai 4 untuk bil2 kemudian coba kita bandingkan dengan menggunakan operator perbandingan. Sedangkan assignment adalah proses memberikan nilai pada variabel bil1 dengan nilai 7 dan bil2 dengan nilai 4. Jika kode program di atas dijalankan akan menghasilkan output sebagai berikut.

Semua perbandingan adalah membandingkan nilai dari variabel bil1 dibandingkan dengan nilai dari variabel bil2. Pada operator perbandingan pertama, yaitu lebih dari (>) akan menghasilkan output 1, yang berarti benar. Artinya nilai 7 adalah benar lebih besar dari 4, begitu juga operator yang lainnya. Mudah bukan? Sekian artikel saya kali ini, terimakasih.






blog comments powered by Disqus