Hallo sobat informatics, pada tutorial ini kita mulai membahas C++. Program komputer merupakan urutan instruksi yang memberi tahu komputer apa yang harus dilakukan. Sebuah pernyataan adalah jenis instruksi yang menyebabkan program untuk melakukan beberapa tindakan .
Pernyataan sejauh ini merupakan jenis instruksi yang paling umum dalam program C++. Ini karena mereka adalah unit komputasi independen terkecil dalam bahasa C++. Dalam hal itu, mereka bertindak seperti kalimat dalam bahasa alami. Ketika kita ingin menyampaikan ide kepada orang lain, kita biasanya menulis atau berbicara dalam kalimat (bukan dalam kata atau suku kata acak). Di C++, ketika kita ingin program kita melakukan sesuatu, kita biasanya menulis pernyataan.
Sebagian besar (tetapi tidak semua) pernyataan dalam C++ diakhiri dengan titik koma. Jika Anda melihat garis yang diakhiri dengan titik koma, itu mungkin sebuah pernyataan.
Dalam bahasa tingkat tinggi seperti C++, satu pernyataan dapat dikompilasi menjadi banyak instruksi bahasa mesin.
Ada banyak pernyataan dalam C++ diantaranya yakni:
- Declaration statements
- Jump statements
- Expression statements
- Compound statements
- Selection statements (conditionals)
- Iteration statements (loops)
- Try blocks
Function dan Main Function
Dalam C++, pernyataan biasanya dikelompokkan ke dalam unit yang disebut fungsi. Sebuah fungsi adalah kumpulan pernyataan yang mengeksekusi secara berurutan (dalam urutan, dari atas ke bawah). Saat Anda belajar menulis program Anda sendiri, Anda akan dapat membuat fungsi Anda sendiri dan mencampur dan mencocokkan pernyataan dengan cara apa pun yang Anda inginkan (kami akan menunjukkan caranya di pelajaran mendatang).
Program biasanya berhenti (selesai berjalan) ketika pernyataan terakhir di dalam fungsi main telah dieksekusi (meskipun program mungkin dibatalkan lebih awal dalam beberapa keadaan, atau melakukan pembersihan setelahnya).
Fungsi biasanya ditulis untuk melakukan pekerjaan tertentu. Misalnya, fungsi bernama “max” mungkin berisi pernyataan yang menentukan mana dari dua angka yang lebih besar. Sebuah fungsi bernama “calculateGrade” mungkin menghitung nilai siswa dari sekumpulan nilai ujian. Kami akan berbicara lebih banyak tentang fungsi segera, karena mereka adalah alat pengorganisasian yang paling umum digunakan dalam suatu program.
Hello World
Sekarang setelah Anda memiliki pemahaman singkat tentang apa pernyataan dan fungsi, mari kembali ke program “Hello world” dan lihat apa yang dilakukan setiap baris secara lebih rinci.
#include <iostream>
int main()
{
std::cout << "Hello world!";
return 0;
}
Baris 1 adalah jenis jalur khusus yang disebut direktif preprosesor. Direktif preprocessor ini menunjukkan bahwa kita ingin menggunakan konten library iostream, yang merupakan bagian dari library standar C++ yang memungkinkan kita membaca dan menulis teks dari/ke konsol. Kita membutuhkan baris ini untuk menggunakan std::cout pada baris 5. Mengecualikan baris ini akan mengakibatkan kesalahan kompilasi pada baris 5, karena kompilator tidak akan mengetahui apa itu std::cout.
Baris 2 kosong, dan diabaikan oleh kompilator. Baris ini hanya ada untuk membantu membuat program lebih mudah dibaca oleh manusia (dengan memisahkan #include preprocessor directive dan bagian selanjutnya dari program).
Baris 3 memberitahu compiler bahwa kita akan menulis (mendefinisikan) sebuah fungsi yang disebut main . Seperti yang Anda pelajari di atas, setiap program C++ harus memiliki fungsi utama atau akan gagal untuk ditautkan.
Baris 4 dan 7 memberitahu compiler baris mana yang merupakan bagian dari fungsi utama . Segala sesuatu antara kurung kurawal pembukaan pada baris 4 dan kurung kurawal penutup pada baris 7 dianggap sebagai bagian dari fungsi utama . Ini disebut badan fungsi.
Baris 5 adalah pernyataan pertama dalam fungsi main , dan merupakan pernyataan pertama yang akan dijalankan ketika kita menjalankan program kita. std::cout (yang merupakan singkatan dari “character output”) dan <<
operator mengizinkan kita untuk mengirim huruf atau angka ke konsol untuk menjadi output. Dalam hal ini, kami mengirimkan teks “Hello world!”, yang akan ditampilkan ke konsol. Pernyataan ini menciptakan output program yang terlihat.
Baris 6 adalah pernyataan kembali. Ketika program yang dapat dieksekusi selesai berjalan, program mengirimkan nilai kembali ke sistem operasi untuk menunjukkan apakah itu berjalan dengan sukses atau tidak. Pernyataan pengembalian khusus ini mengembalikan nilai 0 ke sistem operasi, yang berarti “semuanya berjalan baik-baik saja!”. Ini adalah pernyataan terakhir dalam program yang dijalankan.
Anda dapat mengompilasi dan menjalankan program ini sendiri, dan Anda akan melihat bahwa program ini menampilkan yang berikut ke konsol:
Sintaks dan kesalahan sintaks
Dalam bahasa Inggris, kalimat dibangun menurut aturan tata bahasa tertentu yang mungkin Anda pelajari di kelas bahasa Inggris di sekolah. Misalnya, kalimat normal diakhiri dengan titik. Aturan yang mengatur bagaimana kalimat dibangun dalam bahasa disebut sintaks . Jika Anda lupa titik dan menjalankan dua kalimat bersama-sama, ini merupakan pelanggaran sintaks bahasa Inggris.
C++ juga memiliki sintaks: aturan tentang bagaimana program Anda harus dibuat agar dianggap valid. Saat Anda mengkompilasi program Anda, kompiler bertanggung jawab untuk memastikan program Anda mengikuti sintaks dasar bahasa C++. Jika Anda melanggar aturan, kompilator akan mengeluh ketika Anda mencoba mengkompilasi program Anda, dan memberi Anda kesalahan sintaksis .
Mari kita lihat apa yang terjadi jika kita menghilangkan titik koma pada baris 5 dari program “Hello world”, seperti ini:
#include <iostream>
int main()
{
std::cout << "Hello world!"
return 0;
}
Komentar
Sebuah komentar adalah catatan programmer dapat dibaca yang dimasukkan langsung ke dalam kode sumber program. Komentar diabaikan oleh kompiler dan hanya untuk penggunaan programmer.
Di C++ ada dua gaya komentar yang berbeda, keduanya memiliki tujuan yang sama: untuk membantu pemrogram mendokumentasikan kode dalam beberapa cara.
Komentar satu baris
Simbol // memulai C ++ single-line komentar, yang memberitahu compiler untuk mengabaikan segala sesuatu dari // simbol ke akhir baris. Sebagai contoh:
std::cout << "Hello world!"; // Ini merupakan Komentar
Komentar multi baris
/*dan */sepasang simbol menunjukkan C-gaya multi-baris komentar. Segala sesuatu di antara simbol diabaikan.
/* Ini merupakan contoh komentar
multi baris. Komentar
ini akan diabaikan oleh compiler. */
Ketika kompiler mencoba mengkompilasi ini, ia akan mengabaikan semuanya mulai dari /* pertama hingga */ pertama. Karena ” ini tidak ada di dalam komentar */ ” tidak dianggap sebagai bagian dari komentar, kompiler akan mencoba mengompilasinya. Itu pasti akan menghasilkan kesalahan kompilasi.
Data
Dalam komputasi, data adalah segala informasi yang dapat dipindahkan, diproses, atau disimpan oleh komputer.
Sebuah program dapat memperoleh data untuk bekerja dengan banyak cara: dari file atau database, melalui jaringan, dari pengguna yang memberikan input pada keyboard, atau dari programmer yang memasukkan data langsung ke kode sumber program itu sendiri. Dalam program “Hello world” dari pelajaran yang disebutkan di atas, teks “Hello world!” dimasukkan langsung ke dalam kode sumber program, menyediakan data untuk digunakan program. Program kemudian memanipulasi data ini dengan mengirimkannya ke monitor untuk ditampilkan.
Data di komputer biasanya disimpan dalam format yang efisien untuk penyimpanan atau pemrosesan (dan karenanya tidak dapat dibaca manusia). Jadi, ketika program “Hello World” dikompilasi, teks “Hello world!” diubah menjadi format yang lebih efisien untuk digunakan program (biner, yang akan kita bahas di pelajaran mendatang).
Objek dan Variabel
Semua komputer memiliki memori, yang disebut RAM (singkatan dari memori akses acak), yang tersedia untuk digunakan oleh program Anda. Anda dapat menganggap RAM sebagai serangkaian kotak surat bernomor yang masing-masing dapat digunakan untuk menyimpan sepotong data saat program sedang berjalan. Sepotong data, disimpan dalam memori di suatu tempat, disebut nilai .
Di C++, akses memori langsung tidak diperbolehkan. Sebagai gantinya, kami mengakses memori secara tidak langsung melalui suatu objek. Sebuah objek merupakan wilayah penyimpanan (biasanya memori) yang memiliki nilai dan sifat yang terkait lainnya (yang akan kita bahas pada pelajaran di masa depan). Cara kerja kompiler dan sistem operasi untuk menetapkan memori ke objek berada di luar cakupan pelajaran ini. Tetapi poin kuncinya di sini adalah bahwa alih-alih mengatakan go get the value stored in mailbox number 7532 , kita dapat mengatakan, go get value yang disimpan oleh objek ini . Ini berarti kita dapat fokus menggunakan objek untuk menyimpan dan mengambil nilai, dan tidak perlu khawatir tentang di mana sebenarnya mereka ditempatkan dalam memori.
Objek dapat diberi nama atau tanpa nama (anonim). Objek bernama disebut variabel , dan nama objek disebut identifier. Dalam program kami, sebagian besar objek yang kami buat dan gunakan akan menjadi variabel.
Instansiasi Variabel
Untuk membuat variabel, kami menggunakan jenis pernyataan deklarasi khusus yang disebut definisi (kami akan mengklarifikasi perbedaan antara deklarasi dan definisi nanti). Berikut ini contoh pendefinisian variabel bernama x:
int x; // define a variable named x, of type int
Pada waktu kompilasi, ketika kompilator melihat pernyataan ini, ia membuat catatan untuk dirinya sendiri bahwa kita mendefinisikan sebuah variabel, memberinya nama x , dan itu bertipe int (lebih lanjut tentang tipe data sebentar lagi). Setiap kali kompiler melihat identififer x , ia akan tahu bahwa kita mereferensikan variabel ini.
Ketika program dijalankan (disebut runtime ), variabel akan dipakai. Instansiasi adalah kata mewah yang berarti objek akan dibuat dan diberi alamat memori. Variabel harus diinstansiasi sebelum dapat digunakan untuk menyimpan nilai. Sebagai contoh, katakanlah variabel x dibuat di lokasi memori 140. Setiap kali program kemudian menggunakan variabel x, ia akan mengakses nilai di lokasi memori 140. Objek yang dipakai terkadang juga disebut instance .
Tipe Data
Sejauh ini, kita telah membahas bahwa variabel adalah tempat penyimpanan bernama yang dapat menyimpan nilai data (bagaimana tepatnya data disimpan adalah topik untuk pelajaran mendatang). Sebuah tipe data (lebih sering hanya disebut jenis ) memberitahu compiler jenis nilai (misalnya nomor, surat, teks, dll …) variabel akan menyimpan.
Dalam contoh di atas, variabel x kita diberi tipe int , yang berarti variabel x akan mewakili nilai integer. Bilangan bulat adalah bilangan yang dapat ditulis tanpa komponen pecahan, seperti 4, 27, 0, -2, atau -12. Singkatnya, kita dapat mengatakan bahwa x adalah variabel integer .
Dalam C++, tipe variabel harus diketahui pada waktu kompilasi (saat program dikompilasi), dan tipe tersebut tidak dapat diubah tanpa mengkompilasi ulang program. Ini berarti variabel integer hanya dapat menyimpan nilai integer. Jika Anda ingin menyimpan beberapa jenis nilai lain, Anda harus menggunakan variabel yang berbeda.
Bilangan bulat hanyalah salah satu dari banyak jenis yang didukung C++ di luar kotak. Untuk tujuan ilustrasi, berikut adalah contoh lain untuk mendefinisikan variabel menggunakan tipe data double :
double width; // define a variable named width, of type double
Mendefinisikan Beberapa Variabel
Dimungkinkan untuk mendefinisikan beberapa variabel dengan tipe yang sama dalam satu pernyataan dengan memisahkan nama dengan koma. 2 cuplikan kode berikut secara efektif sama:
int a;
int b;
Sama dengan:
int a,b;
Saat mendefinisikan banyak variabel dengan cara ini, ada dua kesalahan umum yang cenderung dilakukan oleh pemrogram baru (tidak terlalu serius, karena kompiler akan menangkapnya dan meminta Anda untuk memperbaikinya):
Kesalahan pertama adalah memberikan setiap variabel jenis ketika mendefinisikan variabel secara berurutan.
int a, int b; // salah (compiler error)
int a, b; // benar
Kesalahan kedua adalah mencoba mendefinisikan variabel dari tipe yang berbeda dalam pernyataan yang sama, yang tidak diperbolehkan. Variabel dari jenis yang berbeda harus didefinisikan dalam pernyataan terpisah.
int a, double b; // salah (compiler error)
int a; double b; // benar (but not recommended)
// benar dan direkomendasikan (easier to read)
int a;
double b;
Inisialisasi Variabel
Tugas variabel
Setelah variabel didefinisikan, Anda dapat memberikan nilai (dalam pernyataan terpisah) menggunakan operator = . Proses ini disebut copy assignment (atau hanya assignment ) untuk jangka pendek.
int width; // define an integer variable named width
width = 5; // copy assignment of value 5 into variable width
// variable width now has value 5
Copy assignent dinamai demikian karena menyalin nilai di sisi kanan operator = ke variabel di sisi kiri operator. Simbol = operator disebut operator penugasan/operator assignment.
Berikut adalah contoh di mana kami menggunakan assignment dua kali:
#include <iostream>
int main()
{
int width;
width = 5; // copy assignment of value 5 into variable width
// variable width now has value 5
width = 7; // change value stored in variable width to 7
// variable width now has value 7
return 0;
}
Salah satu kesalahan paling umum yang dilakukan programmer baru adalah membingungkan operator assignment ( =) dengan operator equality ( ==). Assignment ( =) digunakan untuk memberikan nilai pada sebuah variabel. Equality ( ==) digunakan untuk menguji apakah dua operan memiliki nilai yang sama.
Inisialisasi
Satu kelemahan dari assignment adalah membutuhkan setidaknya dua pernyataan: satu untuk mendefinisikan variabel, dan satu untuk menetapkan nilai.
Kedua langkah ini dapat digabungkan. Ketika sebuah variabel didefinisikan, Anda juga dapat memberikan nilai awal untuk variabel tersebut pada saat yang sama. Ini disebut inisialisasi . Nilai yang digunakan untuk menginisialisasi variabel disebut inisialisasi .
Inisialisasi dalam C++ sangat kompleks, jadi kami akan menyajikan tampilan yang disederhanakan di sini.
Ada 4 cara dasar untuk menginisialisasi variabel dalam C++:
int a; // no initializer
int b = 5; // initializer after equals sign
int c( 6 ); // initializer in parenthesis
int d { 7 }; // initializer in braces
Mengenal iostream: cout,cin, dan endl
Library input / output
Library input / output (perpustakaan io) adalah bagian dari perpustakaan C ++ standar yang berhubungan dengan masukan dasar dan output. Kami akan menggunakan fungsionalitas di perpustakaan ini untuk mendapatkan input dari keyboard dan data output ke konsol. Bagian io dari iostream adalah singkatan dari input/output .
Untuk menggunakan fungsionalitas yang ditentukan dalam pustaka iostream , kita perlu menyertakan header iostream di bagian atas file kode apa pun yang menggunakan konten yang ditentukan dalam iostream , seperti:
#include <iostream>
std::cout
Library iostream berisi variabel yang telah ditetapkan beberapa bagi kita untuk menggunakan. Salah satu yang paling berguna adalah std::cout , yang memungkinkan kita mengirim data ke konsol untuk dicetak sebagai teks. cout adalah singkatan dari “keluaran karakter”.
Sebagai pengingat, inilah program Hello world kami :
#include <iostream> // for std::cout
int main()
{
std::cout << "Hello world!"; // print Hello world! to console
return 0;
}
Dalam program ini, kami telah menyertakan iostream sehingga kami memiliki akses ke std::cout . Di dalam fungsi utama kami , kami menggunakan std::cout , bersama dengan operator penyisipan ( <<
) , untuk mengirim teks Hello world! ke konsol yang akan dicetak.
std::cout tidak hanya dapat mencetak teks, tetapi juga dapat mencetak angka:
#include <iostream> // for std::cout
int main()
{
std::cout << 4; // print 4 to console
return 0;
}
Itu juga dapat digunakan untuk mencetak nilai variabel:
#include <iostream> // for std::cout
int main()
{
int x = 5; // define integer variable x, initialized with value 5
std::cout << x; // print value of x (5) to console
return 0;
}
Untuk mencetak lebih dari satu hal pada baris yang sama, operator penyisipan ( <<) dapat digunakan beberapa kali dalam satu pernyataan untuk menggabungkan (menghubungkan bersama) beberapa bagian keluaran. Sebagai contoh:
#include <iostream> // for std::cout
int main()
{
std::cout << "Hello" << " world!";
return 0;
}
Berikut contoh lain di mana kami mencetak teks dan nilai variabel dalam pernyataan yang sama:
#include <iostream> // for std::cout
int main()
{
int x{ 5 };
std::cout << "x is equal to: " << x;
return 0;
}
std::endl
Apa yang Anda harapkan dari program ini untuk dicetak?
#include <iostream> // for std::cout
int main()
{
std::cout << "Hi!";
std::cout << "My name is HIMTIKA.";
return 0;
}
Jika kita ingin mencetak baris output yang terpisah ke konsol, kita perlu memberi tahu konsol kapan harus memindahkan kursor ke baris berikutnya.
Salah satu cara untuk melakukannya adalah dengan menggunakan std::endl . Ketika output dengan std::cout , std::endl mencetak karakter baris baru ke konsol (menyebabkan kursor menuju ke awal baris berikutnya). Dalam konteks ini, endl berarti “garis akhir”.
Sebagai contoh:
#include <iostream> // for std::cout and std::endl
int main()
{
std::cout << "Hi!" << std::endl; // std::endl will cause the cursor to move to the next line of the console
std::cout << "My name is Alex." << std::endl;
return 0;
}
std::endl vs ‘\n’
Menggunakan std::endl bisa sedikit tidak efisien, karena sebenarnya melakukan dua pekerjaan: memindahkan kursor ke baris berikutnya, dan “membilas” output (memastikan itu segera muncul di layar). Saat menulis teks ke konsol menggunakan std::cout, std::cout biasanya mengeluarkan output (dan jika tidak, biasanya tidak masalah), jadi memiliki std::endl flush jarang penting.
Karena itu, penggunaan karakter ‘\n’ biasanya lebih disukai. Karakter ‘\n’ memindahkan kursor ke baris berikutnya, tetapi tidak melakukan pembilasan yang berlebihan, sehingga kinerjanya lebih baik. Karakter ‘\n’ juga cenderung lebih mudah dibaca karena lebih pendek dan dapat disematkan ke dalam teks yang ada.
Berikut adalah contoh yang menggunakan ‘\n’ dalam dua cara berbeda:
#include <iostream> // for std::cout
int main()
{
int x = 5;
std::cout << "x is equal to: " << x << '\\n'; // Using '\\n' standalone
std::cout << "And that's all, folks!\\n"; // Using '\\n' embedded into a double-quoted piece of text (note: no single quotes when used this way)
return 0;
}
Perhatikan bahwa ketika ‘\n’ digunakan dengan sendirinya untuk memindahkan kursor ke baris berikutnya, tanda kutip tunggal diperlukan. Saat disematkan ke dalam teks yang sudah dikutip ganda, tanda kutip tunggal tidak diperlukan.
std::cin
std::cinadalah variabel standar lain yang didefinisikan di iostream. Sedangkan std::cout mencetak data ke konsol menggunakan operator penyisipan ( <<), std::cin(yang merupakan singkatan dari “input karakter”) membaca input dari keyboard menggunakan operator ekstraksi ( >>) . Input harus disimpan dalam variabel yang akan digunakan.
#include <iostream> // for std::cout and std::cin
int main()
{
std::cout << "Enter a number: "; // ask user for a number
int x{ }; // define variable x to hold user input (and zero-initialize it)
std::cin >> x; // get number from keyboard and store it in variable x
std::cout << "You entered " << x << '\\n';
return 0;
}
Operator
Dalam matematika, operasi adalah perhitungan matematis yang melibatkan nol atau lebih nilai input (disebut operan ) yang menghasilkan nilai baru (disebut nilai output). Operasi spesifik yang akan dilakukan dilambangkan dengan konstruksi (biasanya simbol atau pasangan simbol) yang disebut operator .
Misalnya, sebagai anak-anak kita semua belajar bahwa 2 + 3 sama dengan 5 . Dalam hal ini, literal 2 dan 3 adalah operan, dan simbol + adalah operator yang memberi tahu kita untuk menerapkan penjumlahan matematis pada operan untuk menghasilkan nilai baru 5
Anda mungkin sudah cukup familiar dengan operator aritmatika standar dari penggunaan umum dalam matematika, termasuk penambahan (+), pengurangan (-), perkalian (*), dan pembagian (/). Dalam C++, penugasan (=) juga merupakan operator, seperti halnya << (penyisipan) dan >> (ekstraksi). Beberapa operator menggunakan lebih dari satu simbol, seperti operator kesetaraan (==), yang memungkinkan kita membandingkan dua nilai untuk melihat apakah keduanya sama. Ada juga sejumlah operator yang berupa kata-kata (misalnya new, delete, dan throw).
Jumlah operan yang diambil operator sebagai input disebut arity operator (hampir tidak ada yang tahu apa arti kata ini, jadi jangan masukkan dalam percakapan dan berharap siapa pun tahu apa yang Anda bicarakan). Operator di C++ datang dalam tiga arities yang berbeda :
Operator unary bekerja pada satu operan. Contoh dari operator unary adalah – Operator . Sebagai contoh, diberikan -5
, operator- mengambil operan literal 5 dan membalik tandanya untuk menghasilkan nilai keluaran baru -5 .
Operator biner bekerja pada dua operan (dikenal sebagai left dan right ). Contoh operator biner adalah operator + . Misalnya, diberikan 3 + 4
, operator+ mengambil operan kiri (3) dan operan kanan (4) dan menerapkan penjumlahan matematis untuk menghasilkan nilai keluaran baru 7 . Operator penyisipan (<<) dan ekstraksi (>>) adalah operator biner, mengambil std::cout atau std::cin di sisi kiri, dan item ke output atau variabel ke input di sisi kanan.
Terimakasih, semoga tutorial ini dapat bermanfaat dan apabila ada yang ingin ditanyakan. Silahkan untuk bertanya di kolom komentar. Terima kasih
Leave a Reply