Tentang
Pemograman C++
Disusun Oleh:
Dosen Pengampu:
UNIVERSITAS ADZKIA
PADANG
2022
KATA PENGANTAR
Puji syukur marilah kita ucapkan atas ke hadirat Allah Swt. Karena berkat rahmat dan
nikmatnya kami dapat menyelesaikan pembuatan makalah ini. Sholawat beriring salam semoga
tetap tercurah kepada nabi besar kita yakni nabi Muhammad Saw. Selanjutnya yang terhormat
kepada bapak jefri rahmad mulia, S.Kom.,M.Kom selaku dosen pengampu pada mata kuliah
Pada kesempatan kali ini kami membuat makalah mengenai “Pemograman C++”.
Bertujuan untuk memenuhi tugas mata kuliah Dasar-dasar pemograman komputer dan menambah
wawasan pemabaca.
berpatisipasi dalam menyelesaikan pembuatan makalah ini. Penulis menyadari bahwa makalah ini
masih terdapat banyak kekurangan, oleh sebab itu penulis persilahkan kepada para pembaca untuk
mengkritik atau memberi saran yang bertujuan untuk menyempurnakan makalah ini.
i
DAFTAR ISI
DAFTAR ISI................................................................................................... ii
C. Tujuan ....................................................................................................... 2
A. Kesimpulan ............................................................................................... 13
B. Saran ........................................................................................................ 13
ii
BAB I
PENDAHULUAN
A. Latar Belakang
pemrograman C pertama kali dikembangkan pada tahun 1972 oleh Denis M. Ritchie di Bell
Labs. Bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun
1967 dan bahasa B yang dikembangkan oleh Ken Thompson pada tahun 1970. Kemudian
dibantu oleh Brian W. Kernighan, Ritchie menulis The C Programming Language pada tahun
1978. Sejak saat itu, bahasa pemrograman C lebih dikenal dengan K-RC C atau Classical C.
Versi C yang lebih baru adalah Ansi C tahun 1989 dan C 99 tahun 1999. Bahasa C++
diperkenalkan oleh Bjarne Stroustrup dari laboratorium AT&T/Bell pada tahun 1980 dengan
nama asli "C with Classes". Stroustroup juga menulis Bahasa Pemrograman C++. Bahasa C
adalah bahasa perantara. Bahasa C menjadi bahasa C plus OOP, dikombinasikan dengan
beberapa sintaks baru, tipe statis, dan dapat mendukung gaya pemrograman yang berbeda.
Bahasa C++ saat ini sedang dikembangkan untuk membuat perangkat lunak. Sistem
operasi seperti Windows, Linux dan juga jaringan komputer (aplikasi klien/server
adalah bahasa yang dapat digunakan untuk membuat berbagai aplikasi. Misalnya aplikasi
untuk mengolah gambar, program untuk perangkat, game untuk sistem operasi baru.
Bahasa ini dikembangkan dari bahasa pemrograman C. Tidak heran kedua bahasa ini
memiliki sintaks dan struktur kode yang sama. Perbedaannya adalah C++ adalah pemrograman
berorientasi objek (OOP) sedangkan C adalah bahasa pemrograman prosedural. Dengan kata
lain, bahasa pemrograman C++ memiliki data dan fungsi yang digabungkan ke dalam kelas
1
dan objek yang bekerja sama untuk menyelesaikan suatu masalah. Jadi jika Anda ingin
mengubah suatu fungsi, Anda tidak perlu mengubah keseluruhan program. Dengan cara ini
Ini tidak mungkin dengan prosedur dalam bahasa pemrograman C, di mana data dan fungsi
terpisah dan kompiler harus membacanya satu per satu. Jadi jika Anda ingin mengubah suatu
B. Rumusan Masalah
C. Tujuan
Dari latar belakang dan rumusan masalah diatas, maka tujuan penulisan makalah ini ialah :
2
BAB II
PEMBAHASAN
1. Variabel
Di C++, variabel adalah nama yang diberikan ke lokasi memori yang berisi unit
dasar penyimpanan program. Nilai yang disimpan dalam variabel ini dapat diubah selama
eksekusi program. Variabel hanyalah nama yang diberikan ke lokasi penyimpanan, dan
variabel yang memengaruhi dapat memengaruhi lokasi penyimpanan tersebut secara
umum. Di C++, semua variabel harus dideklarasikan atau tidak diberi label dan diberi label
sebelum digunakan. Format deklarasi variabel yang paling sering ditemukan adalah
// Deklarasikan satu variabel
ketik nama_variabel;
// Deklarasikan banyak variabel:
tulis nama_variabel1, nama_variabel2, nama_variabel3;
Nama variabel ini dapat terdiri dari huruf, huruf besar dan kecil, angka dan karakter
“_” (underscore). Perhatikan, bagaimanapun, bahwa nama variabel tidak boleh dimulai
dengan angka.
2. Struktur Kontrol
Struktur kontrol di C++ memberi tahu apa yang harus dilakukan program
berdasarkan kapan dan di mana kondisi tersebut terjadi. Ini terjadi karena program biasanya
3
tidak terbatas pada rangkaian pernyataan linier. Selama prosesnya, program dapat
bercabang dan mengulang kode selama pengambilan keputusan.
Struktur kontrol C++ memungkinkan pengguna untuk mengeksplorasi konsep baru
dalam bentuk pernyataan atau blok kombinatorial. Blok adalah serangkaian pernyataan
yang dipisahkan oleh titik koma (;) tetapi dikelompokkan menjadi satu blok dengan
menyertakan tanda kurung; {}; sebagai berikut
{negara bagian1; pernyataan2; pernyataan3; }
Struktur kontrol C++ juga mengenali kontrol aliran, yang membantu
mengimplementasikan tiga tipe dasar struktur kontrol. Ada tiga tipe dasar struktur kontrol
Berurutan, mode default di mana pernyataan kode dieksekusi baris demi baris
Pilihan, digunakan untuk membuat keputusan, bercabang dan beralih di antara dua
atau lebih jalur alternatif. C++ memiliki beberapa statement pilihan, yaitu if, if/else, dan
switch
Repetisi digunakan untuk mengulangi atau mengulangi suatu bagian kode beberapa
kali berturut-turut. Dalam C++ ini disebut loop dan ada tiga jenis, yaitu while, do/while
dan for 3. Struktur informasi
struktur data
Struktur data adalah sekelompok item data dalam C++ (sumber:
piksel)
Struktur data, atau struktur data dalam C++, adalah kumpulan item data yang
dikelompokkan dalam satu nama. Data ini disebut anggota dan dapat dari berbagai jenis
dan panjang. Struktur data dapat dideklarasikan dalam C++ dengan sintaks berikut:
struct type_name {
MemberType1 MemberName1;
tipe anggota2 nama anggota2;
anggota tipe3 nama anggota3;
.
. } nama objek;
Fungsi type_name dalam struktur data C++ adalah nama dari tipe struktur yang
digunakan, sedangkan object_name adalah kumpulan pengidentifikasi yang valid untuk
4
objek dengan tipe struktur terkait. Tanda kurung kurawal "{}" adalah pembatas untuk
daftar item data, masing-masing didefinisikan oleh tipe yang valid dan nama pengenal.
Secara umum, struktur data dalam C++ adalah tipe data yang dibuat dari record
lain. Contoh struktur data adalah sebagai berikut:
string nama_student01 = "Ragil Putra Pratama";
string nama_sekolah_siswa01 = "SMA 1 Pekalongan";
unsigned int money_spp_opiskelija01 = 10000;
Pengelompokan siswa kedua dan selanjutnya hanya dapat dilakukan dengan
menuliskan nama_siswa02, nama_sekolah_siswa02 dan siswa_spp_uang02.
4. sintaksis
Dalam pemrograman C++, istilah sintaks mengacu pada seperangkat aturan, proses,
dan protokol yang telah ditentukan sebelumnya yang harus diikuti setiap orang. Ini wajib
jika pengguna menginginkan kode bebas kesalahan. Secara umum, sintaksis adalah dasar
dari aturan, prinsip, dan proses yang mengatur struktur C++ atau bahasa pemrograman apa
pun. Berikut adalah contoh sintaks C++,
#termasuk
dengan ruang nama std;
int utama() {
c di luar << "Indonesia Raya!";
kembali 0;
}
Contoh di atas berarti
Baris 1, #include adalah library atau header dokumen yang memungkinkan kita
bekerja dengan objek input dan output
Baris 2, menggunakan namespace std berarti kita dapat menggunakan nama untuk
objek dan variabel dari pustaka standar
Baris 3 adalah baris kosong tempat C++ mengabaikan spasi atau spasi (ENTER)
Baris 4, int main() adalah fungsi yang menjalankan semua kode di dalam tanda
kurung
5
Baris 5, cout atau "see out" adalah objek yang digunakan bersama dengan operator
penjumlahan (<<) untuk mencetak atau menampilkan teks. Pada contoh, teks yang
ditampilkan adalah "Indonesian Raya".
5. Alat
Secara umum, ada dua alat utama untuk mempelajari C++, yang pertama adalah
menyiapkan kompiler dan yang kedua adalah editor teks. Kompiler adalah program untuk
menerjemahkan kode C++ ke dalam bahasa rakitan. Sedangkan text editor merupakan
aplikasi yang sebelumnya digunakan untuk menulis kode.
Kompiler yang biasa digunakan untuk C++ adalah GCC atau Clang, Microsoft
Visual C++, Intel C++ Compiler dan lain-lain. Beberapa produk editor teks terkenal,
seperti Sublime Text, Atom, Visual Studio Code, dll.
Elemen-elemen bahasa Pemograman terdiri dari:
1. Statemen
Statemen adalah sebuah baris kode formal yang menberi tahu komputer apa
yang dilakukan. Program melakukan pekerjaan menggunakan statemen untuk:
- Inisialisasi
- Mendapatkan input
- Proses data
- Penampilan output
- Penyimpanan data
Sebagai contoh perhatikan program berikut:
- Inisialisasi float fahr, celcius;
- Mendapatkan input fahr= 50;
- Proses data celcius = (fahr - 32) *5/9 ;
- Penampilan hasil cout<< “ Hasil Konversi = “<<celcius<endin
2. Variabel
Sebuah unit memori yang dapat diubah selama eksekusi program. Setiap
variabel harus diberi dengan nama yang unik. Syarat-syarat penamaan suatu
variable adalah sebagai berikut:
6
- Dibatasi sebesar 255 karakter.
- Harus diawali oleh karakter alfabet.
- Tidak boleh memiliki titik atau koma.
- Nama tidak boleh berupa kata kunci (keyword)
3. Konstanta
Dimana:
4. Tipe data
NO Tipe Data Ukuran Range (jangkauan) Format Keterangan 1 char 1 byte -128 s/d 127 %c
Karakter/string 2 int 2 byte -32768 s/d 32767 %i, %d Integer/bilangan bulat 3 Float 4 byte -3.4E-
38 s/d e.4E+38 %f Float/bilangan pecahan 4 Double 8 byte -1.7E-308 s/d 1.7E+308 %lf Pecahan
presisi ganda 5 void 0 byte - - Tidak bertipe
Simbol yang dapat menyebabkan perubahan pada ekspresi seperti operasi aritmatika.
Tanda sama dengan (=) merupan operator penugasan yang menberikan sebuag nilai pada
sebuah variabel. Contoh: V = I * R Akan memberikan nilai pada variabel V dengan nilai
perkalian variabel I dan R. Tabel 2.2 Operator dan ekspresi pemrograman C++ C++ Operation
Operator Algebraic Expression C++ Expression Addition + f + 7 f + 7 Substraction - p – c p –
c Multiplication * Bm or b m b * m Division / x / y or or x ÷ y x / y Modulus % r mod s r % s
Operator Pembanding Tabel 2.3 Jenis operator pembanding pemrograman C++ Simbol
7
Deskripsi Contoh Ekspresi Benar Salah < Kecil dari -7.8 < 4.5 4.5 < -7.8 <= Kecil dari atau
sama dengan 0.67 <= 0.68 0.68 <= 0.67 > Besar dari 20 > 10 10 > 20 Besare dari atau sama
dengan 1 >= 0 0 >= 1 <> Tidak sama dengan 10 <> 10.01 10 <> 10 = Sama dengan 7 = 7 7 =
6.99999 Selanjutnya pada bab ini akan dibahas dasar-dasar pemograman C++ yang akan
digunakan dalam membuat aplikasi komputasi sistem rekayasa dan matematika.
Pengertian sederhana dari case sensitivity adalah perbedaan antara huruf besar dan huruf kecil.
Istilahnya, bahasa C++ termasuk bahasa yang case sensitif. Dalam bahasa C++, huruf besar dan
kecil dianggap berbeda. Perintah cout tidak bisa ditulis menjadi Cout.
Berikut contohnya:
1#include <iostream>
2
3using namespace std;
4
5int main()
6{
7 Cout << "Belajar C++ di Duniailkom";
8 return 0;
9}
Hasil kode program:
8
jika dibandingkan bahasa pemrograman PASCAL yang bersifat case insensitif (tidak
membedakan huruf besar dan kecil).
2. Cara Penulisan Komentar dalam Bahasa C++
Komentar atau comment adalah kode program yang ditambah untuk memberi keterangan /
penjelasan mengenai cara kerja program. Komentar tidak akan diproses oleh compiler C++.
Dalam bahasa C++, terdapat 2 cara membuat baris komentar:
1 #include <iostream>
5 int main()
6 {
9 return 0;
10 }
Teks yang ada di baris 7 dan sebagian baris 8 tidak akan di proses oleh compiler C++.
9
1 #include <iostream>
5 int main()
6 {
9 return 0;
10 }
Dengan teknik seperti ini kita bisa mencoba berbagai perintah lain tanpa harus menghapus kode
yang sudah ada.
Baris komentar juga sering dipakai untuk membuat semacam copyright kode program yang ditulis
pada bagian awal:
1 // Pembuat : Duniailkom.com
3 // Bahasa : C++
6 #include <iostream>
10
8 using namespace std;
10 int main()
11 {
13 return 0;
14 }
Cara pembuatan baris komentar kedua adalah dengan tanda /* dan */. Seluruh karakter yang ada
diantara kedua tanda ini akan dianggap sebagai komentar dan diabaikan pada saat proses compiler.
Berikut contoh penggunaannya:
1 /* Pembuat : Duniailkom.com
3 Bahasa : C++
6 #include <iostream>
10 int main()
11 {
11
12 cout << "Belajar C++ di Duniailkom";
14 return 0;
15 }
Baris komentar yang ditulis dengan tanda /* dan */ bisa mencakup banyak baris, dan harus ditulis
secara berpasangan.
Statement dalam bahasa C++ adalah sebutan untuk sebuah baris perintah. Setiap statement dalam
C++ harus diakhiri dengan tanda titik koma ( ; ).
Berikut beberapa contoh statement dalam bahasa pemrograman C++:
1x = 6;
2y = "Duniailkom";
3z = 5+3;
42+3;
6root2 = sqrt(49);
Sebuah statement tidak harus mencakup satu baris. Perintah kondisi seperti if else dan perulangan
(looping) bisa terdiri dari beberapa baris, dan ini dianggap sebagai satu statement:
1if(x == "Duniailkom") {
12
3}
Statement yang terdiri dari beberapa baris seperti ini, biasanya diawali dengan tanda kurung
kurawal ” { ” dan diakhiri dengan tanda ” } “. Bagian ini juga sering disebut sebagai blok kode
program.
2. Deklarasi Variable
Variable adalah nama dalam kode yang mengacu ke alamat memori dimana isinya dapat
berubah saat program berjalan. Anda harus mendeklarasikan variable, karena tanpa deklarasi
variable tidak akan dapat diproses oleh program. Semua fungsi dan variable yang akan digunakan
dalam program harus dideklarasikan pada bagian atas sebuah program. Adapun bentuk umumnya
adalah sebagai berikut:
Tipe data daftar variable Tipe data disini adalah tipe data yang sah yang diakui oleh C++
Builder, kemudian tipe data ini diikuti oleh satu atau beberapa variable yang menandakan bahwa
variable tersebut mempunyai tipe data yang sama. Di bawah ini contoh mendeklarasikan variable:
int Panjang, Lebar, Luas; char A,B; char Nama[20];
Harus diingat tempat pendeklarasian variable, jika variable diletakan diatas/diawal program,
itu berarti variable tersebut bersifat global sedangkan jika diletakan didalam blok fungsi, maka
variabel itu adalah variable local, yang hanya berlaku untuk blok fungsi tersebut saja. Variabel-
variabel yang Anda deklarasikan di atas dapat saja mempunyai harga awal. Caranya adalah dengan
menempatkan tanda sama dengan yang diikuti dengan harga awal dari pada variable tersebut
dibelakang nama variable. Jadi bentuknya adalah sebagai berikut: Tipe data nama variable=
Konstanta Dibawah ini contoh bagaimana memberi harga awal sebuah variable
char ch=’a’; int panjang=10; float pajak=0.1;
Untuk mendeklarasikan variable ada dua tahap, yaitu :
Tahap penamaan dan tahap pemberian type. Penamaan variable dianjurkan yang mudah diingat,
misalnya : Bulan, Jumlah, Total dan sebagainya, bukan X,Z,Y dan seterusnya. Aturan penulisan
Variable : - Panjang nama variable sebaiknya tidak lebih dari 30 karakter - Harus diawali sebuah
huruf atau garis bawah(_) - Karakter selanjutnya dapat berupa huruf, garis bawah(_) atau angka
dari angka 0 sampai angka 9. - Tidak boleh mengandung karakter khusus seperti &, %, * dan
sebagainya - Tidak boleh menggunakan Reserved Word milik C++ Builder. Untuk pemberian type
variable sifatnya mutlak harus dilakukan karena bertujuan untuk mendefinisikan himpunan nilai-
nilainya.
13
3. Deklarasi Konstanta
Konstanta tidak seperti variable, nilainya akan tetap. Konstanta diawali dengan kata const dan
diakhiri dengan titik koma (;). Aturan umum deklarasi konstanta adalah : Contoh: const Nama
Konstanta = Nilai Konstanta;
Contoh pemakaian : const Total = 0; const rasio = 0.913; Sedangkan untuk aturan penamaan
konstanta sama dengan penamaan variable.
4. Penugasan
Dalam pemrograman komputer , pernyataan penugasan mengatur dan/atau mengatur ulang
nilai yang disimpan di lokasi penyimpanan yang dilambangkan dengan nama variabel ; dengan
kata lain, itu menyalin nilai ke dalam variabel. Dalam sebagian besar bahasa
pemrograman imperatif , pernyataan penugasan (atau ekspresi) adalah konstruksi dasar.
Saat ini, notasi yang paling umum digunakan untuk operasi ini
adalah (aslinya Superplan 1949–51, dipopulerkan oleh Fortran 1957 dan C ). Notasi kedua yang
paling umum digunakan adalah [1] (awalnya ALGOL 1958, dipopulerkan
oleh Pascal ). [2] Banyak notasi lain yang juga digunakan. Dalam beberapa bahasa, simbol yang
digunakan dianggap sebagai operator (artinya pernyataan penugasan secara keseluruhan
mengembalikan nilai). Bahasa lain mendefinisikan penugasan sebagai pernyataan (artinya tidak
dapat digunakan dalam ekspresi).x = expr x := expr
Penugasan biasanya memungkinkan variabel untuk menyimpan nilai yang berbeda pada
waktu yang berbeda selama rentang hidup dan ruang lingkupnya . Namun, beberapa bahasa
(terutama bahasa yang sangat fungsional ) tidak mengizinkan penugasan ulang "destruktif"
semacam itu, karena ini mungkin menyiratkan perubahan keadaan non-lokal. Tujuannya adalah
untuk menegakkan transparansi referensial , yaitu fungsi yang tidak bergantung pada status
beberapa variabel, tetapi menghasilkan hasil yang sama untuk sekumpulan input parametrik
tertentu pada titik waktu tertentu. Program modern dalam bahasa lain juga sering menggunakan
strategi serupa, meskipun kurang ketat, dan hanya di bagian tertentu, untuk mengurangi
kompleksitas, biasanya dalam hubungannya dengan metodologi pelengkap seperti
penataan data ,pemrograman terstruktur dan orientasi objek .
Penugasan apa pun yang mengubah nilai yang ada (misalnya x := x + 1 ) tidak diizinkan dalam
bahasa fungsional murni . [4] Dalam pemrograman fungsional , penugasan tidak disarankan demi
14
penugasan tunggal, juga disebut inisialisasi . Penugasan tunggal adalah contoh pengikatan
nama dan berbeda dari penugasan seperti yang dijelaskan dalam artikel ini yang hanya dapat
dilakukan sekali, biasanya saat variabel dibuat; tidak ada penugasan ulang berikutnya yang
diizinkan.
Evaluasi ekspresi tidak memiliki efek samping jika tidak mengubah keadaan mesin yang
dapat diamati, [5] dan menghasilkan nilai yang sama untuk input yang sama. [4] Penugasan
imperatif dapat menyebabkan efek samping sambil menghancurkan dan membuat nilai lama tidak
tersedia saat menggantinya dengan yang baru, [6] dan disebut sebagai penugasan destruktif karena
alasan itu dalam LISP dan pemrograman fungsional , mirip dengan pemutakhiran destruktif .
Penugasan tunggal adalah satu-satunya bentuk penugasan yang tersedia dalam bahasa fungsional
murni, seperti Haskell , yang tidak memiliki variabel dalam pengertian bahasa pemrograman
imperatif [4] melainkan menamai nilai konstanta yang mungkin bersifat majemuk dengan
elemennya yang didefinisikan secara progresif sesuai permintaan . Bahasa fungsional murni dapat
memberikan kesempatan untuk perhitungan dilakukan secara paralel , menghindari kemacetan
von Neumann dari eksekusi berurutan satu langkah pada satu waktu, karena nilai tidak tergantung
satu sama lain. [7]
Bahasa fungsional yang tidak murni menyediakan tugas tunggal dan juga tugas yang
sebenarnya (meskipun tugas yang benar biasanya digunakan dengan frekuensi yang lebih sedikit
daripada bahasa pemrograman imperatif). Misalnya, dalam Skema, penugasan tunggal
(dengan let ) dan penugasan sebenarnya (dengan set! ) dapat digunakan pada semua variabel, dan
primitif khusus disediakan untuk pembaruan destruktif di dalam daftar, vektor, string, dll. Di
OCaml, hanya penugasan tunggal yang diperbolehkan untuk variabel, melalui sintaks; namun
pembaruan destruktif dapat digunakan pada elemen array dan string dengan operator terpisah, serta
pada bidang catatan dan objek yang secara eksplisit dinyatakan dapat diubah (artinya dapat diubah
setelah deklarasi awal) oleh pemrogram. let name = value <-
15
ML . Kode Prolog non- backtracking dapat dianggap eksplisitpenugasan tunggal, eksplisit dalam
arti bahwa variabelnya (bernama) dapat dalam keadaan tidak ditetapkan secara eksplisit, atau
disetel tepat sekali. Di Haskell, sebaliknya, tidak boleh ada variabel yang tidak ditetapkan, dan
setiap variabel dapat dianggap secara implisit ditetapkan, ketika dibuat, ke nilainya (atau lebih
tepatnya ke objek komputasi yang akan menghasilkan nilainya sesuai permintaan ) .
Nilai tugas
ke x . Dalam pernyataan seperti , nilai kembalian dari suatu fungsi digunakan untuk mengontrol
loop sambil menugaskan nilai yang sama ke variabel.while ((ch = getchar()) != EOF) {…}
Dalam bahasa pemrograman lain, Skema misalnya, nilai pengembalian tugas tidak ditentukan dan
idiom semacam itu tidak valid.
Di Haskell , [8] tidak ada penugasan variabel; tetapi operasi yang mirip dengan penugasan
(seperti penugasan ke bidang array atau bidang struktur data yang dapat berubah) biasanya
dievaluasi ke tipe unit , yang direpresentasikan sebagai () . Jenis ini hanya memiliki satu
kemungkinan nilai, oleh karena itu tidak mengandung informasi. Ini biasanya jenis ekspresi yang
dievaluasi murni untuk efek sampingnya.
Varian bentuk penugasan
Pola penggunaan tertentu sangat umum, dan karena itu seringkali memiliki sintaksis
khusus untuk mendukungnya. Ini terutama gula sintaksis untuk mengurangi redundansi dalam
kode sumber, tetapi juga membantu pembaca kode dalam memahami maksud programmer, dan
memberikan petunjuk kepada kompiler untuk kemungkinan pengoptimalan.
Tugas yang ditambah
Artikel utama: Tugas augmented
16
Kasus di mana nilai yang ditetapkan bergantung pada yang sebelumnya sangat umum
sehingga banyak bahasa imperatif, terutama C dan sebagian besar keturunannya, menyediakan
operator khusus yang disebut penugasan ditambah , seperti *= , sehingga a = 2*a dapat ditulis
sebagai a *= 2 . [3] Di luar gula sintaksis, ini membantu tugas penyusun dengan memperjelas
Tugas berantai
Pernyataan seperti ini w = x = y = z disebut penugasan berantai di mana
nilai z ditugaskan ke beberapa variabel w, x, dan y . Penugasan berantai sering digunakan untuk
Tidak semua bahasa pemrograman mendukung tugas berantai. Tugas berantai setara
dengan urutan tugas, tetapi strategi evaluasi berbeda antar bahasa. Untuk penugasan berantai
sederhana, seperti menginisialisasi banyak variabel, strategi evaluasi tidak menjadi masalah, tetapi
jika target (nilai-l) dalam penugasan terhubung dengan cara tertentu, strategi evaluasi
memengaruhi hasilnya.
Dalam beberapa bahasa pemrograman ( C misalnya), tugas berantai didukung karena tugas
adalah ekspresi, dan memiliki nilai. Dalam hal ini penugasan berantai dapat diimplementasikan
dengan memiliki penugasan asosiatif kanan , dan penugasan terjadi dari kanan ke kiri. Misalnya i
= arr[i] = f() setara dengan arr[i] = f(); i = arr[i] . Di C++ mereka juga tersedia untuk nilai tipe
kelas dengan mendeklarasikan tipe pengembalian yang sesuai untuk operator penugasan.
Dalam Python , pernyataan penugasan bukanlah ekspresi dan karenanya tidak memiliki
nilai. Alih-alih, tugas berantai adalah rangkaian pernyataan dengan banyak target untuk satu
ekspresi. Penugasan dijalankan dari kiri ke kanan sehingga i = arr[i] = f() mengevaluasi
ekspresi f() , lalu menetapkan hasilnya ke target paling kiri, i , lalu menetapkan hasil yang sama
ke target berikutnya, arr[i] menggunakan nilai baru dari i . [9] Ini pada dasarnya setara
17
dengan tmp = f(); i = tmp; arr[i] = tmp meskipun tidak ada variabel aktual yang dihasilkan untuk
nilai sementara.
Tugas paralel
Beberapa bahasa pemrograman, seperti APL , Common
Lisp , [10] Go , [11] JavaScript (sejak 1.7), PHP , Maple , Lua , occam
2 , [12] Perl , [13] Python , [14] REBOL , Ruby , [15] dan PowerShell memungkinkan beberapa
variabel ditugaskan secara paralel, dengan sintaks seperti:
a, b := 0, 1
yang secara bersamaan memberikan 0 ke a dan 1 ke b . Ini paling sering dikenal sebagai tugas
paralel ; itu diperkenalkan di CPL pada tahun 1963, dengan nama simultaneous
assignment , [16] dan terkadang disebut multiple assignment , meskipun ini membingungkan
bila digunakan dengan "tugas tunggal", karena ini tidak berlawanan. Jika sisi kanan penugasan
adalah variabel tunggal (misalnya larik atau struktur), fitur tersebut
disebut unpacking [17] atau penugasan destrukturisasi : [18]
a, b := b, a
menukar nilai dari a dan b . Dalam bahasa tanpa tugas paralel, ini harus ditulis untuk
var t := a
a :=b
b := t
18
Beberapa bahasa, seperti Go dan Python, menggabungkan tugas paralel, tupel,
dan pembongkaran tupel otomatis untuk memungkinkan beberapa nilai kembalian dari satu fungsi,
seperti dalam contoh Python ini,
def f ():
kembalikan 1 , 2
a , b = f ()
sementara bahasa lain, seperti C# dan Rust , yang ditampilkan di sini, memerlukan konstruksi dan
dekonstruksi tupel eksplisit dengan tanda kurung:
Ini memberikan alternatif untuk penggunaan parameter keluaran untuk mengembalikan beberapa
nilai dari suatu fungsi. Ini berasal dari CLU (1974), dan CLU membantu mempopulerkan
penugasan paralel secara umum.
C# juga memungkinkan penugasan dekonstruksi umum dengan implementasi yang ditentukan
oleh ekspresi di sisi kanan, saat kompiler mencari instance atau
metode ekstensi Deconstruct yang sesuai pada ekspresi, yang harus memiliki parameter keluaran
untuk variabel yang ditugaskan. [19] Misalnya, salah satu metode yang akan memberikan kelas itu
muncul dalam perilaku yang sama dengan nilai pengembalian di f() atas adalah
19
Di C dan C++, operator koma mirip dengan penugasan paralel yang memungkinkan
beberapa penugasan terjadi dalam satu pernyataan, menulis a = 1, b = 2 alih-alih a, b = 1, 2 . Ini
terutama digunakan untuk loop , dan digantikan oleh tugas paralel dalam bahasa lain seperti
Go. [20] Namun, kode C++ di atas tidak menjamin keserentakan yang sempurna, karena sisi kanan
kode berikut a = b, b = a+1 dievaluasi setelah sisi kiri. Dalam bahasa seperti Python, a, b = b,
a+1 akan menetapkan dua variabel secara bersamaan, menggunakan nilai awal a untuk
menghitung b baru.
Penugasan versus kesetaraan
Penggunaan tanda sama = dengan sebagai operator penugasan telah sering dikritik, karena
konflik dengan sama sebagai pembanding persamaan. Hal ini mengakibatkan kebingungan bagi
pemula dalam menulis kode, dan kebingungan bahkan oleh programmer berpengalaman dalam
membaca kode. Penggunaan sama untuk penetapan tanggal kembali ke bahasa Superplan Heinz
Rutishauser , yang dirancang dari tahun 1949 hingga 1951, dan dipopulerkan secara khusus oleh
Fortran:
Contoh terkenal untuk ide buruk adalah pilihan tanda sama dengan untuk menunjukkan
penugasan. Itu kembali ke Fortran pada tahun 1957 [a] dan telah disalin secara membabi buta oleh
pasukan perancang bahasa. Mengapa itu ide yang buruk? Karena itu menggulingkan tradisi lama
seabad untuk membiarkan "=" menunjukkan perbandingan kesetaraan, sebuah predikat yang benar
atau salah. Tapi Fortran mengartikannya sebagai penugasan, penegakan kesetaraan. Dalam hal ini,
operan berada pada pijakan yang tidak sama: Operan kiri (variabel) harus dibuat sama dengan
operan kanan (ekspresi). x = y tidak berarti sama dengan y = x. [21]
— Niklaus Wirth , Ide Bagus, Melalui Kaca Tampak
20
Dalam beberapa bahasa, seperti BASIC , satu tanda sama dengan ( "=" ) digunakan untuk
operator penugasan dan operator relasional persamaan, dengan menentukan konteks yang
dimaksud. Bahasa lain menggunakan simbol yang berbeda untuk kedua operator
tersebut. Misalnya:
Dalam ALGOL dan Pascal , operator penugasan adalah titik dua dan tanda sama dengan
( ":=" ) sedangkan operator kesetaraan adalah satu sama dengan ( "=" ).
Di C , operator penugasan adalah satu tanda sama dengan ( "=" ) sedangkan operator
Di R , operator penugasan pada dasarnya <- , seperti di x <- value , tetapi satu tanda sama
Kesamaan dalam dua simbol dapat menyebabkan kesalahan jika pemrogram lupa bentuk ("
" = , " == ", " := ") mana yang sesuai, atau salah ketik " = " ketika " == " dimaksudkan. Ini
adalah masalah pemrograman umum dengan bahasa seperti C (termasuk satu upaya terkenal untuk
mem-backdoor kernel Linux), [22] di mana operator penugasan juga mengembalikan nilai yang
ditetapkan (dengan cara yang sama seperti fungsi mengembalikan nilai), dan dapat bersarang
secara valid di dalam ekspresi. Jika tujuannya adalah untuk membandingkan dua nilai dalam
sebuah if pernyataan, misalnya, sebuah penugasan kemungkinan besar akan mengembalikan nilai
yang dapat ditafsirkan sebagai Boolean true, dalam hal ini klausa then akan dieksekusi, membuat
program berperilaku tidak terduga.gcc ) dapat mendeteksi situasi seperti itu, dan memperingatkan
pemrogram tentang potensi kesalahan.
Notasi
Dua representasi paling umum untuk tugas penyalinan adalah tanda sama dengan ( = ) dan
titik dua sama dengan ( := ). Kedua bentuk semantik dapat menunjukkan pernyataan penugasan
atau operator penugasan (yang juga memiliki nilai), tergantung pada bahasa dan/atau penggunaan.
21
variable
Fortran , PL/I , C (dan keturunan seperti C++ , Java , dll.), Bourne
=
shell , Python , Go (penugasan ke variabel yang telah dideklarasikan
expressi
sebelumnya), R , PowerShell , Nim , dll.
on
ALGOL (dan turunannya), Simula , CPL , BCPL , Pascal [23] (dan turunan
variable seperti Modula ), Mary , PL/M , Ada , Smalltalk , Eiffel , [24] [25] Oberon , D
:= ylan , [26] Seed7 , Python (ekspresi penugasan), [27] Go (singkatan untuk
Kemungkinan lain termasuk panah kiri atau kata kunci, meskipun ada varian lain yang
lebih jarang:
variable =: expression J
22
let variable := expression XQuery
reference-variable :- reference-
Simulasi
expression
Beberapa platform menempatkan ekspresi di sebelah kiri dan variabel di sebelah kanan:
23
PUT expression IN variable ABC
Beberapa bahasa berorientasi ekspresi, seperti Lisp [31] [32] dan Tcl, secara seragam
menggunakan sintaks prefiks (atau postfiks) untuk semua pernyataan, termasuk penugasan.
24
BAB III
PENUTUP
A. Kesimpulan
Bahasa C++ saat ini sedang dikembangkan untuk membuat perangkat lunak. Sistem
operasi seperti Windows, Linux dan juga jaringan komputer (aplikasi klien/server
adalah bahasa yang dapat digunakan untuk membuat berbagai aplikasi. Misalnya aplikasi
untuk mengolah gambar, program untuk perangkat, game untuk sistem operasi baru.
Bahasa ini dikembangkan dari bahasa pemrograman C. Tidak heran kedua bahasa ini
memiliki sintaks dan struktur kode yang sama. Perbedaannya adalah C++ adalah pemrograman
berorientasi objek (OOP) sedangkan C adalah bahasa pemrograman prosedural. Dengan kata
lain, bahasa pemrograman C++ memiliki data dan fungsi yang digabungkan ke dalam kelas
dan objek yang bekerja sama untuk menyelesaikan suatu masalah. Jadi jika Anda ingin
mengubah suatu fungsi, Anda tidak perlu mengubah keseluruhan program. Dengan cara ini
mengubah kode lebih fleksibel. Semoga bisa mererapkan prosedur penulisan pemograman
B. Saran
Setelah membaca makalah ini, maka diharapkan dapat memahami dan dapat mempraktikkan
bagaimana pemograman C++.
25
DAFTAR PUSTAKA
55201_0701107802.pdf
26