• Tidak ada hasil yang ditemukan

PENYELESAIAN PERMASALAHAN TRAVELLING SALESMAN PROBLEM MENGGUNAKAN ALGORITMA DIFFERENTIAL EVOLUTION

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENYELESAIAN PERMASALAHAN TRAVELLING SALESMAN PROBLEM MENGGUNAKAN ALGORITMA DIFFERENTIAL EVOLUTION"

Copied!
10
0
0

Teks penuh

(1)

PENYELESAIAN PERMASALAHAN TRAVELLING SALESMAN

PROBLEM MENGGUNAKAN ALGORITMA DIFFERENTIAL

EVOLUTION

Heri Awalul Ilhamsah

Jurusan Teknik Industri Universitas Trunojoyo Email:hilhamsah@gmail.com

ABSTRAK

Penelitian ini membahas penyelesaian permasalahan Travelling Salesman Problem (TSP) menggunakan algoritma Differential Evolution (DE). Karakteristik persoalan TSP yang digunakan adalah persoalan TSP simetris, sehingga jarak antara dua titik adalah sama, tidak terpengaruh oleh arahnya . Untuk meningkatkan performansi algoritma DE dalam menemukan solusi optimal, maka digunakan algoritma nearest neigbour. Data test yang digunakan untuk menguji kemampuan algoritma menggunakan data test dengan kode gr48, eil51, kroA100, pcb44 dan pa561. Hasil penelitian ini mengkonfirmasikan, untuk mendapatkan hasil optimal dari algoritma DE dalam menyelesaikan persoalan TSP perlu di kombinasikan dengan algoritma heuristik lainnya.

Kata kunci : Travelling Salesman Problem, Algoritma Differential Evolution, Algoritma Nearest

Neighbour.

ABSTRACT

This study discusses the problem solving Traveling Salesman Problem (TSP) using the algorithm Differential Evolution (DE). Characteristics of TSP problem used is a symmetric TSP problem, so the distance between two points is the same, is not affected by the direction. To increase the performance of DE algorithm in finding the optimal solution, used the nearest neigbour algorithm. The data test are used to measure the ability of the algorithm. Using data test with the code gr48, eil51, kroA100, pcb44 and pa561. The results of this study confirm, in order to obtain optimum results from the DE algorithm to solve TSP problems need to be combined with other heuristic algorithms.

Keywords : Travelling Salesman Problem, Differential Evolution Algorithm, Nearest Neighbour

Algorithm.

PENDAHULUAN

Travelling Salesman Problem (TSP) merupakan salah satu contoh persoalan kombinatorial, dimana ada sejumlah N kota yang harus dikunjungi satu kali. Tingkat kerumitan akan semakin meningkat seiring dengan bertambahnya kota yang harus di kunjungi. Penentuan rute kota yang harus dikunjungi didasarkan atas jarak terpendek diantara koordinat kota yang harus dikunjungi. Penyelesaian secara eksak persoalan TSP masih mungkin dilakukan jika jumlah kota yang harus dikunjungi berjumlah kurang dari 9 kota, jika jumlah kota yang harus dikunjungi lebih dari 9 kota maka metode eksak akan kesulitan untuk menghitungnya. Kombinasi jalur rute dengan melewati semua kota yang ada bisa di

(2)

deteksi dengan (N-1)!. Kemudian jalur rute terpendek bisa di tentukan dengan eliminasi jalur-jalur rute terbentuk dengan nilai jarak yang tidak sesuai dengan harapan.

Penelitian permasalahan TSP telah banyak dilakukan para peneliti antara lain oleh Yu-Hsin Liu (2007), menggunakan hybrid scatter untuk pencarian jalur rute terpendeknya. Dalam penelitian tersebut Liu menggabungkan nearest neighbour dengan teknik crossover sebagai salah satu cara menemukan kombinasi kota yang mampu memberikan jarak terpendek. Yannis dan Magdelene (2010) menggunakan hybrid multi particle swarm optimization algorithm untuk menemukan kombinasi kota yang mampu memberikan jarak terpendek. Teknik pencarian solusinya menggabungkan teknik metaheuristik particle swarm optimization (PSO) dengan algoritma greedy. Hasil penelitian tersebut menunjukkan penambahan prosedur algoritma greedy mampu meningkatkan kinerja algoritma (PSO).

