Logging activities with Log4J in your Java project


Hi everyone! Today I brought you something different. This is based on Java.. As a introduction, I can explain it in this way. If you ever run a web server by yourself? I think you have done it..You can see after the server starts, it prints something on the console in your IDE or terminal. It LOGS your activities! All the actions you participate, are logged for tracking. So, how to achieve this using a code? Here I explain the way in Java. Not pure java, but Spring Boot. Since it's the most used Java EE framework for web applications done in java.

Let's start the work!

Step 1 - Create a Spring Boot project with intelliJ IDEA

What you have to do is click on File > new > project. Then follow the steps shown below.





When you click on finish, the project will be built and ready for use. You can give any name, when you name the project. It's should not be as same as my one. You can run the project and check whether it is started or not on port 8080.

Step 2 - Include the Log4J class into the project

Look at the files in the project folder There is a file called pom.xml. It's the file responsible for keeping the necessary dependencies for the project. So we have to add a Maven dependency for Log4J class.
Add this code within the tag <dependencies>.

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

IDE will track a change in pom file. Then it asks for import changes. Do it! Now you are able to use Log4J class.

Step 3 - Create a controller

In your project, navigate to this package. src > main > java > your package
Right click on it and create a new Java class. Here I will name it as LoggingController.

We need to register an end point(request mapping) to perform a request with the server. So, I try to return a simple "hello" with the end point "/logs". The path for end point on the browser will be : http://localhost:8080/logs

Then we have to import our Logger to the controller file. Create a instance from Logger class and assign it in this way. You need to do this in every file you want to use Logger!
Logger logger = Logger.getLogger(this.getClass());

Full code for controller: LoggingController.java

package com.log4j.logger.controllers;

import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@CrossOrigin
@RequestMapping
public class LoggingController {

Logger logger = Logger.getLogger(this.getClass());

@RequestMapping(value = "/logs", method = RequestMethod.GET)
public String performGet() {
logger.info("Request Sent");
logger.error("Error Occured");
return "hello";
}

}

Step 4 - Define the Log4j properties

This is the most important step! You have to introduce your configuration to the project. Where to do it? Find this package. src > main > resources
Create a new file called log4j.properties in it. Name must be log4j.


log4j.rootLogger=INFO, CONSOLE, FILE

#Properties for Console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern=%d [%p] %c - %m%n

#Properties for Log File
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=logs/log.txt
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d [%-5p] %c - %m%n
log4j.appender.FILE.MaxFileSize=1MB

You can see a lot of configurations here. Could you understand? Let me explain!

log4j.rootLogger=INFO, CONSOLE, FILE
Our project need a root level of logging to be started! Those levels are INFO, DEBUG, ERROR and so on..INFO is the way it logs to the user. So I use this level as root level. Then you see CONSOLE and FILE words. What are they? They are for console and log file. I configure separate properties for both of them. FILE means the file I'm going to write the logs in it. Then we use these two words for properties.

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
Appender of logs for the console

log4j.appender.CONSOLE.Target=System.out
Where to print the logs. As a System Out, it will print on the console itself.

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
The pattern class responsible for formatting the patterns

log4j.appender.CONSOLE.layout.conversionPattern=%d [%p] %c - %m%n
The pattern you want to log your activities on the console. There are a lot of ways to format your pattern. I prefer to use this way.
d for date, p for log category, c for source, m for log message and n for new line.
If you want more details, this article will be a great help

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
Appender for the logging file

log4j.appender.FILE.File=logs/log.txt
Path for the text file that writes all the logs. This will be created in project folder within a new folder called logs.

log4j.appender.FILE.ImmediateFlush=true
Set the immediate flush to true (default). If set to true, it is delivered after each method call. By default, it is set to true. Below we will cover a classic example.

log4j.appender.FILE.Threshold=debug
Put a limit for Debug mode.

log4j.appender.FILE.Append=true
Set TRUE for appending the logs into the TEXT file. This will append all the logs. It it's set to FALSE, logs will be overwritten after each method call.

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
The pattern class responsible for formatting the patterns

log4j.appender.FILE.layout.conversionPattern=%d [%-5p] %c - %m%n
The pattern you want to log your activities in the file.

log4j.appender.FILE.MaxFileSize=1MB
Max file size for log text file. If it reached the max size, then it automatically creates a new file with the name as log1.txt. This will continue..

I think now you have the understanding of these log4j properties. I have explained all the things!

Step 5 - Perform a Request

Simply go to the URL from your browser - http://localhost:8080/logs
Now the log messages you defined in the logic for this end point, will be on the console and written into the file.

Console:



Log File:



That'all for today guys! Is it difficult? Not at all.. This is the easiest way to log your activities with the logic for your files. You can implement it as you want! This is just for an introduction. Try this with your Java project!

Good Bye!






No comments :

Cara mengatur posisi dengan menggunakan CSS

Position
Properti position di gunakan untuk menentukan positioning yang di gunakan pada sebuah elemen. Setidaknya ada 5 nilai yang dapat di gunakan menggunakan properti ini yaitu, static, relative, fixed, absolute, dan sticky. Letak pada posisi sendiri di atur dengan menggunakan properti top, bottom, left, dan right yang tidak akan bekerja kecuali properti position di definisikan terlebih dahulu.

posisition: static;
Elemen pada HTML secara default menggunakan posisi static. Elemen dengan position static sama seperti posisi normal biasa, dan tidak berpengaruh kepada properti top, bottom, left, dan right. Perhatikan contoh berikut:

<style>
div.static {
  position: static;
  border: 3px solid #543535;
}
</style>
<div class="static">
  Elemen ini menggunakan position: static;
</div>

Jika kode di atas kita jalankan menggunakan browser, maka akan terlihat seperti ini:

position static css

Jika kita beri properti top, bottom, left, dan right pada kode css, contohnya seperti ini:

div.static {
  position: static;
  top: 10px;
left: 30px; 
  border: 3px solid #543535;
}
Maka hasilnya akan sama saja karena properti tersebut tidak berpengaruh pada posisi static.

posisition: relative;
Elemen dengan posisi relative dapat di posisikan dengan properti top, bottom, left, dan right yang disesuaikan dengan posisi normal. Perhatikan contoh berikut:

<style>
div.static {
  position: relative;
  top: 10px;
  left: 30px;
  border: 3px solid #543535;
}
</style>
<div class="static">
  Elemen ini menggunakan position: static;
</div>
Jika kode diatas di jalankan pada browser maka hasilnya akan seperti ini:

posisiton relative css

Hasilnya adalah elemen berada di antara jarak kiri sejauh 30px dari posisi normal dan atas sejauh 10px dari posisi normal.

position: fixed;
Berbeda dengan relative, posisi fixed mengatur properti top, bottom, left, dan right yang di sesuaikan dengan area browser. Perhatikan contoh berikut:

<style>
div.static {
  position: fixed;
  bottom: 0;
  right: 0;
  width: 300px;
  border: 3px solid #543535;
}
</style>
<div class="static">
  Elemen ini menggunakan position: fixed;
</div>
Jika kode diatas di jalankan pada browser maka akan terlihat seperti berikut:

position fixed css

Kita lihat hasilnya pada gambar di atas, bahwa elemen berada di pojok kanan bawah karena kita mengatur properti bottom dan right sebesar 0. Elemen akan tetap berada pada posisinya walaupun browser di scroll.

