Skip to content

Hello World

Untuk Contoh contoh pemograman CPP saya menggunakan Exercism.io.

Hampir sama dengan Hello World di C namun untuk CPP menggunakan CMAKE untuk build system nya bukan menggunakan MAKE lagi.

Download soal latihan

Untuk mendapatkan soal latihan gunakan perintah ini

$ exercism download --exercise=hello-world --track=cpp

Generate Makefile

kunjungi tempat latihan tersimpan ditempat saya ada di ~/exercism/cpp di situ akan ostosmastis muncul folder hello-world buka folder nya jalankan terminal disitu dan jalankan perintah ini

$ cmake -DEXERCISM_RUN_ALL_TESTS=1 .

Perintah di atas digunakan untuk men-generate Makefile untuk memudahkan process compile dan test dari soal latihan.

Kerjakan Soal latihan

Buka file README.md untuk membaca deskripsi tugas nya, untuk contoh ini tugasnya adalah

1
2
3
4
5
The objectives are simple:

- Write a function that returns the string "Hello, World!".
- Run the test suite and make sure that it succeeds.
- Submit your solution and check it at the website.

Cukup mudah. hehe.

Edit file hello-world.h

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
// This is an include guard.
// You could alternatively use '#pragma once'
// See https://en.wikipedia.org/wiki/Include_guard
#if !defined(HELLO_WORLD_H)
#define HELLO_WORLD_H

// Include the string header so that we have access to 'std::string'
#include <string>

// Declare a namespace for the function(s) we are exporting.
// https://en.cppreference.com/w/cpp/language/namespace
namespace hello_world {

// Declare the 'hello()' function, which takes no arguments and returns a
// 'std::string'. The function itself is defined in the hello_world.cpp source
// file. Because it is inside of the 'hello_world' namespace, it's full name is
// 'hello_world::hello()'.
std::string hello();

}  // namespace hello_world

#endif
Hmm semua sudah disiapkan lanjut ke file hello_world.c

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include "hello_world.h"

// Use everything from the 'std' namespace.
// This lets us write 'string' instead of 'std::string'.
using namespace std;

namespace hello_world {

// Define the function itself. This could have also been written as:
// std::string hello_world::hello()
string hello() {
    // Return the string we need.
    return "";
}

}  // namespace hello_world

Untuk bisa menyelesaikan soal latihan func hello() harus bisa mengembalikan(return) string yang bertuliskan "Hello, World!", pada code diatas tinggal ditambahkan Hello, World! ingat c/cpp semua case sensitive jadi besar kecil huruf harus diperhatikan. Setelah di edit file hello_world.c akan menjadi seperti di bawah ini.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include "hello_world.h"

// Use everything from the 'std' namespace.
// This lets us write 'string' instead of 'std::string'.
using namespace std;

namespace hello_world {

// Define the function itself. This could have also been written as:
// std::string hello_world::hello()
string hello() {
    // Return the string we need.
    return "Hello, World!";
}

}  // namespace hello_world

Hanya baris nomer 101 yang berubah.

Build dan test

Buka terminal pada folder hello-world seperti pada bagian Generate Makefile, dan jalankan perintah

$ make

secara ostosmastis file source cpp akan di compile dan di test. Berikut hasil output dari perintah make pada folder hello-world

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
kenzanin@artix|~/exercism/cpp/hello-world
) make
Scanning dependencies of target hello-world
[ 25%] Building CXX object CMakeFiles/hello-world.dir/hello_world_test.cpp.o
[ 50%] Building CXX object CMakeFiles/hello-world.dir/hello_world.cpp.o
[ 75%] Building CXX object CMakeFiles/hello-world.dir/test/tests-main.cpp.o
[100%] Linking CXX executable hello-world
[100%] Built target hello-world
Scanning dependencies of target test_hello-world
===============================================================================
All tests passed (1 assertion in 1 test case)

[100%] Built target test_hello-world
Perhatikan tulisan All test passed artinya pogram kita sudah sesuai dengan permintaan dari exercism dan file source siap di upload untuk melanjutkan ke contoh berikutnya.

Upload File

Masih pada folder hello-world jalankan perintah ini untuk meng-upload file.

$ exercism submit hello_world.{cpp,h}

Verivikasi pada situs Exercism.io

Buka situs Exercism.io lihat bagian track cpp untuk Hello World pencet tombol nya dan pencet Solve


Last update: February 8, 2021

Comments