Muhammad Kasfi, 14116972, 4KA17 Suggested Approach with Samples Be sure to answer questions based on what is stated or i...




Muhammad Kasfi, 14116972, 4KA17




Suggested Approach with Samples

  1. Be sure to answer questions based on what is stated or implied in the passage, even if it is a subject that you know a great deal about.
  2. Skim the questions frst, noting words that give you clues about what to look for when you read the passage. Do not spend more than a few seconds doing this. Skim the passage, reading only the first sentence of each paragraph. Read the passage, noting main points, important conclusions, names, definitions, places, and numbers.
  3. For vocabulary questions, remember that you are looking for the word that means most nearly the same as the underlined word as it is used in the reading passage. Some words may have several definetions, but only one will ft the meaning as it is used in the passage.
  4. Read the sentences near the sentence containing the vocabulary word to find contextual clues to help you understand the meaning of the word.
  5. Learn prefixes, suffixes, and roots, and use them for clues on vocabulary questions. The answer choices will generally be the same part of speech as the word tested, but it is still beneficial to know whether it is a noun, verb, adjective, or adverb.


 

Examples of TOEFL Reading Comprehension


Practice Passage :
The Alaska pipeline starts at the frozen edge of the Arctic Ocean. It stretches southward across the largest and northernmost state in the United States ending at a remote ice-free seaport village nearly 800 miles from where it begins. It is massive in size and extremely complicated to operate. (line 5)

The steel pipe crosses windswept plains and endless miles of delicate tundra that tops the frozen ground. It weaves through crooked canyons, climbs sheer mountains, plunges over rocky crags, makes its way through thick forests, and passes over or under hundreds of rivers and streams. The pipe is 4 feet in diameter, and up to 2 million barrels (or 84 million gallons) of crude oil can be pumped through it daily.
Resting on H-shaped steel racks called “bents”, long section of the pipeline follow a zigzag course high above the frozen earth. Other long sections drop out of sight beneath spongy or rocky ground and return to the surface later on. (line 15)
The pattern of the pipeline’s up-and-down route is determined by the often harsh demands of the arctic and subarctic climate, the tortuous lay of the land, and the varied compositions of soil, rock, or permafrost (permanently frozen ground). (Line 23)
A little more than half of the pipeline is elevated above the ground. The remainder is buried anywhere from 3 to 12 feet, depending largely upon the type of terrain and the properties of the soil.
One of the largest in the world, the pipeline cost approximately $8 billion and is by far the biggest and most expensive construction project ever undertaken by private industry. In fact, no single business could raise that much money, so 8 major oil companies formed a consortium in order to share the costs. (line 31)
Each company controlled oil rights to particular shares of land in the oil fields and paid into the pipeline-construction fund according to the size of its holdings. (line 35)
 Today, despite enormous problems of climate, supply shortages, equipment breakdowns, labor disagreements, treacherous terrain, a certain amount of mismanagement, and even theft, the Alaska pipeline has been completed and is operating.

      Practice Question :
  1. The passage primarily discusses the pipeline’s…? Answer, Construction.
  2. The word “it” in line 5 refers to? Answer, Pipeline.
  3. According to the passage, 84 million gallons of oil can travel through the pipeline each…? Answer Day.
  4. The phrase “resting on” in the third paragraph in line 15 closest in meaning to? Answer, Supported By.
  5. The author mentions all of the following as important in determining the pipeline’s route EXCEPT the? Answer, Local Vegetation.
  6. The The word “undertaken” in line 31 is closest in meaning to? Answer, Attempted.
  7. How many companies shared the costs of construction the pipeline? Answer, Eight.
  8. The word “particular” in line 35 is closest in meaning to. Answer, Spesific.
  9. Which of the following determined what percentage of the construction cost each member of the consortium would pay? Answer, How much oil field land each company owned.
  10. The Where in the passage does the author provide a term an earth covering that always remains frozen? Answer, Line 23.


Muhammad Kasfi  14116972 4ka17 -----------------------------------------------------------------------------------------------------...

Muhammad Kasfi 
14116972
4ka17
--------------------------------------------------------------------------------------------------------------------------

Teory

Subjects and verbs must agree with each other in number for a sentence to make sense. There are 20 rules of subject-verb agreement that sum up the topic quite concisely. Most of the concepts of subject-verb agreement are straightforward, but exceptions to the rules can make it more complicated.
For example, would you say, "They are fun" or "They is fun"? Since "they" is plural, you'd opt for the plural form of the verb, "are". Ready to dive into a world where subjects and verbs live in harmony?

What Are the Rules of Subject-Verb Agreement?
Twenty may seem like a lot of rules for one subject, but you'll quickly notice one ties into the next. In the end, it'll all make sense. (In the following examples, the agreeing subject is in bold and the verb is in italics.)
1. Subjects and verbs must agree in number. This is the cornerstone rule that forms the background of the concept.
The dog growls when he is angry.
The dogs growl when they are angry. 
2. Subordinate clauses that come between the subject and verb don't affect their agreement.
The dog, who is chewing on my jeans, is usually very good. 
3. Prepositional phrases between the subject and verb usually do not affect agreement.
The colors of the rainbow are beautiful. 
4. When sentences start with "there" or "here," the subject will always be placed after the verb. Some care needs to be taken to identify each part correctly.
There is a problem with the balance sheet.
Here are the papers you requested. 
5. Subjects don't always come before verbs in questions. Make sure you accurately identify the subject before deciding on the proper verb form to use.
Where are the pieces of this puzzle? 
6. If two subjects are joined by "and," they typically require a plural verb form.
The cow and the pig are jumping over the moon. 
7. The verb is singular if the two subjects separated by "and" refer to the same person or thing as a whole.
Red beans and rice is my mom's favorite dish. 
8. If one of the words "each," "every," or "no" comes before the subject, the verb is singular.
No smoking or drinking is allowed.
Every man and woman is required to check in. 
9. If the subjects are both singular and are connected by the words "or," "nor," "neither/nor," "either/or," or "not only/but also," the verb is singular.
Either Jessica or Christian is to blame for the accident. 
10. The only time the object of the preposition decides plural or singular verb forms is when noun and pronoun subjects like "some," "half," "none," "more," or "all" are followed by a prepositional phrase. Then the object of the preposition determines the form of the verb.
All of the chicken is gone.
All of the chickens are gone. 
11. The singular verb form is usually reserved for units of measurement or time.
Four quarts of oil was required to get the car running. 
12. If the subjects are both plural and are connected by the words "or," "nor," "neither/nor," "either/or," or "not only/but also," the verb is plural.
Not only dogs but also cats are available at the animal shelter. 
13. If one subject is singular and the other is plural, and the words are connected by the words "or," "nor," "neither/nor," "either/or," or "not only/but also," use the verb form of the subject that is nearest the verb.
Either the bears or the lion has escaped from the zoo.
Neither the lion nor the bears have escaped from the zoo. 
14. Indefinite pronouns typically take singular verbs (with some exceptions).
Everybody wants to be loved. 
15. The exceptions to the above rule include the pronouns "few," "many," "several," "both," "all," and "some." These always take the plural form
Few were left alive after the flood. 
16. If two infinitives are separated by "and," they take the plural form of the verb.
To walk and to chew gum require great skill. 
17. When gerunds are used as the subject of a sentence, they take the singular form of the verb. However, when they are linked by "and," they take the plural form.
Standing in the water was a bad idea.
Swimming in the ocean and playing drums are my hobbies. 
18. A collective noun, such as "team" or "staff," can be either singular or plural depending upon the rest of the sentence. Typically, they take the singular form, as the collective noun is treated as a cohesive single unit.
The herd is stampeding. 
19. Titles of books, movies, novels, and other similar works are treated as singular and take a singular verb.
The Burbs is a movie starring Tom Hanks. 
20. Final rule: Remember, only the subject affects the verb! Nothing else matters.
Jacob, who owns sixteen houses, is on his way to becoming a billionaire.


     Task for 2nd meeting softskill 