position: absolute;
Elemen dengan posisi absolute akan menyesuaikan dengan posisi relative dari tag root terdekatnya. Namun jika elemen tidak mempunya tag root maka akan menyesuaikan dengan tag body. Perhatikan contoh berikut ini:

<style>
div.relative {
    position: relative;
    width: 400px;
    height: 200px;
    border: 3px solid #543535;
}
div.absolute {
    position: absolute;
    top: 80px;
    right: 0;
    width: 200px;
    height: 100px;
    border: 3px solid #543535;
}
</style>
<div class="relative">Elemen ini menggunakan position: relative;
  <div class="absolute">Elemen ini menggunakan position: absolute;</div>
</div>
Jika kode diatas di jalankan pada browser maka hasilnya akan seperti ini:

position absolute css

Pada contoh di atas kita bisa melihat bahwa posisi elemen dari class absolute di atur dengan properti top sejauh 80px dari elemen class relative dan properti right sejauh 0 dari elemen class relative.

position: sticky;
Elemen dengan posisi sticky adalah posisi elemen yang di sesuaikan dengan scroll pada browser. Untuk browser seperti Internet Explorer dan Edge tidak mensuport sticky, sedangkan untuk browser Safari kita harus menambahkan prefix -webkit-sticky. Untuk menggunakan posisi sticky ini setidaknya kita harus mengatur salah satu dari properti top, bottom, left dan right. Perhatikan contoh berikut:

<style>
div.sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  padding: 5px;
  background-color: #cae8ca;
  border: 2px solid #543535;
}
</style>
<div class="sticky">Coba scroll saya!</div>
<div style="padding-bottom:2000px">
  <p>Perkecil ukuran jendela browser dan coba scroll. Lorem ipsum dolor sit amet, illum definitiones no quo, maluisset concludaturque et eum, altera fabulas ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. Eum no molestiae voluptatibus.</p>
  <p>Perkecil ukuran jendela browser dan coba scroll.. Lorem ipsum dolor sit amet, illum definitiones no quo, maluisset concludaturque et eum, altera fabulas ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. Eum no molestiae voluptatibus.</p>
</div>
Jika kode HTML di atas di jalankan pada browser maka hasilnya akan seperti ini:

position sticky css

Tentu untuk praktek scrolling dengan image di atas tidak bisa memvisualisasikan penggunaan scroll pada browser. Untuk mempraktekannya copy kode di atas dan pastekan pada text editor dan simpan dengan nama misalnya belajar.html lalu buka file tersebut dengan browser dan perkecil ukuran browser agar kita bisa men-scroll browser keatas dan kebawah.

Bisa di lihat bahwa elemen dengan posisi sticky walaupun kita scroll keatas atau ke bawah elemen tetap menyesuaikan. Posisi ini sering kita pakai untuk membuat navigasi pada website.

z-index
Sebagai tambahan z-index adalah sebuah properti pada css yang di gunakan untuk menentukan urutan elemen yang saling tumpang tindih atau istilahnya adalah overlapping elemen. Untuk lebih jelasnya perhatikan contoh berikut ini:

<style>
img {
    position: absolute;
    left: 0px;
    top: 0px;
    z-index: -1;
}
</style>
<h1>Contoh z-index</h1>
<img src="http://io13-high-dpi.appspot.com/images/CSS3_Logo.svg" height="140">
<p>Perhatikan gambar akan berada di bawah tulisan</p>
Jika kode di atas di jalankan pada browser maka hasilnya akan menjadi seperti ini:

z-index

Dengan properti z-index dengan nilai -1 pada elemen img maka kita dapat membuat image tersebut berada di belakang elemen lainnya.

Float
Float biasa di gunakan untuk mengatur posisi text di sekitar image. Perhatikan contoh berikut:

<style>
img {
    float: right;
}
</style>
<p>Properti float membuat image berada di sebelah kanan dan text yang membungkus image</p>
<p><img src="http://io13-high-dpi.appspot.com/images/CSS3_Logo.svg" height="170">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum, nisi lorem egestas odio, vitae scelerisque enim ligula venenatis dolor. Maecenas nisl est, ultrices nec congue eget, auctor vitae massa. Fusce luctus vestibulum augue ut aliquet. Mauris ante ligula, facilisis sed ornare eu, lobortis in odio. Praesent convallis urna a lacus interdum ut hendrerit risus congue. Nunc sagittis dictum nisi, sed ullamcorper ipsum dignissim ac. In at libero sed nunc venenatis imperdiet sed ornare turpis. Donec vitae dui eget tellus gravida venenatis. Integer fringilla congue eros non fermentum. Sed dapibus pulvinar nibh tempor porta. Cras ac leo purus. Mauris quis diam velit.</p>
Jika kode di atas di buka pada browser maka hasilnya akan menjadi seperti ini:

float

Memisahkan diri dengan Clear
Elemen yang berada di sekitar properti float akan menyesuaikan dengan elemen dengan properti tersebut. Untuk mengatasinya gunakan properti clear pada elemen yang ingin kita pisahkan dari properti float. Perhatikan contoh berikut:

<style>
.div1 {
    float: left;
    width: 100px;
    height: 50px;
    margin: 10px;
    border: 3px solid #543535;
}
.div2 {
    border: 1px solid red;
}

.div3 {
    float: left;
    width: 100px;
    height: 50px;
    margin: 10px;
    border: 3px solid #543535;
}
.div4 {
    border: 1px solid red;
    clear: left;
}
</style>
<h2>Dengan clear</h2>
<div class="div1">div1</div>
<div class="div2">div2 - Perhatikan bahwa div 2 berada setelah div 1 yang mana div 1 mempunyai properti float left. Maka yang terjadi adalah text pada div 2 menyesuaikan float pada div 1.</div>
<h2>Menggunakan clear</h2>
<div class="div3">div3</div>
<div class="div4">div4 - memisahkan diri dengan properti float pada div 3 menggunakan properti clear.</div>
Jika kode di atas di jalankan maka hasilnya akan seperti berikut ini:

clear

Clearfix Overflow
Jika elemen image lebih tinggi dari pada elemen text, maka elemen gambar tersebut akan terpisah dari elemen text yang membungkusnya. Untuk mengatasi hal ini kita menggunakan properti yang di namakan overflow. Overflow adalah sebuah properti pada CSS yang di gunakan untuk menscroll suatu elemen jika ukuran jendela browser lebih kecil dari elemen yang membungkusnya. Perhatikan contoh berikut:

<style>
div {
    border: 3px solid #4CAF50;
    padding: 5px;
}
.img1 {
    float: right;
}
.clearfix {
    overflow: auto;
}
.img2 {
    float: right;
}
</style>
<p>Pada contoh berikut, image lebih tinggi dari elemen text sehingga image di overflow di luar elemen text</p>
<div>
<img class="img1" src="http://io13-high-dpi.appspot.com/images/CSS3_Logo.svg" height="170"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum...
</div>
<p style="clear:right">Tambahkan class clearfix dengan overflow: auto; pada elemen image untuk mengatasi hal ini</p>
<div class="clearfix">
<img class="img2" src="http://io13-high-dpi.appspot.com/images/CSS3_Logo.svg" height="170"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum...
</div>
Jika kode di atas di jalankan pada browser maka hasilnya akan menjadi seperti berikut:

float overflow

