The Effect of Pair Programming Learning Model on Learning Outcomes of Basic Programming of Vocational School Students

The main problem in formal learning today is the low absorption of students in understanding the material. This can be seen from the average student learning outcomes which are always still low. Low learning outcomes are indicated because the learning conditions are still conventional (lectures, practicums, and discussions). This study aims to determine the effect of pair programming learning models on learning outcomes of vocational high school students. This research was conducted through a literature review and relevant research results and was continued through a Focus Group Discussion (FGD). From the research it was found that there was a significant positive influence between the variable pair programming learning model and student learning outcomes, which means that student learning outcomes can be improved through the application of the pair programming learning model.


Introduction
Vocational education is secondary education that prepares students especially to work in certain fields. Yahya (2018) states that vocational education has a goal, namely to develop knowledge, abilities, skills and formation of student competencies. Based on these objectives, vocational high schools should be able to prepare students to become productive human beings, able to work independently according to the competence of their expertise, equip students to choose jobs, be resilient and persistent in competence, adapt to the work environment and develop professional attitudes. One of the competencies that class X vocational students who study Information and Communication Technology (ICT) must have is competency in basic programming subjects. Basic programming subjects are basic subjects taught to class X Vocational High School students both in the Multimedia expertise program (MM), the Computer and Network Engineering Expertise Program (TKJ) and the Software Engineering expertise program (RPL). Maryono and Pambudi (2014) state that in basic programming subjects, students will learn programming in which there are the basics of logic where the syntaxes given are still universal and prioritize the formation of students' mindsets about how to make an effective and efficient program. In basic programming subjects in vocational high schools, the programming language that is often taught is the intermediate programming language, namely the C/C ++ programming language, usually students are required to be able to make a simple application using the C/C ++ programming language. There are several benefits of learning a programming language, including being able to improve students 'logical thinking skills, train students to think systematically, train accuracy, train students' problem-solving abilities, and many others. Therefore basic programming is an important subject in the learning curriculum in vocational high schools.
The main problem in formal learning today is the low absorption of students in understanding the material. This can be seen from the average student learning outcomes which are always still low. Low learning outcomes are indicated because the learning conditions are still conventional (lectures, practicums, and discussions) and do not touch the realm of the dimensions of the students themselves, namely how learning actually is (Trianto, 2011: 5). The learning process in the 2013 Curriculum for all levels of education is carried out using a scientific approach, including: observing, asking, reasoning, trying, and forming networks for all subjects. The learning process must be student-centered. Students are required to be more active in asking questions, analyzing their own problems, and students can produce a work or product. Determining appropriate learning strategies and models is needed by the teacher to achieve the desired goals in the learning process so that it makes it easier for students to understand the subject matter delivered by the teacher. The goals the teacher wants to achieve include creating an active atmosphere in the classroom during the teaching and learning process so that student learning outcomes are as expected. According to Djamarah (2006) the learning model is a method used to achieve predetermined learning objectives. Besides that Afandi, et al. (2013) defines the learning model as a stage or method used by teachers and students to interact with each other to achieve predetermined learning objectives in accordance with the teaching material and the mechanism of the learning model that has been determined. Djamarah and Zein (2010) explain that the position of the learning model is as a teaching strategy, a medium to increase extrinsic motivation as well as a means to achieve learning goals.
In line with developments in the world of education, learning models are also increasingly diverse. One of the learning models that are currently being widely adopted in learning in the field of Information and Communication Technology (ICT) is the pair programming learning model. Pair programming itself is included in the software development method in Extreme Programming in the Agile Development group which is then adapted into a learning model in the world of education (Denner, Wener & Campe, 2014). In the pair programming model, each student who collaborates has their respective roles. One student acts as a driver, his job is to make designs, write code and test programs. The other student acts as a navigator whose role is to review whether the driver made a mistake and then provide suggestions to help fix the error (Denner, Wener & Campe, 2014). Such learning activities are no longer a strange thing when more than one programmer is working on a program in the field of information technology. Where two programmers work collaboratively on the same computer and solve problems related to the same algorithm, code, or programming design. By applying the pair programming model in the learning process, it can increase students' understanding and involvement in learning activities. In line with this statement, Isong (2014) said that implementing pair programming in computer programming learning will increase understanding, active involvement and student participation to achieve learning goals. This study was conducted to determine the effect of pair programming learning models on learning outcomes of basic programming in vocational high school students. The benefit of this research is to provide new knowledge for teachers as an alternative learning model in delivering basic programming learning materials, as well as to foster students 'interest in learning the material being taught so that students' learning outcomes of basic programming increase.

