Penggunaan fungsi SSCANF pada PHP

Definisi dan Penggunaan

Fungsi sscanf() digunakan untuk dapat mem-parsing input dari string sesuai dengan format yang ditentukan. Fungsi sscanf() mem-parsing string menjadi variabel berdasarkan format string.

Jika hanya dua parameter yang diteruskan ke fungsi ini, data akan dikembalikan sebagai array. Jika tidak, jika parameter opsional diteruskan, data yang diurai akan disimpan di dalamnya. Jika ada lebih banyak penentu daripada variabel untuk menampungnya, kesalahan terjadi. Namun, jika ada lebih sedikit penentu daripada variabel, variabel tambahan berisi NULL.

Fungsi terkait:

  • printf() – mengeluarkan string yang diformat
  • sprintf() – menulis string yang diformat ke variabel

Syntax

sscanf(string,format,arg1,arg2,arg++)

Nilai Parameter

ParameterDeskripsi
string Required. Menentukan string untuk dibaca
format Required. Menentukan string dan cara memformat variabel di dalamnya.

Nilai format yang memungkinkan:

%% – Mengembalikan tanda persen
%b – Bilangan biner
%c – Karakter sesuai dengan nilai ASCII
%d – Angka desimal bertanda tangan (negatif, nol atau positif)
%e – Notasi ilmiah menggunakan huruf kecil (misalnya 1.2e + 2)
%E – Notasi ilmiah menggunakan huruf besar (misalnya 1.2E + 2)
%u – Angka desimal tak bertanda (sama dengan atau lebih besar dari nol)
%f – Angka floating-point (pengaturan lokal sadar)
%F – Angka floating-point (tidak diketahui pengaturan lokal)
%g – lebih pendek dari% e dan% f
%G – lebih pendek dari% E dan% f
%o – Nomor oktal
%s – String
%x – Angka heksadesimal (huruf kecil)
%X – Angka heksadesimal (huruf besar)

Nilai format tambahan. Ini ditempatkan di antara% dan huruf (contoh% .2f):