Dari contoh di atas bisa di lihat bahwa dengan overflow: auto; kita bisa membungkus elemen gambar yang lebih panjang dengan text. Dengan properti overflow maslah yang kita alami sudah teratasi namun banyak developer yang menggunakan pseudo-class after sebagai alternative lain, contohnya bisa di lihat dibawah ini. Mengenai apa itu pseudo-class akan di bahas pada kesempatan berikutnya.

.clearfix::after {
    content: "";
    clear: both;
    display: table;
}
Inline Block
Sebagai alternative dari float kita dapat menggunakan display: inline-block untuk membuat grid, perbedaannya jika kita menggunakan float dalam menggunakan grid kita harus menggunakan properti clear. Perhatikan kedua contoh kode berikut:
Menggunakan Float
<style>
.floating-box {
    float: left;
    width: 150px;
    height: 75px;
    margin: 10px;
    border: 3px solid #73AD21; 
}
.after-box {
    clear: left;
    border: 3px solid red;     
}
</style>
<h2>Menggunakan float</h2>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="after-box">Box setelah floating box</div>
Menggunakan inline-block
<style>
.floating-box {
    display: inline-block;
    width: 150px;
    height: 75px;
    margin: 10px;
    border: 3px solid #73AD21; 
}
.after-box {
    border: 3px solid red;
}
</style>
<h2>Menggunakan inline-block</h2>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="floating-box">Floating box</div>
<div class="after-box">Box setelah floating box</div>
Kedua tipe kode di atas jika kita jalankan pada browser maka hasilnya akan sama:

Ada banyak trik yang bisa digunakan untuk membuat suatu element berada di tengah, namun kali ini kita hanya akan coba setidak nya 2 cara membuat sebuah element berada tepat berada di tengah.

Kita mulai membuat div dengan class container, dan didalam nya ada sebuah class lagi dengan nama box.

Struktur HTML nya seperti berikut ini.

<div class="container">
<div class="box">
<strong>Goooogle</strong>
<form action="#">
<input type="text" name="" id=""><br>
<input type="submit" value="Search">
</form>
</div>
</div>
Center div.container
Pertama kita akan membuat class container agar berada di tengah dengan menambahkan CSS seperti berikut

.container{
width:400px;
height:200px;
padding:20px;
background:yellow;
position: fixed;
top: 50%;
left: 50%;
margin-top: -120px;
margin-left: -220px;
}
Class container sekarang sudah berada di tengah layar, perlu diperhatikan disitu yaitu nilai dari top dan left yaitu 50%. Namun dengan settingan seperti itu yang berada diposisi tengah adalah sudut kiri atas dari kotak, untuk menyesuaikan nya maka kita perlu ubah margin-top dan margin-left, dimana keduanya didapat dengan perhitungan sebagai berikut.

Margin-top = height / 2 + padding

Margin-left = width / 2 + padding

Namun nilai nya harus minus (-) agar positinya bergeser ke atas dan ke kiri.


Center div.box
Untuk membuat class box berada di tengah juga maka kita akan mencoba dengan cara lain, yaitu dengan menambahkan display:table di class container, lalu display:table-cell di class box.
Code CSS nya kita tambahkan seperti ini.

.container{
display: table;
}
.box{
display: table-cell;
text-align: center;
vertical-align: middle;
background:orange;
border:50px solid rgba(0,0,0,.2);
}
Demo 2

Hasil
Untuk melengkapi demo ini agar lebih lengkap, kita tambahkan border.
Berikut ini code css selengkapnya

.container{
border:20px solid rgba(0,0,0,.5);
width: 400px;
height: 200px;
background: yellow;
position: fixed;
top: 50%;
left: 50%;
margin-top: -140px;
margin-left: -240px;
text-align: center;
padding:40px;
display: table;
}
.box{
background:orange;
display: table-cell;
text-align: center;
vertical-align: middle;
border:50px solid rgba(0,0,0,.2);
}


Sepertinya sudah cukup sampai di sini pembahasan mengenai properti dasar apa saja untuk mengatur posisi dari suatu elemen. Sebenarnya masih banyak trik atau cara lain untuk mengatur posisi elemen HTML menggunakan CSS, seperti menggunakan margin auto, padding, text-align, display block, dan line-height, yang mungkin akan saya bahas di lain kesempatan. Sebagai referensi teman-teman bisa membaca dokumentasi dari w3school.com. Jika ada yang ingin di tanyakan dan di diskusikan silahkan bertanya di kolom komentar ya. 

No comments :

how to hack WiFi with PC


Looking for how to hack WiFi password OR WiFi hacking software?



Well, a security researcher has revealed a new WiFi hacking technique that makes it easier for hackers to crack WiFi passwords of most modern routers.


Discovered by the lead developer of the popular password-cracking tool Hashcat, Jens 'Atom' Steube, the new WiFi hack works explicitly against WPA/WPA2 wireless network protocols with Pairwise Master Key Identifier (PMKID)-based roaming features enabled.


The attack to compromise the WPA/WPA2 enabled WiFi networks was accidentally discovered by Steube while he was analyzing the newly-launched WPA3 security standard.

This new WiFi hacking method could potentially allow attackers to recover the Pre-shared Key (PSK) login passwords, allowing them to hack into your Wi-Fi network and eavesdrop on the Internet communications.


How to Hack WiFi Password Using PMKID



how to hack wifi password software

According to the researcher, the previously known WiFi hacking methods require attackers to wait for someone to log into a network and capture a full 4-way authentication handshake of EAPOL, which is a network port authentication protocol.



Whereas, the new attack no longer requires another user to be on the target network to capture credentials. Instead, it is performed on the RSN IE (Robust Security Network Information Element) using a single EAPOL (Extensible Authentication Protocol over LAN) frame after requesting it from the access point.



Also Read: How to Hack WPA2 WiFi Protocol Using KRACK Attack


Robust Security Network is a protocol for establishing secure communications over an 802.11 wireless network and has PMKID, the key needed to establish a connection between a client and an access point, as one of its capabilities.


Step 1 — An attacker can use a tool, like hcxdumptool (v4.2.0 or higher), to request the PMKID from the targeted access point and dump the received frame to a file.


$ ./hcxdumptool -o test.pcapng -i wlp39s0f3u4u5 --enable_status

Step 2 — Using the hcxpcaptool tool, the output (in pcapng format) of the frame can then be converted into a hash format accepted by Hashcat.


$ ./hcxpcaptool -z test.16800 test.pcapng

Step 3 — Use Hashcat (v4.2.0 or higher) password cracking tool to obtain the WPA PSK (Pre-Shared Key) password, and Bingo!


$ ./hashcat -m 16800 test.16800 -a 3 -w 3 '?l?l?l?l?l?lt!'

That's the password of the target wireless network, cracking which may take time depending on its length and complexity.



Have something to say about this article? Comment below or share it with us on FacebookTwitter or our LinkedIn Group.

No comments :

Jadwal UNBK SMP / MTS 2019

Jadwal UNBK dan UNKP SMP SMA SMK Tahun 2019 (Jadwal UN SMP SMA SMK Tahun 2019). Pemerintah telah merilis jadwal Jadwal UNBK dan UNKP SMP SMA SMK Sederajat Tahun 2019 seiiring diterbitkannya POS UN Tahun 2019 berdasarkan Peraturan Badan Standar Nasional Pendidikan Nomor: 0047/P/BSNP/XI/2018. Apa beda UNBK dan UNKP. UNBK adalah  ujian  yang  menggunakan  komputer  sebagai  media  untuk menampilkan soal dan proses menjawabnya. UNKP  adalah ujian  nasional  yang menggunakan  naskah  soal  dan Lembar  Jawaban  Ujian  Nasional  (LJUN)  berbasis  kertas  dan menggunakan pensil.