1.      Neither Bill nor Mary (is/are) going to the play tonight.
Answer : are
Reason : because when connecting plural nouns, use a plural verb, in this sentence bill and marry count as 2 people (plural) that going to play tonight so ‘are’ is used.

2.      Anything (is/are) better than going to another movie tonight.
Answer : is
Reason: "Anything" is treated as singular in English, so use "is there anything."

3.      Skating (is/are) becoming more popular every day.
Answer : is
Reason: that sentences, skating is a compound nouns.

4.      A number of reporters (was/were) at the conference yesterday.
Answer :  were
Reason : in the case define as Plural Indefinite Pronouns because reporters are countable so plural verb used

5.      Everybody who (has/have) a fever must go home immediately.
Answer : has
Reason : Each and every may seem to indicate more than one, but grammatically they are singular words, so the sentence used with a singular verb.

6.      Your glasses (was/were) on the bureau last night.
Answer : were
Reason: glasses are semantically singular, but syntactically plural so use “were”

7.      There (was/were) some people at the meeting last night.
Answer : were
Reason : use the plural verb, were, because “some people” is more than two.

8.      The committee (has/have) already reached a decision.
Answer : has
Reason: because the committee is one person, so singular

9.      A pair of jeans (was/were) in the washing machine this morning.
Answer : was
Reason :same reason on task number 8, a pair of jeans mean one item jeans

10.  Each student (has/have) answered the first three questions.
Answer : has
Reason : same reason on task number 5





Muhammad Kasfi / 14116972 / 4KA17 Tips & Trick Answering TOEFL Listening Questions An English proficiency certificate is a file th...

Muhammad Kasfi / 14116972 / 4KA17

Tips & Trick Answering TOEFL Listening Questions

An English proficiency certificate is a file that you must include in your work application and scholarship file. The choice is you can attach IELTS, TOEFL IBT and TOEFL PBT. Of the three types, it's usually the TOEFL (Test of English as a Foreign Language Paper Based Test) that you often do because the test costs are cheaper.

The score stated in the TOEFL certificate can be a determinant of success. Now I will give tips and tricks so that your TOEFL score is high on the listening test. in listening there are about 50 questions and the problem is divided into three parts (PART A, B, C).

Tips for part A (first)

because this conversation contains a short conversation between two people, you just simply focus on the second speaker, because usually the answer to the problem part A is in the second speaker, if you don't understand at all, you can choose a different answer from the other points.

example 1 part A:
Woman: How was the turnout at the meeting last night?
Man: Fewer people came than I had expected.
Narrator: What does the man say about Harry? (Question)
(A) Too many people came to the meeting.
(B) There were not enough people at the meeting to inspect the documents
(C) The man had expected more people to come to the meeting
(D) There were not enough seats for all the people
the correct answer is C
example 2 part A:
Man: Did Frank have his house repaired?
Woman: The contractor said the repairs would be very expensive, but he decided to have the work done.
Narrator: What does the woman say about the repairs to Frank’s house? (Question)
(A) Frank told the contractor to do the work in spite of the cost
(B) Frank told the contractor that the price was too high
(C) Frank cannot afford the work on his house.
(D) Frank repaired his own house
the correct answer is A


Tips for part B

This part is the part where the narrator reads a long story, so while the narrator reads the questions, you should read the questions from the questions you are reading, this is important because you know about the answers or themes that will be answered while listening to the narrator and you try understand what this conversation is talking about, also pay attention to the conditions and situations that are related to the place and time of the conversation, what and who is being discussed.
Story :
Man: How long have you been out of the country, miss? Where did you go?
Woman: I spent three weeks in Switzerland and one week in Greece.
Man: Did you spend any time in agricultural areas there?
Woman: No, I stayed mostly in the cities and spent one day at the beach in Corinth.
Man: Do you have any plants, meat, or alcoholic beverage to declare?
Woman: I have only two bottles of wine.
Man: What else did you buy? Woman: A couple of festive costumes, books, and native arts and crafts.
Man: How much did you spend on your purchases while you were away?
Woman: About $300.
Man: Please open this small suitcase for me … OK, give this card to the official at the red desk. 
Narrator:
Where did this conversation most likely take place?
(A) In a clothing store
(B) In customs
(C) At a bank
(D) In a liquor store
the correct answer is B
Narrator:
How many countries did the woman visit?
(A) 1
(B) 2
(C) 3
(D) 4
the correct answer is B 

Tips for part C

This last part consists of 3 long speeches (talks) and only involves one person (monologue). if you have a lot of free time, it's better to first find keywords in each of the answer choices listed. just focus on the first sentence of the conversation because it will usually be the topic of the next sentence which usually involves 5W 1H, the last to make a conclusion while the conversation even though the narrator is still talking, if you are sure just answer. 