Penggunaan teknik heuristik dimaksudkan untuk mendapatkan hasil yang secara komputasi lebih cepat dengan konsekuensi mengurangi kepresisian atau keakuratan hasil solusi tadi. Jadi kecepatan penghitungan biasanya lebih baik (dibandingkan optimasi eksak) dengan sedikit mengorbankan akurasi solusi yang didapatkan. Pendekatan heuristik ini sifatnya spesifik sehingga untuk persoalan tertentu diperlukan teknik heuristik lainnya. Salah satu bentuk pengembangan dari teknik heuristik adalah metaheuristik, yaitu bentuk pencarian solusi yang memadukan prosedur pencarian dengan strategi tertentu agar dapat keluar dari solusi yang sifatnya lokal optima sehingga dihasilkan solusi yang sifatnya global optima.

Metaheuristik biasanya berupa prosedur umum yang bisa diterapkan untuk berbagai problem. Tentu saja diperlukan berbagai modifikasi agar suatu metoda metaheuristik sesuai dapat menyelesaikan masalah khusus yang dihadapi. Selain itu, dalam metaheuristik ada prosedur yang memanfaatkan satu atau lebih titik-titik tetangga (neighborhood structures) sebagai acuan menuju solusi lain. Di dalam metaheuristik biasanya ada heuristik di dalamnya. Dalam Penelitian ini akan mencoba mengaplikasikan teknik nearest neighbour yang dipadukan teknik metaheuristik differensial evolution untuk menyelesaikan permasalahan Travelling Salesman Problem.

METODOLOGI

Differential evolution (DE) merupakan salah satu metode optimasi evolusioner terbaru yang diperkenalkan oleh Storn dan Price (1995). Seperti halnya dengan algoritma tipe evolusioner lainnya, differential evolution merupakan algoritma yang didasarkan pada populasi dan stochastic global optimizer. Dalam algoritma (DE) kandidat solusi direpresentasikan oleh kromosom yang didasarkan pada floating-point numbers. Populasi awal dinamakan populasi target (target solution). Proses mutasi dilakukan dengan cara memilih tiga anggota populasi awal secara acak, kemudian memberikan bobot pada perbedaan dua anggota populasi, untuk ditambahkan pada anggota populasi yang ketiga. Kemudian dilanjutkan proses crossover, operator crossover akan mengkombinasikan solusi hasil mutasi dengan solusi target (target solution). Hasil dari proses crossover dinamakan solusi percobaan (trial solution). Setelah itu dilakukan seleksi antara target solution dengan trial solution dengan membandingkan fitness function value nya. Solusi yang memiliki fitness function value yang lebih baik akan bertahan untuk generasi berikutnya (Babu, dkk, 2003).

Prosedur dalam algoritma differential evolution adalah sebagai berikut:

Tahap Pembangkitan Inisial Solusi dengan Fungsi Random

Tahap pembangkitan solusi dengan fungsi random dijalankan dengan membangkitkan bilangan random antara 1-0. Bilangan random dibangkitkan dengan fungsi rand, dimana

(3)

bilangan random yang dihasilkan sedangkan angka 1 menunjukkan batas atasnya. Indeks j menunjukkan variabel ke j. Dalam kasus minimasi fungsi dengan 2 variabel, maka j akan bernilai 1 dan 2. Penentuan batas atas dan batas bawah sangat tergantung pada permasalahan yang dihadapi. Jika nilai yang dicari sulit ditentukan posisinya, maka rentang batas atas dan batas bawah bisa dibuat lebih lebar, atau sebaliknya jika titik-titik calon solusi sudah bisa di duga maka batas atas dan batas bawah bisa dipersempit.

Xj(0,1) = lbj + randj (0, 1)(ubj − lbj )

Mutasi

Setelah tahapan inisialisasi, DE akan memutasi dan mengkombinasi populasi awal untuk menghasilkan populasi dengan ukuran N vektor percobaan. Dalam DE, mutasi dilakukan dengan cara menambahkan perbedaan dua vektor terhadap vektor ketiga dengan cara random.

vi,g= xr0,g+ F.(xr1,g– xr2,g)

Faktor skala, F Є (0, 1+) adalah bilangan real positif yang mengendalikan tingkat pertumbuhan populasi.

Crossover

Pada tahap ini DE menyilangkan setiap vektor, xi,g, dengan vektor mutan, vi,g, untuk