Lalu kapan Jadwal UN SMP SMA SMK Tahun 2019 ? Berikut Jadwal UNBK SMP SMA SMK Sederajat Tahun 2019 dan Jadwal UNKP SMA SMK Sederajat Tahun 2019 sesuai POS UN SMP SMA SMK Sederajat Tahun 2019 atau POS UN SMP SMA SMK Tahun Pelajaran 2018/2019.

A. Jadwal UNBK SMP Tahun 2019
Jadwal UNBK SMP – MTS Tahun 2019 akan dimulai tanggal 22 April 2019. Berikut ini Jadwal lengkap UNBK Utama dan UNBK susulan jenjang SMP – MTS tahun 2019.

 Jadwal UNBK SMP Tahun 2019

B. Jadwal UNBK SMK Tahun 2019
Jadwal UNBK SMK Tahun 2019 akan dimulai hari Senin tanggal 25 Maret 2019, Berikut ini Jadwal lengkap UNBK utama dan UNBK Susulan jenjang SMK tahun 2019.

 Jadwal UNBK SMK Tahun 2019 atau Tahun Pelajaran 2018/2019

C. Jadwal UNBK SMA Tahun 2019
Jadwal UNBK SMA dilaksanakan mulai hari Senin tanggal 1 April 2019. Berikut Jadwal Lengkap UNBK SMA tahun 2019 termasuk jadwal Susuluan pelaksanaan UNBK SMA 2019.

 Jadwal UNBK SMA Tahun 2019 atau Tahun Pelajaran 2018/2019

D. Jadwal UNKP SMP Tahun 2019 (Jadwal UN SMP Tahun 2019)
Jadwal UNKP SMP Tahun 2019 Sesuai POS UN SMP SMA SMK Sederajat Tahun 2019 atau POS UN SMP SMA SMK Tahun Pelajaran 2018/2019, akan dimulai hari Senin tanggal 22 April 2018. Berikut Jadwal lengkap UNKP Utama dan UNKP Susulan Jenjang SMP.

 Jadwal UN – UNKP SMP - MTs Tahun 2019 atau Tahun Pelajaran 2018/2019
E. Jadwal UNKP SMA Tahun 2019 (Jadwal UN SMA Tahun 2019)
Jadwal UNKP SMK Tahun 2019 sesuai POS UN SMP SMA SMK Sederajat Tahun 2019 atau POS UN SMP SMA SMK Tahun Pelajaran 2018/2019, akan dimulai tanggal 1 April 2019. Berikut Jadwal lengkap UNKP utama dan UNKP Susulan Jenjang SMA SMK Tahun 2019.

 Jadwal UN – UNKP SMA Tahun 2019 atau Tahun Pelajaran 2018/2019

Demikian informasi tentang Jadwal UN SMP SMA SMK Tahun 2019 meliputi UNBK SMP SMA SMK Tahun 2019 dan UNKP SMP SMA SMK Tahun 2019. Semoga bermanfaat, terima kasih.

sumber : https://ainamulyana.blogspot.com/

No comments :

Jadwal UNBK SMK 2019

Jadwal UNBK dan UNKP SMP SMA SMK Tahun 2019 (Jadwal UN SMP SMA SMK Tahun 2019). Pemerintah telah merilis jadwal Jadwal UNBK dan UNKP SMP SMA SMK Sederajat Tahun 2019 seiiring diterbitkannya POS UN Tahun 2019 berdasarkan Peraturan Badan Standar Nasional Pendidikan Nomor: 0047/P/BSNP/XI/2018. Apa beda UNBK dan UNKP. UNBK adalah  ujian  yang  menggunakan  komputer  sebagai  media  untuk menampilkan soal dan proses menjawabnya. UNKP  adalah ujian  nasional  yang menggunakan  naskah  soal  dan Lembar  Jawaban  Ujian  Nasional  (LJUN)  berbasis  kertas  dan menggunakan pensil.

Lalu kapan Jadwal UN SMP SMA SMK Tahun 2019 ? Berikut Jadwal UNBK SMP SMA SMK Sederajat Tahun 2019 dan Jadwal UNKP SMA SMK Sederajat Tahun 2019 sesuai POS UN SMP SMA SMK Sederajat Tahun 2019 atau POS UN SMP SMA SMK Tahun Pelajaran 2018/2019.

A. Jadwal UNBK SMP Tahun 2019
Jadwal UNBK SMP – MTS Tahun 2019 akan dimulai tanggal 22 April 2019. Berikut ini Jadwal lengkap UNBK Utama dan UNBK susulan jenjang SMP – MTS tahun 2019.

 Jadwal UNBK SMP Tahun 2019

B. Jadwal UNBK SMK Tahun 2019
Jadwal UNBK SMK Tahun 2019 akan dimulai hari Senin tanggal 25 Maret 2019, Berikut ini Jadwal lengkap UNBK utama dan UNBK Susulan jenjang SMK tahun 2019.

 Jadwal UNBK SMK Tahun 2019 atau Tahun Pelajaran 2018/2019

C. Jadwal UNBK SMA Tahun 2019
Jadwal UNBK SMA dilaksanakan mulai hari Senin tanggal 1 April 2019. Berikut Jadwal Lengkap UNBK SMA tahun 2019 termasuk jadwal Susuluan pelaksanaan UNBK SMA 2019.

 Jadwal UNBK SMA Tahun 2019 atau Tahun Pelajaran 2018/2019

D. Jadwal UNKP SMP Tahun 2019 (Jadwal UN SMP Tahun 2019)
Jadwal UNKP SMP Tahun 2019 Sesuai POS UN SMP SMA SMK Sederajat Tahun 2019 atau POS UN SMP SMA SMK Tahun Pelajaran 2018/2019, akan dimulai hari Senin tanggal 22 April 2018. Berikut Jadwal lengkap UNKP Utama dan UNKP Susulan Jenjang SMP.

 Jadwal UN – UNKP SMP - MTs Tahun 2019 atau Tahun Pelajaran 2018/2019
E. Jadwal UNKP SMA Tahun 2019 (Jadwal UN SMA Tahun 2019)
Jadwal UNKP SMK Tahun 2019 sesuai POS UN SMP SMA SMK Sederajat Tahun 2019 atau POS UN SMP SMA SMK Tahun Pelajaran 2018/2019, akan dimulai tanggal 1 April 2019. Berikut Jadwal lengkap UNKP utama dan UNKP Susulan Jenjang SMA SMK Tahun 2019.

 Jadwal UN – UNKP SMA Tahun 2019 atau Tahun Pelajaran 2018/2019

Demikian informasi tentang Jadwal UN SMP SMA SMK Tahun 2019 meliputi UNBK SMP SMA SMK Tahun 2019 dan UNKP SMP SMA SMK Tahun 2019. Semoga bermanfaat, terima kasih.

sumber : https://ainamulyana.blogspot.com/

No comments :

Belajar Bahasa Pemrograman C++ untuk Pemula

Mengenal Bahasa Pemrograman C++

Belajar Bahasa Pemrograman C++ untuk Pemula - Jadi, singkat cerita pada awal tahun 1970-an seorang bernama Bjarne Stroustrup mulai mengembangkan bahasa pemrograman c++ yang merupakan turunan dari Bahasa C.