talks example:
Now that you know you want to purchase life insurance, you must choose from two types. The amount of money paid periodically for an insurance policy is a premium. The type of life insurance you choose will affect the amount of the premium you pay. Term life insurance is purchased for a given period of time, or  term. At the end of the term, the insurance expires. It insures your life based on a formula that considers how long you are expected to live. This product provides the greatest coverage for  the least amount of money. You do not pay any money as an investment in addition to the insurance cost. It you choose to purchase insurance after expiration, the premium will be higher  because it is calculated on your attained age, and at that point you will be older than you are now. The longer the premium is guaranteed to remain constant, the greater the premium will be because it reflects the average cost of insurance for all years being covered. Cash value life insurance, on the other hand, has component fund in which the life insurance company deposits part of the premium and pays interest earned on its investments in mortgages, bonds, stocks, and other investments. The balance of  the premium purchases term insurance, which is calculated in the same way as if you purchase term life insurance. Consequently, the premium is significantly higher than that of term life insurance. However, most cash value life insurance products have a fixed premium schedule and remain in effect throughout your life. In many cases, the interest earned on the investment portion of the premium will ultimately pay the premiums so that at some point you can discontinue making payments out of pocket. Once the fund has started to accumulate, you may borrow some of the funds at low interest rate, receive retirement income, or  even stop paying premiums. This type of policy also builds up a cash value so that if you want to cancel the policy, some money is actually returned, unlike the term policy, which has no value other than the insurance
Question:
Narrator: Which of the following is NOT a reason to buy cash value insurance?
(A) It is less expensive than term insurance
(B) It can have a fixed premium for life
(C) It may result in the insured’s being able to discontinue premium payments
(D) It may result in retirement income
the correct answer is A
Narrator: Why is cash value life insurance more expensive than term life insurance?
(A) Because the insured must pay for the agent’s retirement fund
(B) Because it is pure insurance
(C) Because part of the money is invested
(D) Because it is based on the age of the insured
the correct answer is C

Dibuat oleh : •Aby seftian efendi •Aisyah Diah Salsabila •M. Kashfi Assegaf •Readi pratama H. LATAR BELAKANG Menggun...


Dibuat oleh :

•Aby seftian efendi

•Aisyah Diah Salsabila

•M. Kashfi Assegaf

•Readi pratama H.



LATAR BELAKANG

Menggunungnya sampah plastik yang kini berada di laut indonesia sudah tidak bisa dianggap persoalan sepele. Kasus yaitu seekor paus sperma yang terdampar di Indonesia lebih tepatnya di wakatobi ditemukan sampah didalam tubuhnya dengan berat sampah sekitar 5,9kg dan akhirnya dalam kondisi mati. Yang mengenaskan ada banyak sampah plastik didalam perut paus tersebut seperti botol bekas minuman dan lain-lain. dari kasus tersebut Oleh sebab itu kami akan membuat sebuah animasi dengan karakter berupa paus itu sendiri yang digambarkan dia menunjukan ekspresi sedih dan murung dikarenakan habitat tempat tinggalnya yang telah tercemar oleh sampah-sampah plastik tersebut.


Batasan Masalah 

  1. 1. Merancang dan membuat Animasi ‘Wholly Paus Pemakan Sampah’.
  2. 2. Menampilkan animasi ‘Wholly Paus Pemakan Sampah’, di mulai saat masyarakat membuang sampah di pantai sampai Wholly mati karena memakan sampah yang ada di lautan.
  3. 3. Animasi ini dibuat untuk seluruh masyarakat, baik orang dewasa maupun anak – anak.
  4. 4. Aplikasi yang di gunakan dalam pembuatan animasi ini adalah Adobe Flash CC


TUJUAN

  1. 1. Mengingatkan masyarakat akan pentingnya menjaga lingkungan, karena kita hidup bersama makhluk hidup lain. Bukan hanya kita yang dapat terkena dampak buruk dari tidak menjaga lingkungan, teteapi makhluk hidup lainnya juga.
  2. 2. Meningkatkan kesadaran masyarakat untuk menjaga lingkungan dengan cara tidak membuang sampah sembarangan.


CERITA

"Suatu hari ada masyarakat sekitar laut membuang sampah sembarangan ke laut, ia tidak menyadari perbuatan itu menyebabkan pencemaran laut. Sampah yang dibuang masyarakat itu mengotori laut dalam, sampah itu dikira makanan oleh mahluk laut. hingga akhirnya ada seekor paus bernama wholly yang hidup di laut yang sangat dalam, saat itu Wholly sedang kelaparan, akhirnya ia berinisiatif mencari makan sendiri karena dia hidup sebatang kara. Dia membawa sebuah keranjang untuk mengumpulkan persedian makannya saat balik ke rumah. Dalam pencarian makanan dia mendapatkan sebuah benda yang dikira makanan yang enak bagi dia. Karena benda itu dimana-mana , wholly membawa makanan itu cukup banyak dengan warna yang bervariatif. Dia memakan benda itu sampai dirumahnya dan wholly melakukan hal ini selama kurang lebih 1minggu. Tiba-tiba wholly ditemukan di tepi laut dengan kondisi mati mengenaskan , dengan ditemukannya banyak sampah didalam perutnya."

CHARACTER DESIGN 

Karakter desain adalah proses menciptakan dan merancang karakter. Proses perancangan karakter tersebut ditinjau dari tiga aspek dasar yaitu Fisiologi, Sosiologi, dan Psikologi









UNIFIED MODELING LANGUAGE


Use Case Diagram




Activity Diagram User


Sequence Diagram User


SOFTWARE YANG DIGUNAKAN

Adobe Flash Pro CS6
  • •User Interface yang user friendly memudahkan pemula yang ingin membuat animasi
  • •Cocok untuk membuat sebuah animasi sederhana yang menarik
  • •Tools-tools nya mudah dipahami user

ANIMASI


Scene masyarakat sekitar pantai membuang sampah sembarangan. 


Scene Sampah mengotori dan mencemari lautan. 



Scene wholly membawa dan mencari makan di lautan dalam. 




Scene wholly makan sampah yang dibawa.



Scene masyarakat sekitar melihat wholly terdampat di pinggir laut. 



