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
12345
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 910111213141516171819202122
// 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/namespacenamespacehello_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::stringhello();}// namespace hello_world#endif
Hmm semua sudah disiapkan lanjut ke file hello_world.c
1 2 3 4 5 6 7 8 910111213141516
#include"hello_world.h"// Use everything from the 'std' namespace.// This lets us write 'string' instead of 'std::string'.usingnamespacestd;namespacehello_world{// Define the function itself. This could have also been written as:// std::string hello_world::hello()stringhello(){// 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 910111213141516
#include"hello_world.h"// Use everything from the 'std' namespace.// This lets us write 'string' instead of 'std::string'.usingnamespacestd;namespacehello_world{// Define the function itself. This could have also been written as:// std::string hello_world::hello()stringhello(){// 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 910111213
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 in1testcase)[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.