Jika Bahasa C merupakan bahasa prosedural maka Bahasa C++ hadir menggunakan konsep pemrograman berorientasi objek atau Object Oriented Programming.


Pemrograman dengan bahasa C menggunakan 2 konsep:

Data - bahan yang akan diolah.

Algorithms - metode pengolahan.

Tapi bagaimanapun juga, penggunaan bahasa prosedural seperti C sangat tidak efisien khususnya untuk pembuatan software berskala menengah ke atas atau project besar.



Terlalu banyak perulangan, percabangan, dan kode yang harus kita ketikan.



Maka dari itu kemudian bahasa c ini dikembangkan ke tingkat lebih lanjut menjadi bahasa c yang berorientasi object yang kemudian disebut dengan bahasa C++.



Download Compiler C++


Sebenarnya, anda bisa saja cukup hanya memakai aplikasi text editor biasa seperti notepad kemudian menggunakan aplikasi compiler yang banyak tersedia di internet.

Namun saya rasa tidak efisien karena kita akan disibukan dengan masalah teknis.

Saya pribadi semasa belajar di bangku kuliah menggunakan DEV C++ 5.11, kemudian perusahaan Gameloft menggunakan IDE Visual Studio 2015 (Saat saya tanya).

Meski demikian, ada banyak sekali vendor yang telah menyediakan software lengkap baik berbayar maupun gratis, silahkan download dan install terlebih dahulu.

Sturktur Program C++

Seperti pada umumnya, langkah pertama kita harus berkenalan dengan bahasa pemrograman c++. Silahkan buka program IDE anda dan ketikkan kode berikut:

#include <iostream>
int main()
{
    std::cout << "Welcome to C++";
    return 0;
}


Dan bandingkan dengan kode barikut ini:

#include <iostream>
using namespace std;
int main()
{
    cout << "Welcome to C++";
    return 0;
}



Saya akan beri anda waktu 1 menit untuk melihat perbedaannya.

Perlu diketahui bahwa kode di atas adalah kode standar C++, kedua kode diatas akan menampikan hasil data yang sama namun penulisannya saja yang sedikit berbeda.

Mari kita mengenal beberapa sintaks/coding tersebut.

Header dan Main Program

Header adalah tempat dimana kita akan memasukkan library yang ada pada C++ kedalam kode program. Sedangkan main() sebagai blok program utama kita.

Jika anda melihat kode pada baris pertama terdapat kode #include <iostream>.

Tanda ‘#’ disebut preprocessor directive.

Preprocessor directive adalah perintah – perintah yang diberikan kepada compiler untuk melakukan definisi, misalnya untuk memasukkan file library, dan lain sebagainya.

Jika kita lihat program diatas kita akan memasukkan (include) library iostream ke dalam program. iostream adalah header yang dibutuhkan untuk “kegiatan” input dan output.

Jika anda perhatikan kode program diatas, terdapat:

using namespace std;

Sedangkan pada contoh pertama tidak menggunakan baris kode tersebut.

Jadi intinya penggunaannya untuk memberitahukan kepada kompiler bahwa kita akan menggunakan semua fungsi, class atau file yang terdapat pada memori namespace std.

Kita tidak perlu mengetikan std::cout untuk mencetak output namun hanya cukup menggunakan fungsi cout saja, karena telah menggunakan using namespace std;

Selanjuntya kode main() adalah blok program yang berfungsi sebagai badan sebuah alur kondingan atau disebut sebagai program utama yang ditulis antara kode { hingga }.

Berikut adalah contoh program c++ sederhana untuk menghitung keliling lingkaran:

#include <iostream>
using namespace std;
const double pi = 3.14159;
const char newline = '\n';
int main ()
{
 double circle;
 double r = 5.0; //radius
 circle = 2 * pi * r;
 cout << circle;
 cout << newline;
}

PENTING: Penulisan dalam bahasa C++ bersifat case sensitive.

Pendeklarasian Variabel dan Konstanta

Untuk mendeklarasikan variabel yaitu dengan menuliskan tipe data terlebih dahulu kemudian diikuti nama variabel. Dan berikut contohnya:

double circle;
double r = 5.0;

Sedangkan untuk mendeklarasikan variabel bernilai konstanta dengan menggunakan fungsi const diikuti tipe data, nama varibel, dan nilai/value. Contoh:

const double pi = 3.14159;
const char newline = '\n';

Bagi anda yang membutuhkan penjelasan lebih lanjut mengenai variabel dan konstanta silahkan

Tambahan: anda tidak boleh menggunakan keyword c++ berikut ini sebagai nama identifier variabel maupun konstanta atau anda akan mendapat error.


Macam-Macam Komentar

Komentar adalah catatan atau dokumenasi yang ditulis oleh programmer untuk sebagai pengingat atau penjelasan ketika membaca sebuah baris kode.

Dalam bahasa C++ ada dua tanda yang dapat di gunakan untuk sebuah komentar:

Yang pertama ada tanda yang di gunakan untuk komentar satu baris saja, untuk tanda komentar satu baris, menggunakan tanda dua garis miring //.

dan yang ke dua tanda yang di gunakan untuk komentar lebih dari satu baris. Sedangkan untuk komentar lebih dari satu bari, menggunakan tannda /*… */.

Perhatikan contoh berikut:

//ini kode satu baris

/* ini komentar
   beberapa baris */

Kata – kata dalam sebuah komentar tidak akan dieksekusi oleh compiler.

Apa itu Variabel dan Tipe Data?

Semua program komputer yang sedang berjalan akan menyimpan data sementara di dalam RAM (Random Access Memori).

Data-data yang tersimpan di dalam RAM memiliki alamat yang direpresentasikan dalam bilangan heksa desmial.

Bagaiaman cara program menyimpan nilai ke RAM?

Jawabannya dengan menggunakan variabel.

Semakin banyak variabel yang kamu buat semakin besar pula memori yang akan digunakan di dalam RAM.


Jadi dapat kita simpulkan…

Variabel adalah sebuah nama lokasi penyimpanan di dalam memori.

Sementara tipe data adalah jenis data yang akan disimpan di dalam variabel.

Cara Membuat Variabel di C++

Pembuatan variabel atau deklarasi variabel di C++ dapat kita lakukan seperti berikut ini:

string nama;
int umur;
char jenis_kelamin;

Tipe datanya ditulis terlebih dahulu, lalu diikuti dengan nama variabelnya.
Variabel-variabel di atas akan menyimpan nilai null (kosong), karena belum kita isi.
Kita juga dapat membuat variabel dengan mengisinya langsung.

Contoh:

string nama = "Petani Kode";
float tinggi = 172.43;

Untuk lebih jelasnya, mari kita coba praktekkan dalam program.

Membuat Porgram C++ dengan Variabel dan Tipe Data

Silahkan buat sebuah file baru bernama biodata.cpp, kemudian isi dengan kode berikut:



#include <iostream>
using namespace std;
int main(){
  // deklarasi tipe data variabel

  string nama;
  int umur;
  char jenis_kelamin;
  // --- proses input ---
  cout << "Siapakah namamu?" << endl;
  cout << "jawab: ";
  // menyimpan data ke variabel
  getline(cin,nama);
  cout << "Berapa umurmu?" << endl;
  cout << "jawab: ";
  // menyimpan data ke variabel
  cin >> umur;
  cout << "Jenis kelamin [L/P]: ";
  // menyimpan data ke variabel
  cin >> jenis_kelamin;
  // --- proses output ---
  cout << "Salam kenal, " << nama << " Sekarang engkau berusia ";
  cout << umur << " dan kau berjenis kelamin "<< jenis_kelamin;
  return 0;
}