Google Assistant yang kini sudah hadir di  smartphone , memang sangat membantu karena terbilang cerdas dan responsif. Dia bisa melakukan...


Google Assistant yang kini sudah hadir di smartphone, memang sangat membantu karena terbilang cerdas dan responsif. Dia bisa melakukan berbagai macam fitur, mulai mengelola tugas, merencanakan harimu, mencari hiburan, mendapatkan jawaban dan segala keperluan yang menunjang aktivitasmu. 

Check video berikut untuk lebih jelas : 

Algoritma JST (Jaringan Saraf Tiruan) dengan teknik Simplex Optimization adalah salah satu algoritma berbasis jaringan saraf yang dapat d...

Image result for algorithm flat

Algoritma JST (Jaringan Saraf Tiruan) dengan teknik Simplex Optimization adalah salah satu algoritma berbasis jaringan saraf yang dapat digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah mengenai penentuan penerimaan pengajuan kredit sepeda motor baru berdasarkan kelompok data yang sudah ada.
Inti perhitungan pada algoritma berbasis jaringan adalah untuk mencari bobot terbaik dari contoh / sampel data yang sudah ada. Karena hasil pada contoh data sudah diketahui, maka nilai bobot akan dihitung berdasarkan nilai hasil yang sudah tersedia, sampai ditemukan nilai bobot terbaik yang paling banyak cocok apabila dihitungkan kembali pada data awal. Kemudian nilai bobot tersebut dapat digunakan untuk menghitung data lain yang tidak diketahui hasilnya.
Algoritma ini adalah variasi lain dari Algoritma JST (Jaringan Saraf Tiruan), dimana sistem pencarian matriks bobot yang umum digunakan adalah menggunakan PSO (Particle Swarm Optimization)Back-Propagation, dan EO (Evolutionary Optimization). Pada pembahasan kali ini akan digunakan teknik yang cukup sederhana yaitu Simplex Optimization.
Simplex Optimization bekerja dengan cara membentuk segitiga solusi yang dikatakan sebagai solusi terbaik – lainnya – terburuk. Pada setiap perhitungan, segitiga ini akan dihitung sehingga semakin mendekati solusi yang terbaik. Apabila segitiga ini digambar secara berurutan pada setiap perulangan, gerakan segitiga yang terjadi mirip dengan pola gerakan amoeba, oleh karena itu teknik ini juga disebut sebagai AMO (Amoeba Method Optimization).

Diasumsikan ada 8 data pelanggan yang sudah diketahui datanya, yaitu Pelanggan A,B,C,D,E,F,G,H
Masing-masing pelanggan memiliki kriteria, yaitu umur, jenis kelamin, skor kepribadian, dan memiliki nilai hasil yaitu Diterima / Ditolak
Diasumsikan 8 data tersebut adalah sebagai berikut:
PelangganUmurJenis KelaminSkor KepribadianHasil
Pelanggan A44Laki-laki3.55Diterima
Pelanggan B52Perempuan4.71Diterima
Pelanggan C60Perempuan6.56Ditolak
Pelanggan D56Laki-laki6.8Ditolak
Pelanggan E51Laki-laki6.94Ditolak
Pelanggan F46Perempuan6.52Ditolak
Pelanggan G48Laki-laki4.25Diterima
Pelanggan H58Perempuan5.71Diterima
Contoh data pelanggan awal adalah sebagai berikut:
Untuk Kriteria Jenis Kelamin:
Laki-laki dilambangkan dengan angka -1
Perempuan dilambangkan dengan angka +1
Untuk kriteria Nilai Hasil:
Terdapat 2 kolom untuk merepresentasikan kondisi Diterima dan Ditolak
Jika kondisi Diterima, maka inputan data kolom adalah 1, 0
Jika kondisi Ditolak, maka inputan data kolom adalah 0, 1
Dim data(9)() As Double
data(0) = New Double() {44, -1, 3.55, 1, 0}
data(1) = New Double() {52, +1, 4.71, 1, 0}
data(2) = New Double() {60, +1, 6.56, 0, 1}
data(3) = New Double() {56, -1, 6.8, 0, 1}
data(4) = New Double() {51, -1, 6.94, 0, 1}
data(5) = New Double() {46, +1, 6.52, 0, 1}
data(6) = New Double() {48, -1, 4.25, 1, 0}
data(7) = New Double() {58, +1, 5.71, 1, 0}

Selanjutnya ada 2 orang pelanggan baru yang mengajukan kredit sepeda motor
Maka tentukan pelanggan ini nantinya akan termasuk dalam kelompok Diterima / Ditolak
Diasumsikan data awalnya adalah sebagai berikut:
PelangganUmurJenis KelaminSkor Kepribadian
Pelanggan I47Perempuan6.05
Pelanggan J52Laki-Laki5
Contoh data pelanggan baru adalah sebagai berikut:
Untuk kriteria Nilai Hasil:
Terdapat 2 kolom untuk merepresentasikan kondisi Diterima dan Ditolak
Karena belum diketahui nilai hasilnya, maka semua inputan data adalah -1, -1
data(8) = New Double() {47, +1, 6.05, -1, -1}
data(9) = New Double() {52, -1, 5, -1, -1}

Langkah-langkah penggunaan algoritma ini adalah:


1. Lakukan normalisasi data untuk kriteria Umur dan Skor Kepribadian
Penjelasan lebih lanjut dapat dilihat pada penjelasan skrip dibawah ini (poin 1a – 1c)
1a. Hitung nilai rata-rata tiap-tiap kolom
yaitu dengan rumus: jumlah semua data dibagi dengan jumlah datanya
Dim total As Double = 0.0
For r = 0 To jumlahBaris - 1
 total += data(r)(c)
Next r
Dim rata2 As Double = total / jumlahBaris
hasil(0)(c) = rata2

1b. Hitung nilai standar deviasi tiap-tiap kolom
yaitu dengan rumus: akar dari ((kuadrat dari (jumlah dari (data – rata-rata))) / jumlah data)
Dim totalKuadrat As Double = 0.0
For r = 0 To jumlahBaris - 1
 totalKuadrat += (data(r)(c) - rata2) * (data(r)(c) - rata2)
Next r
Dim stdDev As Double = Math.Sqrt(totalKuadrat / jumlahBaris)
hasil(1)(c) = stdDev