+(Memaksa + dan – di depan angka. Secara default, hanya angka negatif yang ditandai)
(Menentukan apa yang akan digunakan sebagai pengisi. Defaultnya adalah spasi. Harus digunakan bersama dengan penentu lebar. Contoh:%’ x20s (ini menggunakan “x” sebagai pengisi)
(Kiri-membenarkan nilai variabel)
[0-9] (Menentukan lebar minimum yang dipegang dari nilai variabel)
. [0-9] (Menentukan jumlah digit desimal atau panjang string maksimum)

Catatan: Jika beberapa nilai format tambahan digunakan, urutannya harus sama seperti di atas.

arg1 Optional. Variabel pertama untuk menyimpan data
arg2 Optional. Variabel kedua untuk menyimpan data
arg++ Optional. Ketiga, keempat, dan seterusnya, untuk menyimpan data

Detail Teknis

Return Value:PHP Version:
Jika hanya dua parameter yang diteruskan ke fungsi ini, data akan dikembalikan sebagai array. Jika tidak, jika parameter opsional diteruskan, data yang diurai akan disimpan di dalamnya. Jika ada lebih banyak penentu daripada variabel untuk menampungnya, kesalahan terjadi. Namun, jika ada lebih sedikit penentu daripada variabel, variabel tambahan berisi NULL.
4.0.1+

Contoh 1
Parse string:

<?php $str = "age:30 weight:60kg"; sscanf($str,"age:%d weight:%dkg",$age,$weight); // Tampilkan tipe dan valuenya var_dump($age,$weight); ?> // Output : int(30) int(60)

Contoh 2
Menggunakan nilai format% s,% d dan% c:

<?php $str = "If you divide 4 by 2 you'll get 2"; $format = sscanf($str,"%s %s %s %d %s %d %s %s %c"); print_r($format); ?> /* Output : Array ( [0] => If [1] => you [2] => divide [3] => 4 [4] => by [5] => 2 [6] => you'll [7] => get [8] => 2 )

Dalam 2 tutorial sebelum ini kita telah mempelajari cara menampilkan sesuatu (output) menggunakan perintah printf dalam bahasa pemrograman C. Kali ini kita akan bahas tentang fungsi perintah scanf serta cara penggunaan perintah scanf sebagai sarana input program bahasa C.

Table of Contents

  • Pengertian perintah scanf
  • Contoh Kode Program dengan scanf
  • Apa fungsi dari scanf?
  • Kapan digunakan perintah scanf?
  • Apakah fungsi scan selalu harus disertai dengan fungsi printf?
  • Apa itu String dalam bahasa C?

Pengertian perintah scanf

Perintah scanf, atau lebih tepatnya function scanf() adalah perintah bahasa C untuk menerima masukan ke dalam program, yakni sebagai sarana input dari pengguna.

Dengan menggunakan perintah scanf, kita bisa membuat program yang lebih interaktif, yakni meminta data dari user / pengguna. Data ini nantinya bisa disimpan ke dalam variabel dan diolah lebih lanjut untuk kemudian ditampilkan kembali.

Sama seperti printf, perintah scanf juga merupakan function yang butuh beberapa argumen. Berikut format dasar penggunaan fungsi scanf:

scanf(kode_format, &nama_variabel_penampung)

Bagian kode_format adalah format untuk tipe data inputan. Kode format ini sama seperti yang dipakai untuk fungsi printf, misalnya kode “%d” untuk tipe data integer, atau “%c” untuk tipe data char.

Bagian nama_variabel_penampung adalah nama variabel yang digunakan untuk menampung nilai inputan. Variabel ini harus sudah di deklarasikan sebelumnya.

Perhatikan penambahan tanda ‘&’ diawal variabel penampung. Tanda ini merujuk ke pointer untuk alamat memory dari variabel tersebut. Untuk tipe data dasar seperti int, float dan char, tanda ‘&’ harus disertakan. Untuk beberapa tipe data seperti string, tidak perlu ditambahkan tanda ‘&’.

Sama seperti printf, fungsi scanf juga bukan bagian dari inti bahasa C, tapi berasal dari library stdio.h. Karena itu kode #include <stdio.h> harus ditulis agar bisa menggunakan perintah scanf.

Contoh Kode Program dengan scanf

Langsung saja kita lihat contoh kode program bahasa C untuk penggunaan perintah scanf:

#include <stdio.h> int main(void) { int harga; printf("Masukkan harga barang: "); scanf("%d",&harga); printf("\n"); printf("Harga barang adalah: %d", harga); printf("\n"); return 0; }

Di awal kode program, saya mendefinisikan 1 buah variabel harga yang diset sebagai int. Artinya, variabel harga hanya bisa diisi dengan angka bulat.

Selanjutnya terdapat baris printf(“Masukkan harga barang: “). Ini digunakan untuk menampilkan teks sebagai keterangan agar pengguna menginput sesuatu.

Proses pembacaan data di tangani oleh perintah scanf(“%d”,&harga). Disini, cursor akan berhenti dan menunggu kita menginput suatu nilai. Nilai ini akan disimpan ke dalam variabel harga. Tanda “%d” adalah sebagai kode format kalau nilai inputan harus berupa integer.

Terakhir, nilai dari variabel harga ini saya tampilkan kembali dengan perintah printf(“Harga barang adalah: %d”, harga). Berikut contoh hasilnya:

Yang juga harus menjadi catatan, ketika karakter yang diinput bukan angka, bahasa C akan mengkonversi karakter tersebut. Misalnya diinput angka 2500.25 (pecahan), yang akan di ambil hanya angka 2500 saja. Karena variabel harga hanya bisa menampung angka bulat.

Sebagai contoh kedua, saya akan buat kode program untuk menampung 3 inputan sekaligus:

#include <stdio.h> int main(void) { int harga; float nilai_ip; char huruf; printf("Harga barang: "); scanf("%d",&harga); printf("Nilai IP: "); scanf("%f",&nilai_ip); printf("Huruf pertama nama anda: "); scanf("%c",&huruf); printf("\n"); printf("harga = %d , nilai_ip = %f dan huruf = %c", harga, nilai_ip, huruf); printf("\n"); return 0; }

Kode program ini mirip seperti sebelumnya, hanya saja kali ini saya membuat 3 variabel bertipe int, float dan char. Setelah itu terdapat 3 perintah scanf untuk menerima input untuk ketiga variabel ini.

Akan tetapi, jika anda menjalankan kode program diatas, terdapat 1 masalah. Ketika kita menekan tombol enter setelah menginput angka untuk variabel nilai_ip, program langsung berakhir tanpa sempat berhenti untuk menerima input untuk variabel huruf.

Hal ini terjadi karena karakter “Enter” akan dibaca sebagai inputan untuk variabel huruf yang di set sebagai char.

Solusinya, tambahkan 1 spasi di dalam baris scanf(“%c”,&huruf) menjadi:

scanf(" %c",&huruf);

Trik ini akan mengatasi masalah karakter “Enter” yang langsung terinput ke variabel huruf. Berikut perubahan kode programnya:

#include <stdio.h> int main(void) { int harga; float nilai_ip; char huruf; printf("Harga barang: "); scanf("%d",&harga); printf("Nilai IP: "); scanf("%f",&nilai_ip); printf("Huruf pertama nama anda: "); scanf(" %c",&huruf); printf("\n"); printf("harga = %d , nilai_ip = %f dan huruf = %c", harga, nilai_ip, huruf); printf("\n"); return 0; }

Sekarang, inputan untuk ketiga variabel sukses di jalankan.

Dalam tutorial ini kita telah membahas cara penggunaan perintah scanf dalam bahasa pemrograman C. Perintah scanf dan printf adalah sarana input / output standar di dalam bahasa C. Kedua perintah ini akan sering kita pakai dalam pembahasan nantinya.

Untuk tutorial selanjutnya kita akan masuk ke bahasan tentang jenis-jenis tipe data di dalam bahasa C.

Apa fungsi dari scanf?

Fungsi scanf() adalah fungsi untuk mengambil input dari keyboard. Fungsi ini memiliki format seperti fungsi printf() . Format yang diberikan tergantung dari jenis tipe data apa yang ingin kita ambil.

Kapan digunakan perintah scanf?

Fungsi scanf() merupakan salah satu fungsi yang dapat digunakan untuk memasukkan berbagai jenis tipe data. Fungsi scanf() dapat digunakan untuk membaca tipe data string, karakter, integer, desimal, bilangan real, oktal, desimal, dll.

Apakah fungsi scan selalu harus disertai dengan fungsi printf?

harus, karena printer berguna untuk melihat/menghasilkan hasil scan.

Apa itu String dalam bahasa C?

String merupakan sekumpulan karakter. Dalam bahasa C, string direpresentasikan dengan array of char yang diakhiri dengan karakter null (null terminated string). Contoh deklarasi string : char judul[50]; char nama_kota[20]; Karena string dibentuk dari array of char, maka panjang string bisa tak terbatas.

Postingan terbaru

LIHAT SEMUA