Setelah itu lakukan kompilasi dan eksekusi programnya.

Percabangan if

Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat kondisi bernilai benar.

Flowchart tersebut dapat kita baca seperti ini:

“Jika total belanja lebih besar dari Rp 100.000, Maka tampilkan pesan Selamat, Anda dapat hadiah“

Kalau dibawah Rp 100.000 bagaimana?

Ya pesannya tidak akan ditampilkan.

Mari kita coba dalam program C++.

Buatlah file bernama if.cpp, kemudian isi dengan kode berikut.

#include <iostream>
using namespace std;
int main(){
    cout << "=== Program Pembayaran ===" << endl;
    unsigned int total_belanja;
    cout << "Masukan total belanja: ";
    cin >> total_belanja;
    // menggunakan percabangan if
    if(total_belanja > 100000){
    cout << "Selamat! anda dapat hadiah" << endl;
    }
    cout << "Terimakasih sudah berbelanja di toko kami" << endl;
    return 0;
}



Kompilasi kode tersebut dengan perintah:

g++ if.cpp -o if

Lalu eksekusi dengan perintah:

./if

Perhatikan pada bagian ini:

// menggunakan percabangan if

if(total_belanja > 100000){
    cout << "Selamat! anda dapat hadiah" << endl;
}

Inilah yang disebut blok program.

Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh komputer.

Blok program pada C++, selalu diawali dengan tanda buka kurung kurawal {dan akan diakhiri dengan tutup kurung kurawal }.

Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka boleh tidak ditulis tanda kurungnya.


if (total_belanja > 100000)
    cout << "Selamat! anda dapat hadiah" << endl;

Percabangan if/else

Percabangan if/else merupakan percabangan yang memiliki dua blok pilihan.
Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk kondisi salah (else).
Ini adalah flowchart untuk mengecek password.
Apabila password benar, pesan yang ada pada blok hijau akan ditampilkan:“Selamat datang bos!”
Tapi kalau salah, maka pesan yang ada di blok merah yang akan ditampilkan:“Password salah, coba lagi!”
Kemudian, pesan yang berada di blok abu-abu akan tetap ditampilkan, karena dia bukan bagian dari blok percabangan if/else.


Untuk lebih jelasnya, mari kita coba dalam program.

Buatlah file beru bernama if_else.cpp, kemudian isi dengan kode berikut:


#include <iostream>
using namespace std;
int main(){
    string password;
    cout << "========= Login =========" << endl;
    cout << "Masukan password: ";
    cin >> password;
    // percabangan if/else
    if (password == "kopi"){
        cout << "Selamat datang bos!" << endl;
    } else {
        cout << "Password salah, coba lagi!"  << endl;
    }
    cout << "Terimakasih sudah menggunakan aplikasi ini!" << endl;
    return 0;
}



Percabangan if/else/if

Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok pilihan.


Perhatikan blok yang saya beri warna…
Ini adalah blok untuk percabangan if/else/if. Kita bisa menambahkan berapapun blok yang kita inginkan.

Contoh Program:

#include <iostream>
using namespace std;
int main(){
 int nilai;
 string grade;
cout << "=== Program Grade Nilai ===" << endl;
 cout << "Inputkan nilai akhir: ";
cin >> nilai;
 // menggunakan percabangan if/esle/if
  if (nilai >= 90) {
   grade = "A";
  } else if (nilai >= 80) {
      grade = "B+";
  } else if (nilai >= 70) {
 grade = "B";
  } else if (nilai >= 60) {
 grade = "C+";
} else if (nilai >= 50) {
     grade = "C";
   } else if (nilai >= 40) {
     grade = "D";

  } else if (nilai >= 30) {
      grade = "E";
  } else {
     grade = "F";
    }
   cout << "Grade ande: " << grade << endl;
  return 0;
}

Percabangan Switch/Case

Percabangan switch/case adalah bentuk lain dari percabangan if/else/if.

Strukturnya seperti ini:

switch(variabel){
    case <value>
        // blok kode
        break;
    case <value>:
        // blok kode
        break;
    default:
        // blok kode
}

Kita dapat mermbuat blok kode (case) sebanyak yang diinginkan di dalam blok switch.

Pada <value>, kita bisa isi dengan nilai yang nanti akan dibandingkan dengan varabel.

Setiap case harus diakhiri dengan break. Khusus untuk default, tidak perlu diakhiri dengan break karena dia terletak di bagian akhir.

Pemberian break bertujuan agar program berhenti mengecek case berikutnya saat sebuah case terpenuhi.


Contoh:

#include <iostream>
using namespace std;
int main(){

    char grade;
    cout << "Inputkan grade: ";
    cin >> grade;
    switch (toupper(grade)){
        case 'A':
            cout << "Luar biasa!" << endl;
            break;
        case 'B':
        case 'C':
            cout << "Bagus!" << endl;
            break;
        case 'D':
            cout << "Anda lulus" << endl;
            break;
        case 'E':

        case 'F':

            cout << "Anda remidi" << endl;
            break;
        default:
            cout << "Grade Salah!" << endl;
    }
    return 0;
}

Percabangan dengan Opertor Ternary

Percabangan menggunakan opreator ternary merupakan bentuk lain dari percabangan if/else.

Bisa dibilang:

Bentuk singkatnya dari if/else.

Operator ternary juga dikenal dengan sebutan operator kondisi (conditional operator).

Bentuk strukturnya seperti ini:

(kondisi) ? true : false

Bagian kondisi dapat kita isi dengan ekspresi yang menghasilkan nilai truedan false.

Lalu setlah tanda tanya ? adalah bagian pilihan.

Jika kondisi bernilai benar, maka true yang akan dipilih. Tapi kalau salah, maka false yang akan dipilih.

Untuk lebih jelasnya, mari kita coba…

Buatlah file baru bernama ternary.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;
int main(){
    int jawaban;
    cout << "Berapakah hasil 3+4?" << endl;
    cout << "jawab> ";
    cin >> jawaban;
    string hasil = (jawaban == 7) ? "Benar" : "Salah";
    cout << "Jawaban anda: " << hasil << endl;
    return 0;
}


Percabangan Bersarang (Nested)

Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut percabangan bersarng atau nested if.

Contoh: 📄 nested.cpp

#include <iostream>
using namespace std;
int main(){
    string username, password;
    cout << "=== Welcome ===" << endl;
    cout << "Username: ";
    cin >> username;
    cout << "Password: ";
    cin >> password;
    if (username == "petanikode"){
        if (password == "kopi"){
            cout << "Selamat datang bos!" << endl;
        } else {
            cout << "Password salah, coba lagi!" << endl;
  }
    } else {
        cout << "Anda tidak terdaftar" << endl;

    }
    return 0;
}



Bagaimana Mudah bukan.. jangan lupa berlatih terus, maka kamu akan dengan mudahnya memahami Pemrograman C++

sumber : https://www.kodedasar.com



sumber : https://www.petanikode.com

No comments :

Belajar Algoritma Pemrograman C++

Mengenal Bahasa Pemrograman C++