1c. Normalisasi data dihitung dengan rumus (data – (rata-rata kriteria tersebut)) / standar deviasi kriteria tersebut
For c = 0 To kolom.Length - 1
 Dim j As Integer = kolom(c)
 Dim rata2 As Double = hasil(0)(j)
 Dim stdDev As Double = hasil(1)(j)

 For i = 0 To jumlahBaris - 1
  data(i)(j) = (data(i)(j) - rata2) / stdDev
 Next i
Next c

2. Tentukan skema awal untuk algoritma ini.
Algoritma ini dapat digunakan untuk melakukan perhitungan yang memiliki banyak input dan menghasilkan banyak output
Diasumsikan dalam kasus ini, skema yang digunakan adalah 3 – 4 – 2, dimana:
  • 3 adalah jumlah saraf input, karena ada 3 kriteria awal, yaitu Umur, Jenis Kelamin, dan Skor Kepribadian
  • 4 adalah jumlah saraf tersembunyi yang digunakan. Jumlah saraf tersembunyi harus lebih dari jumlah saraf input
  • dalam kasus ini bisa lebih dari 4, tetapi hanya digunakan 4 saja untuk mempercepat perhitungan
  • 2 adalah jumlah saraf output, Karena kriteria nilai hasil bergantung pada nilai 2 kolom, yaitu 1,0 jika diterima dan 0,1 jika ditolak
Const jumlahSarafInput As Integer = 3
Const jumlahSarafTersembunyi As Integer = 4
Const jumlahSarafOutput As Integer = 2
Dim jst As New JaringanSaraf(jumlahSarafInput, jumlahSarafTersembunyi, jumlahSarafOutput)
* Diperlukan sebuah class untuk menyimpan semua matriks data untuk digunakan dalam perhitungan algoritma ini. Class ini dinamakan class JaringanSaraf. Deklarasi awal untuk setiap pengisian data adalah sebagai berikut
Public Class JaringanSaraf
    Private rnd As Random

    Private jumlahSarafInput As Integer
    Private jumlahSarafTersembunyi As Integer
    Private jumlahSarafOutput As Integer

    Private inputs As Double()

    'Matriks data untuk perhitungan jaringan saraf input-tersembunyi
    Private ihBobot As Double()()                   'Nilai bobot pada jaringan saraf input-tersembunyi
    Private hBias As Double()                       'Nilai bias pada jaringan saraf tersembunyi
    Private hOutput As Double()                     'Nilai output sementara pada jaringan saraf tersembunyi

    'Matriks data untuk perhitungan jaringan saraf tersembunyi-output
    Private hoBobot As Double()()                   'Nilai bobot pada jaringan tersembunyi-output
    Private oBias As Double()                       'Nilai bias pada jaringan saraf output

    Private outputs As Double()

    Public Sub New(jumlahSarafInput As Integer, jumlahSarafTersembunyi As Integer, jumlahSarafOutput As Integer)
        rnd = New Random(0)
        Me.jumlahSarafInput = jumlahSarafInput
        Me.jumlahSarafTersembunyi = jumlahSarafTersembunyi
        Me.jumlahSarafOutput = jumlahSarafOutput

        Me.inputs = New Double(jumlahSarafInput - 1) {}

        Dim ihBobot As Double()() = New Double(jumlahSarafInput - 1)() {}
        For r As Integer = 0 To ihBobot.Length - 1
            ihBobot(r) = New Double(jumlahSarafTersembunyi - 1) {}
        Next
        Me.ihBobot = ihBobot
        Me.hBias = New Double(jumlahSarafTersembunyi - 1) {}
        Me.hOutput = New Double(jumlahSarafTersembunyi - 1) {}

        Dim hoBobot As Double()() = New Double(jumlahSarafTersembunyi - 1)() {}
        For r As Integer = 0 To hoBobot.Length - 1
            hoBobot(r) = New Double(jumlahSarafOutput - 1) {}
        Next
        Me.hoBobot = hoBobot
        Me.oBias = New Double(jumlahSarafOutput - 1) {}

        Me.outputs = New Double(jumlahSarafOutput - 1) {}
    End Sub
 
 . . .
End Class

3. Sebelum masuk ke dalam fungsi utama perhitungan, ada beberapa parameter yang perlu diperhatikan, yaitu:
3a. Tentukan Jumlah maksimal Epoch
Epoch adalah banyak perulangan yang dilakukan dalam 1 kali proses pembelajaran
Diasumsikan dalam kasus ini jumlah maksimal Epoch adalah 100
Const maksEpoch As Integer = 100

4. Lakukan proses pencarian nilai bobot dan bias terbaik
Metode yang digunakan adalah Simplex Optimization
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini (poin 4a – 4i)
Dim bobotTerbaik As Double() = jst.Simplex(contohData, maksEpoch)
jst.setBobot(bobotTerbaik)
Memasuki perhitungan utama pada fungsi Simplex
* Inisialisasi jumlah bobot yang digunakan dalam perhitungan
  • jumlah nilai bobot pada jaringan saraf input-tersembunyi adalah jumlah saraf input * jumlah saraf tersembunyi (3 * 4 = 12 buah)
  • jumlah nilai bias pada jaringan saraf input-tersembunyi adalah jumlah saraf tersembunyi (4 buah)
  • jumlah nilai bobot pada jaringan saraf tersembunyi-output adalah jumlah saraf tersembunyi * jumlah saraf output (4 * 2 = 8 buah)
  • jumlah nilai bias pada jaringan saraf tersembunyi-output adalah jumlah saraf output (2 buah)
Sehingga, banyak data yang diperlukan adalah 12 + 4 + 8 + 2 = 26 buah data
Fungsi ini akan mencari data yang memiliki bobot terendah diantara semua data input, dan akan mengembalikan 26 buah data dengan susunan seperti diatas
Dim jumlahBobot As Integer = (Me.jumlahSarafInput * Me.jumlahSarafTersembunyi) + (Me.jumlahSarafTersembunyi * Me.jumlahSarafOutput) + Me.jumlahSarafTersembunyi + Me.jumlahSarafOutput

