ANALYSIS OF STUDENT DIFFICULTIES IN COMPUTER PROGRAMMING

Computer programming skills are required in mathematics computing courses. Most students have difficulty making computer programs. This study aims to identify the difficulties faced by students in making computer programs. This research is descriptive quantitative research. The subjects in this study are students of Mathematics Education Departement, Muhammadiyah University of Tangerang. Based on the results of data analysis, the conclusion is: (1) there are significant differences in multidimensional array material between high, medium and low group; (2) there is a significant difference in input / ouput command material between high, medium and low group; (3) there are significant differences about the difficulties experienced by students in understanding the basic concept of programming between high, medium and low groups; (4) there is a significant difference regarding the difficulties experienced by students in finding the fault of their own programs between high, medium and low groups; (5) there is no significant difference in situations that may assist students in programming for lab work in the high, medium and low groups; (6) there is no significant difference in situations that can assist students in programming to do alone tasks between high, medium and low groups; (7) there is no significant difference in the lack of examples shown when practice makes poor performance in programming between high, medium and low groups; (8) there is no significant difference in what makes poor performance in programming a less conducive atmosphere between high, medium and low groups.


INTRODUCTION
said that programming is the act of understanding a problem, 82 formulating a solution, and writing down the solution in such a way that a computer can use the solution to solve the. Therefore a programmer should understand a problem first. When the problem had been understood, programmer would use problem solving technic to solve the problem. At last step a programmer need to communicate that solution so that computer could follow instruction that been given.
Computer programming skill is needed in computational mathematics course. In that course, problem in mathematics is translated into a computer program. The program is used to get an answer from a given problem.
Making a computer program is not an easy thing. This skill need another skills, like designing algorithm, writing program in certain program language, and understanding syntax from the program (Rahmat, Shahrani, Latih, Yatim, Zainal, & Rahman, 2012).
For most students, programming is a new thing. It needs basic skill to reach advanced level in computer programming. Students need to know basic syntax, structure, and style of a program language gradually. These make students feel difficult often. Difficulties in programming are common for novice students. As Evan and Simkin (1989) said that computer programming is very complicated for many novice students at university level. Meanwhile Ala-Mutka (2004) said that difficulties faced by students are not in syntax or understanding of concept, but rather basic program planning (Mhashi & Alakeel, 2013, pp. 15).
Based on score of computational mathematics courses there are about 70% of students achieved below grade of B. It indicated that there are a problem happened. Therefore an action is needed to find out the cause.
The aimi of this study is to find out difficulties faced by students in computer programming. The result of this study is expected to be input for computational mathematics course. What kind of action is needed so that the outcomes of the lectures get better.

METHOD
This study used survey method. Groves, Fowler, Couper, Lepkowski, Singer, Tourangean (2009), said that survey is a systematic method for gathering information from (a sample of) entities for the purposes of constructing quantitative descriptors of the attributes of the larger population of which the entities are. Systematic is deliberate and meaningfully distinguishes surveys from other ways of gathering information. The quantitative descriptors are called statistics.
This study used questionnaire adapted from instrument used by Milne and Rowe (2002), Tan, Ting, Ling, (2009), and Derus and Ali (2012). To obtain the necessary information, the questionnaire consists of two major sections, the background information of respondents in general, and the experience of respondents when learning programming.
The number of respondents in this study about 132 students. Respondents are sixth semester students of Mathematics Education Department, Muhammadiyah University of Tangerang

