Heat a griddle over medium heat and fry the bacon until crisp. Alternatively, the bacon can also be baked in the oven at 350℉ for 20 minutes or until crispy.
After frying/ baking the bacon, allow to cool slightly on a paper towel lined plate
Melt butter in a small area of the griddle and place the onions on top of the melted butter. Cook for 5 minutes, stirring around to prevent burning.
Butter one side of each slice of bread.
Place the bread slices onto the griddle. Put the cheddar cheese on 4 slices of bread and swiss cheese on the other slices of bread.
Place the ham, tomato, and bacon on top of the cheddar cheese.
Once the bread has grilled (about 3 minutes), place the swiss cheese bread on top of the sandwich.