4a. Ambil 3 nilai acak untuk dijadikan sebagai solusi sementara, yaitu solusi terbaik, terburuk, lainnya
Untuk masing-masing nilai tersebut, hitung tingkat kesalahannya menggunakan teknik MSE (Mean Squared Error)
yaitu jumlah dari (kuadrat dari (hasil terhitung – hasil pada data awal)) / jumlah data
Dim solusi As Solution() = New Solution(2) {}
For i As Integer = 0 To 2
 solusi(i) = New Solution(jumlahBobot)
 solusi(i).bobot = CariSolusiAcak(jumlahBobot)
 solusi(i).nilaiKesalahan = MeanSquaredError(contohData, solusi(i).bobot)
Next
* Gunakan fungsi ini untuk menghitung tingkat kesalahan dari masing-masing data input
Hitung tingkat kesalahan nilai jawaban menggunakan teknik Mean Squared Error
dihitung dengan rumus jumlah dari (kuadrat dari (nilai jawaban – nilai hasil pada matriks data)) / jumlah data
Nilai jawaban yang baru bisa jadi mengembalikan nilai MSE yang lebih tinggi, sehingga nilai jawaban ini tidak bisa dipakai
Private Function MeanSquaredError(contohData As Double()(), bobot As Double()) As Double
Me.setBobot(bobot)

Dim contohDataKolomKriteria As Double() = New Double(jumlahSarafInput - 1) {}
Dim contohDataKolomHasil As Double() = New Double(jumlahSarafOutput - 1) {}

Dim hasil As Double = 0.0
For i As Integer = 0 To contohData.Length - 1
 Array.Copy(contohData(i), contohDataKolomKriteria, jumlahSarafInput)
 Array.Copy(contohData(i), jumlahSarafInput, contohDataKolomHasil, 0, jumlahSarafOutput)
 Dim dataKolomHasil As Double() = Me.ComputeOutputs(contohDataKolomKriteria)
 For j As Integer = 0 To dataKolomHasil.Length - 1
  hasil += ((dataKolomHasil(j) - contohDataKolomHasil(j)) * (dataKolomHasil(j) - contohDataKolomHasil(j)))
 Next
Next
Return hasil / contohData.Length
End Function

4b. Pada setiap perulangan,
Urutkan solusi berdasarkan tingkat kesalahan terendahnya, kemudian masukkan nilai bobot terbaik – lainnya – terburuk sesuai urutan yang ada
Array.Sort(solusi)
Dim bobotTerbaik As Double() = solusi(indeksSolusiTerbaik).bobot
Dim bobotLainnya As Double() = solusi(indeksSolusiLainnya).bobot
Dim bobotTerburuk As Double() = solusi(indeksSolusiTerburuk).bobot

4c. Cari nilai centroid, yaitu nilai tengah dari solusi lainnya ke solusi terbaik
* Gunakan fungsi ini untuk mencari nilai centroid
PArray.Sort(solusi)
Dim bobotTerbaik As Double() = solusi(indeksSolusiTerbaik).bobot
Dim bobotLainnya As Double() = solusi(indeksSolusiLainnya).bobot
Dim bobotTerburuk As Double() = solusi(indeksSolusiTerburuk).bobotrivate Function Centroid(bobotLainnya As Double(), bobotTerbaik As Double()) As Double()
 Dim jumlahBobot As Integer = bobotLainnya.Length
 Dim hasil As Double() = New Double(jumlahBobot - 1) {}
 For i As Integer = 0 To hasil.Length - 1
  hasil(i) = (bobotLainnya(i) + bobotTerbaik(i)) / 2.0
 Next
 Return hasil
End Function

4d. Cari nilai expanded, yaitu nilai centroid ditambah (nilai centroid – nilai terburuk) dikali 2
Kemudian hitung tingkat kesalahannya menggunakan teknik MSE (Mean Squared Error)
Jika nilai kesalahan expanded kurang dari nilai kesalahan terburuk, maka nilai expanded akan menggantikan nilai terburuk
Dim bobotExpanded As Double() = Expanded(bobotCentroid, bobotTerburuk)
Dim nilaiKesalahanExpanded As Double = MeanSquaredError(contohData, bobotExpanded)
If nilaiKesalahanExpanded 
4e. Cari nilai reflected, yaitu nilai centroid ditambah (nilai centroid - nilai terburuk) dikali 1
Kemudian hitung tingkat kesalahannya menggunakan teknik MSE (Mean Squared Error) Jika nilai kesalahan reflected kurang dari nilai kesalahan terburuk, maka nilai reflected akan menggantikan nilai terburuk
Dim bobotReflected As Double() = Reflected(bobotCentroid, bobotTerburuk)
Dim nilaiKesalahanReflected As Double = MeanSquaredError(contohData, bobotReflected)
If nilaiKesalahanReflected 
4f. Cari nilai contracted, yaitu nilai centroid ditambah (nilai centroid - nilai terburuk) dikali - 0.5 Kemudian hitung tingkat kesalahannya menggunakan teknik MSE (Mean Squared Error) Jika nilai kesalahan contracted kurang dari nilai kesalahan terburuk, maka nilai contracted akan menggantikan nilai terburuk
Dim bobotContracted As Double() = Contracted(bobotCentroid, bobotTerburuk)
Dim nilaiKesalahanContracted As Double = MeanSquaredError(contohData, bobotContracted)
If nilaiKesalahanContracted 
Gunakan 3 fungsi dibawah ini untuk mencari nilai reflected, expanded, contracted
Ilustrasi singkat adalah sebagai berikut: b----------x----------c----------y----------z buruk-----------------centroid
Tarik garis lurus antara posisi terburuk dengan posisi centroid Kemudian tambahkan garis terusan dari posisi centroid sepanjang jarak sebelumnnya
  • Posisi Reflected berada pada posisi y, dengan jarak (centroid-buruk) * koefisien alpha, dalam contoh ini bernilai 1.0
  • Posisi Expanded berada pada posisi z, dengan jarak (centroid-buruk) * koefisien gamma, dalam contoh ini bernilai 2.0
  • Posisi Contracted berada pada posisi x, dengan jarak (centroid-buruk) * koefisien beta, dalam contoh ini bernilai 0.5
'Gunakan fungsi ini untuk mencari nilai expanded