membentuk vektor hasil persilangan, ui,g.

Probabilitas crosover, Cr Є (0,1) adalah nilai yang didefinisikan untuk mengendalikan fraksi nilai parameter yang disalin dari mutan.

Selection

Jika trial vector, ui,g, mempunya fungsi tujuan lebih kecil dari fungsi tujuan vektor

targetnya, xi,g, maka ui,g akan menggantikan posisi xi,g dalam populasi pada generasi

berikutnya. Sebaliknya target akan tetap pada posisinya dalam populasi.

Proses akan diulang sampai stopping criterion tertentu dicapai. Berikut disajikan alur algoritma differential evolution.

        sebaliknya x x f u f if u x g i g i g i g i g i , , , , 1 , ) ( ) ( (          sebaliknya x j j or Cr rand if v u u g i j rand j g i j g i j g i , , , , , , , ) , ) 1 , 0 ( (

(4)

Penerapan differensial evolution untuk menemukan solusi pada persoalan TSP dapat dijelaskan sebagai berikut :

1. Misalnya ada 10 kota dengan koordinat sebagai berikut : Tabel 1. Koordinat kota Kota Koordinat X Koordinat Y 1 13 45 2 14 32 3 45 65 4 32 78 5 76 57 6 12 44 7 23 62 8 7 81 9 32 77 10 50 52

2. Menghitung jarak masing-masing kota dengan kota lainnya menggunakan eucledian distance, dirumuskan sebagai berikut :

Start

Pembangkitan inisial solusi dengan

nearest neighbour dan fungsi random

Urutkan solusi berdasarkan fungsi objektif yaitu total jarak

Bentuk rangking berdasarkan total jarak masing-masing solusi

A B

A

Lakukan mutasi solusi berdasarkan syarat : vi,g= xr0,g+ F.(xr1,g– xr2,g)

Lakukan cross over dari individu hasil mutasi

Populasi baru terkumpul

Stopping Criteria terpenuhi

Ambil solusi terbaik sebagai hasil akhir

Finish Ya

Tidak

(5)

3. Tentukan jumlah populasi, misal 5 populasi dengan crossover rate (Cr) = 0.5 F = 0.6, dengan batas bawah = 0 dan batas atas = 1

4. Bangkitkan bilangan random sebanyak populasi, dengan jumlah individu pada masing-masing populasi sebanyak 9 kota (kota 1 sebagai awal dan akhir rute) sesuai dengan jumlah kota yang ada.

Tabel 2. Bilangan random untuk masing-masing kota

1 2 3 4 5 6 7 8 9 1 0.8381 0.5028 0.1934 0.6979 0.4966 0.6602 0.7271 0.7027 0.7948 2 0.0196 0.7095 0.6822 0.3784 0.8998 0.342 0.3093 0.5466 0.9568 3 0.6813 0.4289 0.3028 0.86 0.8216 0.2897 0.8385 0.4449 0.5226 4 0.3795 0.3046 0.5417 0.8537 0.6449 0.3412 0.5681 0.6946 0.8801 5 0.8318 0.1897 0.1509 0.5936 0.818 0.5341 0.3704 0.6213 0.173

Urutkan bilangan random pada masing-masing individu dari nilai terkecil ke nilai terbesar dihasilkan sebagai berikut :

Tabel 3. Urutan bilangan random untuk masing-masing kota

1 2 3 4 5 6 7 8 9 1 0.1934 0.4966 0.5028 0.6602 0.6979 0.7027 0.7271 0.7948 0.8381 2 0.0196 0.3093 0.342 0.3784 0.5466 0.6822 0.7095 0.8998 0.9568 3 0.2897 0.3028 0.4289 0.4449 0.5226 0.6813 0.8216 0.8385 0.86 4 0.3046 0.3412 0.3795 0.5417 0.5681 0.6449 0.6946 0.8537 0.8801 5 0.1509 0.173 0.1897 0.3704 0.5341 0.5936 0.6213 0.818 0.8318

Penentuan individu populasi berdasarkan indeks awal setelah bilangan random diurutkan (Tasgestiren, 2007).

Tabel 4. Kombinasi kota/populasi berdasarkan urutan bilangan random

Populasi Indeks Kota

1 7 5 6 4 8 3 2 1

2 6 1 5 2 7 3 8 4

3 2 7 8 6 1 5 4 3

4 5 8 6 4 1 3 2 7

5 5 3 6 2 7 8 1 4

Dengan menambah 1 pada masing-masing indeks kota didapatkan kombinasi individu pada populasi sebagai berikut :

Tabel 5. Kombinasi kota setelah menambahkan kota asal

Populasi Kota 1 1 4 6 3 7 5 9 8 10 2 1 2 1 2 8 7 5 9 4 3 6 10 1 3 1 7 4 3 9 10 2 6 8 5 1 4 1 3 7 2 4 8 6 9 5 10 1 5 1 4 10 3 8 7 5 9 6 2 1

5. Nilai fitness populasi adalah sebagai berikut : Populasi 1 = 371.8155

(6)

Populasi 2 = 323.9322 Populasi 3 = 332.8349 Populasi 4 = 354.2250

Populasi 5 = 315.0596 (Nilai jarak terendah) 6. Lakukan proses mutasi untuk mendapatkan vektor ketiga :

Tabel 6. Nilai vektor hasil mutasi

1 2 3 4 5 6 7 8 9 1 0.194 0.7408 0.6216 0.7309 0.8707 0.1745 0.8018 0.4 0.9929 2 0.2948 0.8284 0.4733 0.2849 0.8108 0.5334 0.4047 0.5515 0.9057 3 0 0.473 0.7693 0.5647 0.6918 0.3725 0.2505 0.7556 1 4 0 0.6165 0.8605 0.7245 0.694 0.2259 0.5314 0.6497 1 5 1 0.2599 0.1091 0.9831 0.3436 0.6598 0.8824 0.7915 0.7488

Urutkan bilangan random hasil mutasi pada masing-masing individu dari nilai terkecil ke nilai terbesar dihasilkan sebagai berikut :

Tabel 7. Bilangan random masing-masing kota setelah proses mutasi

1 2 3 4 5 6 7 8 9 1 0.1745 0.194 0.4 0.6216 0.7309 0.7408 0.8018 0.8707 0.9929 2 0.2849 0.2948 0.4047 0.4733 0.5334 0.5515 0.8108 0.8284 0.9057 3 0 0.2505 0.3725 0.473 0.5647 0.6918 0.7556 0.7693 1 4 0 0.2259 0.5314 0.6165 0.6497 0.694 0.7245 0.8605 1 5 0.1091 0.2599 0.3436 0.6598 0.7488 0.7915 0.8824 0.9831 1

Penentuan individu populasi hasil mutasi berdasarkan indeks awal setelah bilangan random diurutkan.

Tabel 8. Kombinasi kota hasil mutasi

Populasi Indeks Kota

1 6 1 8 3 4 2 7 5 9

2 4 1 7 3 6 8 5 2 9

3 1 7 6 2 4 5 8 3 9

4 1 6 7 2 8 5 4 3 9

5 3 2 5 6 9 8 7 4 1

Dengan menambah 1 pada masing masing indek kota didapatkan kombinasi individu pada populasi hasil mutasi sebagai berikut :

Tabel 9. Kombinasi kota lengkap hasil proses mutasi

Populasi Kota 1 1 7 2 9 4 5 3 8 6 10 1 2 1 5 2 8 4 7 9 6 3 10 1 3 1 2 8 7 3 5 6 9 4 10 1 4 1 2 7 8 3 9 6 5 4 10 1 5 1 4 3 6 7 10 9 8 5 2 1

Nilai fitness populasi hasil mutasi adalah sebagai berikut : Populasi 1 = 336.3373

(7)

Populasi 3 = 315.7682 (Nilai fitnes terkecil) Populasi 4 = 350.0498

Populasi 5 = 354.5338

7. Lakukan proses crossover dengan membangkitkan bilangan random sebanyak populasi. Jika bilangan random yang didapatkan suatu populasi kurang dari nilai Cr maka anggota populasi tersebut merupakan hasil mutasi, jika bilangan random yang di dapatkan lebih besar Cr maka anggota populasi tersebut merupakan hasil populasi pembangkitan pertama.

Bilangan random populasi 1 = 0.2091 Bilangan random populasi 2 = 0.3798 Bilangan random populasi 3 = 0.7833 Bilangan random populasi 4 = 0.6808 Bilangan random populasi 5 = 0.4611 Dihasilkan

Tabel 10. Bilangan random masing-masing kota hasil proses crossover

1 2 3 4 5 6 7 8 9 1 0.194 0.7408 0.6216 0.7309 0.8707 0.1745 0.8018 0.4 0.9929 2 0.2948 0.8284 0.4733 0.2849 0.8108 0.5334 0.4047 0.5515 0.9057 3 0.6813 0.4289 0.3028 0.86 0.8216 0.2897 0.8385 0.4449 0.5226 4 0.3795 0.3046 0.5417 0.8537 0.6449 0.3412 0.5681 0.6946 0.8801 5 1 0.2599 0.1091 0.9831 0.3436 0.6598 0.8824 0.7915 0.7488 Urutkan bilangan random hasil crossover pada masing-masing individu dari nilai terkecil ke nilai terbesar dihasilkan sebagai berikut :

Tabel 11. Urutan bilangan random hasil crossover

1 2 3 4 5 6 7 8 9 1 0.1745 0.194 0.4 0.6216 0.7309 0.7408 0.8018 0.8707 0.9929 2 0.2849 0.2948 0.4047 0.4733 0.5334 0.5515 0.8108 0.8284 0.9057 3 0.2897 0.3028 0.4289 0.4449 0.5226 0.6813 0.8216 0.8385 0.86 4 0.3046 0.3412 0.3795 0.5417 0.5681 0.6449 0.6946 0.8537 0.8801 5 0.1091 0.2599 0.3436 0.6598 0.7488 0.7915 0.8824 0.9831 1 Penentuan individu populasi hasil mutasi berdasarkan indeks awal setelah bilangan random diurutkan.

Tabel 12. Kombinasi hasil proses crossover

Populasi Indek Kota

1 6 1 8 3 4 2 7 5 9

2 4 1 7 3 6 8 5 2 9

3 6 3 2 8 9 1 5 7 4

4 2 6 1 3 7 5 8 4 9

5 3 2 5 6 9 8 7 4 1

Dengan menambah 1 pada masing masing indek kota didapatkan kombinasi individu pada populasi hasil crossover sebagai berikut :

(8)

Populasi Kota 1 1 7 2 9 4 5 3 8 6 10 1 2 1 5 2 8 4 7 9 6 3 10 1 3 1 7 4 3 9 10 2 6 8 5 1 4 1 3 7 2 4 8 6 9 5 10 1 5 1 4 3 6 7 10 9 8 5 2 1

8. Nilai jarak untuk kombinasi kota diatas adalah sebagai berikut : Populasi 2 = 336.3373

Populasi 2 = 370.7980 Populasi 3 = 315.7682 Populasi 4 = 350.0498 Populasi 5 = 354.5338

9. Pilih nilai fitness terendah dari masing-masing proses tadi didapat hasil 315.0596 yang berasal dari populasi pembangkitan solusi sebelum proses mutasi dan crossover. Didapatkan kombinasi rute sebagai berikut :

1 4 10 3 8 7 5 9 6 2 1

10. Cek hasil yang di dapat jika hasilnya masih dibawah dari kriteria yang harus dipenuhi (best known solusi) kembali ke proses pembangkitan bilangan random untuk menyusun formasi rute baru, jika sudah selesai, stop.

HASIL DAN DISKUSI

Algoritma yang diusulkan akan diujicobakan pada data test TSP yang dapat dilihat di TSP library. Selanjutnya, solusi yang didapatkan dari perhitungan algoritma akan dibandingkan dengan best known solusi yang pernah didapatkan. Gap solusi dihitung dengan menggunakan rumus dibawah:

= − 100%

Data test yang digunakan terdiri dari gr48 terdiri dari 48 titik, eil51 terdiri dari 51 titik, kroA100 terdiri dari 100 titik dan pa561 terdiri dari 561 titik. Hasil running algoritma differential evolution dengan parameter fraksi mutasi (Fr) = 0.8 dan fraksi crossover sebesar (Cr) = 0.3 dihasilkan nilai solusi sebagai berikut :

(9)

Kasus Jumlah Titik Best Known Solution Solusi oleh Improve DE dengan Nearest Neighbour Gap Solusi Improve DE dengan Nearest Neighbour Solusi oleh DE Gap Solusi DE dengan Best Known gr48 48 5046 5046 0.00% 5046 0.00% eil51 51 426 426 0.00% 426 0.00% kroA100 100 21282 21282 0.00% 21282 0.00% pcb442 442 50778 50778 0.00% 50780 0.39% pa561 561 2763 2765 7.23% 2769 21.72%

Hasil running algoritma differential evolution yang di gabung dengan nearest neigbour diatas menunjukkan kinerja mampu bersaing dengan algoritma-algoritma lain dalam menemukan solusi sesuai dengan data test yang digunakan. Inisial parameter yang digunakan dengan menggunakan nilai F sebesar 0.8 dengan fraksi crossover sebesar 0.4. Pada jumlah titik dibawah 100 algoritma ini mampu menunjukkan kinerja yang memuaskan, namum pada jumlah titik sebanyak 561 di dapatkan gap solusi sebesar 7.23%. Gap tersebut relatif lebih rendah bila dibandingkan hasil solusi dari algoritma DE tanpa menggunakan algoritma nearest nighbour, dengan algoritma DE didapatkan gap sebesar 21.72%.

KESIMPULAN DAN SARAN

Dari hasil dan diskusi penyelesaian TSP dengan algoritma DE maka dapat diambil kesimpulan, untuk meningkatkan kinerja algoritma DE dalam menemukan solusi persoalan TSP perlu di gunakan algoritma heuristik lainnya, dalam penelitian ini diusulkan penggunaan algoritma nearest neighbour sebagai salah satu pembangkit inisial solusinya. Untuk penelitian selanjutnya bisa digunakan algoritma pembangkitan inisial lainnya misalnya digunakan tabu search.

DAFTAR PUSTAKA

Liu. Y.H. (2007) A Hybrid Scatter Search for the Probabilistic Travelling Salesman Problem. International Journal of Computer & Operation Research (34), 2949-2963.

Chao D., Cheng Y., He M. (2007) Two-Level Genetic Algorithm for Clustered Traveling Salesman Problem with Application in Large-Scale TSP Journal Of Tsinghua Science and Technology. ISSN 1007-0214 15/20 pp459-465 Volume 12, Number 4.

Babu, B.,V., Mathew M., Jehan, Lenus, “Differential Evolution for Multi-Objective Optimization”, India, 2003.

Stron, R., Price, K. (1997). Differential Evolution a Simple and Efficient Heuristic for Global Optimization over Continuous Space. Journal of Global Optimization (11), 341-359.

TSP Library : http://elib.zib.de/pub/mp-testdata/tsp/tsplib/tsplib.html. di akses tanggal 2 Desember 2011

(10)

Tvrdik, J. (2006). Differential Evolution: Competitive Setting of Control Parameters. Proceedings of the International Multi Conference on Computer Science and Information Technology. ISSN 1896-7094. pp. 207-213.

Gambar

Tabel 2. Bilangan random untuk masing-masing kota
Tabel 6. Nilai vektor hasil mutasi
Tabel 10. Bilangan random masing-masing kota hasil proses crossover

Referensi

Dokumen terkait

Data yang digunakan adalah data kontur, data penggunaan lahan hasil klasifikasi maximum likelihood, peta aksesibilitas, titik asal (Telaga) dan titik tujuan

Bagian Keuangan / Umum selaku pembantu Kepala Wilayah bertanggung jawab menyusun rencana dan melaksanakan kegiatan pengelolaan keuangan, fungsi kebendaharaan, penyusunan

Dengan mempelajari bagian ini sebelum praktikum, praktikan mempersiapkan dirinya untuk suatu pengalaman praktis menguji coba konsep yang dijelaskan dalam tujuan dan

Besarnya f hitung > f tabel dengan signifikasi (0,000<0,005) dapat disimpulkan bahwa terdapat pengaruh bersama-sama dan signifikan pengalaman, otonomi,

Kualitas mikroskopik spermatozoa dibedakan menjadi motilitas, morfologi, integritas membran, jumlah spermatozoa dan leukosit dalam saluran reproduksi, dan aglutinasi spermatozoa

Sedangkan untuk latihan berbeban atau weight training merupakan salah satu bentuk latihan fisik yang dalam pelaksanaannya dapat menggunakan bantuan tubuhnya sendiri bahkan

Model Creative Problem Solving (CPS) adalah suatu model pembelajaran yang berpusat pada kemampuan pemecahan masalah, yang diikuti dengan penguatan kreatifitas dan

4th Friendly City International Conference, From Research to Implementation for Better Sustainability, University of Sumatera Utara, Medan, North Sumatera, Indonesia.. Click