RESULTS AND DISCUSSION
Of the 132 respondents who answered the questionnaire, 15% were male or about 20 people. While for female respondents 85% or about 112 people. This can be seen in the following diagram Regarding the question have they ever studied computer programming, most of them have never studied computer programming or about 98% that is as many as 129 people. This means that for the first time they are familiar with computer programming. This is illustrated in the following diagram Student performance is determined based on the score of mathematics computational exam. the values are grouped into high, medium, and low. This grouping will be used to determine if there is a significant difference between each problem analyzed and the student's performance. The grouping can be seen in the following table. The data used in this study comes from a questionnaire distributed to students, the questionnaire is ordinal scale. Questionnaires are given to students to know their opinions on understanding the basic material of programming. The level of understanding of students on the basic materials of programming can be seen in Table 2. Scale used in each item is Likert scale. The material is sorted from the smallest average score. To see if there is a difference between the problems analyzed and the student's performance, the Kruskal-Wallis test is used     Table 3 and Table 4 it can be seen that there are significant differences in Multidimensional Array material between high, medium, and low group. The H value of the test is 10.114 with degrees of freedom 2 and the value p = 0.006. Meanwhile the mean rank of the high group was 90.85, the moderate group was 77.58, and the low group was 60.24. This means that the level of understanding on Multidimensional Array material between high, medium, and low groups differ significantly. These results indicate that the group is well versed with Multidimensional Array material.
As for the material Input / Output Input the average student approaches the category of understanding with the material. This can be seen further in the following diagram  Figure 4 it can be seen that most of the students are familiar with the Input / Output Input materials. As many as 54.5% of students understand the material Input / Output Commands. The possibility of this happening because the material is quite easy. The syntax they learned was not too complicated.
To see further differentiation rates, further testing is required. Here are the results of testing the difference rates by group   Table 5 and Table 6 it can be seen that there is a significant difference in Input / Output command material between high, medium, and low group. The H value of the test is 14.472 with degrees of freedom 2 and the value p = 0.001. Meanwhile the mean rank of the high group was 96.30, the mean group was 79.53, and the low group was 59.01. This means that the level of understanding of the Input / Output Input materials between high, medium, and low groups differs significantly. These results indicate that the high group understands the material Input / Output Input.
Overall the level of students' understanding of basic programming materials is at a moderate level. From Table 2 it can be seen that students have difficulty in understanding the basic material of programming. According to Milne and Rowe (2002), students' difficulties in learning programming is caused by less familiar to students with the rules contained in computer programs. This is reinforced by interviews with some students who stated that they have never studied computer program.
The difficulty level when studying the programming can be seen in Table 7. The scale used in each item in Table 7 is the Likert scale (1, strongly disagree; 2, disagree; 3, neutral; 4, agree; 5, strongly agree). Difficulty sorted from the largest average value.  Table 7 it can be seen that the average student has difficulty in understanding the basic concept of programming structure. This can be seen further in the following diagram.   Table 8 and Table 9 it can be seen that there are significant differences regarding the difficulties experienced by students in understanding the basic concept of programming between high, medium, and low groups. The H value of the test is 15.147 with degrees of freedom 2 and the value p = 0.001. Meanwhile the mean rank of the high group was 40.40, the moderate group 51.10, and the low group 74.36. This means that the degree of difficulty in understanding the basic concepts of programming between high, medium, and low groups differ significantly. These results indicate that the low group has difficulty in understanding the basic concepts of programming.
From Table 7 it can be seen that the average students tend to be neutral in the difficulties they encounter when finding fault with their own programs. This can be seen further in the following diagram  Figure 6 it appears that most students feel neutral meaning they assume that they sometimes find it difficult and sometimes do not find it difficult to find fault with their own program. Here are the results of testing the difference rates by group.  Table 10 and Table 11 it can be seen that there are significant differences regarding the difficulties students experience in finding out the errors of their own programs between high, medium, and low groups. The H value of the test is 11.712 with the degrees of freedom 2 and the value p = 0.003. Meanwhile the mean rank of the high group was 37.55, the moderate group 56.95, and the low group 72.76. This means that the degree of difficulty in finding the fault of the program itself between high, medium, and low groups differed significantly. These results indicate that the low group has difficulty finding the fault of their own program.
From Table 7 it can be seen that there are three types of interrelated difficulties when studying programming: i) difficulty understanding basic concepts of programming structure, ii) designing a program, and iii) studying programming language syntax. These three things are common for beginners when just learning programming. This is because programming capabilities involve the ability to create algorithms, write in certain program languages, and understand the syntax of the program's language (Rahmat, Shahrani, Latih, Yatim, Zainal, & Rahman, 2012).  Table 12 is the student's opinion of situations that they think may help study programming. The scale used in each item in Table  12 is the Likert scale (1, strongly disagree; 2, disagree; 3, neutral; 4, agree; 5, strongly agree). From Table 12 it can be seen that the average student agreed to a situation that can help them in learning programming is practice in the la-boratory. This can be seen further in the following diagram Figure 7. Practical in lab would help to learn programming From Figure 7 it appears that most students agree that practice in the laboratory can help them in learning the programming. Here are the results of testing the difference rates by group.  Table 13 and Table 14 it can be seen that there is no significant difference in situations that may help them in learning programming is laboratory practice between high, medium, and low groups. The H value of the test is 0.932 with degrees of freedom 2 and p value = 0.628. Meanwhile mean rank of high group was 62,30, medium group 61,77, and low group 68,50. This means that practice in the laboratory as a situation that can help learn the programming between high, medium, and low groups does not differ significantly. From Table 12 it can be seen that the average student's neutral opinion for a situation that can help them in learning programming is doing their own programming tasks. This can be seen further in the following diagram.    Table 15 and Table 16 it can be seen that there is no significant difference in situations that can help them in learning programming is doing their own programming tasks between high, medium, and low groups. The H value of the test is 0.176 with degrees of freedom 2 and the value p = 0.916. Meanwhile the mean rank of the high group was 68.20, the group was 64.13, and the low group 67.09. This means that working on your own programming task as a situation that can help learn the programming between high, medium, and low groups does not differ significantly.
Most students agree that practical activities in the laboratory can help them learn the basics of programming effectively and discuss with lecturers or friends. This is similar to what was revealed by Gomes and Mendes (2007) that learning programming requires intensive practice and practice. Activities in the laboratory will certainly help students understand the difficulties they experience and arouse students' interest in programming (Parham, 2003).  Table 17 is the student's opinion of the factors that make them get poor performance when learning programming. The scale used in each item in Table 4 is the Likert scale (1, strongly disagree; 2, disagree; 3, neutral; 4, agree; 5, strongly agree).
From Table 17 it can be seen that the average student believes that the neutral factor that makes poor performance in programming is the lack of examples that are displayed when practicing. This factor is at the top of the list. This can be seen further in the following diagram Figure 8. Less examples of practical use are shown lead to poor performance in programming From Figure 8 it is seen that 49.2% of students think neutrally against the lack of examples shown when practicing. But as many as 41.6% of students agree to the lack of examples shown when practicing. It may be said that this indicates that the actual example given by the lecturer when the practice is still lacking. Here are the results of testing the difference rates by group  Table 18 and Table 19 it can be seen that there is no significant difference in the lack of examples shown when the practice makes their performance poorly in programming between high, medium, and low groups. The H value of the test is 2.186 with the degrees of freedom 2 and the value p = 0.335. Meanwhile the mean rank of the high group was 60.10, the moderate group was 59.40, and the low group was 69.51. This means that the lack of examples shown when the practice of making poor performance in programming between high, medium, and low groups does not differ significantly.
From Table 17 it can be seen that the average student assumes neutral that the factors that make poor performance in programming is less conducive learning atmosphere. This factor is at the bottom of the list. This can be seen further in the following diagram Figure 9. Learning environment that is not conducive lead to poor performance in programming From Figure 9 seen as many as 53.0% of students thought neutral to the less conducive learning atmosphere. It may be said that they are in doubt with the learning atmosphere they are experiencing whether making performance in programming is bad or not. Here are the results of testing the difference rates by group.  Table 20 and Table 21 it can be seen that there is a significant difference regarding what makes their performance poor in programming is a less conducive learning environment between high, medium, and low groups. The H value of the test is 12.048 with degrees of freedom 2 and the value p = 0.002. Meanwhile the mean rank of the high group was 29.50, the group was 68.50, and the low group was 69.87. This means that the less conducive learning atmosphere as a situation that makes performance in programming poorly between high, medium, and low group significantly different. The interesting thing to be found from Table 20 can be seen that significant differences occur in high clusters. The average high group considers that the less conducive learning atmosphere makes bad kinreja in programming.
From the discussion of factors that make poor performance in programming can be said that students have difficulty programming because lecturers do not provide adequate examples for students or lack of examples provided, and computer equipment in the laboratory does not work well, and teaching methods used lecturers less effective. Teaching strategies and techniques are important in order to convey information to students. In order for students to master basic problem-solving skills, the teaching methods used must be applicable and make students engage in practical activities (Ismail, Ngah, Umar, 2010).