Private Function Expanded(Centroid As Double(), bobotTerburuk As Double()) As Double()
 Dim jumlahBobot As Integer = Centroid.Length
 Dim gamma As Double = 2.0
 Dim hasil As Double() = New Double(jumlahBobot - 1) {}
 For i As Integer = 0 To hasil.Length - 1
  hasil(i) = Centroid(i) + (gamma * (Centroid(i) - bobotTerburuk(i)))
 Next
 Return hasil
End Function
'Gunakan fungsi ini untuk mencari nilai reflected
Private Function Reflected(Centroid As Double(), bobotTerburuk As Double()) As Double()
 Dim jumlahBobot As Integer = Centroid.Length
 Dim alpha As Double = 1.0
 Dim hasil As Double() = New Double(jumlahBobot - 1) {}
 For i As Integer = 0 To hasil.Length - 1
  hasil(i) = Centroid(i) + (alpha * (Centroid(i) - bobotTerburuk(i)))
 Next
 Return hasil
End Function
'Gunakan fungsi ini untuk mencari nilai contracted

Private Function Contracted(Centroid As Double(), bobotTerburuk As Double()) As Double()
 Dim jumlahBobot As Integer = Centroid.Length
 Dim rho As Double = -0.5
 Dim hasil As Double() = New Double(jumlahBobot - 1) {}
 For i As Integer = 0 To hasil.Length - 1
  hasil(i) = Centroid(i) + (rho * (Centroid(i) - bobotTerburuk(i)))
 Next
 Return hasil
End Function
4g. Cari nilai acak lagi Kemudian hitung tingkat kesalahannya menggunakan teknik MSE (Mean Squared Error) Jika nilai kesalahannya kurang dari nilai kesalahan terburuk, maka nilai ini akan menggantikan nilai terburuk
Dim bobotSolusiAcak As Double() = CariSolusiAcak(jumlahBobot)
Dim nilaiKesalahanSolusiAcak As Double = MeanSquaredError(contohData, bobotSolusiAcak)
If nilaiKesalahanSolusiAcak 
4h. Jika nilai kesalahan dari posisi expanded - reflected - contracted - solusi acak tidak ada yang kurang dari nilai kesalahan solusi terburuk, Maka hitung nilai solusi lainnya dan solusi terburuk yang baru.
4h1. Hitung nilai solusi terburuk yang baru, yaitu (nilai terburuk + nilai terbaik) dibagi 2 Kemudian hitung tingkat kesalahannya menggunakan teknik MSE (Mean Squared Error)
For j As Integer = 0 To jumlahBobot - 1
 bobotTerburuk(j) = (bobotTerburuk(j) + bobotTerbaik(j)) / 2.0
Next
solusi(indeksSolusiTerburuk).nilaiKesalahan = MeanSquaredError(contohData, bobotTerburuk)
4h2. Hitung nilai solusi lainnya yang baru, yaitu (nilai lainnya + nilai terbaik) dibagi 2 Kemudian hitung tingkat kesalahannya menggunakan teknik MSE (Mean Squared Error)
For j As Integer = 0 To jumlahBobot - 1
 bobotLainnya(j) = (bobotLainnya(j) + bobotTerbaik(j)) / 2.0
Next
solusi(indeksSolusiLainnya).nilaiKesalahan = MeanSquaredError(contohData, bobotLainnya)
4i. Dapatkan solusi terbaik, yaitu solusi pada indeks terbaik
Me.setBobot(solusi(indeksSolusiTerbaik).bobot)

* Gunakan fungsi ini untuk memasukkan matriks bobot awal kedalam 4 matriks data yaitu matriks ihBobot, hBias, hoBobot, oBias
  • ihBobot adalah matriks bobot pada jaringan saraf input-tersembunyi, dengan jumlah data = jumlah saraf input * jumlah saraf tersembunyi (3 * 4 = 12 buah)
  • hBias adalah matriks nilai bias pada jaringan saraf input-tersembunyi, dengan jumlah data = jumlah saraf tersembunyi (4 buah)
  • hoBobot adalah matriks bobot pada jaringan saraf tersembunyi-output, dengan jumlah data = jumlah saraf tersembunyi * jumlah saraf output (4 * 2 = 8 buah)
  • oBias adalah matriks nilai bias pada jaringan saraf tersembunyi-output, dengan jumlah data = jumlah saraf output (2 buah)
Public Sub setBobot(bobot As Double())
 Dim jumlahBobot As Integer = (jumlahSarafInput * jumlahSarafTersembunyi) + (jumlahSarafTersembunyi * jumlahSarafOutput) + jumlahSarafTersembunyi + jumlahSarafOutput
 If bobot.Length  jumlahBobot Then
  Throw New Exception("Pada fungsi SetBobotAwal, panjang matriks bobot: " & bobot.Length & " tidak sama dengan jumlah bobot yang seharusnya, yaitu " & jumlahBobot)
 End If

 Dim k As Integer = 0
 For i As Integer = 0 To jumlahSarafInput - 1
  For j As Integer = 0 To jumlahSarafTersembunyi - 1
   ihBobot(i)(j) = bobot(k)
   k += 1
  Next
 Next
 For i As Integer = 0 To jumlahSarafTersembunyi - 1
  hBias(i) = bobot(k)
  k += 1
 Next
 For i As Integer = 0 To jumlahSarafTersembunyi - 1
  For j As Integer = 0 To jumlahSarafOutput - 1
   hoBobot(i)(j) = bobot(k)
   k += 1
  Next
 Next
 For i As Integer = 0 To jumlahSarafOutput - 1
  oBias(i) = bobot(k)
  k += 1
 Next
End Sub
5. Lakukan perhitungan dari masing-masing contoh data menggunakan nilai bobot dan nilai bias yang sudah ditemukan Penjelasan tentang fungsi ini akan dijelaskan pada perhitungan dibawah ini (poin 5a - 5g)
Dim output() As Double = jst.hitungNilaiOutput(input)
Memasuki perhitungan utama pada fungsi hitungNilaiOutput
5a. Beri nilai matriks input sesuai array input
For i = 0 To input.Length - 1
 Me.inputs(i) = input(i)
Next i
5b. Hitung matriks ihJumlahBobotDanBias dengan cara perkalian matriks antara matriks input dan matriks ihBobot
For j = 0 To jumlahSarafTersembunyi - 1
 For i = 0 To jumlahSarafInput - 1
  ihJumlahBobotDanBias(j) += Me.inputs(i) * ihBobot(i)(j)
 Next i