Pair Programming Learning Model
One learning model that has been adopted recently in the fields of computer science and software engineering is the paired learning model which is better known as pair programming. Pair programming originated in the computer software industry, but it has been proven by several educators from various fields of education that pair programming has advantages in education (Mentz, Van der Walt & Goosen, 2008). Pair programming originated in the software development industry and is one of the main practices of Extrame Programming (XP). XP is a software development method in the Agile Development group (Williams & Kessler, 2008: 34). Faja (2011) defines Pair programming as a term used to describe the process in which two programmers work together on the same task on one computer. The two programmers collaborate in completing designs, algorithms, code, and testing on the same program. In pair programming, each paired programmer has a different role. In addition, Williams & Kessler (2002) define pair programming as a learning process that involves two people working on the same task on one computer. One individual fulfills the role of a driver (working with a mouse, keyboard, pen, etc.) and another individual fulfills the role of a navigator (observing the driver's work critically and helping the driver complete the program). Then, McDowell, Werner, Bullock & Fernald (2006) have another definition of pair programming, namely, a learning process in which two programmers work collaboratively on the same program and workstation. One programmer is designated as the driver and has control over the input device. Other programmers are designated as navigators and have the responsibility of reviewing typed program code to check for flaws such as incorrect syntax and logic. The illustration of the pair programming learning model can be described as in Figure 1. Pair programming learning model, commonly applied to programming subjects such as basic programming, web programming, object-based programming, and game programming. Faja (2011) states that the pair programming learning model is suitable to be applied to students who are just learning programming, because most of them feel that programming lessons are difficult and challenging subjects, so learning activities in a collaborative way is one solution. Through collaborative learning activities, students can build knowledge through interactions with other students.

Learning Outcomes
Learning is a phase of change in student behavior that is relatively positive as a result of student interaction with their environment that involves cognitive processes (Jihad & Haris, 2013: 1). So it can be said that behavior change is the result of learning. That is, someone is said to have learned, if they can do something that could not be done before (Sumiati, 2009: 38). Djamarah (2011: 30) explains that learning is a series of body and soul to obtain a change in behavior as a result of individual experiences in interactions with their environment concerning the cognitive, affective and psychomotor domains. Behavioral changes in learning are relatively permanent. Thus learning outcomes can be identified from the ability to do something permanently, can be repeated with the same results.
Jamil (2012: 37) defines learning outcomes as an ability possessed by students as a result of the learning activities that have been carried out and can be seen from the appearance of students. In addition, according to Jihad & Haris (2013: 15) defines learning outcomes as a real change in student behavior after a teaching and learning process is carried out in accordance with the learning objectives. Meanwhile, according to Sudjana (2011: 127) student learning outcomes are essentially changes in behavior according to instructional goals. Behavior as a result of learning in a broad sense includes the cognitive, affective and psychomotor domains. Therefore, in assessing learning outcomes, the role of instructional objectives which contains the formulation of abilities and behaviors that students want to master is an important element as a basis and reference for assessment. The assessment of results and the learning process are related to each other because the results are the result of the process.

Basic Programming Subjects
Basic programming subjects are one of the subjects given to class X students in the field of Information and Communication Technology expertise. The field of expertise in Information and Communication Technology is divided into three expertise programs, namely (1) Computer and Network Engineering (TKJ); (2) Software Engineering (RPL); and (3) Multimedia (MM). Basic programming is programming that provides the basics of logic where the given syntax is universal and puts forward the formation of students' mindsets about how to make an effective and efficient program.
Basic Programming Lessons are divided into 4 sections, one semester for each section. In the first part, in Class X part 1, there is more emphasis on the basics of algorithms as a first step for students to learn programming. By mastering the basics of algorithms, it is expected that students' mindsets on how to solve real problems are in the form of a series of algorithmic steps and present them in natural language, pseudocode and flowchart. In the second part of Class X part 2, students are introduced to programming languages to create programs or applications. The concept of variables, data types, and operators, branching and looping structures. With this basic material, it is hoped that students will be able to make simple programs to solve everyday problems.

Materials and Methods
This study was conducted through a literature review of relevant references and research results and continued through a focus group discussion (FGD). The relevant references include the policies of the Government of the Republic of Indonesia, and books on vocational and vocational education. While the study of relevant research results is a study of research results related to: (1) pair programming learning model; (2) the factors that influence the successful application of the pair programming learning model; (3) the advantages of the pair programming learning model; and (4) basic programming learning outcomes. Based on the results of this study, data analysis techniques were carried out using descriptive-qualitative techniques (Sugiyono: 2006).

Results and Discussions
As stated in the introduction, the main problem in formal learning today is the low absorption of students in understanding the material. This can be seen from the average student learning outcomes which are always still low. Low learning outcomes are indicated because the learning conditions are still conventional (lectures, practicums, and discussions) and do not touch the realm of the dimensions of the students themselves, namely how to actually learn. Another factor is due to the lack of awareness of students that learning is a necessity. This needs to be overcome by choosing the right learning model. In line with this, Djamarah & Zein (2010) explain that the position of the learning model is as a teaching strategy, a medium to increase extrinsic motivation as well as a means to achieve learning goals. In line with developments in the world of education, learning models are also increasingly diverse. One of the learning models that are currently being widely adopted in learning in the field of Information and Communication Technology (ICT) is the pair programming learning model. In the pair programming model, each student who collaborates has their respective roles. One student acts as a driver, his job is to make designs, write code and test programs. The other student acts as a navigator whose role is to review whether the driver made a mistake and then provide suggestions to help fix the error (Denner, Wener & Campe, 2014). Such learning activities are no longer a strange thing when more than one programmer is working on a program in the field of information technology. There are several advantages of implementing the pair programming learning model, as expressed by Toll, Lee & Ahlswede (2007). The advantages of using pair programming include (a) implementing pair programming results in programs that have less error rates; (b) produce more quality programs in less time; (c) create a more enjoyable atmosphere in programming; (d) build higher levels of trust and improve team performance. In addition, Williams & Kessler (2000) also stated that the advantages of implementing the pair programming learning model in the classroom are (a) producing high quality programs; (b) students have higher self-confidence; (c) students enjoy programming learning; (d) students have higher average exam scores, (e) students have higher attendance presentations in learning activities; (f) students complete the assignment in a shorter time.
The pair programming learning model has 9 phases, namely orientation, survey, partner preferences, organizing into groups and assigning roles, designing program planning, monitoring program development, exchanging roles, testing results, and evaluating. The syntax of the pair programming model has not been patented so researchers have adopted from Williams, L., McCrickard, S., Layman, L., & Hussein, K. (2008) in their journal entitled "Eleven Guidelines for Implementing Pair Programming in the Classroom" and also from Campe, S., Green, E. & Denner, J. (2019) from the results of their research entitled "K-12 Pair Programming Toolkit" with modifications. The success in implementing the pair programming learning model is determined by several factors, including individual factors, team design, team environment, and team processes (Faja, 2011). Jacobson & Schaefer (2008) also stated that the selection of partners in the team and also the supervision of learning activities were also important factors in the successful application of the pair programming model. In addition, Sison (2009) also states that the complexity of the task or the size of the programming task is also one of the factors that can influence. The chart of implementing the pair programming learning model effectively in learning activities can be seen in Figure 2. From the chart in Figure 2, several factors that influence the effectiveness of the pair programming model can be described. The first is the individual factor, which consists of the abilities / skills of each individual and also the personality of each individual. The second is the team environmental factor consisting of academic setting and orientation. The intended academic setting is whether the pair programming learning model is applied to traditional (face-to-face) classroom learning, or to remote (virtual) classroom learning. Orientation is also one of the critical success factors in implementing the pair programming model. The intended orientation is the introduction of the pair programming learning model to students before learning begins. Because in this model, students are not only divided into several groups and work on assignments together, but in this model, there are certain rules that students must know. The third is team design, which consists of team composition and task structure. Team composition is an important factor that can affect team collaboration and performance. Several methods can be used to form a team, including by way of students choosing their own teammates, or being formed randomly. The same team in each task or the team that changes each task. Teams with the same abilities or teams with slightly different abilities, teams of the same gender or teams of different genders. And there are many more methods that can be used in pairing teams. The task structure in question is whether the task is done in class or the task is done at home. And the last one is the team process, which consists of the effort or effort and team dynamics. The intended effort is the student's effort in learning with the pair programming model. Whether students really do learning according to the rules or not, here the teacher's role is needed to monitor students whether they have been rolling roles regularly, and monitor the extent to which students understand the teaching material through the pair programming lesson model. Team dynamics is another important factor. With good team dynamics, the teacher can determine whether with this learning model students can adjust themselves well, whether students can interact well, whether communication between colleagues in a team is good, and so on. There are a number of research results about the influence of pair programming learning models on student learning outcomes. Salleh, et al (2011), conducted a study entitled "Empirical Studies of Pair Programming for CS/SE Teaching in Higher Education: A Systematic Literature Review". The study concludes that pair programming is effective in helping students get better grades and almost all research findings show that student satisfaction is higher when using pair programming. In line with this, Akour, et al (2013), in their research entitled "Effective pair programming practice: toward improving student learning in software engineering class" concluded that: (a) applying the pair programming learning model shows a significant impact in increasing satisfaction. , efficiency and effectiveness of students in software engineering subjects; (b) students who are paired with the same skill level show more significant improvement in learning outcomes than students who are paired with different skill levels.
Related to the effectiveness of the application of pair programming in learning, Rodríguez, et al (2017) in his research entitled "Exploring the Pair Programming Process: Characteristics of Effective Collaboration" found that: (a) the effective application of pair programming has many benefits for students in the subject matter. computer; (b) teachers in pair programming model learning can increase the effectiveness of classroom learning by encouraging active conversation participation from both partners. In addition, pair programming can also help students who are slow to learn programming, as in the research of Ayub, et al. (2019), who conducted a study entitled "Utilizing Pair programming To Enhance The Performance Of Slow-Paced Students On Introductory Programming." The study concluded. that by using pair programming, where students who learn slowly paired with students who learn quickly succeed in helping students who are slow learners in introductory programming, although a greater impact is seen in students who learn slowly than students who learn faster.
In addition to providing benefits in improving learning outcomes, pair programming also has an influence on students' psychology and social attitudes. This is in line with research by Eirman & Iversen (2018), conducting research with the title "Comparing Test-Driven Development and Pair programming to Improve the Learning of Programming Languages". The study concluded that pair programming has a significant effect on improving programming skills, and improving programming skills in students who have weak programming skills. In addition, the pair programming method also has positive benefits on the social aspect. Meanwhile, Denner, et al (2014) conducted a research entitled "Pair programming: Under What Conditions Is It Advantageous for Middle School Students?". The research concludes that using pair programming has more benefits. Pair programming has an impact on students' computational thinking skills and helps in building programming skills, especially for students who lack programming skills. In addition, pair programming also has a positive impact on student psychology, including increasing students' selfconfidence and also the ability to collaborate. Meanwhile, Maguire, et al (2014) conducted a study entitled "Enhancing Collaborative Learning Using Pair programming: Who Benefits?". The study concluded that pair programming has greater benefits for female students, as well as increasing the knowledge of students who are weaker in programming learning. Apart from the cognitive aspects, another positive aspect of pair programming is the social aspect where students can collaborate with other students in the class.

Conclusions
Based on a review of the relevant literature and research results, and reviewed with a focus group discussion (FGD), the following conclusions are obtained: (a) pair programming is a learning process in which two programmers work collaboratively on the same program and workstation. One programmer is designated as the driver and has control over the input device. Other programmers are designated as navigators and have the responsibility of reviewing typed program code to check for flaws such as incorrect syntax and logic; (b) students' basic programming learning outcomes can be improved through the application of the pair programming learning model; (c) Besides being able to improve student learning outcomes, the application of pair programming in the learning process can also increase students' self-confidence and can hone collaborative skills; (d) the successful application of pair programming is very dependent on the process of pairing students; (e) there is a significant positive influence between the variable pair programming learning model and student learning outcomes, which means that student learning outcomes can be improved through the application of the pair programming learning model.