CONCLUSION
For beginners, computer programming is not an easy thing. It takes some important skills to master programming such as creating a programming design, and writing it into a particular programming language. The difficulties that students face in terms of understanding the basic programming because they are not yet familiar with a particular programming language. Plus three interrelated things that are programming structure, make design, and programming language syntax they have to master.
In addition, lecturers do not provide sufficient examples for students, as well as computer equipment in the laboratory is not working properly, and teaching methods used less effective lecturers make their performance poor in learning programming.
Based on the results of data analysis, the conclusion is: (1) there are significant differences in multidimensional array material between high, average and low group; (2) there is a significant difference in input / ouput command material between high, average and low group; (3) there are significant differences about the difficulties experienced by students in understanding the basic concept of programming between high, average and low groups; (4) there is a significant difference regarding the difficulties experienced by students in finding the fault of their own programs between high, average and low groups; (5) there is no significant difference in situations that may assist students in programming for lab work in the high, average and low groups; (6) there is no significant difference in situations that can assist students in programming to do alone tasks between high, average and low groups; (7) there is no significant difference in the lack of examples shown when practice makes poor performance in programming between high, average and low groups; (8) there is no significant difference in what makes poor performance in programming a less conducive atmosphere between high, average and low groups; To overcome the difficulties that students encounter in learning programming, it takes a situation that they think can overcome it. Situations that can help them in mastering programming, according to them are practical activities in the laboratory and discussions with lecturers or friends.