Belajar Algoritma Pemrograman C++ - Jadi, singkat cerita pada awal tahun 1970-an seorang bernama Bjarne Stroustrup mulai mengembangkan bahasa pemrograman c++ yang merupakan turunan dari Bahasa C.

Jika Bahasa C merupakan bahasa prosedural maka Bahasa C++ hadir menggunakan konsep pemrograman berorientasi objek atau Object Oriented Programming.


Pemrograman dengan bahasa C menggunakan 2 konsep:

Data - bahan yang akan diolah.

Algorithms - metode pengolahan.

Tapi bagaimanapun juga, penggunaan bahasa prosedural seperti C sangat tidak efisien khususnya untuk pembuatan software berskala menengah ke atas atau project besar.



Terlalu banyak perulangan, percabangan, dan kode yang harus kita ketikan.



Maka dari itu kemudian bahasa c ini dikembangkan ke tingkat lebih lanjut menjadi bahasa c yang berorientasi object yang kemudian disebut dengan bahasa C++.



Download Compiler C++


Sebenarnya, anda bisa saja cukup hanya memakai aplikasi text editor biasa seperti notepad kemudian menggunakan aplikasi compiler yang banyak tersedia di internet.

Namun saya rasa tidak efisien karena kita akan disibukan dengan masalah teknis.

Saya pribadi semasa belajar di bangku kuliah menggunakan DEV C++ 5.11, kemudian perusahaan Gameloft menggunakan IDE Visual Studio 2015 (Saat saya tanya).

Meski demikian, ada banyak sekali vendor yang telah menyediakan software lengkap baik berbayar maupun gratis, silahkan download dan install terlebih dahulu.

Sturktur Program C++

Seperti pada umumnya, langkah pertama kita harus berkenalan dengan bahasa pemrograman c++. Silahkan buka program IDE anda dan ketikkan kode berikut:

#include <iostream>
int main()
{
    std::cout << "Welcome to C++";
    return 0;
}


Dan bandingkan dengan kode barikut ini:

#include <iostream>
using namespace std;
int main()
{
    cout << "Welcome to C++";
    return 0;
}



Saya akan beri anda waktu 1 menit untuk melihat perbedaannya.

Perlu diketahui bahwa kode di atas adalah kode standar C++, kedua kode diatas akan menampikan hasil data yang sama namun penulisannya saja yang sedikit berbeda.

Mari kita mengenal beberapa sintaks/coding tersebut.

Header dan Main Program

Header adalah tempat dimana kita akan memasukkan library yang ada pada C++ kedalam kode program. Sedangkan main() sebagai blok program utama kita.

Jika anda melihat kode pada baris pertama terdapat kode #include <iostream>.

Tanda ‘#’ disebut preprocessor directive.

Preprocessor directive adalah perintah – perintah yang diberikan kepada compiler untuk melakukan definisi, misalnya untuk memasukkan file library, dan lain sebagainya.

Jika kita lihat program diatas kita akan memasukkan (include) library iostream ke dalam program. iostream adalah header yang dibutuhkan untuk “kegiatan” input dan output.

Jika anda perhatikan kode program diatas, terdapat:

using namespace std;

Sedangkan pada contoh pertama tidak menggunakan baris kode tersebut.

Jadi intinya penggunaannya untuk memberitahukan kepada kompiler bahwa kita akan menggunakan semua fungsi, class atau file yang terdapat pada memori namespace std.

Kita tidak perlu mengetikan std::cout untuk mencetak output namun hanya cukup menggunakan fungsi cout saja, karena telah menggunakan using namespace std;

Selanjuntya kode main() adalah blok program yang berfungsi sebagai badan sebuah alur kondingan atau disebut sebagai program utama yang ditulis antara kode { hingga }.

Berikut adalah contoh program c++ sederhana untuk menghitung keliling lingkaran:

#include <iostream>
using namespace std;
const double pi = 3.14159;
const char newline = '\n';
int main ()
{
 double circle;
 double r = 5.0; //radius
 circle = 2 * pi * r;
 cout << circle;
 cout << newline;
}

PENTING: Penulisan dalam bahasa C++ bersifat case sensitive.

Pendeklarasian Variabel dan Konstanta

Untuk mendeklarasikan variabel yaitu dengan menuliskan tipe data terlebih dahulu kemudian diikuti nama variabel. Dan berikut contohnya:

double circle;
double r = 5.0;

Sedangkan untuk mendeklarasikan variabel bernilai konstanta dengan menggunakan fungsi const diikuti tipe data, nama varibel, dan nilai/value. Contoh:

const double pi = 3.14159;
const char newline = '\n';

Bagi anda yang membutuhkan penjelasan lebih lanjut mengenai variabel dan konstanta silahkan

Tambahan: anda tidak boleh menggunakan keyword c++ berikut ini sebagai nama identifier variabel maupun konstanta atau anda akan mendapat error.


Macam-Macam Komentar

Komentar adalah catatan atau dokumenasi yang ditulis oleh programmer untuk sebagai pengingat atau penjelasan ketika membaca sebuah baris kode.

Dalam bahasa C++ ada dua tanda yang dapat di gunakan untuk sebuah komentar:

Yang pertama ada tanda yang di gunakan untuk komentar satu baris saja, untuk tanda komentar satu baris, menggunakan tanda dua garis miring //.

dan yang ke dua tanda yang di gunakan untuk komentar lebih dari satu baris. Sedangkan untuk komentar lebih dari satu bari, menggunakan tannda /*… */.

Perhatikan contoh berikut:

//ini kode satu baris

/* ini komentar
   beberapa baris */

Kata – kata dalam sebuah komentar tidak akan dieksekusi oleh compiler.

Apa itu Variabel dan Tipe Data?

Semua program komputer yang sedang berjalan akan menyimpan data sementara di dalam RAM (Random Access Memori).

Data-data yang tersimpan di dalam RAM memiliki alamat yang direpresentasikan dalam bilangan heksa desmial.

Bagaiaman cara program menyimpan nilai ke RAM?

Jawabannya dengan menggunakan variabel.

Semakin banyak variabel yang kamu buat semakin besar pula memori yang akan digunakan di dalam RAM.


Jadi dapat kita simpulkan…

Variabel adalah sebuah nama lokasi penyimpanan di dalam memori.

Sementara tipe data adalah jenis data yang akan disimpan di dalam variabel.

Cara Membuat Variabel di C++

Pembuatan variabel atau deklarasi variabel di C++ dapat kita lakukan seperti berikut ini:

string nama;
int umur;
char jenis_kelamin;

Tipe datanya ditulis terlebih dahulu, lalu diikuti dengan nama variabelnya.
Variabel-variabel di atas akan menyimpan nilai null (kosong), karena belum kita isi.
Kita juga dapat membuat variabel dengan mengisinya langsung.

Contoh:

string nama = "Petani Kode";
float tinggi = 172.43;

Untuk lebih jelasnya, mari kita coba praktekkan dalam program.

Membuat Porgram C++ dengan Variabel dan Tipe Data

Silahkan buat sebuah file baru bernama biodata.cpp, kemudian isi dengan kode berikut:



#include <iostream>
using namespace std;
int main(){
  // deklarasi tipe data variabel

  string nama;
  int umur;
  char jenis_kelamin;
  // --- proses input ---
  cout << "Siapakah namamu?" << endl;
  cout << "jawab: ";
  // menyimpan data ke variabel
  getline(cin,nama);
  cout << "Berapa umurmu?" << endl;
  cout << "jawab: ";
  // menyimpan data ke variabel
  cin >> umur;
  cout << "Jenis kelamin [L/P]: ";
  // menyimpan data ke variabel
  cin >> jenis_kelamin;
  // --- proses output ---
  cout << "Salam kenal, " << nama << " Sekarang engkau berusia ";
  cout << umur << " dan kau berjenis kelamin "<< jenis_kelamin;
  return 0;
}


Setelah itu lakukan kompilasi dan eksekusi programnya.

Percabangan if

Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat kondisi bernilai benar.

Flowchart tersebut dapat kita baca seperti ini:

“Jika total belanja lebih besar dari Rp 100.000, Maka tampilkan pesan Selamat, Anda dapat hadiah“

Kalau dibawah Rp 100.000 bagaimana?

Ya pesannya tidak akan ditampilkan.

Mari kita coba dalam program C++.

Buatlah file bernama if.cpp, kemudian isi dengan kode berikut.

#include <iostream>
using namespace std;
int main(){
    cout << "=== Program Pembayaran ===" << endl;
    unsigned int total_belanja;
    cout << "Masukan total belanja: ";
    cin >> total_belanja;
    // menggunakan percabangan if
    if(total_belanja > 100000){
    cout << "Selamat! anda dapat hadiah" << endl;
    }
    cout << "Terimakasih sudah berbelanja di toko kami" << endl;
    return 0;
}



Kompilasi kode tersebut dengan perintah:

g++ if.cpp -o if

Lalu eksekusi dengan perintah:

./if

Perhatikan pada bagian ini:

// menggunakan percabangan if

if(total_belanja > 100000){
    cout << "Selamat! anda dapat hadiah" << endl;
}

Inilah yang disebut blok program.

Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh komputer.

Blok program pada C++, selalu diawali dengan tanda buka kurung kurawal {dan akan diakhiri dengan tutup kurung kurawal }.

Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka boleh tidak ditulis tanda kurungnya.


if (total_belanja > 100000)
    cout << "Selamat! anda dapat hadiah" << endl;

Percabangan if/else

Percabangan if/else merupakan percabangan yang memiliki dua blok pilihan.
Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk kondisi salah (else).
Ini adalah flowchart untuk mengecek password.
Apabila password benar, pesan yang ada pada blok hijau akan ditampilkan:“Selamat datang bos!”
Tapi kalau salah, maka pesan yang ada di blok merah yang akan ditampilkan:“Password salah, coba lagi!”
Kemudian, pesan yang berada di blok abu-abu akan tetap ditampilkan, karena dia bukan bagian dari blok percabangan if/else.


Untuk lebih jelasnya, mari kita coba dalam program.

Buatlah file beru bernama if_else.cpp, kemudian isi dengan kode berikut:


#include <iostream>
using namespace std;
int main(){
    string password;
    cout << "========= Login =========" << endl;
    cout << "Masukan password: ";
    cin >> password;
    // percabangan if/else
    if (password == "kopi"){
        cout << "Selamat datang bos!" << endl;
    } else {
        cout << "Password salah, coba lagi!"  << endl;
    }
    cout << "Terimakasih sudah menggunakan aplikasi ini!" << endl;
    return 0;
}



Percabangan if/else/if

Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok pilihan.


Perhatikan blok yang saya beri warna…
Ini adalah blok untuk percabangan if/else/if. Kita bisa menambahkan berapapun blok yang kita inginkan.

Contoh Program:

#include <iostream>
using namespace std;
int main(){
 int nilai;
 string grade;
cout << "=== Program Grade Nilai ===" << endl;
 cout << "Inputkan nilai akhir: ";
cin >> nilai;
 // menggunakan percabangan if/esle/if
  if (nilai >= 90) {
   grade = "A";
  } else if (nilai >= 80) {
      grade = "B+";
  } else if (nilai >= 70) {
 grade = "B";
  } else if (nilai >= 60) {
 grade = "C+";
} else if (nilai >= 50) {
     grade = "C";
   } else if (nilai >= 40) {
     grade = "D";

  } else if (nilai >= 30) {
      grade = "E";
  } else {
     grade = "F";
    }
   cout << "Grade ande: " << grade << endl;
  return 0;
}

Percabangan Switch/Case

Percabangan switch/case adalah bentuk lain dari percabangan if/else/if.

Strukturnya seperti ini:

switch(variabel){
    case <value>
        // blok kode
        break;
    case <value>:
        // blok kode
        break;
    default:
        // blok kode
}

Kita dapat mermbuat blok kode (case) sebanyak yang diinginkan di dalam blok switch.

Pada <value>, kita bisa isi dengan nilai yang nanti akan dibandingkan dengan varabel.

Setiap case harus diakhiri dengan break. Khusus untuk default, tidak perlu diakhiri dengan break karena dia terletak di bagian akhir.

Pemberian break bertujuan agar program berhenti mengecek case berikutnya saat sebuah case terpenuhi.


Contoh:

#include <iostream>
using namespace std;
int main(){

    char grade;
    cout << "Inputkan grade: ";
    cin >> grade;
    switch (toupper(grade)){
        case 'A':
            cout << "Luar biasa!" << endl;
            break;
        case 'B':
        case 'C':
            cout << "Bagus!" << endl;
            break;
        case 'D':
            cout << "Anda lulus" << endl;
            break;
        case 'E':

        case 'F':

            cout << "Anda remidi" << endl;
            break;
        default:
            cout << "Grade Salah!" << endl;
    }
    return 0;
}

Percabangan dengan Opertor Ternary

Percabangan menggunakan opreator ternary merupakan bentuk lain dari percabangan if/else.

Bisa dibilang:

Bentuk singkatnya dari if/else.

Operator ternary juga dikenal dengan sebutan operator kondisi (conditional operator).

Bentuk strukturnya seperti ini:

(kondisi) ? true : false

Bagian kondisi dapat kita isi dengan ekspresi yang menghasilkan nilai truedan false.

Lalu setlah tanda tanya ? adalah bagian pilihan.

Jika kondisi bernilai benar, maka true yang akan dipilih. Tapi kalau salah, maka false yang akan dipilih.

Untuk lebih jelasnya, mari kita coba…

Buatlah file baru bernama ternary.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;
int main(){
    int jawaban;
    cout << "Berapakah hasil 3+4?" << endl;
    cout << "jawab> ";
    cin >> jawaban;
    string hasil = (jawaban == 7) ? "Benar" : "Salah";
    cout << "Jawaban anda: " << hasil << endl;
    return 0;
}


Percabangan Bersarang (Nested)

Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut percabangan bersarng atau nested if.

Contoh: 📄 nested.cpp

#include <iostream>
using namespace std;
int main(){
    string username, password;
    cout << "=== Welcome ===" << endl;
    cout << "Username: ";
    cin >> username;
    cout << "Password: ";
    cin >> password;
    if (username == "petanikode"){
        if (password == "kopi"){
            cout << "Selamat datang bos!" << endl;
        } else {
            cout << "Password salah, coba lagi!" << endl;
  }
    } else {
        cout << "Anda tidak terdaftar" << endl;

    }
    return 0;
}



Bagaimana Mudah bukan.. jangan lupa berlatih terus, maka kamu akan dengan mudahnya memahami Pemrograman C++

sumber : https://www.kodedasar.com



sumber : https://www.petanikode.com

No comments :