Next j
5c. Kemudian masukkan nilai bias pada matriks ihJumlahBobotDanBias
For i = 0 To jumlahSarafTersembunyi - 1
 ihJumlahBobotDanBias(i) += hBias(i)
Next i
5d. Hitung nilai output sementara dengan menggunakan fungsi HyperTan untuk masing-masing data pada matriks hJumlahBobotDanBias Penjelasan tentang fungsi HyperTan akan dijelaskan pada perhitungan dibawah ini
For i As Integer = 0 To jumlahSarafTersembunyi - 1
 Me.hOutput(i) = HyperTan(hJumlahBobotDanBias(i))
Next
* Gunakan fungsi ini untuk menghitung nilai fungsi HyperTan (tanh)
Private Shared Function HyperTan(x As Double) As Double
 If x  20.0 Then
  Return 1.0
 Else
  Return Math.Tanh(x)
 End If
End Function
5e. Hitung matriks hoJumlahBobotDanBias dengan cara perkalian matriks antara matriks output sementara dan matriks hoBobot

For j = 0 To jumlahSarafOutput - 1
 For i = 0 To jumlahSarafTersembunyi - 1
  hoJumlahBobotDanBias(j) += hOutput(i) * hoBobot(i)(j)
 Next i
Next j
5f. Kemudian masukkan nilai bias pada matriks hoJumlahBobotDanBias
For i = 0 To jumlahSarafOutput - 1
 hoJumlahBobotDanBias(i) += oBias(i)
Next i
5g. Hitung nilai output akhir dengan menggunakan fungsi Softmax untuk masing-masing data pada matriks hoJumlahBobotDanBias Penjelasan tentang fungsi Softmax akan dijelaskan pada perhitungan dibawah ini (poin 5g1 - 5g3)

Dim hasil() As Double = Softmax(hoJumlahBobotDanBias)
hasil.CopyTo(Me.outputs, 0)
Return hasil
Memasuki perhitungan utama pada fungsi Softmax
5g1. Cari nilai maksimal data
Dim maksData As Double = hoJumlahBobotDanBias(0)
For i = 0 To hoJumlahBobotDanBias.Length - 1
 If hoJumlahBobotDanBias(i) > maksData Then
  maksData = hoJumlahBobotDanBias(i)
 End If
Next i
5g2. Cari nilai skala
Dim skala As Double = 0.0
For i = 0 To hoJumlahBobotDanBias.Length - 1
 skala += Math.Exp(hoJumlahBobotDanBias(i) - maksData)
Next i
5g3. Hitung hasil akhir Sehingga semua jumlah bobot pada parameter matriks hoJumlahBobotDanBias akan bernilai 1
Dim hasil(hoJumlahBobotDanBias.Length - 1) As Double
For i = 0 To hoJumlahBobotDanBias.Length - 1
 hasil(i) = Math.Exp(hoJumlahBobotDanBias(i) - maksData) / skala
Next i
6. Jika maka
  • Jika nilai output bernilai kurang dari 0.5 maka pelanggan tersebut memiliki nilai hasil Ditolak
  • Jika nilai output bernilai lebih dari 0.5 maka pelanggan tersebut memiliki nilai hasil Diterima
  • Kemudian bandingkan nilai output dengan nilai hasil pada contoh data
  • Jika hasilnya sudah sama, maka catat data ini kedalam jumlah data benar
  • Jika hasilnya tidak sama, maka catat data ini kedalam jumlah data salah
If output(0)  Ditolak   ")
 If contohData(i)(jumlahKolom - 2)  contohData(i)(jumlahKolom - 1) Then
  jumlahSalah += 1
  Console.WriteLine("Salah")
 End If
Else
 Console.Write("-> Diterima  ")
 If contohData(i)(jumlahKolom - 2)  contohData(i)(jumlahKolom - 1) Then
  jumlahBenar += 1
  Console.WriteLine("Benar")
 End If
End If
7. Catat tingkat kecocokan perhitungan data dengan hasil awal pada data
Langkah ini tidak wajib, hanya untuk mengetahui seberapa besar tingkat kecocokan perhitungan untuk data baru yang akan dihitung selanjutnya
Console.WriteLine("Jumlah perhitungan benar = " & jumlahBenar & ", jumlah perhitungan salah = " & jumlahSalah)
Console.WriteLine("Tingkat kecocokan perhitungan dengan hasil data adalah " & (jumlahBenar / (jumlahBenar + jumlahSalah)).ToString("F2"))
8. Lakukan perhitungan yang sama (poin 5 dan 6) untuk masing-masing data baru
For i As Integer = 0 To dataBaru.Length - 1
 Console.Write("Pelanggan " & Chr(i + 65 + 8) & "  ")

 Dim input(jumlahKolom - 3) As Double
 Array.Copy(dataBaru(i), input, jumlahKolom - 2)
 For j = 0 To input.Length - 1
  Console.Write(IIf(input(j) >= 0, " ", "") & input(j).ToString("F2") & " ")
 Next j
 Console.Write(" ")

 Dim output() As Double = jst.hitungNilaiOutput(input)
 For j = 0 To output.Length - 1
  Console.Write(output(j).ToString("F2") & " ")
 Next j
 Console.Write(" ")

 If output(0)  Ditolak ")
 Else
  Console.Write("-> Diterima")
 End If
 Console.WriteLine("")
Next
* Agar dapat menjalankan fungsi Simplex diatas, maka diperlukan sebuah Class Solution untuk menampung semua data bobot dan nilai kesalahan solusi tersebut. Deklarasi Class Solution adalah sebagai berikut:

Private Class Solution
 Implements IComparable(Of Solution)
 Public bobot As Double()
 Public nilaiKesalahan As Double

 Public Sub New(jumlahBobot As Integer)
  Me.bobot = New Double(jumlahBobot - 1) {}
  Me.nilaiKesalahan = 0.0
 End Sub

 'Fungsi untuk mengurutkan nilai kesalahan dari yang terendah (terbaik) ke tertinggi (terburuk)
 Public Function CompareTo(other As Solution) As Integer Implements IComparable(Of Solution).CompareTo
  If Me.nilaiKesalahan  other.nilaiKesalahan Then
   Return 1
  Else
   Return 0
  End If
 End Function
End Class
Hasil akhir adalah: (klik untuk perbesar gambar)