This research concerned with the types of code switching and code mixing used by the teachers, teachers’ reasons in using code switching and code mixing, and students’ perception of code switching and code mixing used by the teacher in the class. This research was a descriptive qualitative research. The researcher used observation checklist, video recording, interview, and questionnaire as the instruments of this research. The data of this research was analyzed by classifying the types of code switching used theory of Poplack and the types code mixing used theory of Hoffman. The result of this research shows that the English teachers did all the types of code switching in English class. Namely; tag code switching, inter-sentential code switching, and intra-sentential code switching. Meanwhile, the researcher found that the teachers only used two from the three types of code mixing. Namely; intra-sentential code mixing and intra-lexical code mixing. The type that did not appear was involvement in a change of pronunciation. This study revealed that the teachers’ reason in using code switching and code mixing are; to help the students in learning English and to make the students more focus in learning process. For the students’ perception, most of the students agreed that the use of code switching and code mixing helps them understand the materials in English language learning class.